diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,186 @@
+1.23.1 --> 1.24.0
+=================
+* Support ImportQualifiedPost (#477)
+  - Technically breaking change: KnownExtension gained a new constructor ImportQualifiedPost
+* Fix pretty printing of promoted list/tuple with space padding (#423)
+* Fix lexing of operator symbols like @: when TypeApplications is enabled (#430)
+* Read files strictly before closing to prevent resource leaks (#460)
+* Add Safe Haskell annotations to many modules (#465)
+* Remove noncanonical return and mappend definitions (#481)
+* Solve some compiler warnings (#464)
+* Performance optimization: use strict accumulators in lexString and parseInteger (#479)
+
+
+1.23.0 --> 1.23.1
+=================
+* show instance for SrcLoc and SrcSpan renders "(-1)" instead of "-1"
+* Allow empty closed type families (#452)
+
+
+1.22.0 --> 1.23.0
+=================
+* Add support for BlockArguments (#444)
+  - Technically breaking change: KnownExtension gained a new constructor BlockArguments
+* Add support for Arrow Brackets (#445)
+  - Tecnically breaking change: Exp gained new constructor ArrOp
+
+1.21.1 --> 1.22.0
+=================
+* Support QuantifiedConstraints (#427)
+  - Breaking change: constructors for PAsst changed
+  - Technically breaking change: KnownExtention gained a new constructor QuantifiedConstraints
+* Support Template Haskell typed splices and quotations (#432)
+  - Breaking change: new constructors on Token data type
+* Fix unicode identifier parsing (#442)
+
+1.21.0 --> 1.21.1
+=================
+* GHC 8.8.1 compatibility (MonadFail)
+
+1.20.3 --> 1.21.0
+=================
+* DerivingVia (#420)
+* TypeInType  (#414)
+* Parse TH-quoted list constructor (#415)
+
+1.20.2 --> 1.20.3
+=================
+* GHC 8.6.1 compatability (MonadFail)
+* Remove cpphs dependency
+
+1.20.1 --> 1.20.2
+=================
+* Add fixity of (&)
+* GHC 8.4.1 compatability
+
+1.20.0 --> 1.20.1
+===================
+* Fix two test failures
+
+1.19.1 --> 1.20.0
+===================
+
+* GHC 8.2 updates
+* Add some missing Generics instances (#380)
+* Support Template Haskell pattern splices (#352)
+* Fix overloaded labels starting with _ (#362)
+* Relax MultiParamTypeClass check (#333)
+* DeriveAnyClass (#337)
+* Deriving Strategies (#387)
+* OVERLAPS/OVERLAPPING/OVERLAPPABLE pragmas
+* Unboxed Sums
+* Expression holes in infix expressions
+* Support multiple pattern synonyms per pattern synonym signature
+* COMPLETE pragmas
+* Fix #309, remove unnecessary semi-colon from pretty printer
+* Refine ExplicitNamespaces to properly export type operators
+
+1.19.0 --> 1.19.1
+===================
+
+* Revert making fields of `SrcLoc` strict. (#340)
+
+
+1.18.2 --> 1.19.0
+===================
+
+* Add JavaScriptFFI to known extensions (#335)
+* Remove space when pretty printing `SrcLoc`. (#307)
+* Don't reverse arguments in a context. (#328)
+* Add support for EmptyCase extension (#255)
+
+
+1.18.1 --> 1.18.2
+===================
+
+* Fix overzealous lexing of type applications
+
+1.18.0 --> 1.18.1
+===================
+
+* Fix overzealous lexing of overloaded labels.
+
+
+1.17.1 --> 1.18.0
+===================
+
+* Remove simplified AST
+* GHC 8.0 update: Overloaded labels, type applications, pattern synonym
+extensions, StrictData, injective type families
+
+AST changes:
+
+* Add TyQuasiQuote (#279).
+
+Other changes:
+
+* Only treat 'role' as a keyword in certain contexts (#286).
+* Prettyprint '!' in patterns correctly when BangPatterns are enabled (#287).
+* Parse magic hash with multiple trailing hashes (#300).
+* Apply fixities inside pattern synonym builders
+* Fix lexing of idents with multiple trailing #
+
+** 1.17.x
+
+1.17.0 --> 1.17.1
+=================
+
+Bug Fix:
+
+* Fix bug in parsing view patterns (#284)
+
+1.16.0.1 --> 1.17.0
+===================
+
+AST changes:
+
+* Replaced VarA with AppA in Asst (#168).
+* Promoted list/tuple members changed from Promoted to Type (#162).
+* Update PatBind, Match, and Alt from containing Binds to Maybe Binds to
+  distinguish between empty where clauses and where clauses with no
+  binds (#244).
+* Add RoleAnnotDecl and Role to support Role annotations (#215).
+* Move NameSpace field from EVar/IVar to EAbs/IAbs.
+
+Other changes:
+
+* Add standalone parsers for ImportDecl.
+* Fix pretty-printer bugs for HaRP (#160).
+* Insert parentheses when pretty-printing non-atomic bang types (#169).
+* Un-reverse confusion of left and right arrow (#175).
+* Prettyprint option pragmas like 1.15 (#172).
+* Conditionally insert lines when pretty-printing declarations (#171).
+* Distinguish deriving (Show) from deriving Show (#189).
+* Allow parsing of unicode subscript and superscript functions (#173).
+* Pretty print unboxed tuples with spaces (#193).
+* Improve performance when parsing long extension lists (#200).
+* Properly pretty print constructor and class operators (#204).
+* Read Haskell source files as UTF-8 (#223).
+* Fix ExplicitNamespaces parsing (#216).
+* PolyKinds implies KindSignatures (#220).
+* Preserve location information for infix binds (#205).
+* Preserve positional information in checkPattern (#231).
+* Maintain correct line numbers when parsing multiline GHC_OPTIONS (#218).
+* Correctly parse "*" with TypeOperators (#81).
+* Export the "pretty" method (#222).
+* Add javascript calling convention for foreign imports (#236).
+* Add non-greedy parsers for module heads (#191).
+* Add a flag to disable arity checking when parsing (#260).
+* Parse "-" in type signatures (#206).
+* Add support for type wildcards and expression holes (#252).
+* Add support for Pattern Synonyms (#197).
+* Bump the happy lower bound (#250).
+* Make test suite pass on GHC 7.12 (#224).
+* Support linking Haddock comments to AST nodes (#213).
+* Parse multiline LANGUAGE pragmas (#217).
+* Parse trailing where (#25).
+* Parse modules starting with pragmas and indented
+  "module" keyword (#122).
+* Use pretty-show to get human readable test outputs.
+* Respect fixity declarations inside where/let/class in
+  `applyFixities` (#212).
+* Correctly parse the combination of view patterns and bang patterns. (#276)
+
 ** 1.16.x
 
 1.16.0 --> 1.16.0.1
@@ -103,16 +286,16 @@
 
 * Modernize the Extension datatype in L.H.E.Extension, following the lead
   of Cabal, to allow negative and positive extension modifiers (turning
-  features on and off). You need to worry about backwards-incompatible 
+  features on and off). You need to worry about backwards-incompatible
   changes if any of the following pertains to you:
   1) If you use the Extension datatype programmatically - it has changed
      significantly (see documentation).
   2) The ParseMode record now has one more field
      (baseLanguage :: Language), which might give you a type error.
   3) The behavior of the (extensions :: [Extension]) field has changed,
-     which could bite you if you pass custom extensions in the ParseMode. 
-     Previously, the ParseMode defaulted to the list of extensions accepted 
-     by Haskell2010, and if you set the list explicitly you would override 
+     which could bite you if you pass custom extensions in the ParseMode.
+     Previously, the ParseMode defaulted to the list of extensions accepted
+     by Haskell2010, and if you set the list explicitly you would override
      this. Now, the defaults are { baseLanguage = Haskell2010, extensions = [] },
      and explicitly setting a list of extensions will be interpreted on top of
      Haskell2010. See further the documentation for L.H.E.Extension.
@@ -157,7 +340,7 @@
 
 * Expose Language.Haskell.Exts.Lexer, which implements
   a standalone token stream lexer. The module is
-  re-exported both by Language.Haskell.Exts and by 
+  re-exported both by Language.Haskell.Exts and by
   Language.Haskell.Exts.Annotated.
 
 
@@ -165,12 +348,12 @@
 ===============
 
 * Fix bug where operators starting with # written in
-  parentheses would not be parsed when UnboxedTuples is 
+  parentheses would not be parsed when UnboxedTuples is
   turned on. Now works.
 
-* Allow 'family' and 'forall' as (non-type) varid's. This 
-  adds one more shift/reduce conflict to the parser, and 
-  its resolution means that '{-# RULES "name" forall = ... #-}' 
+* Allow 'family' and 'forall' as (non-type) varid's. This
+  adds one more shift/reduce conflict to the parser, and
+  its resolution means that '{-# RULES "name" forall = ... #-}'
   is not allowed.
 
 * Complete the set of FFI calling conventions from the Haskell
@@ -297,7 +480,7 @@
 ===============
 
 * Enable the unicode version of DoubleColon (x2237). Thanks
-  to Andrés Sicard-Ramírez for the patch!
+  to Andr�s Sicard-Ram�rez for the patch!
 
 1.9.6 --> 1.10.0
 ===============
@@ -331,12 +514,12 @@
 1.9.3 --> 1.9.4
 ===============
 
-* Pretty-printer now inserts parentheses in clever places when 
+* Pretty-printer now inserts parentheses in clever places when
   printing kinds.
 
 * Pretty-printing expressions is now far more accurate in inserting
   (and not inserting) parentheses when needed.
-  
+
 * Pretty-printing negative expressions no longer inserts a superfluous
   space between the - and the expression.
 
@@ -402,11 +585,11 @@
 
 * Export knownExtensions from .Extension.
 
-* Remove support for CFILES and INCLUDE pragmas. The support wasn't 
-  correct anyway, as it assumed the pragmas appeared at the top of 
-  files. As CFILES/INCLUDE pragmas can (and do) appear anywhere, 
-  there's no hope to support them in the AST. Better to remove the 
-  support altogether. Files with CFILES/INCLUDE pragmas can still 
+* Remove support for CFILES and INCLUDE pragmas. The support wasn't
+  correct anyway, as it assumed the pragmas appeared at the top of
+  files. As CFILES/INCLUDE pragmas can (and do) appear anywhere,
+  there's no hope to support them in the AST. Better to remove the
+  support altogether. Files with CFILES/INCLUDE pragmas can still
   be parsed of course, but those pragmas will be handled as comments.
 
 * Parsing with ignoreLinePragmas = False now correctly updates the
@@ -416,7 +599,7 @@
   declarations. The InsInline constructor is removed, and is now
   represented by InsDecl (InlineSig ...).
 
-* Fix a bug with line numbering and quasi quotes, and a similar one 
+* Fix a bug with line numbering and quasi quotes, and a similar one
   with line numbering and CDATA.
 
 * Fix a few minor bugs in the exactPrinter.
@@ -440,21 +623,21 @@
 ===============
 
 * Operators defined on the form
-  
+
      (a `op` b) c = ...
-  
-  could not be handled by the (annotated) AST, nor the parser. I had to 
+
+  could not be handled by the (annotated) AST, nor the parser. I had to
   change the definition of the AST node for InfixMatch to allow a list
   of right-hand subpatterns, i.e.
-  
+
      InfixMatch l (Pat l) (Name l) (Pat l) ...
-  
+
   has become
-  
+
      InfixMatch l (Pat l) (Name l) [Pat l] ...
 
   I also had an epiphany and fixed the issue that would arise with
-  exact printing of prefix definitions including parentheses, so 
+  exact printing of prefix definitions including parentheses, so
   that now works too!
 
 ** 1.6.x
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -16,39 +16,19 @@
 -----------------
 
 The modules that comprise haskell-src-exts all reside in the hierarchic
-namespace Language.Haskell.Exts, or its more feature-rich sibling
-Language.Haskell.Exts.Annotated. Notable exposed modules include:
+namespace Language.Haskell.Exts. Notable exposed modules include:
 
-* `Language.Haskell.Exts[.Annotated]` - Imports and re-exports all the below,
+* `Language.Haskell.Exts` - Imports and re-exports all the below,
   and also defines some functions that combine functionality from several
   modules.
-* `Language.Haskell.Exts[.Annotated].Syntax` - The abstract syntax tree
+* `Language.Haskell.Exts.Syntax` - The abstract syntax tree
   that the other modules work on.
-* `Language.Haskell.Exts[.Annotated].Build` - Combinators for building
+* `Language.Haskell.Exts.Build` - Combinators for building
   abstract syntax.
-* `Language.Haskell.Exts[.Annotated].Parser` - Functions for parsing Haskell
+* `Language.Haskell.Exts.Parser` - Functions for parsing Haskell
   source code into an abstract syntax representation.
 
-Non-comprehensive list of supported extensions
-----------------------------------------------
 
-* Multi-parameter type classes (MPTCs)
-* Functional dependencies
-* Associated types, type families
-* Liberal class and instance heads
-* Implicit parameters (ghc and hugs)
-* Explicit kind signatures
-* Pattern guards
-* Generalized algebraic data types (GADTs)
-* Template Haskell (TH)
-* Universal and existential quantification (forall)
-* Empty data type declarations
-* Unboxed tuples `(# #)`
-* Standalone deriving
-* Regular patterns
-* Haskell XML, HSX style
-* Pragmas
-
 License
 -------
 
@@ -56,3 +36,13 @@
 derives from several sources, all of which are distributable under
 BSD-style or compatible licenses. See the file LICENSE for the complete
 license text.
+
+
+Maintenance
+--------------
+
+Dan Burton is currently keeping haskell-src-exts on life support.
+If you are interested in more actively making improvements to this package,
+please make your interests known.
+
+You might want to try [ghc-lib-parser](http://hackage.haskell.org/package/ghc-lib-parser) instead.
diff --git a/RELEASENOTES-1.17.0 b/RELEASENOTES-1.17.0
new file mode 100644
--- /dev/null
+++ b/RELEASENOTES-1.17.0
@@ -0,0 +1,35 @@
+I am pleased to announce the release of haskell-src-exts-1.17.0! 
+
+Hackage: https://hackage.haskell.org/package/haskell-src-exts-1.17.0 
+GitHub:  https://github.com/haskell-suite/haskell-src-exts 
+
+This release brings bugfixes, as well as the following language 
+features: 
+
+* Type wildcards and expression holes (#252).
+* Pattern Synonyms (#197).
+
+The full changelog is available at 
+
+https://github.com/haskell-suite/haskell-src-exts/blob/1.17.0/CHANGELOG
+
+This release is brought to you by:
+
+Matthew Pickering
+Michael Walker
+Simon Marlow
+Neil Mitchell
+JP Moresmau
+Артур Файзрахманов
+phischu
+Michael Sloan
+m00nlight
+Niklas Broberg
+Stijn van Drongelen
+Jakub Kozlowski
+Leonid Onokhov
+
+Matthew Pickering is a force of nature who deserves a special mention
+for all his contributions to this release.
+
+Peter
diff --git a/dist/build/Language/Haskell/Exts/InternalParser.hs b/dist/build/Language/Haskell/Exts/InternalParser.hs
deleted file mode 100644
--- a/dist/build/Language/Haskell/Exts/InternalParser.hs
+++ /dev/null
@@ -1,9213 +0,0 @@
-{-# OPTIONS_GHC -w #-}
-{-# OPTIONS -fglasgow-exts -cpp #-}
-{-# OPTIONS_HADDOCK hide #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.Parser
--- Copyright   :  (c) Niklas Broberg 2004-2009,
---                Original (c) Simon Marlow, Sven Panne 1997-2000
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
---
------------------------------------------------------------------------------
-module Language.Haskell.Exts.InternalParser (
-              -- * General parsing
-              ParseMode(..), defaultParseMode, ParseResult(..), fromParseResult,
-              -- * Parsing of specific AST elements
-              -- ** Modules
-              parseModule, parseModuleWithMode, parseModuleWithComments,
-              -- ** Expressions
-              parseExp, parseExpWithMode, parseExpWithComments,
-              -- ** Statements
-              parseStmt, parseStmtWithMode, parseStmtWithComments,
-              -- ** Patterns
-              parsePat, parsePatWithMode, parsePatWithComments,
-              -- ** Declarations
-              parseDecl, parseDeclWithMode, parseDeclWithComments,
-              -- ** Types
-              parseType, parseTypeWithMode, parseTypeWithComments,
-              -- ** Multiple modules in one file
-              parseModules, parseModulesWithMode, parseModulesWithComments,
-              -- ** Option pragmas
-              getTopPragmas
-              ) where
-import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Exp(..), Asst(..), XAttr(..), FieldUpdate(..) )
-import Language.Haskell.Exts.Annotated.Syntax ( Type, Exp, Asst )
-import Language.Haskell.Exts.ParseMonad
-import Language.Haskell.Exts.InternalLexer
-import Language.Haskell.Exts.ParseUtils
-import Language.Haskell.Exts.Annotated.Fixity
-import Language.Haskell.Exts.SrcLoc
-import Language.Haskell.Exts.Comments ( Comment )
-import Language.Haskell.Exts.Extension
-
-import Control.Monad ( liftM, (<=<) )
-import qualified Data.Array as Happy_Data_Array
-import qualified GHC.Exts as Happy_GHC_Exts
-import Control.Applicative(Applicative(..))
-
--- parser produced by Happy Version 1.19.4
-
-newtype HappyAbsSyn  = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn11 :: ([Module L]) -> (HappyAbsSyn )
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn ) -> ([Module L])
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: ([[ModulePragma L] -> [S] -> L -> Module L]) -> (HappyAbsSyn )
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn ) -> ([[ModulePragma L] -> [S] -> L -> Module L])
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (Module L) -> (HappyAbsSyn )
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn ) -> (Module L)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: (PExp L) -> (HappyAbsSyn )
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn ) -> (PExp L)
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: (([ModulePragma L],[S],L)) -> (HappyAbsSyn )
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn ) -> (([ModulePragma L],[S],L))
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: (([ModulePragma L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn ) -> (([ModulePragma L],[S],Maybe L))
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: (ModulePragma L) -> (HappyAbsSyn )
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn ) -> (ModulePragma L)
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: (([Name L],[S])) -> (HappyAbsSyn )
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn ) -> (([Name L],[S]))
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: ([ModulePragma L] -> [S] -> L -> Module L) -> (HappyAbsSyn )
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn ) -> ([ModulePragma L] -> [S] -> L -> Module L)
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (Maybe (ModuleHead L)) -> (HappyAbsSyn )
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn ) -> (Maybe (ModuleHead L))
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Maybe (WarningText L)) -> (HappyAbsSyn )
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn ) -> (Maybe (WarningText L))
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (([ImportDecl L],[Decl L],[S],L)) -> (HappyAbsSyn )
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S],L))
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: (([ImportDecl L],[Decl L],[S])) -> (HappyAbsSyn )
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S]))
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: ([S]) -> (HappyAbsSyn )
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn ) -> ([S])
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([S]) -> (HappyAbsSyn )
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn ) -> ([S])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (Maybe (ExportSpecList L)) -> (HappyAbsSyn )
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn ) -> (Maybe (ExportSpecList L))
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (ExportSpecList L) -> (HappyAbsSyn )
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn ) -> (ExportSpecList L)
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([S]) -> (HappyAbsSyn )
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn ) -> ([S])
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: (([ExportSpec L],[S])) -> (HappyAbsSyn )
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn ) -> (([ExportSpec L],[S]))
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (ExportSpec L) -> (HappyAbsSyn )
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn ) -> (ExportSpec L)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (([ImportDecl L],[S])) -> (HappyAbsSyn )
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn ) -> (([ImportDecl L],[S]))
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (ImportDecl L) -> (HappyAbsSyn )
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn ) -> (ImportDecl L)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: ((Bool,[S])) -> (HappyAbsSyn )
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn ) -> ((Bool,[S]))
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ((Bool,[S])) -> (HappyAbsSyn )
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn ) -> ((Bool,[S]))
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ((Bool,[S])) -> (HappyAbsSyn )
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn ) -> ((Bool,[S]))
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ((Maybe String,[S])) -> (HappyAbsSyn )
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn ) -> ((Maybe String,[S]))
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ((Maybe (ModuleName L),[S],Maybe L)) -> (HappyAbsSyn )
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn ) -> ((Maybe (ModuleName L),[S],Maybe L))
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: (Maybe (ImportSpecList L)) -> (HappyAbsSyn )
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn ) -> (Maybe (ImportSpecList L))
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: (ImportSpecList L) -> (HappyAbsSyn )
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn ) -> (ImportSpecList L)
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ((Bool, Maybe L,[S])) -> (HappyAbsSyn )
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn ) -> ((Bool, Maybe L,[S]))
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: (([ImportSpec L],[S])) -> (HappyAbsSyn )
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn ) -> (([ImportSpec L],[S]))
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: (ImportSpec L) -> (HappyAbsSyn )
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn ) -> (ImportSpec L)
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (([CName L],[S])) -> (HappyAbsSyn )
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn ) -> (([CName L],[S]))
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (CName L) -> (HappyAbsSyn )
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn ) -> (CName L)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (Decl L) -> (HappyAbsSyn )
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn ) -> (Decl L)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: ((Maybe Int, [S])) -> (HappyAbsSyn )
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn ) -> ((Maybe Int, [S]))
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (Assoc L) -> (HappyAbsSyn )
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn ) -> (Assoc L)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (([Op L],[S],L)) -> (HappyAbsSyn )
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn ) -> (([Op L],[S],L))
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (([Decl L],[S])) -> (HappyAbsSyn )
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn ) -> (([Decl L],[S]))
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (([Decl L],[S])) -> (HappyAbsSyn )
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn ) -> (([Decl L],[S]))
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (Decl L) -> (HappyAbsSyn )
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn ) -> (Decl L)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: (Maybe (Overlap L)) -> (HappyAbsSyn )
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn ) -> (Maybe (Overlap L))
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: (Maybe ([TypeEqn L], S)) -> (HappyAbsSyn )
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn ) -> (Maybe ([TypeEqn L], S))
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: ([TypeEqn L]) -> (HappyAbsSyn )
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn ) -> ([TypeEqn L])
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([TypeEqn L]) -> (HappyAbsSyn )
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn ) -> ([TypeEqn L])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (TypeEqn L) -> (HappyAbsSyn )
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn ) -> (TypeEqn L)
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (DataOrNew L) -> (HappyAbsSyn )
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn ) -> (DataOrNew L)
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: (([Type L],[S])) -> (HappyAbsSyn )
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn ) -> (([Type L],[S]))
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: (([Decl L],[S])) -> (HappyAbsSyn )
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn ) -> (([Decl L],[S]))
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: (([Decl L],[S])) -> (HappyAbsSyn )
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn ) -> (([Decl L],[S]))
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: (Decl L) -> (HappyAbsSyn )
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn ) -> (Decl L)
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: (Binds L) -> (HappyAbsSyn )
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn ) -> (Binds L)
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: (Decl L) -> (HappyAbsSyn )
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn ) -> (Decl L)
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: (Decl L) -> (HappyAbsSyn )
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn ) -> (Decl L)
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: (Decl L) -> (HappyAbsSyn )
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn ) -> (Decl L)
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: (([Type L],[S])) -> (HappyAbsSyn )
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn ) -> (([Type L],[S]))
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: (Type L) -> (HappyAbsSyn )
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn ) -> (Type L)
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: (Maybe (BooleanFormula L)) -> (HappyAbsSyn )
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn ) -> (Maybe (BooleanFormula L))
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (BooleanFormula L) -> (HappyAbsSyn )
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn ) -> (BooleanFormula L)
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: (BooleanFormula L) -> (HappyAbsSyn )
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn ) -> (BooleanFormula L)
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: (BooleanFormula L) -> (HappyAbsSyn )
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn ) -> (BooleanFormula L)
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: (Binds L) -> (HappyAbsSyn )
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn ) -> (Binds L)
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (([Name L],[S],L)) -> (HappyAbsSyn )
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn ) -> (([Name L],[S],L))
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (CallConv L) -> (HappyAbsSyn )
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn ) -> (CallConv L)
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (Maybe (Safety L)) -> (HappyAbsSyn )
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn ) -> (Maybe (Safety L))
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: ((Maybe String, Name L, Type L, [S])) -> (HappyAbsSyn )
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn ) -> ((Maybe String, Name L, Type L, [S]))
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: ([Rule L]) -> (HappyAbsSyn )
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn ) -> ([Rule L])
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: (Rule L) -> (HappyAbsSyn )
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn ) -> (Rule L)
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyIn79 :: (Maybe (Activation L)) -> (HappyAbsSyn )
-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn ) -> (Maybe (Activation L))
-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-happyIn80 :: ((Maybe [RuleVar L],[S])) -> (HappyAbsSyn )
-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn ) -> ((Maybe [RuleVar L],[S]))
-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-happyIn81 :: ([RuleVar L]) -> (HappyAbsSyn )
-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn ) -> ([RuleVar L])
-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-happyIn82 :: (RuleVar L) -> (HappyAbsSyn )
-happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn82 #-}
-happyOut82 :: (HappyAbsSyn ) -> (RuleVar L)
-happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut82 #-}
-happyIn83 :: (([([Name L],String)],[S])) -> (HappyAbsSyn )
-happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn83 #-}
-happyOut83 :: (HappyAbsSyn ) -> (([([Name L],String)],[S]))
-happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut83 #-}
-happyIn84 :: ((([Name L], String),[S])) -> (HappyAbsSyn )
-happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn84 #-}
-happyOut84 :: (HappyAbsSyn ) -> ((([Name L], String),[S]))
-happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut84 #-}
-happyIn85 :: (([Name L],[S])) -> (HappyAbsSyn )
-happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn85 #-}
-happyOut85 :: (HappyAbsSyn ) -> (([Name L],[S]))
-happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut85 #-}
-happyIn86 :: (Name L) -> (HappyAbsSyn )
-happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn86 #-}
-happyOut86 :: (HappyAbsSyn ) -> (Name L)
-happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut86 #-}
-happyIn87 :: (Annotation L) -> (HappyAbsSyn )
-happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn87 #-}
-happyOut87 :: (HappyAbsSyn ) -> (Annotation L)
-happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut87 #-}
-happyIn88 :: (Type L) -> (HappyAbsSyn )
-happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn88 #-}
-happyOut88 :: (HappyAbsSyn ) -> (Type L)
-happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut88 #-}
-happyIn89 :: (PType L) -> (HappyAbsSyn )
-happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn89 #-}
-happyOut89 :: (HappyAbsSyn ) -> (PType L)
-happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut89 #-}
-happyIn90 :: (Type L) -> (HappyAbsSyn )
-happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn90 #-}
-happyOut90 :: (HappyAbsSyn ) -> (Type L)
-happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut90 #-}
-happyIn91 :: (PType L) -> (HappyAbsSyn )
-happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn91 #-}
-happyOut91 :: (HappyAbsSyn ) -> (PType L)
-happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut91 #-}
-happyIn92 :: (Type L) -> (HappyAbsSyn )
-happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn92 #-}
-happyOut92 :: (HappyAbsSyn ) -> (Type L)
-happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut92 #-}
-happyIn93 :: (PType L) -> (HappyAbsSyn )
-happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn93 #-}
-happyOut93 :: (HappyAbsSyn ) -> (PType L)
-happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut93 #-}
-happyIn94 :: (PType L) -> (HappyAbsSyn )
-happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn94 #-}
-happyOut94 :: (HappyAbsSyn ) -> (PType L)
-happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut94 #-}
-happyIn95 :: (Promoted L) -> (HappyAbsSyn )
-happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn95 #-}
-happyOut95 :: (HappyAbsSyn ) -> (Promoted L)
-happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut95 #-}
-happyIn96 :: ((Bool, [S])) -> (HappyAbsSyn )
-happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn96 #-}
-happyOut96 :: (HappyAbsSyn ) -> ((Bool, [S]))
-happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut96 #-}
-happyIn97 :: (Promoted L) -> (HappyAbsSyn )
-happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn97 #-}
-happyOut97 :: (HappyAbsSyn ) -> (Promoted L)
-happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut97 #-}
-happyIn98 :: (([Promoted L],[S])) -> (HappyAbsSyn )
-happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn98 #-}
-happyOut98 :: (HappyAbsSyn ) -> (([Promoted L],[S]))
-happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut98 #-}
-happyIn99 :: (([Promoted L],[S])) -> (HappyAbsSyn )
-happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn99 #-}
-happyOut99 :: (HappyAbsSyn ) -> (([Promoted L],[S]))
-happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut99 #-}
-happyIn100 :: (QName L) -> (HappyAbsSyn )
-happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn100 #-}
-happyOut100 :: (HappyAbsSyn ) -> (QName L)
-happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut100 #-}
-happyIn101 :: (QName L) -> (HappyAbsSyn )
-happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn101 #-}
-happyOut101 :: (HappyAbsSyn ) -> (QName L)
-happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut101 #-}
-happyIn102 :: (QName L) -> (HappyAbsSyn )
-happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn102 #-}
-happyOut102 :: (HappyAbsSyn ) -> (QName L)
-happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut102 #-}
-happyIn103 :: (Type L) -> (HappyAbsSyn )
-happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn103 #-}
-happyOut103 :: (HappyAbsSyn ) -> (Type L)
-happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut103 #-}
-happyIn104 :: (PType L) -> (HappyAbsSyn )
-happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn104 #-}
-happyOut104 :: (HappyAbsSyn ) -> (PType L)
-happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut104 #-}
-happyIn105 :: (PContext L) -> (HappyAbsSyn )
-happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn105 #-}
-happyOut105 :: (HappyAbsSyn ) -> (PContext L)
-happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut105 #-}
-happyIn106 :: (([PType L],[S])) -> (HappyAbsSyn )
-happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn106 #-}
-happyOut106 :: (HappyAbsSyn ) -> (([PType L],[S]))
-happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut106 #-}
-happyIn107 :: (([PType L],[S])) -> (HappyAbsSyn )
-happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn107 #-}
-happyOut107 :: (HappyAbsSyn ) -> (([PType L],[S]))
-happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut107 #-}
-happyIn108 :: (([TyVarBind L],Maybe L)) -> (HappyAbsSyn )
-happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn108 #-}
-happyOut108 :: (HappyAbsSyn ) -> (([TyVarBind L],Maybe L))
-happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut108 #-}
-happyIn109 :: (TyVarBind L) -> (HappyAbsSyn )
-happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn109 #-}
-happyOut109 :: (HappyAbsSyn ) -> (TyVarBind L)
-happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut109 #-}
-happyIn110 :: (([Name L],Maybe L)) -> (HappyAbsSyn )
-happyIn110 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn110 #-}
-happyOut110 :: (HappyAbsSyn ) -> (([Name L],Maybe L))
-happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut110 #-}
-happyIn111 :: (([Name L],L)) -> (HappyAbsSyn )
-happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn111 #-}
-happyOut111 :: (HappyAbsSyn ) -> (([Name L],L))
-happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut111 #-}
-happyIn112 :: (([FunDep L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn112 #-}
-happyOut112 :: (HappyAbsSyn ) -> (([FunDep L],[S],Maybe L))
-happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut112 #-}
-happyIn113 :: (([FunDep L],[S],L)) -> (HappyAbsSyn )
-happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn113 #-}
-happyOut113 :: (HappyAbsSyn ) -> (([FunDep L],[S],L))
-happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut113 #-}
-happyIn114 :: (FunDep L) -> (HappyAbsSyn )
-happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn114 #-}
-happyOut114 :: (HappyAbsSyn ) -> (FunDep L)
-happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut114 #-}
-happyIn115 :: (([GadtDecl L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn115 #-}
-happyOut115 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],Maybe L))
-happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut115 #-}
-happyIn116 :: (([GadtDecl L],[S])) -> (HappyAbsSyn )
-happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn116 #-}
-happyOut116 :: (HappyAbsSyn ) -> (([GadtDecl L],[S]))
-happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut116 #-}
-happyIn117 :: (([GadtDecl L],[S])) -> (HappyAbsSyn )
-happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn117 #-}
-happyOut117 :: (HappyAbsSyn ) -> (([GadtDecl L],[S]))
-happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut117 #-}
-happyIn118 :: ([GadtDecl L]) -> (HappyAbsSyn )
-happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn118 #-}
-happyOut118 :: (HappyAbsSyn ) -> ([GadtDecl L])
-happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut118 #-}
-happyIn119 :: (([QualConDecl L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn119 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn119 #-}
-happyOut119 :: (HappyAbsSyn ) -> (([QualConDecl L],[S],Maybe L))
-happyOut119 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut119 #-}
-happyIn120 :: (([QualConDecl L],[S],L)) -> (HappyAbsSyn )
-happyIn120 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn120 #-}
-happyOut120 :: (HappyAbsSyn ) -> (([QualConDecl L],[S],L))
-happyOut120 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut120 #-}
-happyIn121 :: (QualConDecl L) -> (HappyAbsSyn )
-happyIn121 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn121 #-}
-happyOut121 :: (HappyAbsSyn ) -> (QualConDecl L)
-happyOut121 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut121 #-}
-happyIn122 :: ((Maybe [TyVarBind L], [S], Maybe L)) -> (HappyAbsSyn )
-happyIn122 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn122 #-}
-happyOut122 :: (HappyAbsSyn ) -> ((Maybe [TyVarBind L], [S], Maybe L))
-happyOut122 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut122 #-}
-happyIn123 :: (ConDecl L) -> (HappyAbsSyn )
-happyIn123 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn123 #-}
-happyOut123 :: (HappyAbsSyn ) -> (ConDecl L)
-happyOut123 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut123 #-}
-happyIn124 :: ((Name L, [Type L], L)) -> (HappyAbsSyn )
-happyIn124 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn124 #-}
-happyOut124 :: (HappyAbsSyn ) -> ((Name L, [Type L], L))
-happyOut124 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut124 #-}
-happyIn125 :: (([FieldDecl L],[S])) -> (HappyAbsSyn )
-happyIn125 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn125 #-}
-happyOut125 :: (HappyAbsSyn ) -> (([FieldDecl L],[S]))
-happyOut125 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut125 #-}
-happyIn126 :: (FieldDecl L) -> (HappyAbsSyn )
-happyIn126 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn126 #-}
-happyOut126 :: (HappyAbsSyn ) -> (FieldDecl L)
-happyOut126 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut126 #-}
-happyIn127 :: (Maybe (Deriving L)) -> (HappyAbsSyn )
-happyIn127 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn127 #-}
-happyOut127 :: (HappyAbsSyn ) -> (Maybe (Deriving L))
-happyOut127 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut127 #-}
-happyIn128 :: (([InstRule L],[S])) -> (HappyAbsSyn )
-happyIn128 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn128 #-}
-happyOut128 :: (HappyAbsSyn ) -> (([InstRule L],[S]))
-happyOut128 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut128 #-}
-happyIn129 :: (InstHead L) -> (HappyAbsSyn )
-happyIn129 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn129 #-}
-happyOut129 :: (HappyAbsSyn ) -> (InstHead L)
-happyOut129 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut129 #-}
-happyIn130 :: (Kind L) -> (HappyAbsSyn )
-happyIn130 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn130 #-}
-happyOut130 :: (HappyAbsSyn ) -> (Kind L)
-happyOut130 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut130 #-}
-happyIn131 :: (Kind L) -> (HappyAbsSyn )
-happyIn131 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn131 #-}
-happyOut131 :: (HappyAbsSyn ) -> (Kind L)
-happyOut131 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut131 #-}
-happyIn132 :: (Kind L) -> (HappyAbsSyn )
-happyIn132 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn132 #-}
-happyOut132 :: (HappyAbsSyn ) -> (Kind L)
-happyOut132 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut132 #-}
-happyIn133 :: (Kind L) -> (HappyAbsSyn )
-happyIn133 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn133 #-}
-happyOut133 :: (HappyAbsSyn ) -> (Kind L)
-happyOut133 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut133 #-}
-happyIn134 :: (([Kind L],[S])) -> (HappyAbsSyn )
-happyIn134 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn134 #-}
-happyOut134 :: (HappyAbsSyn ) -> (([Kind L],[S]))
-happyOut134 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut134 #-}
-happyIn135 :: (([Kind L],[S])) -> (HappyAbsSyn )
-happyIn135 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn135 #-}
-happyOut135 :: (HappyAbsSyn ) -> (([Kind L],[S]))
-happyOut135 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut135 #-}
-happyIn136 :: ((Maybe (Kind L), [S])) -> (HappyAbsSyn )
-happyIn136 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn136 #-}
-happyOut136 :: (HappyAbsSyn ) -> ((Maybe (Kind L), [S]))
-happyOut136 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut136 #-}
-happyIn137 :: ((Maybe [ClassDecl L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn137 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn137 #-}
-happyOut137 :: (HappyAbsSyn ) -> ((Maybe [ClassDecl L],[S],Maybe L))
-happyOut137 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut137 #-}
-happyIn138 :: (([ClassDecl L],[S])) -> (HappyAbsSyn )
-happyIn138 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn138 #-}
-happyOut138 :: (HappyAbsSyn ) -> (([ClassDecl L],[S]))
-happyOut138 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut138 #-}
-happyIn139 :: (([ClassDecl L],[S])) -> (HappyAbsSyn )
-happyIn139 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn139 #-}
-happyOut139 :: (HappyAbsSyn ) -> (([ClassDecl L],[S]))
-happyOut139 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut139 #-}
-happyIn140 :: (ClassDecl L) -> (HappyAbsSyn )
-happyIn140 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn140 #-}
-happyOut140 :: (HappyAbsSyn ) -> (ClassDecl L)
-happyOut140 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut140 #-}
-happyIn141 :: (ClassDecl L) -> (HappyAbsSyn )
-happyIn141 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn141 #-}
-happyOut141 :: (HappyAbsSyn ) -> (ClassDecl L)
-happyOut141 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut141 #-}
-happyIn142 :: ((Maybe [InstDecl L],[S],Maybe L)) -> (HappyAbsSyn )
-happyIn142 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn142 #-}
-happyOut142 :: (HappyAbsSyn ) -> ((Maybe [InstDecl L],[S],Maybe L))
-happyOut142 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut142 #-}
-happyIn143 :: (([InstDecl L],[S])) -> (HappyAbsSyn )
-happyIn143 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn143 #-}
-happyOut143 :: (HappyAbsSyn ) -> (([InstDecl L],[S]))
-happyOut143 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut143 #-}
-happyIn144 :: (([InstDecl L],[S])) -> (HappyAbsSyn )
-happyIn144 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn144 #-}
-happyOut144 :: (HappyAbsSyn ) -> (([InstDecl L],[S]))
-happyOut144 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut144 #-}
-happyIn145 :: (InstDecl L) -> (HappyAbsSyn )
-happyIn145 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn145 #-}
-happyOut145 :: (HappyAbsSyn ) -> (InstDecl L)
-happyOut145 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut145 #-}
-happyIn146 :: (InstDecl L) -> (HappyAbsSyn )
-happyIn146 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn146 #-}
-happyOut146 :: (HappyAbsSyn ) -> (InstDecl L)
-happyOut146 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut146 #-}
-happyIn147 :: (Decl L) -> (HappyAbsSyn )
-happyIn147 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn147 #-}
-happyOut147 :: (HappyAbsSyn ) -> (Decl L)
-happyOut147 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut147 #-}
-happyIn148 :: ((Maybe (Binds L),[S])) -> (HappyAbsSyn )
-happyIn148 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn148 #-}
-happyOut148 :: (HappyAbsSyn ) -> ((Maybe (Binds L),[S]))
-happyOut148 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut148 #-}
-happyIn149 :: ((Maybe (Type L, S))) -> (HappyAbsSyn )
-happyIn149 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn149 #-}
-happyOut149 :: (HappyAbsSyn ) -> ((Maybe (Type L, S)))
-happyOut149 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut149 #-}
-happyIn150 :: (Rhs L) -> (HappyAbsSyn )
-happyIn150 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn150 #-}
-happyOut150 :: (HappyAbsSyn ) -> (Rhs L)
-happyOut150 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut150 #-}
-happyIn151 :: (([GuardedRhs L],L)) -> (HappyAbsSyn )
-happyIn151 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn151 #-}
-happyOut151 :: (HappyAbsSyn ) -> (([GuardedRhs L],L))
-happyOut151 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut151 #-}
-happyIn152 :: (GuardedRhs L) -> (HappyAbsSyn )
-happyIn152 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn152 #-}
-happyOut152 :: (HappyAbsSyn ) -> (GuardedRhs L)
-happyOut152 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut152 #-}
-happyIn153 :: (Exp L) -> (HappyAbsSyn )
-happyIn153 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn153 #-}
-happyOut153 :: (HappyAbsSyn ) -> (Exp L)
-happyOut153 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut153 #-}
-happyIn154 :: (PExp L) -> (HappyAbsSyn )
-happyIn154 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn154 #-}
-happyOut154 :: (HappyAbsSyn ) -> (PExp L)
-happyOut154 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut154 #-}
-happyIn155 :: (PExp L) -> (HappyAbsSyn )
-happyIn155 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn155 #-}
-happyOut155 :: (HappyAbsSyn ) -> (PExp L)
-happyOut155 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut155 #-}
-happyIn156 :: (PExp L) -> (HappyAbsSyn )
-happyIn156 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn156 #-}
-happyOut156 :: (HappyAbsSyn ) -> (PExp L)
-happyOut156 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut156 #-}
-happyIn157 :: (PExp L) -> (HappyAbsSyn )
-happyIn157 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn157 #-}
-happyOut157 :: (HappyAbsSyn ) -> (PExp L)
-happyOut157 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut157 #-}
-happyIn158 :: (PExp L) -> (HappyAbsSyn )
-happyIn158 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn158 #-}
-happyOut158 :: (HappyAbsSyn ) -> (PExp L)
-happyOut158 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut158 #-}
-happyIn159 :: ([S]) -> (HappyAbsSyn )
-happyIn159 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn159 #-}
-happyOut159 :: (HappyAbsSyn ) -> ([S])
-happyOut159 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut159 #-}
-happyIn160 :: ([S]) -> (HappyAbsSyn )
-happyIn160 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn160 #-}
-happyOut160 :: (HappyAbsSyn ) -> ([S])
-happyOut160 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut160 #-}
-happyIn161 :: (PExp L) -> (HappyAbsSyn )
-happyIn161 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn161 #-}
-happyOut161 :: (HappyAbsSyn ) -> (PExp L)
-happyOut161 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut161 #-}
-happyIn162 :: (PExp L) -> (HappyAbsSyn )
-happyIn162 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn162 #-}
-happyOut162 :: (HappyAbsSyn ) -> (PExp L)
-happyOut162 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut162 #-}
-happyIn163 :: (PExp L) -> (HappyAbsSyn )
-happyIn163 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn163 #-}
-happyOut163 :: (HappyAbsSyn ) -> (PExp L)
-happyOut163 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut163 #-}
-happyIn164 :: ([Pat L]) -> (HappyAbsSyn )
-happyIn164 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn164 #-}
-happyOut164 :: (HappyAbsSyn ) -> ([Pat L])
-happyOut164 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut164 #-}
-happyIn165 :: (Pat L) -> (HappyAbsSyn )
-happyIn165 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn165 #-}
-happyOut165 :: (HappyAbsSyn ) -> (Pat L)
-happyOut165 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut165 #-}
-happyIn166 :: (PExp L) -> (HappyAbsSyn )
-happyIn166 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn166 #-}
-happyOut166 :: (HappyAbsSyn ) -> (PExp L)
-happyOut166 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut166 #-}
-happyIn167 :: (PExp L) -> (HappyAbsSyn )
-happyIn167 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn167 #-}
-happyOut167 :: (HappyAbsSyn ) -> (PExp L)
-happyOut167 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut167 #-}
-happyIn168 :: (PExp L) -> (HappyAbsSyn )
-happyIn168 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn168 #-}
-happyOut168 :: (HappyAbsSyn ) -> (PExp L)
-happyOut168 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut168 #-}
-happyIn169 :: ([S]) -> (HappyAbsSyn )
-happyIn169 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn169 #-}
-happyOut169 :: (HappyAbsSyn ) -> ([S])
-happyOut169 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut169 #-}
-happyIn170 :: (PExp L) -> (HappyAbsSyn )
-happyIn170 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn170 #-}
-happyOut170 :: (HappyAbsSyn ) -> (PExp L)
-happyOut170 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut170 #-}
-happyIn171 :: (([Maybe (PExp L)],[S])) -> (HappyAbsSyn )
-happyIn171 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn171 #-}
-happyOut171 :: (HappyAbsSyn ) -> (([Maybe (PExp L)],[S]))
-happyOut171 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut171 #-}
-happyIn172 :: (([Maybe (PExp L)],[S])) -> (HappyAbsSyn )
-happyIn172 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn172 #-}
-happyOut172 :: (HappyAbsSyn ) -> (([Maybe (PExp L)],[S]))
-happyOut172 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut172 #-}
-happyIn173 :: (([PExp L],[S])) -> (HappyAbsSyn )
-happyIn173 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn173 #-}
-happyOut173 :: (HappyAbsSyn ) -> (([PExp L],[S]))
-happyOut173 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut173 #-}
-happyIn174 :: (PExp L) -> (HappyAbsSyn )
-happyIn174 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn174 #-}
-happyOut174 :: (HappyAbsSyn ) -> (PExp L)
-happyOut174 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut174 #-}
-happyIn175 :: (PExp L) -> (HappyAbsSyn )
-happyIn175 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn175 #-}
-happyOut175 :: (HappyAbsSyn ) -> (PExp L)
-happyOut175 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut175 #-}
-happyIn176 :: ([PExp L]) -> (HappyAbsSyn )
-happyIn176 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn176 #-}
-happyOut176 :: (HappyAbsSyn ) -> ([PExp L])
-happyOut176 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut176 #-}
-happyIn177 :: (PExp L) -> (HappyAbsSyn )
-happyIn177 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn177 #-}
-happyOut177 :: (HappyAbsSyn ) -> (PExp L)
-happyOut177 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut177 #-}
-happyIn178 :: (XName L) -> (HappyAbsSyn )
-happyIn178 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn178 #-}
-happyOut178 :: (HappyAbsSyn ) -> (XName L)
-happyOut178 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut178 #-}
-happyIn179 :: (Loc String) -> (HappyAbsSyn )
-happyIn179 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn179 #-}
-happyOut179 :: (HappyAbsSyn ) -> (Loc String)
-happyOut179 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut179 #-}
-happyIn180 :: (Loc String) -> (HappyAbsSyn )
-happyIn180 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn180 #-}
-happyOut180 :: (HappyAbsSyn ) -> (Loc String)
-happyOut180 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut180 #-}
-happyIn181 :: ([ParseXAttr L]) -> (HappyAbsSyn )
-happyIn181 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn181 #-}
-happyOut181 :: (HappyAbsSyn ) -> ([ParseXAttr L])
-happyOut181 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut181 #-}
-happyIn182 :: (ParseXAttr L) -> (HappyAbsSyn )
-happyIn182 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn182 #-}
-happyOut182 :: (HappyAbsSyn ) -> (ParseXAttr L)
-happyOut182 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut182 #-}
-happyIn183 :: (Maybe (PExp L)) -> (HappyAbsSyn )
-happyIn183 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn183 #-}
-happyOut183 :: (HappyAbsSyn ) -> (Maybe (PExp L))
-happyOut183 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut183 #-}
-happyIn184 :: (L -> PExp L) -> (HappyAbsSyn )
-happyIn184 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn184 #-}
-happyOut184 :: (HappyAbsSyn ) -> (L -> PExp L)
-happyOut184 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut184 #-}
-happyIn185 :: (([PExp L],[S])) -> (HappyAbsSyn )
-happyIn185 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn185 #-}
-happyOut185 :: (HappyAbsSyn ) -> (([PExp L],[S]))
-happyOut185 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut185 #-}
-happyIn186 :: (([[QualStmt L]],[S])) -> (HappyAbsSyn )
-happyIn186 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn186 #-}
-happyOut186 :: (HappyAbsSyn ) -> (([[QualStmt L]],[S]))
-happyOut186 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut186 #-}
-happyIn187 :: (([QualStmt L],[S])) -> (HappyAbsSyn )
-happyIn187 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn187 #-}
-happyOut187 :: (HappyAbsSyn ) -> (([QualStmt L],[S]))
-happyOut187 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut187 #-}
-happyIn188 :: (QualStmt L) -> (HappyAbsSyn )
-happyIn188 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn188 #-}
-happyOut188 :: (HappyAbsSyn ) -> (QualStmt L)
-happyOut188 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut188 #-}
-happyIn189 :: (QualStmt L) -> (HappyAbsSyn )
-happyIn189 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn189 #-}
-happyOut189 :: (HappyAbsSyn ) -> (QualStmt L)
-happyOut189 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut189 #-}
-happyIn190 :: (([Stmt L],[S])) -> (HappyAbsSyn )
-happyIn190 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn190 #-}
-happyOut190 :: (HappyAbsSyn ) -> (([Stmt L],[S]))
-happyOut190 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut190 #-}
-happyIn191 :: (Stmt L) -> (HappyAbsSyn )
-happyIn191 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn191 #-}
-happyOut191 :: (HappyAbsSyn ) -> (Stmt L)
-happyOut191 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut191 #-}
-happyIn192 :: (L -> PExp L) -> (HappyAbsSyn )
-happyIn192 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn192 #-}
-happyOut192 :: (HappyAbsSyn ) -> (L -> PExp L)
-happyOut192 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut192 #-}
-happyIn193 :: (([Alt L],L,[S])) -> (HappyAbsSyn )
-happyIn193 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn193 #-}
-happyOut193 :: (HappyAbsSyn ) -> (([Alt L],L,[S]))
-happyOut193 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut193 #-}
-happyIn194 :: (([Alt L],[S])) -> (HappyAbsSyn )
-happyIn194 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn194 #-}
-happyOut194 :: (HappyAbsSyn ) -> (([Alt L],[S]))
-happyOut194 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut194 #-}
-happyIn195 :: (([Alt L],[S])) -> (HappyAbsSyn )
-happyIn195 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn195 #-}
-happyOut195 :: (HappyAbsSyn ) -> (([Alt L],[S]))
-happyOut195 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut195 #-}
-happyIn196 :: (Alt L) -> (HappyAbsSyn )
-happyIn196 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn196 #-}
-happyOut196 :: (HappyAbsSyn ) -> (Alt L)
-happyOut196 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut196 #-}
-happyIn197 :: (Rhs L) -> (HappyAbsSyn )
-happyIn197 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn197 #-}
-happyOut197 :: (HappyAbsSyn ) -> (Rhs L)
-happyOut197 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut197 #-}
-happyIn198 :: (([GuardedRhs L],L)) -> (HappyAbsSyn )
-happyIn198 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn198 #-}
-happyOut198 :: (HappyAbsSyn ) -> (([GuardedRhs L],L))
-happyOut198 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut198 #-}
-happyIn199 :: (GuardedRhs L) -> (HappyAbsSyn )
-happyIn199 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn199 #-}
-happyOut199 :: (HappyAbsSyn ) -> (GuardedRhs L)
-happyOut199 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut199 #-}
-happyIn200 :: (Pat L) -> (HappyAbsSyn )
-happyIn200 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn200 #-}
-happyOut200 :: (HappyAbsSyn ) -> (Pat L)
-happyOut200 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut200 #-}
-happyIn201 :: (([GuardedRhs L], L, [S])) -> (HappyAbsSyn )
-happyIn201 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn201 #-}
-happyOut201 :: (HappyAbsSyn ) -> (([GuardedRhs L], L, [S]))
-happyOut201 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut201 #-}
-happyIn202 :: (([GuardedRhs L], [S])) -> (HappyAbsSyn )
-happyIn202 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn202 #-}
-happyOut202 :: (HappyAbsSyn ) -> (([GuardedRhs L], [S]))
-happyOut202 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut202 #-}
-happyIn203 :: (([GuardedRhs L], [S])) -> (HappyAbsSyn )
-happyIn203 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn203 #-}
-happyOut203 :: (HappyAbsSyn ) -> (([GuardedRhs L], [S]))
-happyOut203 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut203 #-}
-happyIn204 :: (([Stmt L],L,[S])) -> (HappyAbsSyn )
-happyIn204 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn204 #-}
-happyOut204 :: (HappyAbsSyn ) -> (([Stmt L],L,[S]))
-happyOut204 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut204 #-}
-happyIn205 :: (([Stmt L],[S])) -> (HappyAbsSyn )
-happyIn205 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn205 #-}
-happyOut205 :: (HappyAbsSyn ) -> (([Stmt L],[S]))
-happyOut205 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut205 #-}
-happyIn206 :: (([Stmt L],[S])) -> (HappyAbsSyn )
-happyIn206 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn206 #-}
-happyOut206 :: (HappyAbsSyn ) -> (([Stmt L],[S]))
-happyOut206 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut206 #-}
-happyIn207 :: (Stmt L) -> (HappyAbsSyn )
-happyIn207 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn207 #-}
-happyOut207 :: (HappyAbsSyn ) -> (Stmt L)
-happyOut207 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut207 #-}
-happyIn208 :: (([PFieldUpdate L],[S])) -> (HappyAbsSyn )
-happyIn208 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn208 #-}
-happyOut208 :: (HappyAbsSyn ) -> (([PFieldUpdate L],[S]))
-happyOut208 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut208 #-}
-happyIn209 :: (PFieldUpdate L) -> (HappyAbsSyn )
-happyIn209 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn209 #-}
-happyOut209 :: (HappyAbsSyn ) -> (PFieldUpdate L)
-happyOut209 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut209 #-}
-happyIn210 :: (([IPBind L],[S])) -> (HappyAbsSyn )
-happyIn210 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn210 #-}
-happyOut210 :: (HappyAbsSyn ) -> (([IPBind L],[S]))
-happyOut210 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut210 #-}
-happyIn211 :: (([IPBind L],[S])) -> (HappyAbsSyn )
-happyIn211 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn211 #-}
-happyOut211 :: (HappyAbsSyn ) -> (([IPBind L],[S]))
-happyOut211 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut211 #-}
-happyIn212 :: (IPBind L) -> (HappyAbsSyn )
-happyIn212 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn212 #-}
-happyOut212 :: (HappyAbsSyn ) -> (IPBind L)
-happyOut212 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut212 #-}
-happyIn213 :: (PExp L) -> (HappyAbsSyn )
-happyIn213 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn213 #-}
-happyOut213 :: (HappyAbsSyn ) -> (PExp L)
-happyOut213 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut213 #-}
-happyIn214 :: (Name L) -> (HappyAbsSyn )
-happyIn214 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn214 #-}
-happyOut214 :: (HappyAbsSyn ) -> (Name L)
-happyOut214 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut214 #-}
-happyIn215 :: (Name L) -> (HappyAbsSyn )
-happyIn215 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn215 #-}
-happyOut215 :: (HappyAbsSyn ) -> (Name L)
-happyOut215 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut215 #-}
-happyIn216 :: (QName L) -> (HappyAbsSyn )
-happyIn216 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn216 #-}
-happyOut216 :: (HappyAbsSyn ) -> (QName L)
-happyOut216 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut216 #-}
-happyIn217 :: (IPName L) -> (HappyAbsSyn )
-happyIn217 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn217 #-}
-happyOut217 :: (HappyAbsSyn ) -> (IPName L)
-happyOut217 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut217 #-}
-happyIn218 :: (Name L) -> (HappyAbsSyn )
-happyIn218 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn218 #-}
-happyOut218 :: (HappyAbsSyn ) -> (Name L)
-happyOut218 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut218 #-}
-happyIn219 :: (QName L) -> (HappyAbsSyn )
-happyIn219 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn219 #-}
-happyOut219 :: (HappyAbsSyn ) -> (QName L)
-happyOut219 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut219 #-}
-happyIn220 :: (Name L) -> (HappyAbsSyn )
-happyIn220 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn220 #-}
-happyOut220 :: (HappyAbsSyn ) -> (Name L)
-happyOut220 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut220 #-}
-happyIn221 :: (QName L) -> (HappyAbsSyn )
-happyIn221 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn221 #-}
-happyOut221 :: (HappyAbsSyn ) -> (QName L)
-happyOut221 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut221 #-}
-happyIn222 :: (QName L) -> (HappyAbsSyn )
-happyIn222 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn222 #-}
-happyOut222 :: (HappyAbsSyn ) -> (QName L)
-happyOut222 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut222 #-}
-happyIn223 :: (Name L) -> (HappyAbsSyn )
-happyIn223 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn223 #-}
-happyOut223 :: (HappyAbsSyn ) -> (Name L)
-happyOut223 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut223 #-}
-happyIn224 :: (QName L) -> (HappyAbsSyn )
-happyIn224 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn224 #-}
-happyOut224 :: (HappyAbsSyn ) -> (QName L)
-happyOut224 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut224 #-}
-happyIn225 :: (Op L) -> (HappyAbsSyn )
-happyIn225 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn225 #-}
-happyOut225 :: (HappyAbsSyn ) -> (Op L)
-happyOut225 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut225 #-}
-happyIn226 :: (QOp L) -> (HappyAbsSyn )
-happyIn226 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn226 #-}
-happyOut226 :: (HappyAbsSyn ) -> (QOp L)
-happyOut226 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut226 #-}
-happyIn227 :: (QOp L) -> (HappyAbsSyn )
-happyIn227 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn227 #-}
-happyOut227 :: (HappyAbsSyn ) -> (QOp L)
-happyOut227 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut227 #-}
-happyIn228 :: (QName L) -> (HappyAbsSyn )
-happyIn228 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn228 #-}
-happyOut228 :: (HappyAbsSyn ) -> (QName L)
-happyOut228 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut228 #-}
-happyIn229 :: (QName L) -> (HappyAbsSyn )
-happyIn229 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn229 #-}
-happyOut229 :: (HappyAbsSyn ) -> (QName L)
-happyOut229 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut229 #-}
-happyIn230 :: (Name L) -> (HappyAbsSyn )
-happyIn230 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn230 #-}
-happyOut230 :: (HappyAbsSyn ) -> (Name L)
-happyOut230 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut230 #-}
-happyIn231 :: (Name L) -> (HappyAbsSyn )
-happyIn231 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn231 #-}
-happyOut231 :: (HappyAbsSyn ) -> (Name L)
-happyOut231 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut231 #-}
-happyIn232 :: (IPName L) -> (HappyAbsSyn )
-happyIn232 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn232 #-}
-happyOut232 :: (HappyAbsSyn ) -> (IPName L)
-happyOut232 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut232 #-}
-happyIn233 :: (QName L) -> (HappyAbsSyn )
-happyIn233 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn233 #-}
-happyOut233 :: (HappyAbsSyn ) -> (QName L)
-happyOut233 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut233 #-}
-happyIn234 :: (Name L) -> (HappyAbsSyn )
-happyIn234 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn234 #-}
-happyOut234 :: (HappyAbsSyn ) -> (Name L)
-happyOut234 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut234 #-}
-happyIn235 :: (QName L) -> (HappyAbsSyn )
-happyIn235 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn235 #-}
-happyOut235 :: (HappyAbsSyn ) -> (QName L)
-happyOut235 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut235 #-}
-happyIn236 :: (Name L) -> (HappyAbsSyn )
-happyIn236 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn236 #-}
-happyOut236 :: (HappyAbsSyn ) -> (Name L)
-happyOut236 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut236 #-}
-happyIn237 :: (QName L) -> (HappyAbsSyn )
-happyIn237 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn237 #-}
-happyOut237 :: (HappyAbsSyn ) -> (QName L)
-happyOut237 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut237 #-}
-happyIn238 :: (QName L) -> (HappyAbsSyn )
-happyIn238 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn238 #-}
-happyOut238 :: (HappyAbsSyn ) -> (QName L)
-happyOut238 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut238 #-}
-happyIn239 :: (Name L) -> (HappyAbsSyn )
-happyIn239 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn239 #-}
-happyOut239 :: (HappyAbsSyn ) -> (Name L)
-happyOut239 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut239 #-}
-happyIn240 :: (Name L) -> (HappyAbsSyn )
-happyIn240 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn240 #-}
-happyOut240 :: (HappyAbsSyn ) -> (Name L)
-happyOut240 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut240 #-}
-happyIn241 :: (QName L) -> (HappyAbsSyn )
-happyIn241 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn241 #-}
-happyOut241 :: (HappyAbsSyn ) -> (QName L)
-happyOut241 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut241 #-}
-happyIn242 :: (Literal L) -> (HappyAbsSyn )
-happyIn242 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn242 #-}
-happyOut242 :: (HappyAbsSyn ) -> (Literal L)
-happyOut242 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut242 #-}
-happyIn243 :: (S) -> (HappyAbsSyn )
-happyIn243 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn243 #-}
-happyOut243 :: (HappyAbsSyn ) -> (S)
-happyOut243 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut243 #-}
-happyIn244 :: (S) -> (HappyAbsSyn )
-happyIn244 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn244 #-}
-happyOut244 :: (HappyAbsSyn ) -> (S)
-happyOut244 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut244 #-}
-happyIn245 :: (ModuleName L) -> (HappyAbsSyn )
-happyIn245 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn245 #-}
-happyOut245 :: (HappyAbsSyn ) -> (ModuleName L)
-happyOut245 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut245 #-}
-happyIn246 :: (Name L) -> (HappyAbsSyn )
-happyIn246 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn246 #-}
-happyOut246 :: (HappyAbsSyn ) -> (Name L)
-happyOut246 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut246 #-}
-happyIn247 :: (QName L) -> (HappyAbsSyn )
-happyIn247 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn247 #-}
-happyOut247 :: (HappyAbsSyn ) -> (QName L)
-happyOut247 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut247 #-}
-happyIn248 :: (Name L) -> (HappyAbsSyn )
-happyIn248 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn248 #-}
-happyOut248 :: (HappyAbsSyn ) -> (Name L)
-happyOut248 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut248 #-}
-happyIn249 :: (Name L) -> (HappyAbsSyn )
-happyIn249 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn249 #-}
-happyOut249 :: (HappyAbsSyn ) -> (Name L)
-happyOut249 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut249 #-}
-happyIn250 :: (QName L) -> (HappyAbsSyn )
-happyIn250 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn250 #-}
-happyOut250 :: (HappyAbsSyn ) -> (QName L)
-happyOut250 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut250 #-}
-happyIn251 :: (Name L) -> (HappyAbsSyn )
-happyIn251 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn251 #-}
-happyOut251 :: (HappyAbsSyn ) -> (Name L)
-happyOut251 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut251 #-}
-happyInTok :: (Loc Token) -> (HappyAbsSyn )
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn ) -> (Loc Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x00\x00\x3a\x22\xbf\x21\x3e\x0d\x89\x15\xdd\x1e\x00\x00\x00\x00\x00\x00\xfd\x07\xbe\x04\x6e\x08\xd0\x07\x00\x00\x33\x08\x00\x00\x00\x00\x2d\x11\x00\x00\x00\x00\x00\x00\xc4\x24\x00\x00\x43\x08\x00\x00\x00\x00\x2e\x08\xc7\x07\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x1b\xea\x1a\xf2\x1b\x76\x1c\x00\x00\x08\x24\xc4\x24\xc4\x24\xc4\x24\x3a\x22\x00\x00\x3a\x22\x3a\x22\x3a\x22\x89\x15\x00\x00\x41\x28\x68\x29\x00\x00\xf1\x24\x3a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\x3b\x08\x00\x00\x00\x00\x00\x00\x44\x21\x3a\x08\x35\x08\x66\x24\x35\x08\x00\x00\x3f\x08\x3d\x08\x37\x08\x00\x00\x00\x00\x7f\x11\x00\x00\x00\x00\x79\x18\x00\x00\x00\x00\xba\x07\x00\x00\x89\x15\x1a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x11\x3b\x12\x2b\x15\x01\x17\x00\x00\x00\x00\x3a\x22\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x30\x08\xb3\x07\xb3\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x12\xc4\x24\x32\x00\xcd\x14\xd5\x07\x22\x08\xc8\x07\x00\x00\x00\x00\x00\x00\x9f\x04\x1b\x08\x00\x00\xa3\x16\x14\x08\x14\x08\x15\x00\x14\x08\x19\x08\x4b\x29\x4b\x29\xe4\x27\x43\x2a\x00\x00\xb1\x07\xb1\x07\x00\x00\xb1\x07\x1a\x00\x00\x00\x00\x00\x0b\x08\xf1\x24\xbb\x07\x73\x06\x95\x07\x00\x00\xf6\x07\x00\x08\x00\x00\x00\x00\x03\x27\xc4\x24\x8e\x07\x00\x00\x00\x00\x00\x00\x86\x02\xc4\x24\x12\x08\x33\x00\x00\x00\x02\x08\xf3\x07\x2a\x00\x09\x00\x00\x00\xef\x07\x1f\x29\x5a\x00\x1f\x29\xcd\x14\x1f\x29\x1f\x29\xea\x07\xdd\x11\x45\x16\x79\x18\x00\x00\xae\x07\x00\x00\x00\x00\xcd\x14\x89\x07\x87\x07\x85\x07\x9f\x04\xcd\x14\xcd\x14\xde\x07\x7b\x06\x7b\x06\xa2\x05\xa2\x05\x00\x00\x00\x00\x3a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x29\x69\x0b\x00\x00\x00\x00\xcd\x14\x00\x00\x00\x00\x00\x00\x4c\x06\xcd\x14\xcd\x04\x00\x00\xdc\x07\xbc\x2a\x00\x00\x00\x00\x00\x00\xb8\x12\x26\x0b\xe2\x07\xd9\x07\xe8\x07\xe4\x07\x00\x00\xe6\x07\xda\x07\x18\x03\x00\x00\x1b\x11\x00\x00\x00\x00\x9d\x02\x6e\x02\x00\x00\x00\x00\x3f\x02\xe0\x07\xd4\x07\x11\x02\xdb\x07\xd6\x07\x00\x00\xd1\x07\xcf\x07\x79\x18\x00\x00\x00\x00\x00\x00\x79\x18\x00\x00\x79\x18\x00\x00\x00\x00\x11\x07\xcd\x14\x79\x18\x00\x00\xd8\x07\x54\x07\x53\x07\x00\x00\xf1\x1c\xf1\x1c\xb4\x07\x00\x00\xc4\x24\x00\x00\x72\x07\xbf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x62\x07\x2e\x00\x8c\x07\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x13\x51\x02\xb6\x07\x00\x00\x00\x00\x53\x05\x3e\x0d\x92\x07\x91\x07\x2a\x14\x90\x07\xb7\x07\xa9\x07\xbe\x00\x00\x00\xc4\x24\x00\x00\xaa\x23\x00\x00\xb2\x07\x98\x07\xe6\x02\xa7\x07\xaf\x07\x00\x00\x00\x00\x3a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x69\x0b\x00\x00\x00\x00\x00\x00\x00\x01\xa4\x07\x9d\x07\x00\x00\x66\x1a\x50\x02\x00\x00\x91\x05\xe2\x19\xc9\x01\xad\x07\xab\x07\xaa\x07\xa6\x07\xa5\x07\x00\x00\xa3\x07\xc4\x24\xa2\x07\x9e\x07\xc4\x24\xc4\x24\x3a\x22\xc6\x27\x00\x00\x3a\x22\xcd\x14\x3a\x22\x3a\x22\x3a\x22\x3a\x22\x53\x00\x93\x07\x00\x00\xac\x07\x7e\x27\x00\x00\xdd\xff\x00\x00\x1d\x07\x00\x00\x88\x07\x00\x00\xf9\xff\x8b\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x07\x86\x07\x82\x07\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x19\x00\x00\x00\x00\xac\x01\x00\x00\x00\x00\x3a\x22\x3a\x22\xda\x18\x00\x00\x00\x00\x2d\x02\x00\x00\x76\x1c\x00\x00\x76\x1c\x3a\x22\x62\x1e\x81\x07\x7f\x07\x00\x00\x00\x00\x76\x1c\x3a\x22\x62\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\x3a\x22\x00\x00\xc9\x20\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x8b\x07\xf1\x24\xbe\x22\x00\x00\x5a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\x7e\x07\x34\x02\x84\x07\x53\x00\x25\x07\x00\x00\x3a\x22\x00\x00\x3a\x22\x7c\x07\x7d\x07\xf1\x1c\x53\x00\x3a\x22\x3a\x22\x6b\x07\x5f\x17\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x14\x00\x00\x00\x00\x87\x26\x00\x00\x00\x00\xcd\x14\x77\x07\x2b\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x03\x66\x01\x2b\x0b\x00\x00\x91\x01\x00\x00\x00\x00\x00\x00\xac\x27\xcd\x14\x00\x00\x66\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x2a\x4c\x06\x2b\x07\x09\x07\x87\x26\x18\x07\x2c\x04\x58\x07\x73\x03\x00\x00\x00\x07\x4d\x07\x00\x00\x3a\x22\xc9\x20\xfd\x06\xd9\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x06\xf9\x06\x00\x00\x49\x07\x59\x07\x00\x00\x4c\x07\x00\x00\xcd\x14\x00\x00\x00\x00\x00\x00\xf5\x06\x49\x0f\x44\x07\x3d\x07\x53\x00\x53\x00\x33\x07\x00\x00\x30\x07\x79\x18\xcd\x14\xc8\x06\xc3\x06\xc1\x06\x20\x07\x26\x07\x38\x07\x14\x07\xdd\x06\x2f\x07\x00\x00\xed\x28\x00\x00\xed\x28\x00\x00\x00\x00\xc4\x24\x00\x00\x23\x07\x22\x07\x00\x00\x00\x00\x21\x07\xfc\x29\xfc\x29\x00\x00\xeb\x05\x00\x00\x00\x00\xe8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x07\x28\x0c\x53\x00\xbe\x22\xe9\x06\x12\x07\x16\x07\x15\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\xe3\x29\xcd\x14\x04\x07\x00\x00\xcd\x14\x00\x00\x00\x00\x00\x00\x00\x00\x79\x18\xa5\x06\xcd\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x13\x00\x00\x00\x00\xf2\x06\x00\x00\xbc\x06\x00\x00\xfe\x06\x00\x00\x00\x00\x00\x00\x1e\x27\xf6\x06\x00\x00\x00\x00\xfa\x06\x00\x00\xec\x06\x00\x00\xa8\x07\x54\x00\xab\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x06\x00\x00\xa6\x02\x00\x00\xe4\x06\xf0\x06\x00\x00\x00\x00\x00\x00\xca\x29\xcd\x14\x00\x00\xde\x06\x00\x00\x1b\x18\x00\x00\x00\x00\x00\x00\xe4\x25\x00\x00\x00\x00\x00\x00\x6c\x25\x87\x26\x00\x00\x00\x00\xa6\x06\xe3\x06\x00\x00\xf1\x01\x9d\x06\x7e\x06\xd8\x06\xd6\x06\xcd\x04\x00\x00\xd1\x06\x00\x00\x2b\x0b\x00\x00\xd5\x06\x6d\x01\x00\x00\xdf\x06\xd0\x06\x00\x00\x00\x00\xe1\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x1c\x00\x00\x00\x00\x00\x00\x3a\x22\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x20\x00\x00\x00\x00\x2c\x00\x9c\x06\x00\x00\xbd\x06\x00\x00\x24\x06\x8f\x05\x86\x05\x85\x05\x7d\x05\x77\x05\x69\x05\x56\x05\x52\x05\x46\x05\x31\x05\x2b\x05\x24\x05\xd4\x04\xc5\x04\xb6\x04\x5d\x04\x40\x04\x19\x04\x0e\x04\x00\x00\x3e\x0d\xca\x06\xa2\x06\x3f\x00\x00\x00\x00\x00\xe7\x1d\xc5\x06\x53\x00\xb7\x06\xb6\x06\x00\x00\x00\x00\x00\x00\x4e\x20\x00\x00\x6b\x02\x00\x00\x00\x00\x00\x00\xb2\x06\x00\x00\x67\x02\x00\x00\x00\x00\x00\x00\xea\x00\x00\x00\x00\x00\xae\x06\x00\x00\x00\x00\x00\x00\x6c\x01\x00\x00\x3a\x22\x8b\x28\x00\x00\x00\x00\x00\x00\xd2\x06\xf1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\x6c\x1d\x3a\x22\x68\x06\x08\x00\x6c\x1d\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x03\xd3\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x24\x00\x00\x00\x00\xdc\x00\x34\x02\xb4\x06\x00\x00\x98\x06\x00\x00\x00\x00\x87\x26\x00\x00\x00\x00\x00\x00\x6b\x06\x00\x00\x00\x00\x00\x00\x55\x13\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x03\xad\x06\x86\x25\xac\x06\xa0\x06\x00\x00\x00\x00\x87\x26\xa3\x2a\x4d\x00\xf7\x12\x1b\x18\x00\x00\x00\x00\xa4\x06\x58\x06\x00\x00\x00\x00\x54\x00\x52\x06\x3a\x22\x3a\x22\x00\x00\x00\x00\x9a\x06\x94\x06\xbd\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x22\x64\x06\x9f\x06\x39\x23\x3d\x10\x9f\x06\x00\x00\x00\x00\x92\x06\x26\x06\x89\x06\x00\x00\x00\x00\x1b\x06\x84\x06\xb1\x29\x00\x00\x5c\x2a\x75\x06\x19\x06\x17\x06\x2b\x06\x00\x00\x5b\x26\x00\x00\x0e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x22\x06\x00\x00\x4a\x06\x14\x06\xb3\x0c\x7f\x06\x00\x00\x00\x00\x83\x06\x70\x06\x00\x00\x00\x00\x79\x06\x00\x00\x3e\x06\xb7\x28\x00\x00\x00\x00\x00\x00\x3a\x22\x6c\x06\x00\x00\x00\x00\x00\x00\xcd\x14\x00\x00\x00\x00\xbd\x17\xbd\x17\x00\x00\x00\x00\x61\x06\x00\x00\xc9\x0e\x74\x06\x53\x00\xac\x27\x00\x00\x00\x00\xc9\x0d\x72\x06\x53\x00\x00\x00\xbd\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x28\xe7\x15\x00\x00\xbd\x17\xbd\x17\x82\x06\x00\x00\x00\x00\xfe\x25\x00\x00\x00\x00\x00\x00\xfe\x25\x7b\x01\x6a\x06\x53\x00\x63\x06\x69\x06\x00\x00\x00\x00\x67\x06\x6e\x06\x12\x06\x00\x00\x3a\x22\x00\x00\x2e\x00\x00\x00\xf8\x05\x3f\x06\x00\x00\x3a\x22\x58\x1f\x46\x06\x00\x00\x3a\x22\x3a\x22\x3a\x22\x00\x00\x42\x06\x00\x00\x00\x00\x00\x00\xcf\x05\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x06\x00\x00\x3a\x22\x29\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x06\x00\x00\x1a\x06\x00\x00\xbd\x17\x5f\x17\x45\x03\x22\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x14\xb1\x10\x6f\x14\x11\x08\x00\x00\x00\x00\x11\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x17\xe9\x03\x00\x00\x15\x06\x68\x01\x00\x00\x11\x14\x00\x00\x00\x00\x00\x00\x65\x27\x21\x06\xa2\x26\x00\x00\x71\x04\x00\x00\x00\x00\x00\x00\xbf\x05\x00\x00\x10\x06\x00\x00\xf1\x24\x00\x00\x00\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x06\x11\x06\x00\x00\xbd\x17\x11\x14\x00\x00\xf4\x05\xbd\x0f\xf0\x05\x0c\x06\xdf\x05\xdd\x05\xda\x05\xbd\x17\x00\x00\x91\x11\xda\x05\x49\x0e\xe0\x05\x00\x00\xb7\x28\x11\x14\x99\x12\x5a\x01\xe0\x05\xe7\x05\x00\x00\xf1\x24\x3a\x22\x00\x00\xa7\x05\x60\x05\x00\x00\x00\x00\xb7\x28\x00\x00\x00\x00\x00\x00\x00\x00\x11\x14\xbd\x05\x00\x00\x11\x14\x8b\x05\x6a\x05\x00\x00\x11\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x28\x95\x05\x20\x06\x00\x00\x81\x05\x00\x00\x00\x00\x00\x00\x72\x05\x00\x00\x00\x00\x11\x14\x00\x00\x07\x03\x3a\x22\x00\x00\x00\x00\xa1\x05\x00\x00\x00\x00\x1b\x00\x20\x06\x00\x00\x00\x00\x00\x00\xb2\x05\x00\x00\x11\x14\x00\x00\x4b\x27\xae\x05\x83\x05\x00\x00\x00\x00\x00\x00\xa9\x05\x81\x29\x00\x00\xe9\x26\xa4\x05\x10\x28\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x02\x00\x70\x31\x55\x35\x87\x01\xd7\x08\xb7\x2d\x01\x00\xff\xff\xfe\xff\x11\x03\x1e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x11\x00\x00\x00\x00\x00\x00\x72\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x31\x58\x32\x38\x32\xdf\x31\x00\x00\xd9\x3a\x5c\x3d\xc3\x3a\x20\x3d\x3f\x35\x00\x00\x1e\x31\x06\x31\x35\x3a\x95\x08\xb9\x04\xf7\x04\xd4\x01\x00\x00\x67\x04\xb7\x39\xea\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x39\xa2\xff\x00\x00\x00\x00\x00\x00\xcd\x2d\x0a\x00\x94\xff\x2b\x3b\x8a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0a\x00\x00\x00\x00\xe2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x05\xd9\x05\x43\x05\x9b\x0a\x00\x00\x00\x00\xb4\x30\xb3\x02\x00\x00\x00\x00\x00\x00\x33\x05\x00\x00\x00\x00\x4b\x05\x00\x00\x37\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x0b\x0a\x3d\x00\x00\x23\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x05\xf5\xff\x00\x00\xc9\x0a\x1f\x05\x1b\x05\x13\x05\x08\x05\xd7\x05\x96\x03\x9b\x02\x8d\x02\x30\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\x00\x00\x00\x00\xfc\xff\x1e\x04\x0f\x06\x69\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\xce\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x02\xb8\x3c\x62\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x20\x03\x00\x00\xf1\x02\x09\x0a\xc9\x02\x98\x02\x00\x00\x71\x0a\x60\x0a\xfc\x04\x00\x00\x00\x00\x13\x00\x10\x00\xf5\x09\x00\x00\x00\x00\x00\x00\x11\x05\xd2\x02\xe1\x09\xa5\x04\xe5\x04\xdb\x04\x14\x04\x8a\x03\x00\x00\x00\x00\x71\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x27\x04\x00\x00\x00\x00\x41\x08\x00\x00\x00\x00\x00\x00\xb4\x01\x2d\x08\xee\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\xeb\x03\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x0a\x00\x00\x00\x00\x00\x00\x87\x0a\x00\x00\x4f\x02\x00\x00\x00\x00\xb0\x02\x91\x09\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x2d\xfb\x2c\x00\x00\x00\x00\x7c\x3c\x00\x00\x00\x00\x66\x04\x00\x00\x07\x00\x04\x00\x00\x00\x00\x00\x45\x02\x00\x00\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\xff\x21\x04\x00\x00\x00\x00\x00\x00\x80\x04\x0a\x01\x00\x00\x00\x00\x3c\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x3c\x00\x00\x15\x3b\x00\x00\x84\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x3a\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x34\x14\x03\x00\x00\x00\x00\xbd\x33\xf9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x3a\x00\x00\x00\x00\x2a\x3c\x14\x3c\x9c\x30\x73\x02\x00\x00\x71\x3a\xff\x07\x4f\x39\xfd\x38\xe7\x38\x95\x38\x0d\x04\x00\x00\x08\x06\x0f\x00\xa2\x01\x00\x00\xda\x01\x00\x00\x00\x00\x9b\x05\x00\x00\x00\x00\x00\x00\x84\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x33\x00\x00\x00\x00\x1d\x02\x00\x00\x00\x00\xed\x34\x7f\x38\x46\x33\x00\x00\x00\x00\x0d\x03\x00\x00\x28\x33\x00\x00\xcf\x32\x2d\x38\xe9\x2a\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x32\x17\x38\x97\x2a\x00\x00\x3c\x00\x2b\x00\x00\x00\xc5\x37\xaf\x37\x00\x00\xd3\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x07\x04\x65\x05\x00\x00\x00\x00\x89\x04\x86\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x34\x76\xff\x12\x02\x00\x00\xea\x03\x00\x00\x00\x00\x5d\x37\x00\x00\x47\x37\x00\x00\x05\x04\x81\x2c\xd3\x03\xf5\x36\xdf\x36\x00\x00\xcc\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x09\x00\x00\x00\x00\x36\x08\x00\x00\x00\x00\x3b\x09\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x27\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x02\xb2\x00\x3f\x04\x43\x04\x87\x05\x92\x03\x00\x00\x00\x00\x00\x00\x00\x00\x08\x04\xff\x03\x00\x00\x4a\x30\x59\x2c\xed\x03\x30\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\xff\xe8\x03\x09\x02\xee\x03\x00\x00\x00\x00\x00\x00\x00\x00\xff\x08\x00\x00\x00\x00\x00\x00\xdf\x03\x28\x02\x00\x00\x00\x00\x63\x03\x4f\x03\x00\x00\x00\x00\xb7\x03\xf7\x02\xeb\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x03\xcb\x03\x00\x00\xcd\x02\x00\x00\xb7\x01\x00\x00\x00\x00\xd8\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x3a\x01\x00\x00\xfc\x03\x00\x00\x00\x00\x00\x00\x53\x03\x00\x00\x50\x04\xfe\x03\x00\x00\x69\x00\x10\x03\x70\x3b\xf2\x03\xd7\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x39\xe0\xff\x1a\x04\x00\x00\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x04\xc4\x03\xd7\x07\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x04\x00\x00\x09\x04\x97\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\x00\x00\x00\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x00\x00\xf5\x02\x00\x00\x00\x00\x00\x00\x8c\xff\xf4\x02\xe4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\x00\x00\x00\x00\x00\x00\x02\x01\x97\x07\x00\x00\x00\x00\x00\x00\x2c\x0b\x6e\x03\x00\x00\x00\x00\xd4\x06\x00\x00\x00\x00\x00\x00\x33\x0b\x22\x09\x00\x00\x00\x00\x48\x03\xd0\x02\x00\x00\xb4\xff\x40\x03\x3e\x03\x00\x00\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x2c\x00\x00\x00\x00\x00\x00\x8d\x36\x00\x00\x00\x00\x00\x00\x37\x04\xdf\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x34\x00\x00\xa7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x77\x36\xef\x01\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x36\x3b\x2b\x0f\x36\x00\x00\x00\x00\x8d\x2b\x00\x00\x00\x00\x12\x04\x00\x00\x2d\x03\x65\x2d\x00\x00\x00\x00\x00\x00\xd9\x02\x00\x00\xc2\x3b\x00\x00\x00\x00\x00\x00\x8b\x02\xce\x02\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x03\x00\x00\x00\x00\x00\x00\xc7\x02\x00\x00\x00\x00\x00\x00\x8e\x05\x43\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x06\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x05\x1d\x00\xc1\xff\xcc\x04\x02\x0b\x00\x00\x00\x00\x00\x00\xac\x03\x00\x00\x00\x00\xcd\x01\x00\x00\xe0\x2f\xc8\x2f\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\x5c\x00\x38\x00\x19\x02\x00\x00\x42\x02\x34\x00\x20\x00\x76\x2f\xd0\x00\x00\x00\x87\x3a\xe9\x02\x00\x00\x00\x00\x00\x00\xe1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\x00\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x00\x00\xd5\x03\x00\x00\x00\x00\x1e\x03\x00\x00\xf2\x02\x00\x00\x7f\x00\x00\x00\xf2\x01\x00\x00\x00\x00\x7b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x01\x5b\x02\x00\x00\x00\x00\x00\x00\x5e\x2f\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x03\x00\x00\x00\x00\x9a\x02\x25\x01\x00\x00\x00\x00\x00\x00\x00\x00\x54\x03\x00\x00\x96\x01\x67\x00\x00\x00\x00\x00\x03\x02\x00\x00\x8b\x01\x00\x00\xd5\x04\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x01\xcc\x04\x00\x00\x82\x02\x45\x0b\x3d\x01\x00\x00\x00\x00\x18\x0b\x00\x00\x00\x00\x00\x00\x8a\x08\xf7\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x2f\x00\x00\xa1\x01\x00\x00\x03\x01\xf8\x00\x00\x00\xf4\x2e\x85\x34\x00\x00\x00\x00\xa2\x2e\x8a\x2e\x38\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x04\xcc\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x03\x00\x00\x00\x00\xeb\x08\xf3\x03\x2e\x04\x00\x00\x00\x00\x00\x00\x41\x07\x00\x00\x00\x00\xe2\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x04\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x2d\x07\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x11\x00\x00\x00\x06\x01\x00\x00\x00\x00\x00\x00\x29\x01\x00\x00\x1c\x01\x00\x00\xb2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x01\x07\x00\x00\x00\x00\x6c\x03\x00\x00\xf8\xff\x00\x00\x00\x00\xe8\x00\x55\x04\x00\x00\x27\x11\xd1\x00\x78\x02\x00\x00\x00\x00\xae\x01\xed\x06\xd9\x06\x4b\x01\x00\x00\x00\x00\x00\x00\x54\x02\x20\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x97\x06\x00\x00\x00\x00\x43\x06\xb3\x00\xa0\x00\x00\x00\x2f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\x00\x00\xb6\xff\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x06\x00\x00\x00\x00\xa7\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x6a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x05\x00\x00\xfd\xff\x00\x00\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x4e\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x58\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfd\x00\x00\xe5\xff\xed\xff\x00\x00\x00\x00\xbb\xfd\x91\xfe\x8f\xfe\x89\xfe\x88\xfe\x86\xfe\x84\xfe\x7e\xfe\x74\xfe\x6f\xfe\x67\xfe\x64\xfe\x51\xfe\x00\x00\x00\x00\x61\xfe\x62\xfe\x63\xfe\xab\xfd\xa6\xfd\x7f\xfd\x8d\xfd\xa4\xfd\xa1\xfd\x76\xfd\x60\xfe\x8b\xfd\x8c\xfd\x78\xfd\x77\xfd\x74\xfd\x75\xfd\x62\xfd\x60\xfd\x61\xfd\x5f\xfd\x5e\xfd\x5d\xfd\x5c\xfd\x5b\xfd\x5a\xfd\x59\xfd\x00\x00\x00\x00\x00\x00\xdc\xfd\x55\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x46\xfe\x00\x00\x00\x00\x31\xfe\x87\xfd\x7e\xfd\x7d\xfd\x7b\xfd\x7c\xfd\x86\xfd\x85\xfd\x84\xfd\x83\xfd\x82\xfd\x81\xfd\x80\xfd\x8a\xfd\x00\x00\x58\xfd\x79\xfd\x7a\xfd\x88\xfd\x58\xfd\x58\xfd\x58\xfd\x00\x00\x58\xfd\x89\xfd\x00\x00\x00\x00\x00\x00\x27\xff\xf9\xfe\x2e\xff\x24\xff\x18\xff\x00\x00\x23\xff\x07\xff\x00\x00\xfc\xfe\x00\x00\x00\x00\x50\xfd\x00\xff\x22\xff\x51\xfd\x10\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xff\x19\xff\x00\x00\x00\x00\x4f\xfd\x4e\xfd\x4d\xfd\xf2\xfe\x00\x00\x75\xff\xa9\xff\x00\x00\x00\x00\x8c\xff\x76\xff\x71\xff\x70\xff\x74\xff\x93\xff\x88\xfe\x00\x00\x00\x00\x00\x00\x7f\xff\x00\x00\x00\x00\xa7\xff\xa6\xff\xa5\xff\x88\xff\x58\xfd\x7e\xff\x00\x00\x44\xff\x44\xff\x44\xff\x44\xff\x46\xff\x38\xff\x38\xff\x00\x00\x63\xff\xcb\xfd\x00\x00\x00\x00\x91\xfe\x00\x00\xe5\xff\xf4\xff\xf2\xff\x58\xfd\x00\x00\xe5\xff\x00\x00\x00\x00\x64\xff\x62\xff\x60\xff\x5d\xff\xaa\xfd\x00\x00\x00\x00\x00\x00\x33\xff\x34\xff\xa3\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x39\xff\x00\x00\x36\xff\x00\x00\x00\x00\x47\xff\x44\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\xff\x00\x00\x00\x00\x5c\xff\x00\x00\xd9\xff\xd9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x88\xff\x7b\xff\x00\x00\xec\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x93\xfd\x92\xfd\x00\x00\x97\xfd\x8e\xfd\x73\xfd\x9d\xfd\x70\xfd\x6f\xfd\x6c\xfd\x71\xfd\x63\xfd\x72\xfd\x00\x00\x00\x00\x69\xfd\x8f\xfd\x00\x00\x6b\xfd\x6a\xfd\x68\xfd\xba\xfe\x00\x00\x00\x00\xa8\xff\x00\x00\x00\x00\x52\xfd\x12\xff\x11\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\xff\x09\xff\x00\x00\x00\x00\x00\xff\x0b\xff\x00\x00\x04\xff\xf5\xfe\x00\x00\x00\x00\x02\xff\x44\xfe\xf5\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x00\x00\x0e\xff\x00\x00\xfa\xfe\x21\xff\x25\xff\x00\x00\xfd\xfe\x00\x00\x4b\xfd\x4a\xfd\x00\x00\x00\x00\x00\x00\xf8\xfe\x00\x00\x00\x00\x00\x00\xba\xfd\xc0\xfd\xc0\xfd\x00\x00\x6c\xfe\x00\x00\x75\xfe\xbd\xfd\x7c\xfe\x80\xfe\xd9\xff\xd9\xff\x76\xfe\x00\x00\x7a\xfe\x00\x00\xf9\xfd\x2c\xfe\x28\xfe\x2b\xfe\x2a\xfe\x29\xfe\x24\xfe\x23\xfe\x22\xfe\x21\xfe\x1f\xfe\x20\xfe\x1e\xfe\x1d\xfe\x1c\xfe\x1b\xfe\x1a\xfe\x19\xfe\x18\xfe\x17\xfe\x16\xfe\x15\xfe\x26\xfe\x25\xfe\x14\xfe\x13\xfe\x12\xfe\x11\xfe\x10\xfe\x0f\xfe\x0e\xfe\x0d\xfe\x0c\xfe\x0b\xfe\x0a\xfe\x09\xfe\x08\xfe\x07\xfe\x06\xfe\x05\xfe\x04\xfe\x03\xfe\x02\xfe\x01\xfe\x00\xfe\xff\xfd\xfe\xfd\x27\xfe\xfd\xfd\xfc\xfd\xfb\xfd\x47\xfe\x48\xfe\x00\x00\x00\x00\x00\x00\x4a\xfe\x49\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x88\xfe\x00\x00\x00\x00\x39\xfe\x00\x00\xca\xfd\x77\xfe\x68\xfe\x00\x00\x6d\xfe\x58\xfd\x43\xfe\xdb\xfd\xda\xfd\x00\x00\x91\xfd\x90\xfd\x00\x00\x9b\xfd\x6e\xfd\x6d\xfd\x67\xfd\x00\x00\x65\xfd\x66\xfd\x64\xfd\xf5\xfd\x00\x00\xf4\xfd\xaf\xfd\x00\x00\x00\x00\xad\xfd\x43\xfe\x00\x00\x00\x00\x00\x00\x97\xfd\x00\x00\x6d\xfd\x67\xfd\xb0\xfd\x65\xfd\x6b\xfd\x66\xfd\x64\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x70\xfe\x8e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x00\x00\xf7\xff\xe5\xff\xf6\xff\x00\x00\xd9\xff\xe8\xff\xda\xff\x00\x00\xed\xff\xef\xff\x56\xfd\x57\xfd\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x90\xfe\x87\xfe\x85\xfe\x00\x00\xb8\xfd\xb5\xfd\x00\x00\x66\xfe\xb7\xfd\xbc\xfd\x69\xfe\x6a\xfe\xa5\xfd\xa0\xfd\x54\xfe\x00\x00\x5e\xfe\x5f\xfe\x00\x00\xae\xfd\x45\xfe\x00\x00\x00\x00\x00\x00\x5b\xfe\x5a\xfe\x00\x00\xac\xfd\x00\x00\x57\xfe\x00\x00\xf3\xfd\x00\x00\x00\x00\x00\x00\x42\xfe\x56\xfe\x00\x00\x00\x00\x00\x00\x78\xfe\xd9\xff\xd9\xff\x6e\xfe\x00\x00\x00\x00\x53\xfe\x00\x00\x4f\xfe\x4e\xfe\x4d\xfe\x4c\xfe\x00\x00\xd9\xff\xa0\xff\x00\x00\x00\x00\xf6\xfd\x34\xfe\x00\x00\x2e\xfe\x32\xfe\x7b\xfe\x30\xfe\x00\x00\x58\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xfe\x00\x00\x6b\xfe\x00\x00\x00\x00\xbe\xfd\xc0\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x2a\xff\x2b\xff\x00\x00\x2c\xff\x2d\xff\x28\xff\x05\xff\xfe\xfe\xff\xfe\x03\xff\x00\x00\x20\xff\x1c\xff\x00\x00\x01\xff\x1f\xff\x00\x00\x00\x00\x00\x00\x15\xff\x1e\xff\x1d\xff\x1a\xff\x0c\xff\x00\x00\x00\x00\x00\x00\x16\xff\x00\x00\x13\xff\xf3\xfe\xf1\xfe\x00\x00\x00\x00\x0d\xff\xaa\xff\x95\xfd\x94\xfd\xa3\xff\x99\xfd\x9f\xfd\x00\x00\xba\xfe\xd0\xfe\xe5\xfe\x00\x00\xd9\xfe\x6f\xff\x00\x00\x00\x00\x58\xff\x99\xfe\x95\xfe\x93\xfe\x00\x00\x00\x00\x99\xfe\x4c\xff\x57\xff\x56\xff\x55\xff\x54\xff\x53\xff\x52\xff\x51\xff\x00\x00\xb6\xfe\xee\xfe\xba\xfe\x00\x00\x7c\xff\x29\xff\x7d\xff\x00\x00\x8a\xff\x8b\xff\x89\xff\xa8\xfe\x79\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\xff\xba\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xff\x48\xff\x90\xff\x3a\xff\x8f\xff\x00\x00\x37\xff\x8e\xff\x00\x00\x31\xff\x00\x00\x00\x00\x8d\xff\x30\xff\x00\x00\x00\x00\x00\x00\x68\xff\xe2\xff\x55\xfd\x54\xfd\x00\x00\xf9\xfd\xe7\xff\xd9\xff\xd9\xff\x00\x00\xdc\xff\x00\x00\xf6\xfd\x00\x00\xd7\xff\x00\x00\x00\x00\x61\xff\x5f\xff\x5e\xff\xa9\xfd\xa2\xfd\x32\xff\x35\xff\x3b\xff\x49\xff\x00\x00\x00\x00\x00\x00\x00\x00\x43\xff\x00\x00\x69\xff\x6c\xff\x6d\xff\x9f\xff\x2a\xff\x87\xff\x00\x00\x5a\xff\x72\xff\x5b\xff\x73\xff\xd9\xff\x77\xff\x97\xfe\xd9\xff\xb2\xfd\x63\xfe\xdb\xff\x00\x00\x96\xff\x58\xfd\x95\xff\x94\xff\x9a\xff\x00\x00\xeb\xfe\xe9\xfe\x97\xff\x58\xfd\x91\xff\x00\x00\xa8\xfd\x00\x00\x00\x00\x00\x00\x50\xff\x4f\xff\x4e\xff\x4d\xff\x9b\xfe\x58\xfd\xde\xfd\x00\x00\xe0\xfd\x00\x00\x58\xfd\x96\xfe\x94\xfe\x9c\xfe\x00\x00\x00\x00\x9c\xfd\xdf\xfe\xdd\xfe\x00\x00\xf2\xfe\xb9\xfe\xca\xfe\xc9\xfe\xc3\xfe\xc2\xfe\xc1\xfe\x00\x00\x00\x00\xc5\xfe\xc6\xfe\xd0\xfe\x58\xfd\x9c\xff\x00\x00\xd0\xfe\xe5\xfe\x00\x00\x00\x00\x00\x00\xfb\xfe\x00\x00\x14\xff\x00\x00\x17\xff\x0a\xff\xff\xfe\xf4\xfe\x00\x00\xf6\xfe\x4c\xfd\xf7\xfe\x00\x00\x72\xfe\x73\xfe\xc3\xfd\xc1\xfd\xc2\xfd\xc0\xfd\xc4\xfd\x7f\xfe\x82\xfe\x00\x00\xc8\xfd\xc9\xfd\xc5\xfd\xd9\xff\x00\x00\x79\xfe\x39\xfe\x00\x00\x00\x00\xf7\xfd\x00\x00\xfa\xfd\x00\x00\x8b\xfd\x74\xfd\x87\xfd\x7e\xfd\x7d\xfd\x7b\xfd\x7c\xfd\x86\xfd\x85\xfd\x84\xfd\x83\xfd\x82\xfd\x81\xfd\x80\xfd\x8a\xfd\x79\xfd\x7a\xfd\x88\xfd\x89\xfd\x2d\xfe\xda\xff\xa2\xff\x00\x00\x00\x00\x3a\xfe\x83\xfe\x00\x00\x00\x00\x00\x00\xd7\xfd\xeb\xfd\xe9\xfd\xe8\xfd\xe7\xfd\x00\x00\xd9\xfd\x43\xfe\xed\xfd\x96\xfd\x9a\xfd\xef\xfd\xf1\xfd\x43\xfe\xee\xfd\x58\xfe\x59\xfe\x00\x00\x3b\xfe\x41\xfe\x37\xfe\x38\xfe\x5c\xfe\x5d\xfe\x00\x00\x3e\xfe\x00\x00\x00\x00\x65\xfe\xee\xff\xeb\xff\x00\x00\x00\x00\xea\xff\xec\xff\xe9\xff\xb9\xfd\xb6\xfd\x40\xfe\x3f\xfe\x3d\xfe\x3c\xfe\xf2\xfd\x00\x00\x00\x00\xe6\xfd\x00\x00\x00\x00\xd5\xfd\xd6\xfd\xd9\xff\xd2\xfd\x00\x00\x00\x00\x52\xfe\x4b\xfe\xa1\xff\x31\xfe\x35\xfe\x00\x00\x33\xfe\x2f\xfe\x00\x00\xc7\xfd\x7c\xfe\xbf\xfd\x00\x00\x1b\xff\x08\xff\x00\x00\xa4\xff\x98\xfd\x9e\xfd\xd0\xfe\x99\xff\xcf\xfe\xcb\xfe\x00\x00\xd9\xff\xd9\xff\x9b\xff\xbc\xfe\x00\x00\x00\x00\xc9\xfe\x00\x00\x00\x00\xc0\xfe\xc8\xfe\x00\x00\x00\x00\x00\x00\xd4\xfe\x00\x00\xdb\xfe\xd8\xfe\x00\x00\xd9\xfe\x6e\xff\x59\xff\x00\x00\xdd\xfd\x00\x00\x00\x00\x9a\xfe\x92\xff\x00\x00\x00\x00\x00\x00\xd9\xff\xd9\xff\xee\xfe\xef\xfe\xee\xfe\xd9\xff\xd9\xff\x00\x00\xda\xff\xb4\xfd\x00\x00\xda\xff\x7a\xff\x9d\xff\x9e\xff\x58\xfd\x00\x00\x67\xff\x65\xff\x42\xff\x00\x00\x00\x00\x3f\xff\x3d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xff\xd3\xff\xf3\xff\x00\x00\xe0\xff\xd9\xff\xc8\xff\xde\xff\xc5\xff\xe1\xff\xc3\xff\x00\x00\xda\xff\xdd\xff\x31\xfe\xf0\xff\x00\x00\xd3\xff\xd1\xff\xd0\xff\xce\xff\xd4\xff\x00\x00\x00\x00\xe6\xff\xe4\xff\xe3\xff\x00\x00\x00\x00\x3e\xff\x40\xff\x6a\xff\x00\x00\x6b\xff\x86\xff\x00\x00\x00\x00\x78\xff\xb3\xfd\x00\x00\xb1\xfd\xa6\xfe\x00\x00\x00\x00\x00\x00\xe8\xfe\xea\xfe\xb4\xfe\x00\x00\x00\x00\x4a\xff\x00\x00\xa7\xfd\x92\xfe\xdf\xfd\xde\xfe\x00\x00\xd4\xfe\xdc\xfe\x00\x00\x00\x00\x00\x00\xda\xfe\xc7\xfe\x00\x00\xbf\xfe\xc4\xfe\xbe\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xfe\x00\x00\xce\xfe\x98\xff\x00\x00\x00\x00\x00\x00\xc6\xfd\x00\x00\xf8\xfd\x7a\xfe\xe1\xfd\x99\xfe\xcf\xfd\xcd\xfd\x00\x00\xda\xff\xd4\xfd\xea\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\xec\xfd\xf0\xfd\xe5\xfd\xe3\xfd\xe4\xfd\xd3\xfd\xd0\xfd\xce\xfd\xd1\xfd\x00\x00\xcc\xfd\x00\x00\x00\x00\xf0\xfe\xcd\xfe\xe6\xfe\xe7\xfe\xd9\xff\xe2\xfe\x00\x00\xbb\xfe\xbd\xfe\xd7\xfe\x26\xff\x00\x00\x00\x00\x00\x00\xd2\xfe\xd6\xfe\x4b\xff\xb7\xfe\xb8\xfe\xb1\xfe\xd9\xff\xb2\xfe\xb0\xfe\x00\x00\x00\x00\x00\x00\xed\xfe\xa9\xfe\xaa\xfe\x00\x00\xa0\xfe\xa1\xfe\xd9\xff\xa4\xfe\xa2\xfe\xa3\xfe\x7f\xff\x00\x00\x00\x00\x81\xff\x00\x00\x00\x00\x66\xff\x00\x00\x45\xff\xcf\xff\xca\xff\x00\x00\x00\x00\xd4\xff\xd5\xff\x00\x00\xc9\xff\xdf\xff\xc6\xff\xc1\xff\xc4\xff\xbf\xff\xc2\xff\x00\x00\xd2\xff\xd6\xff\x00\x00\xad\xff\xac\xff\xab\xff\xcc\xff\x00\x00\x00\x00\x84\xff\x82\xff\x00\x00\x85\xff\x00\x00\xda\xff\xa7\xfe\xba\xfe\x00\x00\x27\xff\xba\xfe\x00\x00\xaf\xfe\x00\x00\xba\xfe\xda\xff\xb5\xfe\xd5\xfe\x00\x00\x00\x00\x00\x00\xda\xff\xe4\xfe\x00\x00\x81\xfe\x00\x00\x00\x00\xe2\xfd\x00\x00\x00\x00\xe3\xfe\xe1\xfe\x00\x00\xd1\xfe\xd3\xfe\xb3\xfe\xab\xfe\x00\x00\x00\x00\xae\xfe\x00\x00\xd0\xfe\xe5\xfe\xa5\xfe\x00\x00\x80\xff\x83\xff\x3c\xff\xcd\xff\xcb\xff\x00\x00\x00\x00\x00\x00\xc0\xff\xbd\xff\xf1\xff\xae\xff\x9f\xfe\xd0\xfe\x9e\xfe\xad\xfe\x00\x00\x6f\xff\x00\x00\x00\x00\x36\xfe\x71\xfe\x00\x00\xac\xfe\x9d\xfe\xbb\xff\x00\x00\xbe\xff\xc7\xff\xbc\xff\x00\x00\xb8\xff\x00\x00\xe0\xfe\xd3\xff\x00\x00\xd3\xff\xb5\xff\xb4\xff\x53\xfd\xb2\xff\x00\x00\xb3\xff\x00\x00\x00\x00\xd4\xff\xb9\xff\xb6\xff\xba\xff\x00\x00\xb0\xff\x00\x00\xb1\xff\xaf\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x00\x00\x04\x00\x04\x00\x02\x00\x04\x00\x04\x00\x0b\x00\x11\x00\x12\x00\x13\x00\x1a\x00\x2b\x00\x07\x00\x11\x00\x2d\x00\x21\x00\x0d\x00\x0e\x00\x1a\x00\x0d\x00\x0e\x00\x07\x00\x9e\x00\x33\x00\x46\x00\x47\x00\x1e\x00\x1f\x00\x0d\x00\x0e\x00\x33\x00\x0d\x00\x0e\x00\x3d\x00\x1a\x00\x13\x00\x41\x00\x46\x00\x47\x00\x33\x00\x3d\x00\x76\x00\x41\x00\xb6\x00\x0d\x00\x0e\x00\x4d\x00\x4e\x00\x16\x00\x3d\x00\x1e\x00\x52\x00\x53\x00\x54\x00\x55\x00\x0d\x00\x0e\x00\xb6\x00\x59\x00\x5a\x00\x33\x00\x0d\x00\x0e\x00\x30\x00\x0d\x00\x0e\x00\x30\x00\x1a\x00\x0d\x00\x0e\x00\x3d\x00\x1a\x00\x0d\x00\x0e\x00\xc1\x00\x17\x00\x1a\x00\x22\x00\x72\x00\x0d\x00\x0e\x00\xd9\x00\x00\x00\xea\x00\xc1\x00\x09\x00\x22\x00\xcc\x00\xe0\x00\xe1\x00\xe2\x00\x08\x00\xe4\x00\xe8\x00\xe6\x00\x46\x00\x22\x00\x48\x00\xc1\x00\x6c\x00\x5d\x00\x0c\x00\xdb\x00\x1f\x00\x0d\x00\x0e\x00\x1a\x00\xe8\x00\x90\x00\x20\x00\x21\x00\x1d\x00\x24\x00\xe8\x00\x45\x00\x46\x00\x7d\x00\x48\x00\x49\x00\x39\x00\x25\x00\x4e\x00\x4d\x00\xe8\x00\x14\x00\x15\x00\x62\x00\x8f\x00\x79\x00\x50\x00\x68\x00\x6f\x00\x31\x00\x32\x00\x33\x00\x8f\x00\x2f\x00\xe8\x00\x22\x00\x72\x00\x24\x00\x17\x00\x26\x00\x27\x00\x28\x00\xde\x00\xdf\x00\x15\x00\xd4\x00\x11\x00\x2e\x00\x8f\x00\x22\x00\x69\x00\x32\x00\x6a\x00\x34\x00\x35\x00\x36\x00\xea\x00\x22\x00\xe1\x00\x24\x00\x84\x00\x26\x00\x27\x00\x28\x00\x20\x00\x21\x00\x3b\x00\x3c\x00\x69\x00\x2e\x00\xdb\x00\xdc\x00\xcc\x00\x32\x00\x74\x00\x34\x00\x35\x00\x36\x00\xcc\x00\x7f\x00\x84\x00\x8f\x00\xcb\x00\xdb\x00\xdc\x00\xdb\x00\xcf\x00\xdb\x00\xde\x00\xdf\x00\x8f\x00\xbf\x00\xcd\x00\xdb\x00\xbf\x00\xd0\x00\xcb\x00\xe8\x00\xdb\x00\xdc\x00\xcf\x00\xe8\x00\xdf\x00\xed\x00\xee\x00\xda\x00\xdb\x00\xdc\x00\xe8\x00\xde\x00\xdf\x00\xc7\x00\xdb\x00\xdc\x00\xc7\x00\x7f\x00\xdf\x00\xe8\x00\xcd\x00\x3e\x00\x22\x00\xd0\x00\xb7\x00\xec\x00\xe8\x00\xdf\x00\xe8\x00\xe8\x00\xeb\x00\xe8\x00\xe8\x00\xda\x00\xdb\x00\xdc\x00\xdf\x00\xde\x00\xdf\x00\x88\x00\xe8\x00\xb7\x00\x1b\x00\x1c\x00\x1d\x00\x39\x00\xdb\x00\x90\x00\x91\x00\x92\x00\x93\x00\xec\x00\x22\x00\x96\x00\x97\x00\x98\x00\x2e\x00\x19\x00\x9b\x00\x9c\x00\x9d\x00\x88\x00\x68\x00\x2d\x00\xed\x00\xee\x00\x22\x00\xa4\x00\x3a\x00\x90\x00\x91\x00\x92\x00\x93\x00\x25\x00\xcb\x00\x96\x00\x97\x00\x98\x00\xcf\x00\xcb\x00\x9b\x00\x9c\x00\x9d\x00\xcf\x00\x6c\x00\x3a\x00\x3b\x00\x3c\x00\x22\x00\xa4\x00\xdb\x00\xdc\x00\x26\x00\x74\x00\xdf\x00\xdb\x00\xdc\x00\x2b\x00\x22\x00\xdf\x00\x24\x00\x7d\x00\x26\x00\x27\x00\x28\x00\xca\x00\xeb\x00\x19\x00\xcd\x00\xce\x00\x2e\x00\xd0\x00\xcb\x00\x54\x00\x32\x00\x56\x00\x34\x00\x35\x00\x36\x00\x18\x00\xdb\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xdb\x00\xdc\x00\xcd\x00\xce\x00\x7d\x00\xd0\x00\xe7\x00\x2c\x00\x2d\x00\xcb\x00\xed\x00\xee\x00\x9e\x00\xcf\x00\xa0\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x05\x00\x06\x00\x6a\x00\x6b\x00\xdb\x00\xdc\x00\x7d\x00\xe7\x00\xdf\x00\x00\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xe9\x00\xcd\x00\x09\x00\x16\x00\x0b\x00\x4d\x00\x4e\x00\x3a\x00\x3b\x00\x3c\x00\x52\x00\x53\x00\x54\x00\x55\x00\xda\x00\xdb\x00\xdc\x00\x59\x00\x5a\x00\x05\x00\x06\x00\x1a\x00\x17\x00\x22\x00\x1d\x00\x24\x00\xe2\x00\x1b\x00\xe4\x00\x28\x00\xe6\x00\x89\x00\x27\x00\x22\x00\x22\x00\x2e\x00\x16\x00\x88\x00\xcb\x00\x32\x00\x1a\x00\x34\x00\x35\x00\x36\x00\xc9\x00\x90\x00\x91\x00\x92\x00\x93\x00\xce\x00\xdb\x00\x96\x00\x97\x00\x98\x00\xdb\x00\xdc\x00\x9b\x00\x9c\x00\x9d\x00\x17\x00\x22\x00\xa4\x00\x24\x00\xa6\x00\xdd\x00\xa4\x00\x28\x00\xcb\x00\xed\x00\xee\x00\x22\x00\xbc\x00\x2e\x00\x6b\x00\xd0\x00\x54\x00\x32\x00\x56\x00\x34\x00\x35\x00\x36\x00\xdb\x00\xd1\x00\xdb\x00\xdc\x00\xd4\x00\x17\x00\xd6\x00\xde\x00\xdf\x00\xd0\x00\x54\x00\xe4\x00\x56\x00\x57\x00\x58\x00\xcb\x00\x22\x00\xe1\x00\xed\x00\xee\x00\xe4\x00\xec\x00\xca\x00\xde\x00\xdf\x00\xcd\x00\xce\x00\x3e\x00\xd0\x00\x01\x00\x3e\x00\xdb\x00\xdc\x00\x08\x00\x17\x00\x0a\x00\x08\x00\x09\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x88\x00\x22\x00\x3e\x00\x4b\x00\x4c\x00\x0d\x00\x0e\x00\xe7\x00\x90\x00\x91\x00\x92\x00\x93\x00\x05\x00\x06\x00\x96\x00\x97\x00\x98\x00\xcb\x00\x25\x00\x9b\x00\x9c\x00\x9d\x00\xdb\x00\x4a\x00\x4b\x00\xde\x00\xdf\x00\xcb\x00\xa4\x00\x16\x00\x31\x00\x32\x00\x33\x00\xdb\x00\xdc\x00\x72\x00\x73\x00\x88\x00\x72\x00\x73\x00\xed\x00\xee\x00\xe9\x00\xdb\x00\xdc\x00\x90\x00\x91\x00\x92\x00\x93\x00\xd0\x00\xdf\x00\x96\x00\x97\x00\x98\x00\x6c\x00\x73\x00\x9b\x00\x9c\x00\x9d\x00\x22\x00\xea\x00\x24\x00\x17\x00\xde\x00\xdf\x00\xa4\x00\xca\x00\x59\x00\x5a\x00\xcd\x00\xce\x00\x7d\x00\xd0\x00\x22\x00\xd0\x00\x32\x00\x95\x00\x34\x00\x35\x00\x36\x00\xdb\x00\xdc\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xde\x00\xdf\x00\xd0\x00\xa4\x00\x19\x00\xa6\x00\xd1\x00\xe7\x00\x22\x00\xd4\x00\x24\x00\xd6\x00\x1a\x00\x22\x00\xec\x00\xca\x00\xde\x00\xdf\x00\xcd\x00\xce\x00\x17\x00\xd0\x00\xe1\x00\x31\x00\x32\x00\xe4\x00\x34\x00\x35\x00\x36\x00\x2b\x00\xec\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x28\x00\xcd\x00\x19\x00\x19\x00\xcd\x00\x63\x00\xcb\x00\xe7\x00\x66\x00\x67\x00\xcf\x00\x22\x00\x22\x00\xe9\x00\xda\x00\xdb\x00\xdc\x00\xda\x00\xdb\x00\xdc\x00\xcd\x00\x63\x00\xdb\x00\xdc\x00\xe9\x00\x67\x00\xdf\x00\xcb\x00\x80\x00\x81\x00\x82\x00\xcf\x00\x19\x00\xda\x00\xdb\x00\xdc\x00\x88\x00\x11\x00\x26\x00\x08\x00\x09\x00\x22\x00\x26\x00\xdb\x00\xdc\x00\x2d\x00\x92\x00\xdf\x00\xa5\x00\x2d\x00\x96\x00\x22\x00\x98\x00\x24\x00\x4e\x00\x9b\x00\x9c\x00\x9d\x00\x52\x00\x53\x00\x54\x00\x55\x00\x63\x00\x64\x00\xa4\x00\x59\x00\x5a\x00\x32\x00\x25\x00\x34\x00\x35\x00\x36\x00\xdb\x00\x88\x00\xe4\x00\xde\x00\xdf\x00\xc5\x00\xc6\x00\x19\x00\x31\x00\x32\x00\x33\x00\x92\x00\x9e\x00\xcd\x00\xa0\x00\x96\x00\x22\x00\x98\x00\xed\x00\xee\x00\x9b\x00\x9c\x00\x9d\x00\x2c\x00\x2d\x00\x22\x00\xda\x00\xdb\x00\xdc\x00\xa4\x00\xca\x00\xbc\x00\x29\x00\xcd\x00\xce\x00\xc0\x00\xd0\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4b\x00\x4c\x00\x95\x00\x59\x00\x5a\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4d\x00\x4e\x00\xa4\x00\xe7\x00\xa6\x00\x52\x00\x53\x00\x54\x00\x55\x00\xc8\x00\xc9\x00\xca\x00\x59\x00\x5a\x00\xcd\x00\xce\x00\xd9\x00\xd0\x00\x81\x00\x82\x00\xa7\x00\xa8\x00\xa9\x00\xe0\x00\xe1\x00\x88\x00\x2f\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x22\x00\x17\x00\x92\x00\x22\x00\x26\x00\x24\x00\x96\x00\xe7\x00\x98\x00\x2b\x00\x01\x00\x9b\x00\x9c\x00\x9d\x00\x49\x00\x4a\x00\x4b\x00\x08\x00\x09\x00\x32\x00\xa4\x00\x34\x00\x35\x00\x36\x00\x4e\x00\x4f\x00\x50\x00\x1c\x00\x52\x00\x53\x00\x54\x00\x55\x00\xcd\x00\x22\x00\xdb\x00\x59\x00\x5a\x00\xde\x00\xdf\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x1b\x00\x16\x00\xda\x00\xdb\x00\xdc\x00\xc5\x00\xc6\x00\x22\x00\x74\x00\xed\x00\xee\x00\x1c\x00\x54\x00\xcd\x00\x56\x00\xca\x00\x58\x00\x22\x00\xcd\x00\xce\x00\xbc\x00\xd0\x00\x52\x00\x53\x00\x54\x00\x55\x00\xda\x00\xdb\x00\xdc\x00\x59\x00\x5a\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xcb\x00\xa7\x00\xa8\x00\xa9\x00\xcf\x00\xdb\x00\x03\x00\xe7\x00\xde\x00\xdf\x00\x94\x00\x08\x00\x09\x00\xcd\x00\xcb\x00\x22\x00\xdb\x00\xdc\x00\xcf\x00\xe1\x00\xdf\x00\x28\x00\xe4\x00\xed\x00\xee\x00\x88\x00\xda\x00\xdb\x00\xdc\x00\xdb\x00\xdb\x00\xdc\x00\xde\x00\xdf\x00\xdf\x00\x92\x00\xdb\x00\xdc\x00\xa5\x00\x96\x00\xdf\x00\x98\x00\x2e\x00\xd0\x00\x9b\x00\x9c\x00\x9d\x00\xed\x00\xee\x00\x35\x00\x36\x00\xdb\x00\xd9\x00\xa4\x00\xde\x00\xdf\x00\xe9\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\x22\x00\xcd\x00\x9e\x00\xcb\x00\xa0\x00\x2e\x00\x28\x00\xcf\x00\xed\x00\xee\x00\xec\x00\xce\x00\x35\x00\x36\x00\xda\x00\xdb\x00\xdc\x00\x68\x00\x9e\x00\xdb\x00\xdc\x00\xa1\x00\x9e\x00\xdf\x00\xdb\x00\xa1\x00\xdd\x00\xde\x00\xdf\x00\x9e\x00\xca\x00\x74\x00\xa1\x00\xcd\x00\xce\x00\xe8\x00\xd0\x00\x1f\x00\xd0\x00\x74\x00\x22\x00\xcd\x00\xed\x00\xee\x00\x0d\x00\x0e\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xde\x00\xdf\x00\xda\x00\xdb\x00\xdc\x00\x1f\x00\x61\x00\xe7\x00\x22\x00\xdb\x00\x0d\x00\x0e\x00\xde\x00\xdf\x00\xec\x00\xe4\x00\x85\x00\x86\x00\x87\x00\x88\x00\xe8\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x0d\x00\x0e\x00\xed\x00\xee\x00\x92\x00\xba\x00\xbb\x00\xbc\x00\x96\x00\xe8\x00\x98\x00\xcd\x00\x2a\x00\x9b\x00\x9c\x00\x9d\x00\x86\x00\x87\x00\x88\x00\x03\x00\x37\x00\x38\x00\xa4\x00\xe9\x00\xda\x00\xdb\x00\xdc\x00\xaa\x00\x92\x00\x6d\x00\x6e\x00\x6f\x00\x96\x00\x1a\x00\x98\x00\x1c\x00\x0a\x00\x9b\x00\x9c\x00\x9d\x00\x0c\x00\x0d\x00\x0e\x00\x4e\x00\x43\x00\x50\x00\xa4\x00\x52\x00\x53\x00\x54\x00\x55\x00\x8b\x00\x8c\x00\x8d\x00\x59\x00\x5a\x00\x6e\x00\x6f\x00\x5d\x00\x5e\x00\xca\x00\x0d\x00\x0e\x00\xcd\x00\xce\x00\x2b\x00\xd0\x00\x2d\x00\x45\x00\x34\x00\x35\x00\x36\x00\x51\x00\x52\x00\x53\x00\x54\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x7d\x00\x27\x00\xca\x00\x29\x00\xe9\x00\xcd\x00\xce\x00\xe7\x00\xd0\x00\x37\x00\x38\x00\x54\x00\x27\x00\x56\x00\x29\x00\x58\x00\x0d\x00\x0e\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe9\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x37\x00\x38\x00\xe7\x00\x4e\x00\x29\x00\x50\x00\x2b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x0c\x00\x0d\x00\x0e\x00\x59\x00\x5a\x00\xcb\x00\x83\x00\x5d\x00\x5e\x00\xcf\x00\x7e\x00\x27\x00\x4e\x00\x29\x00\x50\x00\x7d\x00\x52\x00\x53\x00\x54\x00\x55\x00\x40\x00\xdb\x00\xdc\x00\x59\x00\x5a\x00\xdf\x00\x89\x00\x5d\x00\x5e\x00\x05\x00\x06\x00\x4d\x00\x4e\x00\x09\x00\x50\x00\x0b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x27\x00\x92\x00\x29\x00\x59\x00\x5a\x00\x96\x00\x16\x00\x98\x00\x8d\x00\xce\x00\x9b\x00\x9c\x00\x9d\x00\x89\x00\x1e\x00\x8a\x00\xda\x00\xdb\x00\xdc\x00\xa4\x00\xde\x00\xdf\x00\xdb\x00\x27\x00\xdd\x00\xde\x00\xdf\x00\x8b\x00\x8c\x00\x8d\x00\x4d\x00\x4e\x00\x0d\x00\x0e\x00\xd0\x00\x52\x00\x53\x00\x54\x00\x55\x00\x68\x00\xed\x00\xee\x00\x59\x00\x5a\x00\xda\x00\xdb\x00\xdc\x00\x74\x00\xde\x00\xdf\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xd0\x00\xe9\x00\xca\x00\x4d\x00\x9e\x00\xcd\x00\xce\x00\xec\x00\xd0\x00\xd9\x00\xa7\x00\xa8\x00\xa9\x00\xc3\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe9\x00\xce\x00\x08\x00\x09\x00\xec\x00\x0d\x00\x0e\x00\xe7\x00\xd2\x00\xaa\x00\x27\x00\xd5\x00\x29\x00\xd7\x00\xdb\x00\xd9\x00\xdd\x00\xde\x00\xdf\x00\x0f\x00\x10\x00\xce\x00\xe0\x00\xe1\x00\xe2\x00\x27\x00\xe4\x00\x29\x00\xe6\x00\xe9\x00\x24\x00\x25\x00\xed\x00\xee\x00\xdb\x00\xe9\x00\xdd\x00\xde\x00\xdf\x00\x94\x00\x27\x00\xce\x00\x29\x00\x31\x00\x32\x00\x33\x00\xda\x00\xdb\x00\xdc\x00\x44\x00\xde\x00\xdf\x00\xed\x00\xee\x00\xdb\x00\x65\x00\xdd\x00\xde\x00\xdf\x00\xa7\x00\xa8\x00\xa9\x00\x4d\x00\x4e\x00\x88\x00\x89\x00\x8a\x00\x52\x00\x53\x00\x54\x00\x55\x00\x3f\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x53\x00\x54\x00\x55\x00\x4d\x00\x4e\x00\x3f\x00\x59\x00\x5a\x00\x52\x00\x53\x00\x54\x00\x55\x00\x8c\x00\x8d\x00\x8e\x00\x59\x00\x5a\x00\xdb\x00\xa8\x00\xa9\x00\xde\x00\xdf\x00\x53\x00\x54\x00\x55\x00\x4d\x00\x4e\x00\x29\x00\x59\x00\x5a\x00\x52\x00\x53\x00\x54\x00\x55\x00\xdf\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x88\x00\x89\x00\x8a\x00\x4d\x00\x4e\x00\x27\x00\x44\x00\x29\x00\x52\x00\x53\x00\x54\x00\x55\x00\x27\x00\xea\x00\x29\x00\x59\x00\x5a\x00\x44\x00\x27\x00\xd9\x00\x29\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x44\x00\xe0\x00\xe1\x00\xe2\x00\x44\x00\xe4\x00\x4e\x00\xe6\x00\x50\x00\x29\x00\x52\x00\x53\x00\x54\x00\x55\x00\x27\x00\x23\x00\x29\x00\x59\x00\x5a\x00\x0d\x00\x0e\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x25\x00\x27\x00\x27\x00\x29\x00\x4e\x00\x27\x00\x50\x00\x29\x00\x52\x00\x53\x00\x54\x00\x55\x00\x31\x00\x32\x00\x33\x00\x59\x00\x5a\x00\x05\x00\x06\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xa5\x00\x27\x00\x4e\x00\x29\x00\x50\x00\x61\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x27\x00\xdb\x00\x29\x00\xe8\x00\xde\x00\xdf\x00\x27\x00\x22\x00\x29\x00\xdb\x00\x0d\x00\x0e\x00\xde\x00\xdf\x00\x27\x00\x27\x00\x29\x00\x29\x00\xdb\x00\xed\x00\xee\x00\xde\x00\xdf\x00\x9e\x00\x27\x00\x17\x00\x29\x00\xed\x00\xee\x00\x17\x00\x2b\x00\xdb\x00\x2d\x00\x16\x00\xde\x00\xdf\x00\xed\x00\xee\x00\xcd\x00\x17\x00\xdb\x00\xd0\x00\x16\x00\xde\x00\xdf\x00\x29\x00\x9e\x00\x2b\x00\x2d\x00\xed\x00\xee\x00\xda\x00\xdb\x00\xdc\x00\x62\x00\xde\x00\xdf\x00\xdb\x00\xed\x00\xee\x00\xde\x00\xdf\x00\x4e\x00\x5c\x00\x50\x00\x4a\x00\x52\x00\x53\x00\x54\x00\x55\x00\x7a\x00\xce\x00\x29\x00\x59\x00\x5a\x00\xed\x00\xee\x00\x5d\x00\x5e\x00\x62\x00\x60\x00\x8f\x00\xd9\x00\x4a\x00\xdb\x00\x0c\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\x1a\x00\xe4\x00\xce\x00\xe6\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x28\x00\x75\x00\xed\x00\xee\x00\x29\x00\xd9\x00\x29\x00\xdb\x00\x1a\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xce\x00\xe4\x00\xd0\x00\xe6\x00\x0d\x00\x0e\x00\x08\x00\x09\x00\x42\x00\x43\x00\xed\x00\xee\x00\x29\x00\xdb\x00\x0f\x00\xdd\x00\xde\x00\xdf\x00\x05\x00\x06\x00\x05\x00\x06\x00\x4e\x00\x17\x00\x50\x00\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\xec\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x28\x00\x29\x00\x5d\x00\x5e\x00\x17\x00\x60\x00\x7b\x00\x4e\x00\x22\x00\x50\x00\x29\x00\x52\x00\x53\x00\x54\x00\x55\x00\x05\x00\x06\x00\x28\x00\x59\x00\x5a\x00\x79\x00\x5c\x00\x5d\x00\x5e\x00\x78\x00\x79\x00\x7a\x00\x4e\x00\x27\x00\x50\x00\x47\x00\x52\x00\x53\x00\x54\x00\x55\x00\xd0\x00\x4a\x00\x4b\x00\x59\x00\x5a\x00\xce\x00\x5c\x00\x5d\x00\x5e\x00\x1a\x00\xda\x00\xdb\x00\xdc\x00\x22\x00\xde\x00\xdf\x00\x03\x00\x04\x00\xdb\x00\x2b\x00\xdd\x00\xde\x00\xdf\x00\x4a\x00\x4b\x00\x85\x00\x86\x00\x7a\x00\xec\x00\x28\x00\x29\x00\x64\x00\x9e\x00\x05\x00\x06\x00\x0c\x00\xed\x00\xee\x00\x4e\x00\x17\x00\x50\x00\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\x22\x00\x1c\x00\x05\x00\x59\x00\x5a\x00\x29\x00\x5c\x00\x5d\x00\x5e\x00\x1c\x00\x16\x00\x1c\x00\x4e\x00\x22\x00\x50\x00\x28\x00\x52\x00\x53\x00\x54\x00\x55\x00\x1a\x00\x17\x00\x51\x00\x59\x00\x5a\x00\x29\x00\x5c\x00\x5d\x00\x5e\x00\x80\x00\x8f\x00\xd0\x00\x7a\x00\x8f\x00\xce\x00\x8f\x00\x25\x00\x8f\x00\x22\x00\x01\x00\x1b\x00\xda\x00\xdb\x00\xdc\x00\x17\x00\xde\x00\xdf\x00\xdb\x00\x8f\x00\xdd\x00\xde\x00\xdf\x00\x1a\x00\x0f\x00\xce\x00\x28\x00\x6b\x00\x66\x00\x1b\x00\xec\x00\x16\x00\x22\x00\x17\x00\x17\x00\x5d\x00\xed\x00\xee\x00\xdb\x00\x31\x00\xdd\x00\xde\x00\xdf\x00\x62\x00\x1a\x00\xce\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x05\x00\x22\x00\x2b\x00\xed\x00\xee\x00\xdb\x00\x2b\x00\xdd\x00\xde\x00\xdf\x00\x1c\x00\x2b\x00\x41\x00\x1a\x00\x4e\x00\x29\x00\x50\x00\x4c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x0c\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x22\x00\x5c\x00\x5d\x00\x5e\x00\x17\x00\x22\x00\x7a\x00\x28\x00\x24\x00\x50\x00\x24\x00\xce\x00\x1b\x00\x62\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x62\x00\x2b\x00\xdb\x00\x1b\x00\xdd\x00\xde\x00\xdf\x00\x1b\x00\x2c\x00\xce\x00\x01\x00\x68\x00\x28\x00\x1b\x00\x05\x00\x06\x00\x22\x00\x1b\x00\x5e\x00\x29\x00\xed\x00\xee\x00\xdb\x00\x7a\x00\xdd\x00\xde\x00\xdf\x00\x1f\x00\x0f\x00\x0f\x00\x7b\x00\x4e\x00\x16\x00\x50\x00\x1c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x46\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x4c\x00\x5c\x00\x5d\x00\x5e\x00\x17\x00\x17\x00\x17\x00\x4e\x00\x28\x00\x50\x00\x0f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x66\x00\x0c\x00\x1f\x00\x59\x00\x5a\x00\x28\x00\x5c\x00\x5d\x00\x5e\x00\x78\x00\x79\x00\x7a\x00\x4e\x00\x8f\x00\x50\x00\x8f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x8f\x00\x28\x00\x1c\x00\x59\x00\x5a\x00\x29\x00\x5c\x00\x5d\x00\x5e\x00\x1c\x00\x50\x00\x51\x00\x52\x00\x53\x00\xce\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x22\x00\x7a\x00\x17\x00\x28\x00\xdb\x00\x7a\x00\xdd\x00\xde\x00\xdf\x00\x7a\x00\x2b\x00\x68\x00\x7a\x00\x4e\x00\x24\x00\x50\x00\x66\x00\x52\x00\x53\x00\x54\x00\x55\x00\x7a\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x22\x00\x5c\x00\x5d\x00\x5e\x00\x7b\x00\x62\x00\x17\x00\x4e\x00\x24\x00\x50\x00\x27\x00\x52\x00\x53\x00\x54\x00\x55\x00\x1a\x00\x1c\x00\x1b\x00\x59\x00\x5a\x00\x77\x00\x5c\x00\x5d\x00\x5e\x00\x1c\x00\x47\x00\x17\x00\x24\x00\xd0\x00\x24\x00\x1c\x00\xce\x00\x22\x00\x01\x00\x22\x00\x29\x00\x8f\x00\x1a\x00\xda\x00\xdb\x00\xdc\x00\x05\x00\xde\x00\xdf\x00\xdb\x00\x17\x00\xdd\x00\xde\x00\xdf\x00\x17\x00\x17\x00\xce\x00\x17\x00\x17\x00\x16\x00\x22\x00\xec\x00\x17\x00\x17\x00\x1f\x00\x17\x00\x2d\x00\xed\x00\xee\x00\xdb\x00\x22\x00\xdd\x00\xde\x00\xdf\x00\x1b\x00\x17\x00\xce\x00\x21\x00\x41\x00\x41\x00\x41\x00\x2b\x00\x1f\x00\x74\x00\x27\x00\x4c\x00\x1a\x00\xed\x00\xee\x00\xdb\x00\x6b\x00\xdd\x00\xde\x00\xdf\x00\x2d\x00\x8f\x00\x8f\x00\x0c\x00\x4e\x00\x17\x00\x50\x00\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\x17\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x17\x00\x5c\x00\x5d\x00\x5e\x00\x22\x00\x17\x00\x50\x00\x17\x00\x21\x00\xce\x00\x22\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x1f\x00\x22\x00\x1f\x00\xdb\x00\x2b\x00\xdd\x00\xde\x00\xdf\x00\x1e\x00\x32\x00\xce\x00\x68\x00\x0f\x00\x01\x00\x29\x00\x8f\x00\x22\x00\x8f\x00\x05\x00\x8f\x00\x6b\x00\xed\x00\xee\x00\xdb\x00\x8f\x00\xdd\x00\xde\x00\xdf\x00\x2b\x00\x22\x00\x7b\x00\x8f\x00\x4e\x00\x1b\x00\x50\x00\x0f\x00\x52\x00\x53\x00\x54\x00\x55\x00\x72\x00\xed\x00\xee\x00\x59\x00\x5a\x00\x1e\x00\x5c\x00\x5d\x00\x5e\x00\x1b\x00\x6f\x00\x16\x00\x4e\x00\x65\x00\x50\x00\x0c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x90\x00\x28\x00\x90\x00\x59\x00\x5a\x00\x0f\x00\x5c\x00\x5d\x00\x5e\x00\x90\x00\x8f\x00\x0f\x00\x4e\x00\x0f\x00\x50\x00\x1b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x1b\x00\x1b\x00\x90\x00\x59\x00\x5a\x00\x2c\x00\x5c\x00\x5d\x00\x5e\x00\x1b\x00\x2c\x00\x90\x00\x50\x00\x51\x00\x52\x00\x53\x00\xce\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x00\x00\x72\x00\xff\xff\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\x68\x00\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xed\x00\xee\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x7b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xed\x00\xee\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x79\x00\x7a\x00\xff\xff\xd0\x00\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xda\x00\xdb\x00\xdc\x00\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xec\x00\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xed\x00\xee\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xdb\x00\x59\x00\x5a\x00\xde\x00\xdf\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xed\x00\xee\x00\xff\xff\x59\x00\x5a\x00\xd0\x00\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xce\x00\xda\x00\xdb\x00\xdc\x00\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xec\x00\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\x79\x00\x7a\x00\x4e\x00\x7c\x00\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xce\x00\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xff\xff\xde\x00\xdf\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xec\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xce\x00\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xce\x00\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xce\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\x5b\x00\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\xce\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xce\x00\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\xce\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x4e\x00\xff\xff\xce\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\x05\x00\x06\x00\xff\xff\xce\x00\xff\xff\x05\x00\x06\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\x0c\x00\xed\x00\xee\x00\x0f\x00\xdb\x00\x16\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x16\x00\xff\xff\xff\xff\x1e\x00\x1f\x00\xd5\x00\xff\xff\xff\xff\x1e\x00\xd9\x00\xff\xff\xdb\x00\xed\x00\xee\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xed\x00\xee\x00\xef\x00\xf0\x00\xdb\x00\xff\xff\xff\xff\xde\x00\xdf\x00\xff\xff\x42\x00\xce\x00\x01\x00\x02\x00\xff\xff\x42\x00\x05\x00\x06\x00\xff\xff\xff\xff\x70\x00\x71\x00\xed\x00\xee\x00\xdb\x00\xff\xff\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\x5a\x00\xff\xff\xed\x00\xee\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x00\xdb\x00\x79\x00\x7a\x00\xde\x00\xdf\x00\xff\xff\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x70\x00\x71\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xed\x00\xee\x00\xdb\x00\xff\xff\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xd5\x00\xff\xff\xd7\x00\xdb\x00\xd9\x00\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\x7b\x00\xe0\x00\xe1\x00\xe2\x00\xd0\x00\xe4\x00\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xff\xff\xda\x00\xdb\x00\xdc\x00\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\xec\x00\xff\xff\xff\xff\xdb\x00\xff\xff\xff\xff\xde\x00\xdf\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xff\xff\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\xff\xff\xff\xff\xff\xff\xff\xff\xec\x00\xdb\x00\xff\xff\xff\xff\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xed\x00\xee\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\x6a\x00\xff\xff\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\xff\xff\x73\x00\xff\xff\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\xff\xff\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\x6a\x00\xff\xff\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\xff\xff\x73\x00\xff\xff\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\xff\xff\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\xff\xff\x73\x00\xff\xff\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\xff\xff\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x6c\x00\x6d\x00\x6e\x00\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x6c\x00\x6d\x00\x6e\x00\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\x73\x00\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x6c\x00\x6d\x00\x6e\x00\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x8b\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\x73\x00\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x6c\x00\x6d\x00\x6e\x00\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x8b\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x71\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x16\x00\x17\x00\x18\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x1e\x00\xff\xff\x20\x00\x8b\x00\x22\x00\xff\xff\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x66\x00\xff\xff\x68\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x7b\x00\x18\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x87\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x68\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xd2\x00\x7b\x00\x1e\x00\xd5\x00\x20\x00\xd7\x00\xff\xff\xd9\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\x87\x00\xe0\x00\xe1\x00\xe2\x00\x2d\x00\xe4\x00\x2f\x00\xe6\x00\xd2\x00\x32\x00\xff\xff\xd5\x00\xff\xff\xd7\x00\xff\xff\xd9\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xe0\x00\xe1\x00\xe2\x00\x42\x00\xe4\x00\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\x19\x00\xff\xff\xff\xff\xd2\x00\x7b\x00\x1e\x00\xd5\x00\x20\x00\xd7\x00\x22\x00\xd9\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x87\x00\xe0\x00\xe1\x00\xe2\x00\xff\xff\xe4\x00\xff\xff\xe6\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\x42\x00\x27\x00\x28\x00\x29\x00\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\x87\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x42\x00\xff\xff\x05\x00\x06\x00\xff\xff\x66\x00\x09\x00\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\x42\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x22\x00\xff\xff\xff\xff\x25\x00\x42\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\x1f\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x66\x00\x09\x00\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x65\x00\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x68\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x19\x00\x7b\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\x87\x00\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\x1f\x00\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\x76\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\x77\x00\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\x77\x00\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\x76\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x82\x00\x83\x00\x84\x00\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\x00\x71\x00\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\x84\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x2f\x00\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x1e\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\x02\x00\x7b\x00\xff\xff\x05\x00\x06\x00\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x7b\x00\x1e\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x16\x00\xff\xff\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x01\x00\x02\x00\xff\xff\x7b\x00\x05\x00\x06\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x1e\x00\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x16\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x65\x00\x66\x00\x05\x00\x68\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x16\x00\x17\x00\xff\xff\x7b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x08\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x78\x00\xff\xff\xff\xff\x7b\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x01\x00\xff\xff\x65\x00\x66\x00\x05\x00\x68\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x16\x00\xff\xff\xff\xff\x7b\x00\xff\xff\x01\x00\xff\xff\x65\x00\x66\x00\x05\x00\x68\x00\xff\xff\x22\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x16\x00\x17\x00\xff\xff\x7b\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x01\x00\x02\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x1c\x00\x65\x00\x66\x00\x01\x00\x68\x00\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x16\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x68\x00\x05\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\x7b\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x7b\x00\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\x1c\x00\xff\xff\x7b\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x01\x00\x68\x00\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x7b\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x65\x00\x66\x00\x05\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x01\x00\x02\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\x7b\x00\xff\xff\x05\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x01\x00\xff\xff\x65\x00\x66\x00\x1e\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x01\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x7b\x00\x16\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x7b\x00\x01\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x7b\x00\x01\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x7b\x00\x05\x00\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x7b\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x16\x00\xff\xff\xff\xff\xff\xff\x01\x00\x7b\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x7b\x00\x01\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x16\x00\xff\xff\xff\xff\xff\xff\x01\x00\x7b\x00\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xff\xff\xb4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xff\xff\xb4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb0\x00\xb1\x00\xb2\x00\xff\xff\xb4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb1\x00\xb2\x00\xff\xff\xb4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xb4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xbd\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xa4\x00\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xe7\x00\xff\xff\xff\xff\xc2\x00\xff\xff\xc4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xb4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xbd\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xa4\x00\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xe7\x00\xff\xff\xff\xff\xc2\x00\xff\xff\xc4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xb4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xbd\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xa4\x00\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xe7\x00\xff\xff\xff\xff\xc2\x00\xff\xff\xc4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xc4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xb4\x00\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xbe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xe7\x00\xe8\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xe7\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xff\xff\xff\xff\xff\xff\xa3\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xae\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb5\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\x9f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xd3\x00\xff\xff\xd5\x00\xff\xff\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xff\xff\xe3\x00\xff\xff\xe5\x00\xe6\x00\xe7\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xb8\x00\xb9\x00\xa4\x00\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xb9\x00\xd0\x00\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa2\x00\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa3\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa2\x00\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xbd\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\x90\x00\x91\x00\x92\x00\x93\x00\xff\xff\xff\xff\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\x93\x00\xd0\x00\xe7\x00\x96\x00\x97\x00\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\x96\x00\xff\xff\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\x98\x00\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xa4\x00\xff\xff\xff\xff\xa7\x00\xa8\x00\xa9\x00\xff\xff\xab\x00\xac\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xa7\x00\xa8\x00\xa9\x00\xff\xff\xab\x00\xac\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xca\x00\xff\xff\xff\xff\xcd\x00\xce\x00\xff\xff\xd0\x00\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x0c\x00\x09\x00\x0b\x00\xac\x00\x09\x00\xad\x00\x91\x02\xd1\x03\xd2\x03\xd3\x03\xbd\x02\xe3\x03\x5a\x03\xc2\x04\xa0\x04\xaa\x04\xc0\x01\x0c\x02\xbd\x02\xc0\x01\x0c\x02\xbe\x01\x18\x01\xd5\x00\xde\x03\xba\x03\xc3\x04\xc4\x04\xc0\x01\x69\x02\xd5\x00\xc0\x01\x69\x02\x9c\x03\x7c\x02\x69\x04\xa0\x03\xb9\x03\xba\x03\xd5\x00\x9f\x03\x82\x03\xc8\x02\x12\x03\xc0\x01\xea\x03\x55\x04\x6f\x02\xb7\xff\xd6\x00\xcd\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\xc0\x01\x34\x03\xf2\x01\x6e\x00\x6f\x00\xd5\x00\xc0\x01\x06\x04\x6a\x02\xc0\x01\xea\x03\x6c\x02\x7e\x02\xc0\x01\xf0\x03\x35\x01\x09\x02\xc0\x01\x34\x03\x2e\x01\xd5\x04\x7e\x02\xf8\x01\xb4\x00\xc0\x01\x06\x04\x19\x01\xc5\x01\xba\x04\x34\x01\xf0\x00\xa5\x04\xa2\x03\xe9\x00\xea\x00\x1a\x01\xef\x00\xec\x00\xf3\x01\xed\x00\xb2\x00\x6d\x03\xb3\x00\x3a\x01\x9b\x04\x1d\x04\x78\x02\xca\x02\xce\x04\xc0\x01\xf0\x03\xb8\x04\xf3\x01\xf5\xff\xd0\x04\x6c\x04\xc6\x01\xff\x03\x2f\x01\x0a\x02\x4b\x00\x9c\x04\x4c\x00\x4d\x00\x6e\x03\xf5\x00\x75\x03\x0b\x02\x2f\x01\xc6\x03\xc7\x03\x39\x02\x5a\x03\x1e\x04\xe2\x00\xbf\x04\xcf\x00\xf8\x00\xf9\x00\xfa\x00\x56\x03\x79\x02\x2f\x01\x87\x00\xb4\x00\x88\x00\xa4\x04\xc8\x03\xff\x01\x00\x02\x83\x03\x25\x00\x61\x04\xfd\x03\xcb\x04\x8a\x00\x7d\x02\xa5\x04\x07\x04\x8b\x00\xe3\x00\x8c\x00\x8d\x00\x8e\x00\xa8\x04\x87\x00\x42\x02\x88\x00\xeb\x03\x62\x04\xff\x01\x00\x02\x6b\x04\x6c\x04\x9d\x02\xb7\x00\x08\x04\x8a\x00\x21\x00\xbb\x03\xc9\x02\x8b\x00\xb7\x04\x8c\x00\x8d\x00\x8e\x00\xc9\x02\xf1\x03\xec\x03\x7f\x02\x6d\x04\x21\x00\xbb\x03\x74\x00\x6e\x04\xca\x02\x75\x00\x25\x00\x82\x02\x0d\x02\xd4\x03\xca\x02\x0e\x02\x00\x01\xc5\x04\xe4\x03\x21\x00\xb9\x00\xc6\x04\xd7\x00\xbf\x00\x76\x00\x77\x00\x20\x00\x21\x00\x22\x00\xd7\x00\x24\x00\x25\x00\x6b\x02\x21\x00\xb9\x00\x6d\x02\xf2\x03\xbf\x00\xd7\x00\xd4\x03\x4c\x02\xf8\x01\x00\x01\x35\x03\xd5\x03\x92\x02\xbf\x01\x0a\x00\x0a\x00\xc7\x04\x0a\x00\x0a\x00\x20\x00\x21\x00\x22\x00\xbf\x01\x24\x00\x25\x00\x8f\x00\xd7\x00\x36\x03\xbb\x04\xbc\x04\xbd\x04\xf9\x01\x74\x00\x90\x00\x10\x00\x91\x00\x12\x00\xd5\x03\x6d\x03\x13\x00\x14\x00\x15\x00\xab\x01\x61\x03\x16\x00\x17\x00\x18\x00\x8f\x00\xac\x04\x12\x04\x3a\x02\x77\x00\x15\x01\x19\x00\xac\x01\x90\x00\x10\x00\x91\x00\x12\x00\x3e\x02\xc5\x04\x13\x00\x14\x00\x15\x00\xc6\x04\x6d\x04\x16\x00\x17\x00\x18\x00\x6e\x04\xf1\x02\x88\x02\xb6\x00\xb7\x00\xe9\x01\x19\x00\x21\x00\xb9\x00\xea\x01\xad\x04\xbf\x00\x21\x00\xb9\x00\xeb\x01\x87\x00\xbf\x00\x88\x00\xf2\x02\xfe\x01\xff\x01\x00\x02\x1c\x00\xc7\x04\xa6\x04\x1d\x00\x1e\x00\x8a\x00\x1f\x00\xb8\x00\x32\x02\x8b\x00\x7b\x03\x8c\x00\x8d\x00\x8e\x00\x66\x04\x74\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x21\x00\xb9\x00\x1d\x00\x1e\x00\x96\x04\x1f\x00\x26\x00\x53\x04\x54\x04\x6d\x04\x47\x04\x77\x00\xd9\x01\x6e\x04\x5d\x03\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x2c\x00\x2d\x00\x31\x04\x32\x04\x21\x00\xb9\x00\x99\x04\x26\x00\xbf\x00\xc5\x01\xb4\x00\xb5\x00\xb6\x00\xb7\x00\x72\x04\x4d\x02\xf0\x00\x35\x02\xf2\x00\x55\x04\x6f\x02\x9c\x02\xb6\x00\xb7\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x20\x00\x21\x00\x22\x00\x6e\x00\x6f\x00\x2c\x00\x2d\x00\x74\x04\x5f\x03\x87\x00\xc6\x01\x88\x00\xa2\x01\xa0\xfd\xec\x00\x6f\x03\xed\x00\x28\x04\xf6\x00\x15\x01\xa0\xfd\x8a\x00\x35\x02\x8f\x00\xc9\x04\x8b\x00\xbd\x02\x8c\x00\x8d\x00\x8e\x00\xe7\x03\x90\x00\x10\x00\x91\x00\x12\x00\xe8\x03\x74\x00\x13\x00\x14\x00\x15\x00\x21\x00\xb9\x00\x16\x00\x17\x00\x18\x00\xf9\x02\x87\x00\x06\x02\x88\x00\x07\x02\x23\x00\x19\x00\x89\x00\xb8\x00\xa7\x03\x77\x00\xfa\x02\x27\x04\x8a\x00\x90\x04\x00\x01\x32\x02\x8b\x00\xfb\x02\x8c\x00\x8d\x00\x8e\x00\x74\x00\x3f\x02\x21\x00\xb9\x00\x40\x02\x4f\x03\x41\x02\x24\x00\x25\x00\x33\x04\x32\x02\x85\x02\x09\x01\x0a\x01\x0b\x01\x9a\x03\x15\x01\x42\x02\xf7\x02\x77\x00\x43\x02\x0d\x01\x1c\x00\x24\x00\x25\x00\x1d\x00\x1e\x00\x39\x04\x1f\x00\xbc\x01\x39\x04\x21\x00\xb9\x00\xef\x00\xdc\x01\xf1\x00\xbb\x01\xb0\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x8f\x00\x15\x01\x39\x04\xbb\x00\xbd\x01\x77\x04\x78\x04\x26\x00\x90\x00\x10\x00\x91\x00\x12\x00\x2c\x00\x2d\x00\x13\x00\x14\x00\x15\x00\xb8\x00\xf5\x00\x16\x00\x17\x00\x18\x00\x74\x00\xa2\x02\xc6\x00\x75\x00\x25\x00\xb8\x00\x19\x00\x85\x03\xf8\x00\xf9\x00\xfa\x00\x21\x00\xb9\x00\xb1\x04\x3b\x04\x8f\x00\x3a\x04\x3b\x04\x76\x00\x77\x00\x2f\x04\x21\x00\xb9\x00\x90\x00\x10\x00\x91\x00\x12\x00\x33\x04\xf4\x02\x13\x00\x14\x00\x15\x00\x46\x02\x94\x04\x16\x00\x17\x00\x18\x00\x87\x00\x5b\x04\x88\x00\x25\x02\x24\x00\x25\x00\x19\x00\x1c\x00\x71\x01\x6f\x00\x1d\x00\x1e\x00\x47\x02\x1f\x00\xdf\x01\x00\x01\x40\x04\x29\x04\x8c\x00\x8d\x00\x8e\x00\x21\x00\xdd\x03\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x24\x00\x25\x00\x00\x01\x06\x02\x48\x03\x07\x02\x3f\x02\x26\x00\x87\x00\x40\x02\x88\x00\x7d\x03\xbd\x02\x15\x01\x0d\x01\x1c\x00\x24\x00\x25\x00\x1d\x00\x1e\x00\x28\x02\x1f\x00\x42\x02\xb6\x02\xb7\x02\x43\x02\x8c\x00\x8d\x00\x8e\x00\x12\x03\x0d\x01\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x29\x02\x4d\x02\xe4\x01\x14\x01\x4d\x02\xc3\x02\xbd\x00\x26\x00\xc4\x02\xc5\x02\xbe\x00\x15\x01\x15\x01\x3e\x04\x20\x00\x21\x00\x22\x00\x20\x00\x21\x00\x22\x00\x4d\x02\xc3\x02\x21\x00\xb9\x00\x48\x04\xef\x03\xbf\x00\xbd\x00\x41\x04\x42\x04\x43\x04\xbe\x00\x2a\x02\x20\x00\x21\x00\x22\x00\x8f\x00\x5d\x04\x62\x03\xef\x00\xf0\x00\xdf\x01\x64\x03\x21\x00\xb9\x00\xe1\x01\xb8\x02\xbf\x00\x60\x04\xe1\x01\x13\x00\x87\x00\x15\x00\x88\x00\x1e\x02\x16\x00\x17\x00\x18\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\xed\x03\xee\x03\x19\x00\x6e\x00\x6f\x00\x40\x04\xf5\x00\x8c\x00\x8d\x00\x8e\x00\x74\x00\x8f\x00\x85\x02\x75\x00\x25\x00\x5b\x03\xce\x01\x2b\x02\xf8\x00\xf9\x00\xfa\x00\xb8\x02\xd9\x01\xcf\x01\x4d\x03\x13\x00\x2c\x02\x15\x00\x72\x01\x77\x00\x16\x00\x17\x00\x18\x00\x56\x04\x54\x04\x6d\x03\x20\x00\x21\x00\x22\x00\x19\x00\x1c\x00\x0f\x03\x9f\x03\x1d\x00\x1e\x00\x10\x03\x1f\x00\x38\x04\x6b\x00\x6c\x00\x6d\x00\xbb\x00\xbc\x00\x05\x02\x6e\x00\x6f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\x55\x04\x6f\x02\x06\x02\x26\x00\x07\x02\xd2\x00\x6b\x00\x6c\x00\x6d\x00\xb9\x02\xba\x02\x1c\x00\x6e\x00\x6f\x00\x1d\x00\xbb\x02\x01\x02\x1f\x00\x95\x04\x43\x04\x8e\x04\x3f\x01\x40\x01\xe9\x00\xea\x00\x8f\x00\x60\x02\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xf0\x01\x64\x04\xb8\x02\x87\x00\xf1\x01\x88\x00\x13\x00\x26\x00\x15\x00\xf2\x01\xba\x01\x16\x00\x17\x00\x18\x00\xa3\x02\xc5\x00\xc6\x00\xbb\x01\xb0\x00\xe6\x03\x19\x00\x8c\x00\x8d\x00\x8e\x00\x68\x00\x61\x02\x62\x02\xb6\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x5a\x04\x85\x04\x74\x00\x6e\x00\x6f\x00\x75\x00\x25\x00\x10\x01\x72\x00\x63\x02\x17\x01\xa1\xfd\xcb\x03\x20\x00\x21\x00\x22\x00\xcd\x01\xce\x01\xa1\xfd\x0c\x04\x76\x00\x77\x00\x84\x04\x32\x02\xcf\x01\x09\x01\x1c\x00\x33\x02\x85\x04\x1d\x00\x1e\x00\x10\x04\x1f\x00\xaf\x02\x6b\x00\x6c\x00\x6d\x00\x20\x00\x21\x00\x22\x00\x6e\x00\x6f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xbd\x00\xa5\x04\x3f\x01\x40\x01\xbe\x00\x74\x00\xae\x00\x26\x00\x75\x00\x25\x00\x0f\x04\xaf\x00\xb0\x00\x73\x02\xbd\x00\xdd\x02\x21\x00\xb9\x00\xbe\x00\x84\x02\xbf\x00\x86\x04\x85\x02\x76\x00\x77\x00\x8f\x00\x20\x00\x21\x00\x22\x00\x74\x00\x21\x00\xb9\x00\x75\x00\x25\x00\xbf\x00\xb8\x02\x21\x00\xf3\x02\x13\x04\x13\x00\xf4\x02\x15\x00\x4a\x04\x00\x01\x16\x00\x17\x00\x18\x00\x76\x00\x77\x00\x4b\x04\x4c\x04\x74\x00\x01\x01\x19\x00\xec\x01\x25\x00\x67\x03\x24\x00\x25\x00\xe9\x00\xea\x00\xdd\x02\x74\x02\xd9\x01\xbd\x00\xda\x01\x4a\x04\xde\x02\xbe\x00\x1d\x02\x77\x00\x02\x01\x73\x00\x4b\x04\x4c\x04\x20\x00\x21\x00\x22\x00\x80\x03\xe1\x01\x21\x00\xb9\x00\x5f\x03\xe1\x01\xbf\x00\x74\x00\x46\x03\x23\x00\x75\x00\x25\x00\xe1\x01\x1c\x00\x81\x03\xe2\x01\x1d\x00\x1e\x00\x85\x03\x1f\x00\x05\x04\x00\x01\x87\x03\x06\x04\x76\x02\x76\x00\x77\x00\x81\x04\x82\x04\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x24\x00\x25\x00\x20\x00\x21\x00\x22\x00\xfb\x02\x91\x03\x26\x00\xfa\x02\x74\x00\x87\x04\x88\x04\x75\x00\x25\x00\x0d\x01\xa1\x03\x4d\x04\x4e\x04\x4f\x04\x50\x04\xa4\x03\xc7\x00\xc4\x00\xc5\x00\xc6\x00\xcd\x03\xce\x03\x76\x00\x77\x00\xb8\x02\x15\x04\x16\x04\x17\x04\x13\x00\xa9\x03\x15\x00\x79\x02\xb2\x03\x16\x00\x17\x00\x18\x00\x9d\x04\x4f\x04\x50\x04\xc3\x03\x57\x04\xb5\x03\x19\x00\xc5\x03\x20\x00\x21\x00\x22\x00\x97\x02\xb8\x02\xdf\x02\xe0\x02\xe1\x02\x13\x00\x74\x04\x15\x00\x76\x04\x99\x02\x16\x00\x17\x00\x18\x00\x94\x02\xc0\x01\x95\x02\x68\x00\xa4\x02\x69\x00\x19\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x4e\x02\x4f\x02\x50\x02\x6e\x00\x6f\x00\xf8\x03\xe1\x02\xb6\x03\x72\x00\x1c\x00\x19\x04\x1a\x04\x1d\x00\x1e\x00\x12\x03\x1f\x00\x19\x04\xa5\x02\x7e\x04\x8d\x00\x8e\x00\xcf\x02\xd0\x02\xd1\x02\xd2\x02\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xb0\x02\xfb\xfd\x1c\x00\xfb\xfd\xb2\x02\x1d\x00\x1e\x00\x26\x00\x1f\x00\xb4\x03\xb5\x03\x32\x02\x0d\xfe\x09\x01\x0d\xfe\x37\x02\xc0\x01\x76\x03\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xb3\x02\x0d\x04\xe4\x02\xe5\x02\xe6\x02\xb8\x03\xb5\x03\x26\x00\x68\x00\x98\xfe\x69\x00\x98\xfe\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x96\x02\xc0\x01\x95\x02\x6e\x00\x6f\x00\xbd\x00\xbe\x02\xb6\x03\x72\x00\xbe\x00\xc6\x02\x0f\xfe\x68\x00\x0f\xfe\x69\x00\xc2\x02\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xcd\x02\x21\x00\xb9\x00\x6e\x00\x6f\x00\xbf\x00\xd2\x02\xb6\x03\x72\x00\x2c\x00\x2d\x00\x7a\x04\x7b\x04\xf0\x00\x7c\x04\xf2\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x10\xfe\x7f\x04\x10\xfe\x6e\x00\x6f\x00\x13\x00\x04\x01\x15\x00\xda\x02\x73\x00\x16\x00\x17\x00\x18\x00\xdb\x02\x05\x01\xe4\x00\xeb\x01\x21\x00\x22\x00\x19\x00\xec\x01\x25\x00\x74\x00\xf6\x00\x23\x00\x75\x00\x25\x00\x53\x02\x4f\x02\x50\x02\x98\x04\x6f\x02\xac\x03\xad\x03\x00\x01\xd2\x00\x6b\x00\x6c\x00\x6d\x00\xed\x02\x76\x00\x77\x00\x6e\x00\x6f\x00\xe7\x02\x21\x00\x22\x00\xef\x02\x24\x00\x25\x00\x0a\x02\x4b\x00\x69\x04\x4c\x00\x4d\x00\x00\x01\x05\x03\x1c\x00\x0b\x02\x12\x01\x1d\x00\x1e\x00\xe8\x02\x1f\x00\x01\x02\x90\x02\x3f\x01\x40\x01\x07\x03\x24\x00\x25\x00\xe9\x00\xea\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0d\x03\x73\x00\xef\x00\xf0\x00\x0d\x01\xaf\x03\xb0\x03\x26\x00\xe5\x00\x03\x02\x17\xfe\xe6\x00\x17\xfe\xae\x03\x74\x00\xe8\x00\x23\x00\x75\x00\x25\x00\xc0\x03\xc1\x03\x73\x00\xe9\x00\xea\x00\xeb\x00\x18\xfe\xec\x00\x18\xfe\xed\x00\x30\x03\x45\x02\xf5\x00\x76\x00\x77\x00\x74\x00\xc3\x01\x23\x00\x75\x00\x25\x00\x0f\x02\x19\xfe\x73\x00\x19\xfe\xf8\x00\xf9\x00\xfa\x00\x4b\x02\x21\x00\x22\x00\x7a\x02\xec\x01\x25\x00\x76\x00\x77\x00\x74\x00\x5d\x02\x23\x00\x75\x00\x25\x00\x3e\x01\x3f\x01\x40\x01\x76\x04\x6f\x02\xb8\x01\xb9\x01\xba\x01\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x54\x02\x76\x00\x77\x00\x6e\x00\x6f\x00\x21\x01\x6c\x00\x6d\x00\x3d\x04\x6f\x02\x5c\x02\x6e\x00\x6f\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\xdb\x00\xdc\x00\xdd\x00\x6e\x00\x6f\x00\x74\x00\x2d\x03\x40\x01\x75\x00\x25\x00\x20\x01\x6c\x00\x6d\x00\xf3\x03\x6f\x02\x64\x02\x6e\x00\x6f\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x82\x02\x76\x00\x77\x00\x6e\x00\x6f\x00\xb8\x01\xb9\x01\xba\x01\x6e\x02\x6f\x02\x1a\xfe\xcb\x00\x1a\xfe\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x1b\xfe\x8c\x02\x1b\xfe\x6e\x00\x6f\x00\xcd\x00\x1c\xfe\x01\x02\x1c\xfe\xef\x00\xf0\x00\xf1\x00\xf2\x00\xcf\x00\xe9\x00\xea\x00\xa2\x01\xd0\x00\xec\x00\x68\x00\xed\x00\x69\x00\xd9\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1d\xfe\xfc\x00\x1d\xfe\x6e\x00\x6f\x00\x2e\x03\x2f\x03\x15\x01\x72\x00\x16\x01\x17\x01\xf5\x00\x1e\xfe\xf6\x00\x1e\xfe\x68\x00\x20\xfe\x69\x00\x20\xfe\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xf8\x00\xf9\x00\xfa\x00\x6e\x00\x6f\x00\x54\x03\xb6\x01\x15\x01\x72\x00\x16\x01\x17\x01\x3c\x01\x1f\xfe\x68\x00\x1f\xfe\x07\x01\xff\x00\xd2\x00\x6b\x00\x08\x01\x6d\x00\x09\x01\x0a\x01\x0b\x01\x6e\x00\x6f\x00\x21\xfe\x74\x00\x21\xfe\x79\x01\x75\x00\x25\x00\x22\xfe\xcd\x04\x22\xfe\x74\x00\xc0\x01\x57\x03\x75\x00\x25\x00\x23\xfe\x2a\xfe\x23\xfe\x2a\xfe\x74\x00\x76\x00\x77\x00\x75\x00\x25\x00\x18\x01\x2b\xfe\xd4\x04\x2b\xfe\x76\x00\x77\x00\xd0\x04\xe0\x01\x74\x00\xe1\x01\xcb\x04\x75\x00\x25\x00\x76\x00\x77\x00\x76\x01\xce\x04\x74\x00\x77\x01\xc2\x04\x75\x00\x25\x00\x52\x02\x18\x01\x53\x02\xc0\x04\x76\x00\x77\x00\x20\x00\x21\x00\x22\x00\xf1\x02\x24\x00\x25\x00\x74\x00\x76\x00\x77\x00\x75\x00\x25\x00\x68\x00\xba\x04\x69\x00\xaa\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xef\x02\x73\x00\xb0\x04\x6e\x00\x6f\x00\x76\x00\x77\x00\x10\x01\x72\x00\xf1\x02\x09\x04\xb3\x04\x2c\x02\xb4\x04\x74\x00\x90\x04\x23\x00\x75\x00\x25\x00\xe9\x00\xea\x00\x1a\x01\xbd\x02\xec\x00\x73\x00\xed\x00\xe3\x02\xe4\x02\xe5\x02\xe6\x02\x49\x02\x0a\x04\x76\x00\x77\x00\x2f\xff\x19\x01\x9b\x04\x74\x00\xbd\x02\x23\x00\x75\x00\x25\x00\xe9\x00\xea\x00\x1a\x01\x73\x00\xec\x00\x00\x01\xed\x00\xc0\x01\xc1\x01\x8f\x02\xb0\x00\xc8\x00\xc9\x00\x76\x00\x77\x00\x9f\x04\x74\x00\xa8\x04\x23\x00\x0c\x01\x25\x00\xb5\x01\xb6\x01\x8e\x02\x8f\x02\x68\x00\xa2\x04\x69\x00\xa3\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x0d\x01\x76\x00\x77\x00\x6e\x00\x6f\x00\x49\x02\x4a\x02\x10\x01\x72\x00\x6b\x04\x11\x01\x68\x04\x68\x00\xbb\xfe\x69\x00\x75\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x8e\x02\x8f\x02\x87\x04\x6e\x00\x6f\x00\x8d\x04\xc0\x04\x71\x00\x72\x00\x00\x04\xe5\x02\xe6\x02\x68\x00\x8a\x04\x69\x00\x8c\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x01\xd0\x03\xd1\x03\x6e\x00\x6f\x00\x73\x00\xb6\x04\x71\x00\x72\x00\xbd\x02\xe7\x02\x21\x00\x22\x00\x67\x03\x24\x00\x25\x00\x2a\x00\x2b\x00\x74\x00\x12\x03\x23\x00\x75\x00\x25\x00\x71\x03\x72\x03\x9b\x02\x9c\x02\xd4\x02\xe8\x02\x49\x02\x4a\x02\x2c\x04\x12\x01\x8e\x02\x8f\x02\x2d\x04\x76\x00\x77\x00\x68\x00\x2e\x04\x69\x00\x2f\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x2c\x02\x31\x04\x2c\x00\x6e\x00\x6f\x00\xac\x03\xab\x04\x71\x00\x72\x00\x40\x04\x5d\x04\x4a\x04\x68\x00\x5f\x04\x69\x00\x59\x04\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xbd\x02\x60\x04\x66\x04\x6e\x00\x6f\x00\xdd\x03\xae\x04\x71\x00\x72\x00\xcd\x03\x64\x04\x00\x01\xda\x03\xdb\x03\x73\x00\xdc\x03\xe0\x03\xe1\x03\xe2\x03\x28\x00\xe6\x03\xe7\x02\x21\x00\x22\x00\xf6\x03\x24\x00\x25\x00\x74\x00\xe3\x03\x23\x00\x75\x00\x25\x00\xbd\x02\xcc\x02\x73\x00\xf5\x03\x12\x02\xe3\x02\xfa\x03\xe8\x02\xcd\x02\x02\x04\x03\x04\x04\x04\x1f\x04\x76\x00\x77\x00\x74\x00\x0f\x04\x23\x00\x75\x00\x25\x00\xf1\x02\x11\x02\x73\x00\x56\x02\x57\x02\x58\x02\x59\x02\x5a\x02\x5b\x02\x5c\x02\x2c\x00\x67\x03\xe0\x01\x76\x00\x77\x00\x74\x00\x63\x03\x23\x00\x75\x00\x25\x00\x69\x03\x63\x03\x6f\x03\xbd\x02\x68\x00\x73\x03\x69\x00\x74\x03\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x7a\x03\x76\x00\x77\x00\x6e\x00\x6f\x00\xf4\xfe\xb0\x04\x71\x00\x72\x00\x7b\x03\x08\xff\xef\x02\x7d\x03\x7f\x03\x4e\x00\x80\x03\x73\x00\x87\x03\xf1\x02\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xf1\x02\x99\x03\x74\x00\xd9\x00\x23\x00\x75\x00\x25\x00\xd9\x00\x9e\x03\x73\x00\x28\x00\x5f\x00\xa4\x03\xa6\x03\x2c\x00\x2d\x00\xa7\x03\xab\x03\x87\x01\xac\x03\x76\x00\x77\x00\x74\x00\xb4\x03\x23\x00\x75\x00\x25\x00\xb8\x03\xbf\x03\xc0\x03\x65\x00\x68\x00\xc3\x03\x69\x00\xcb\x03\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xb2\x00\x76\x00\x77\x00\x6e\x00\x6f\x00\x99\x02\x91\x04\x71\x00\x72\x00\x9f\x02\xa0\x02\xa1\x02\x68\x00\xa8\x02\x69\x00\xcb\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xa7\x02\xa9\x02\xaa\x02\x6e\x00\x6f\x00\xab\x02\x93\x04\x71\x00\x72\x00\x8f\x03\xe5\x02\xe6\x02\x68\x00\xac\x02\x69\x00\xad\x02\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xae\x02\x49\x02\xb5\x02\x6e\x00\x6f\x00\xb2\x02\x9f\x04\x71\x00\x72\x00\xb6\x02\x4e\x00\x83\x00\x84\x00\x85\x00\x73\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xf9\xfe\xc0\x02\xc2\x02\x49\x02\x74\x00\xc8\x02\x23\x00\x75\x00\x25\x00\xd4\x02\x53\x02\x5f\x00\xd4\x02\x68\x00\xdf\x02\x69\x00\xe3\x02\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xef\x02\x76\x00\x77\x00\x6e\x00\x6f\x00\xf6\x02\x71\x04\x71\x00\x72\x00\x65\x00\xf1\x02\xfd\x02\x68\x00\x01\x03\x69\x00\x03\x03\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x09\x03\x0a\x03\xf5\x01\x6e\x00\x6f\x00\x0d\x03\x79\x04\x71\x00\x72\x00\x0f\x03\x16\x03\xd8\x01\x41\x03\x00\x01\x42\x03\x54\x03\x73\x00\x53\x03\x28\x00\x57\x03\x52\x03\x59\x03\xc3\x01\xe7\x02\x21\x00\x22\x00\x2c\x00\x24\x00\x25\x00\x74\x00\x68\xfd\x23\x00\x75\x00\x25\x00\x6a\xfd\x69\xfd\x73\x00\x6c\xfd\x6f\xfd\xcd\x02\xe7\x01\xe8\x02\xd7\x01\xd8\x01\xe8\x01\xd9\x01\xe1\x01\x76\x00\x77\x00\x74\x00\xe7\x01\x23\x00\x75\x00\x25\x00\xf5\x01\xfb\x01\x73\x00\xef\x01\xfc\x01\xfd\x01\xfe\x01\xfa\x01\x10\x01\x0c\x02\x03\x02\x05\x02\x11\x02\x76\x00\x77\x00\x74\x00\x12\x02\x23\x00\x75\x00\x25\x00\x14\x02\x19\x02\x1a\x02\x1b\x02\x68\x00\x6a\xfd\x69\x00\x22\x02\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x23\x02\x76\x00\x77\x00\x6e\x00\x6f\x00\x24\x02\x99\x03\x71\x00\x72\x00\x26\x02\x27\x02\x4e\x00\x32\x02\x31\x02\x73\x00\x2e\x02\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x2f\x02\x0c\xff\x30\x02\x74\x00\x5f\x02\x23\x00\x75\x00\x25\x00\xcd\x00\x3e\x02\x73\x00\x5f\x00\x81\x02\xef\xfe\x73\x02\x66\x02\x80\x02\x67\x02\x2c\x00\x68\x02\x12\x02\x76\x00\x77\x00\x74\x00\x87\x02\x23\x00\x75\x00\x25\x00\x8b\x02\x8a\x02\x65\x00\x8c\x02\x68\x00\x94\x02\x69\x00\xcb\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xb4\x00\x76\x00\x77\x00\x6e\x00\x6f\x00\xcd\x00\xb1\x03\x71\x00\x72\x00\xd9\x00\xde\x00\xdf\x00\x68\x00\xe0\x00\x69\x00\xfe\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xff\xff\x1f\x01\xff\xff\x6e\x00\x6f\x00\x2c\x01\xae\x02\x71\x00\x72\x00\xff\xff\xff\x00\x2d\x01\x68\x00\x2e\x01\x69\x00\x31\x01\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xd9\x00\x31\x01\xff\xff\x6e\x00\x6f\x00\xad\x01\xca\x01\x71\x00\x72\x00\xae\x01\xcb\xfd\xff\xff\xef\xfe\xef\xfe\xef\xfe\xef\xfe\x73\x00\xef\xfe\xef\xfe\xef\xfe\xef\xfe\xef\xfe\xef\xfe\xef\xfe\xef\xfe\xff\xff\xb4\x00\x00\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\xef\xfe\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x76\x00\x77\x00\x6e\x00\x6f\x00\x00\x00\x45\x02\x71\x00\x72\x00\xef\xfe\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x4a\x02\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x02\xe4\x02\xe5\x02\xe6\x02\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x1b\x02\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x76\x00\x77\x00\x6e\x00\x6f\x00\x00\x00\x7a\x01\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x04\xe6\x02\x00\x00\x00\x01\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\xe7\x02\x21\x00\x22\x00\x00\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\xe8\x02\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x76\x00\x77\x00\x6e\x00\x6f\x00\x00\x00\x70\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x74\x00\x6e\x00\x6f\x00\x75\x00\x25\x00\x80\x04\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x76\x00\x77\x00\x00\x00\x6e\x00\x6f\x00\x00\x01\x00\x00\xc0\x02\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\xe7\x02\x21\x00\x22\x00\x00\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x68\x00\xe8\x02\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\xf6\x02\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\xfd\x02\x72\x00\x00\x00\x88\x03\xe6\x02\x68\x00\x89\x03\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x73\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\xff\x02\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x1c\x02\x72\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x02\x21\x00\x22\x00\x00\x00\x24\x00\x25\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x5f\x02\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x68\x02\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x73\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x75\x02\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\xe0\x00\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\xfa\x00\x72\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x00\x00\x1f\x01\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x73\x00\x70\x02\x00\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x73\x00\x21\x01\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x22\x01\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x1f\x02\x00\x00\x73\x00\x00\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x68\x00\x00\x00\x06\x01\x00\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x73\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x20\x02\x00\x00\x73\x00\x00\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\xd1\x00\x00\x00\x73\x00\x00\x00\xd2\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x2c\x00\x2d\x00\x00\x00\x73\x00\x00\x00\x2c\x00\x2d\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x76\x00\x77\x00\x7a\x00\x74\x00\x35\x02\x23\x00\x75\x00\x25\x00\x00\x00\x35\x02\x00\x00\x00\x00\x36\x02\x37\x02\x23\x01\x00\x00\x00\x00\x36\x02\xe8\x00\x00\x00\x74\x00\x76\x00\x77\x00\x75\x00\x25\x00\xe9\x00\xea\x00\x92\x03\xfa\x03\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x76\x00\x77\x00\x24\x01\x25\x01\x74\x00\x00\x00\x00\x00\x75\x00\x25\x00\x00\x00\x82\x00\x73\x00\x28\x00\x29\x00\x00\x00\x82\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xfb\x03\x96\x03\x76\x00\x77\x00\x74\x00\x00\x00\x23\x00\x75\x00\x25\x00\x00\x00\x00\x00\x92\x03\x93\x03\x6b\x00\x6c\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x00\x00\x76\x00\x77\x00\x94\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x00\x74\x00\x35\x04\xe6\x02\x75\x00\x25\x00\x00\x00\x36\x04\x37\x04\x6b\x00\x6c\x00\x6d\x00\x00\x00\x95\x03\x96\x03\x6e\x00\x6f\x00\x00\x00\x00\x00\x76\x00\x77\x00\x74\x00\x00\x00\x00\x00\x75\x00\x25\x00\x00\x00\x00\x00\x8a\x03\x8b\x03\xe6\x02\x8c\x03\x8d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x97\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\xe6\x00\x00\x00\xe7\x00\x74\x00\xe8\x00\x00\x00\x0c\x01\x25\x00\x00\x00\x00\x00\x65\x00\xe9\x00\xea\x00\xeb\x00\x00\x01\xec\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x00\x00\xe7\x02\x21\x00\x22\x00\x00\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xe8\x02\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x0c\x01\x25\x00\x01\x02\xe7\x02\x21\x00\x22\x00\x00\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x02\x74\x00\x00\x00\x00\x00\x75\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x95\x00\x96\x00\x97\x00\x98\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\xca\x03\x00\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x62\x00\x00\x00\x9e\x00\x00\x00\x63\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x66\x00\x67\x00\x68\x00\xa5\x00\xa6\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x95\x00\x96\x00\x97\x00\x98\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\xca\x03\x00\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x62\x00\x00\x00\x9e\x00\x00\x00\x63\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x66\x00\x67\x00\x68\x00\xa5\x00\xa6\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x95\x00\x96\x00\x97\x00\x98\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x62\x00\x00\x00\x9e\x00\x00\x00\x63\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x66\x00\x67\x00\x68\x00\xa5\x00\xa6\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x45\x04\x46\x04\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x9b\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x04\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x45\x04\x46\x04\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x9b\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x04\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x52\x04\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x04\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x9b\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa8\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x52\x04\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x04\x00\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x9b\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa8\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x62\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x65\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x7b\x00\x1c\x01\x7c\x00\x00\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x7d\x00\x00\x00\x7e\x00\xa8\x00\x15\x01\x00\x00\x00\x00\xf5\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\xf8\x00\x1e\x01\xfa\x00\x00\x00\x00\x00\xf4\x00\xf5\x00\x00\x00\xf6\x00\xb1\x01\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\xf8\x00\xf9\x00\xfa\x00\xb2\x01\xb3\x01\xb4\x01\xb5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x86\x00\x00\x00\x5f\x00\x2c\x00\x2d\x00\x00\x00\x27\x01\xf0\x00\x00\x00\xf2\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x65\x00\x7c\x00\x00\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x87\x00\x28\x01\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x01\x00\x00\x2a\x01\x2b\x01\x00\x00\x7f\x00\x00\x00\xf3\x00\x00\x00\xf4\x00\xf5\x00\x00\x00\xf6\x00\x98\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\xf8\x00\xf9\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x27\x01\xf0\x00\x5f\x00\xf2\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x65\x00\x7d\x00\xe6\x00\x7e\x00\xae\x03\x00\x00\xe8\x00\x28\x01\x00\x00\x00\x00\xf6\x00\x00\x00\x87\x00\xe9\x00\xea\x00\xeb\x00\x29\x01\xec\x00\x72\x02\xed\x00\xe5\x00\x7f\x00\x00\x00\xe6\x00\x00\x00\xe7\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\xe9\x00\xea\x00\xeb\x00\x82\x00\xec\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x14\x01\x00\x00\x00\x00\xe5\x00\x65\x00\x7d\x00\xe6\x00\x7e\x00\xaf\x01\x15\x01\xe8\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x00\x00\x87\x00\xe9\x00\xea\x00\xeb\x00\x00\x00\xec\x00\x00\x00\xed\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\xf3\x00\x00\x00\xf4\x00\xf5\x00\x82\x00\xf6\x00\xf7\x00\x97\xfe\x00\x00\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\xf9\x00\xfa\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x93\x04\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xf0\x00\x87\x00\xf2\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x35\x02\x39\x02\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x36\x02\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x82\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x26\xff\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x26\xff\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x03\x2b\x01\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x0c\x04\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\xf3\x00\x00\x00\xf4\x00\xf5\x00\x82\x00\xf6\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\xf9\x00\xfa\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x1c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x15\x01\x00\x00\x00\x00\xf5\x00\x82\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\xf8\x00\xf9\x00\xfa\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\xf4\x00\xf5\x00\x00\x00\xf6\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\xf9\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7e\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x10\x01\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x86\x00\x26\xff\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x26\xff\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xd4\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x5f\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x4a\x03\x65\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xdf\x01\x3c\x00\x93\x01\x94\x01\x87\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x51\x03\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xdf\x01\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xde\x01\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xdf\x01\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\xe6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xdf\x01\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x15\x01\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\xa5\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa6\x01\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x15\x01\x3c\x00\x93\x01\xa7\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\xa8\x01\xa9\x01\xaa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x9a\x01\x3b\x00\x00\x00\x00\x00\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x92\x01\xf0\x00\xf1\x00\xf2\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x93\x01\x94\x01\x00\x00\xf6\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x95\x01\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x17\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x3d\x03\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x3d\x03\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x66\x03\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x66\x00\x67\x00\x68\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x62\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x67\x00\x68\x00\x1b\x03\x29\x00\x2a\x00\x2b\x00\x1c\x03\x2d\x00\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x1d\x03\x1e\x03\x1f\x03\x20\x03\x21\x03\x22\x03\x23\x03\x24\x03\x25\x03\x26\x03\x27\x03\x28\x03\x29\x03\x53\x01\x54\x01\x55\x01\x56\x01\x57\x01\x58\x01\x59\x01\x5a\x01\x2a\x03\x2b\x03\x5d\x01\x2c\x03\x5f\x01\x60\x01\x61\x01\x62\x01\x63\x01\x64\x01\x65\x01\x66\x01\x67\x01\x68\x01\x69\x01\x6a\x01\x6b\x01\x6c\x01\x6d\x01\x6e\x01\x6f\x01\x70\x01\x2d\x03\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x3e\x00\x00\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x87\x01\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x01\x3e\x00\x00\x00\x00\x00\x43\x01\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x45\x01\x46\x01\x47\x01\x48\x01\x49\x01\x4a\x01\x4b\x01\x4c\x01\x4d\x01\x4e\x01\x4f\x01\x50\x01\x51\x01\x52\x01\x53\x01\x54\x01\x55\x01\x56\x01\x57\x01\x58\x01\x59\x01\x5a\x01\x5b\x01\x5c\x01\x5d\x01\x5e\x01\x5f\x01\x60\x01\x61\x01\x62\x01\x63\x01\x64\x01\x65\x01\x66\x01\x67\x01\x68\x01\x69\x01\x6a\x01\x6b\x01\x6c\x01\x6d\x01\x6e\x01\x6f\x01\x70\x01\x71\x01\x28\x00\x29\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xf0\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\x8f\x03\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\xeb\x02\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\x00\x00\xec\x02\xed\x02\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x02\x00\x00\x00\x00\x00\x00\xbc\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x03\x00\x00\x00\x00\x00\x00\x00\x00\xec\x02\xed\x02\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x29\x00\x65\x00\x00\x00\x2c\x00\x2d\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x65\x00\xeb\x02\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x03\x00\x00\x00\x00\xea\x02\x00\x00\xec\x02\xed\x02\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x02\xed\x02\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x28\x00\x29\x00\x00\x00\x65\x00\x2c\x00\x2d\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\xd7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\xeb\x02\x00\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x79\x01\xec\x02\xed\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x03\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x5d\x00\x5e\x00\x2c\x00\x5f\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc1\x00\xd2\x04\x00\x00\x65\x00\x00\x00\x28\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\xef\x00\x00\x00\x00\x00\x00\x00\xd3\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xd9\x03\x00\x00\x00\x00\x65\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\xf9\x00\xfa\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x03\x28\x00\x00\x00\x5d\x00\x5e\x00\x2c\x00\x5f\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x65\x00\x00\x00\x28\x00\x00\x00\x5d\x00\x5e\x00\x2c\x00\x5f\x00\x00\x00\xd7\x03\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc1\x00\x70\x04\x00\x00\x65\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\xc9\x04\x00\x00\x00\x00\x65\x00\x28\x00\x29\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\xd2\x01\x5d\x00\x5e\x00\x28\x00\x5f\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\xd3\x01\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x65\x00\xc1\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x5f\x00\x2c\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x65\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x65\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x04\x3d\x04\x00\x00\x65\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x28\x00\x5f\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x65\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x5d\x00\x5e\x00\x2c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x28\x00\x29\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x65\x00\x00\x00\x2c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x74\x01\x00\x00\x75\x01\x00\x00\x28\x00\x00\x00\x5d\x00\x5e\x00\x76\x01\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x03\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x28\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x65\x00\xbd\x03\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x9c\x03\x00\x00\x00\x00\x65\x00\x28\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x03\x00\x00\x00\x00\x65\x00\x28\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x65\x00\x2c\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x65\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x28\x00\x65\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x65\x00\x28\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3c\x02\x00\x00\x00\x00\x00\x00\x28\x00\x65\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x4e\x00\x83\x00\x84\x00\x85\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x03\x38\x03\x39\x03\x3a\x03\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x03\x38\x03\x39\x03\x3a\x03\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x04\x39\x03\x3a\x03\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x04\x3a\x03\x00\x00\x3b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x03\xd6\x02\x00\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\xd7\x02\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x26\x00\x00\x00\x00\x00\x78\x03\x00\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x02\xd6\x02\x00\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\xd7\x02\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x26\x00\x00\x00\x00\x00\x06\x03\x00\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x03\xd6\x02\x00\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\xd7\x02\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x26\x00\x00\x00\x00\x00\x14\x02\x00\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xd4\x02\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x14\x04\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x36\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x37\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x8d\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x26\x00\x38\x01\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x22\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x23\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x24\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x2a\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x59\x04\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xe9\x03\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xf6\x03\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xf7\x03\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x64\x03\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xd9\x02\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xd3\x01\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x05\x01\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x7d\x01\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x7e\x01\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x26\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xaa\x00\xab\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x9d\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x9e\x01\x9f\x01\x00\x00\x00\x00\x00\x00\xa0\x01\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xa1\x01\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\xa2\x01\x8e\x01\xec\x00\x8f\x01\xa3\x01\x26\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x88\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x96\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x01\x98\x01\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x9a\x01\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x3e\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x45\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x48\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x4f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\xdc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\x87\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\xe4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x8d\x01\xe8\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xe9\x00\xea\x00\x00\x00\x8e\x01\x00\x00\x8f\x01\x90\x01\x26\x00\xa8\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\xa8\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x03\x6a\x03\x19\x00\x00\x00\x00\x00\x6b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x25\x04\x1f\x00\x00\x00\x00\x00\x6b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x13\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x03\x00\x00\x19\x00\x4b\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x03\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x7f\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x19\x00\xa8\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\xb4\x04\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x8a\x04\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x1f\x04\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x21\x04\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x5c\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x77\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x03\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x04\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x0a\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x0b\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x32\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x33\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x3d\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x43\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x4a\x03\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\xc6\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\xc7\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\xc8\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\xc9\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x3b\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x3d\x01\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xbd\x03\x10\x00\x7c\x01\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\xed\x01\x10\x00\x7c\x01\x12\x00\x00\x00\x26\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x7b\x01\x10\x00\x7c\x01\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\xcb\x01\x1f\x00\x26\x00\xcc\x01\x14\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\xcc\x01\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x82\x01\x00\x00\x00\x00\x16\x00\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x84\x01\x85\x01\x32\x01\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x01\x32\x01\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x01\x32\x01\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x16\x03\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x19\x00\x00\x00\x00\x00\x17\x03\x3f\x01\x40\x01\x00\x00\x18\x03\xc4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x16\x03\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x17\x03\x3f\x01\x40\x01\x00\x00\x18\x03\x19\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x04\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x02\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x01\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x01\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x01\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x02\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x02\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x02\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x01\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x01\x17\x00\x18\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x01\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = Happy_Data_Array.array (8, 693) [
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203),
-	(204 , happyReduce_204),
-	(205 , happyReduce_205),
-	(206 , happyReduce_206),
-	(207 , happyReduce_207),
-	(208 , happyReduce_208),
-	(209 , happyReduce_209),
-	(210 , happyReduce_210),
-	(211 , happyReduce_211),
-	(212 , happyReduce_212),
-	(213 , happyReduce_213),
-	(214 , happyReduce_214),
-	(215 , happyReduce_215),
-	(216 , happyReduce_216),
-	(217 , happyReduce_217),
-	(218 , happyReduce_218),
-	(219 , happyReduce_219),
-	(220 , happyReduce_220),
-	(221 , happyReduce_221),
-	(222 , happyReduce_222),
-	(223 , happyReduce_223),
-	(224 , happyReduce_224),
-	(225 , happyReduce_225),
-	(226 , happyReduce_226),
-	(227 , happyReduce_227),
-	(228 , happyReduce_228),
-	(229 , happyReduce_229),
-	(230 , happyReduce_230),
-	(231 , happyReduce_231),
-	(232 , happyReduce_232),
-	(233 , happyReduce_233),
-	(234 , happyReduce_234),
-	(235 , happyReduce_235),
-	(236 , happyReduce_236),
-	(237 , happyReduce_237),
-	(238 , happyReduce_238),
-	(239 , happyReduce_239),
-	(240 , happyReduce_240),
-	(241 , happyReduce_241),
-	(242 , happyReduce_242),
-	(243 , happyReduce_243),
-	(244 , happyReduce_244),
-	(245 , happyReduce_245),
-	(246 , happyReduce_246),
-	(247 , happyReduce_247),
-	(248 , happyReduce_248),
-	(249 , happyReduce_249),
-	(250 , happyReduce_250),
-	(251 , happyReduce_251),
-	(252 , happyReduce_252),
-	(253 , happyReduce_253),
-	(254 , happyReduce_254),
-	(255 , happyReduce_255),
-	(256 , happyReduce_256),
-	(257 , happyReduce_257),
-	(258 , happyReduce_258),
-	(259 , happyReduce_259),
-	(260 , happyReduce_260),
-	(261 , happyReduce_261),
-	(262 , happyReduce_262),
-	(263 , happyReduce_263),
-	(264 , happyReduce_264),
-	(265 , happyReduce_265),
-	(266 , happyReduce_266),
-	(267 , happyReduce_267),
-	(268 , happyReduce_268),
-	(269 , happyReduce_269),
-	(270 , happyReduce_270),
-	(271 , happyReduce_271),
-	(272 , happyReduce_272),
-	(273 , happyReduce_273),
-	(274 , happyReduce_274),
-	(275 , happyReduce_275),
-	(276 , happyReduce_276),
-	(277 , happyReduce_277),
-	(278 , happyReduce_278),
-	(279 , happyReduce_279),
-	(280 , happyReduce_280),
-	(281 , happyReduce_281),
-	(282 , happyReduce_282),
-	(283 , happyReduce_283),
-	(284 , happyReduce_284),
-	(285 , happyReduce_285),
-	(286 , happyReduce_286),
-	(287 , happyReduce_287),
-	(288 , happyReduce_288),
-	(289 , happyReduce_289),
-	(290 , happyReduce_290),
-	(291 , happyReduce_291),
-	(292 , happyReduce_292),
-	(293 , happyReduce_293),
-	(294 , happyReduce_294),
-	(295 , happyReduce_295),
-	(296 , happyReduce_296),
-	(297 , happyReduce_297),
-	(298 , happyReduce_298),
-	(299 , happyReduce_299),
-	(300 , happyReduce_300),
-	(301 , happyReduce_301),
-	(302 , happyReduce_302),
-	(303 , happyReduce_303),
-	(304 , happyReduce_304),
-	(305 , happyReduce_305),
-	(306 , happyReduce_306),
-	(307 , happyReduce_307),
-	(308 , happyReduce_308),
-	(309 , happyReduce_309),
-	(310 , happyReduce_310),
-	(311 , happyReduce_311),
-	(312 , happyReduce_312),
-	(313 , happyReduce_313),
-	(314 , happyReduce_314),
-	(315 , happyReduce_315),
-	(316 , happyReduce_316),
-	(317 , happyReduce_317),
-	(318 , happyReduce_318),
-	(319 , happyReduce_319),
-	(320 , happyReduce_320),
-	(321 , happyReduce_321),
-	(322 , happyReduce_322),
-	(323 , happyReduce_323),
-	(324 , happyReduce_324),
-	(325 , happyReduce_325),
-	(326 , happyReduce_326),
-	(327 , happyReduce_327),
-	(328 , happyReduce_328),
-	(329 , happyReduce_329),
-	(330 , happyReduce_330),
-	(331 , happyReduce_331),
-	(332 , happyReduce_332),
-	(333 , happyReduce_333),
-	(334 , happyReduce_334),
-	(335 , happyReduce_335),
-	(336 , happyReduce_336),
-	(337 , happyReduce_337),
-	(338 , happyReduce_338),
-	(339 , happyReduce_339),
-	(340 , happyReduce_340),
-	(341 , happyReduce_341),
-	(342 , happyReduce_342),
-	(343 , happyReduce_343),
-	(344 , happyReduce_344),
-	(345 , happyReduce_345),
-	(346 , happyReduce_346),
-	(347 , happyReduce_347),
-	(348 , happyReduce_348),
-	(349 , happyReduce_349),
-	(350 , happyReduce_350),
-	(351 , happyReduce_351),
-	(352 , happyReduce_352),
-	(353 , happyReduce_353),
-	(354 , happyReduce_354),
-	(355 , happyReduce_355),
-	(356 , happyReduce_356),
-	(357 , happyReduce_357),
-	(358 , happyReduce_358),
-	(359 , happyReduce_359),
-	(360 , happyReduce_360),
-	(361 , happyReduce_361),
-	(362 , happyReduce_362),
-	(363 , happyReduce_363),
-	(364 , happyReduce_364),
-	(365 , happyReduce_365),
-	(366 , happyReduce_366),
-	(367 , happyReduce_367),
-	(368 , happyReduce_368),
-	(369 , happyReduce_369),
-	(370 , happyReduce_370),
-	(371 , happyReduce_371),
-	(372 , happyReduce_372),
-	(373 , happyReduce_373),
-	(374 , happyReduce_374),
-	(375 , happyReduce_375),
-	(376 , happyReduce_376),
-	(377 , happyReduce_377),
-	(378 , happyReduce_378),
-	(379 , happyReduce_379),
-	(380 , happyReduce_380),
-	(381 , happyReduce_381),
-	(382 , happyReduce_382),
-	(383 , happyReduce_383),
-	(384 , happyReduce_384),
-	(385 , happyReduce_385),
-	(386 , happyReduce_386),
-	(387 , happyReduce_387),
-	(388 , happyReduce_388),
-	(389 , happyReduce_389),
-	(390 , happyReduce_390),
-	(391 , happyReduce_391),
-	(392 , happyReduce_392),
-	(393 , happyReduce_393),
-	(394 , happyReduce_394),
-	(395 , happyReduce_395),
-	(396 , happyReduce_396),
-	(397 , happyReduce_397),
-	(398 , happyReduce_398),
-	(399 , happyReduce_399),
-	(400 , happyReduce_400),
-	(401 , happyReduce_401),
-	(402 , happyReduce_402),
-	(403 , happyReduce_403),
-	(404 , happyReduce_404),
-	(405 , happyReduce_405),
-	(406 , happyReduce_406),
-	(407 , happyReduce_407),
-	(408 , happyReduce_408),
-	(409 , happyReduce_409),
-	(410 , happyReduce_410),
-	(411 , happyReduce_411),
-	(412 , happyReduce_412),
-	(413 , happyReduce_413),
-	(414 , happyReduce_414),
-	(415 , happyReduce_415),
-	(416 , happyReduce_416),
-	(417 , happyReduce_417),
-	(418 , happyReduce_418),
-	(419 , happyReduce_419),
-	(420 , happyReduce_420),
-	(421 , happyReduce_421),
-	(422 , happyReduce_422),
-	(423 , happyReduce_423),
-	(424 , happyReduce_424),
-	(425 , happyReduce_425),
-	(426 , happyReduce_426),
-	(427 , happyReduce_427),
-	(428 , happyReduce_428),
-	(429 , happyReduce_429),
-	(430 , happyReduce_430),
-	(431 , happyReduce_431),
-	(432 , happyReduce_432),
-	(433 , happyReduce_433),
-	(434 , happyReduce_434),
-	(435 , happyReduce_435),
-	(436 , happyReduce_436),
-	(437 , happyReduce_437),
-	(438 , happyReduce_438),
-	(439 , happyReduce_439),
-	(440 , happyReduce_440),
-	(441 , happyReduce_441),
-	(442 , happyReduce_442),
-	(443 , happyReduce_443),
-	(444 , happyReduce_444),
-	(445 , happyReduce_445),
-	(446 , happyReduce_446),
-	(447 , happyReduce_447),
-	(448 , happyReduce_448),
-	(449 , happyReduce_449),
-	(450 , happyReduce_450),
-	(451 , happyReduce_451),
-	(452 , happyReduce_452),
-	(453 , happyReduce_453),
-	(454 , happyReduce_454),
-	(455 , happyReduce_455),
-	(456 , happyReduce_456),
-	(457 , happyReduce_457),
-	(458 , happyReduce_458),
-	(459 , happyReduce_459),
-	(460 , happyReduce_460),
-	(461 , happyReduce_461),
-	(462 , happyReduce_462),
-	(463 , happyReduce_463),
-	(464 , happyReduce_464),
-	(465 , happyReduce_465),
-	(466 , happyReduce_466),
-	(467 , happyReduce_467),
-	(468 , happyReduce_468),
-	(469 , happyReduce_469),
-	(470 , happyReduce_470),
-	(471 , happyReduce_471),
-	(472 , happyReduce_472),
-	(473 , happyReduce_473),
-	(474 , happyReduce_474),
-	(475 , happyReduce_475),
-	(476 , happyReduce_476),
-	(477 , happyReduce_477),
-	(478 , happyReduce_478),
-	(479 , happyReduce_479),
-	(480 , happyReduce_480),
-	(481 , happyReduce_481),
-	(482 , happyReduce_482),
-	(483 , happyReduce_483),
-	(484 , happyReduce_484),
-	(485 , happyReduce_485),
-	(486 , happyReduce_486),
-	(487 , happyReduce_487),
-	(488 , happyReduce_488),
-	(489 , happyReduce_489),
-	(490 , happyReduce_490),
-	(491 , happyReduce_491),
-	(492 , happyReduce_492),
-	(493 , happyReduce_493),
-	(494 , happyReduce_494),
-	(495 , happyReduce_495),
-	(496 , happyReduce_496),
-	(497 , happyReduce_497),
-	(498 , happyReduce_498),
-	(499 , happyReduce_499),
-	(500 , happyReduce_500),
-	(501 , happyReduce_501),
-	(502 , happyReduce_502),
-	(503 , happyReduce_503),
-	(504 , happyReduce_504),
-	(505 , happyReduce_505),
-	(506 , happyReduce_506),
-	(507 , happyReduce_507),
-	(508 , happyReduce_508),
-	(509 , happyReduce_509),
-	(510 , happyReduce_510),
-	(511 , happyReduce_511),
-	(512 , happyReduce_512),
-	(513 , happyReduce_513),
-	(514 , happyReduce_514),
-	(515 , happyReduce_515),
-	(516 , happyReduce_516),
-	(517 , happyReduce_517),
-	(518 , happyReduce_518),
-	(519 , happyReduce_519),
-	(520 , happyReduce_520),
-	(521 , happyReduce_521),
-	(522 , happyReduce_522),
-	(523 , happyReduce_523),
-	(524 , happyReduce_524),
-	(525 , happyReduce_525),
-	(526 , happyReduce_526),
-	(527 , happyReduce_527),
-	(528 , happyReduce_528),
-	(529 , happyReduce_529),
-	(530 , happyReduce_530),
-	(531 , happyReduce_531),
-	(532 , happyReduce_532),
-	(533 , happyReduce_533),
-	(534 , happyReduce_534),
-	(535 , happyReduce_535),
-	(536 , happyReduce_536),
-	(537 , happyReduce_537),
-	(538 , happyReduce_538),
-	(539 , happyReduce_539),
-	(540 , happyReduce_540),
-	(541 , happyReduce_541),
-	(542 , happyReduce_542),
-	(543 , happyReduce_543),
-	(544 , happyReduce_544),
-	(545 , happyReduce_545),
-	(546 , happyReduce_546),
-	(547 , happyReduce_547),
-	(548 , happyReduce_548),
-	(549 , happyReduce_549),
-	(550 , happyReduce_550),
-	(551 , happyReduce_551),
-	(552 , happyReduce_552),
-	(553 , happyReduce_553),
-	(554 , happyReduce_554),
-	(555 , happyReduce_555),
-	(556 , happyReduce_556),
-	(557 , happyReduce_557),
-	(558 , happyReduce_558),
-	(559 , happyReduce_559),
-	(560 , happyReduce_560),
-	(561 , happyReduce_561),
-	(562 , happyReduce_562),
-	(563 , happyReduce_563),
-	(564 , happyReduce_564),
-	(565 , happyReduce_565),
-	(566 , happyReduce_566),
-	(567 , happyReduce_567),
-	(568 , happyReduce_568),
-	(569 , happyReduce_569),
-	(570 , happyReduce_570),
-	(571 , happyReduce_571),
-	(572 , happyReduce_572),
-	(573 , happyReduce_573),
-	(574 , happyReduce_574),
-	(575 , happyReduce_575),
-	(576 , happyReduce_576),
-	(577 , happyReduce_577),
-	(578 , happyReduce_578),
-	(579 , happyReduce_579),
-	(580 , happyReduce_580),
-	(581 , happyReduce_581),
-	(582 , happyReduce_582),
-	(583 , happyReduce_583),
-	(584 , happyReduce_584),
-	(585 , happyReduce_585),
-	(586 , happyReduce_586),
-	(587 , happyReduce_587),
-	(588 , happyReduce_588),
-	(589 , happyReduce_589),
-	(590 , happyReduce_590),
-	(591 , happyReduce_591),
-	(592 , happyReduce_592),
-	(593 , happyReduce_593),
-	(594 , happyReduce_594),
-	(595 , happyReduce_595),
-	(596 , happyReduce_596),
-	(597 , happyReduce_597),
-	(598 , happyReduce_598),
-	(599 , happyReduce_599),
-	(600 , happyReduce_600),
-	(601 , happyReduce_601),
-	(602 , happyReduce_602),
-	(603 , happyReduce_603),
-	(604 , happyReduce_604),
-	(605 , happyReduce_605),
-	(606 , happyReduce_606),
-	(607 , happyReduce_607),
-	(608 , happyReduce_608),
-	(609 , happyReduce_609),
-	(610 , happyReduce_610),
-	(611 , happyReduce_611),
-	(612 , happyReduce_612),
-	(613 , happyReduce_613),
-	(614 , happyReduce_614),
-	(615 , happyReduce_615),
-	(616 , happyReduce_616),
-	(617 , happyReduce_617),
-	(618 , happyReduce_618),
-	(619 , happyReduce_619),
-	(620 , happyReduce_620),
-	(621 , happyReduce_621),
-	(622 , happyReduce_622),
-	(623 , happyReduce_623),
-	(624 , happyReduce_624),
-	(625 , happyReduce_625),
-	(626 , happyReduce_626),
-	(627 , happyReduce_627),
-	(628 , happyReduce_628),
-	(629 , happyReduce_629),
-	(630 , happyReduce_630),
-	(631 , happyReduce_631),
-	(632 , happyReduce_632),
-	(633 , happyReduce_633),
-	(634 , happyReduce_634),
-	(635 , happyReduce_635),
-	(636 , happyReduce_636),
-	(637 , happyReduce_637),
-	(638 , happyReduce_638),
-	(639 , happyReduce_639),
-	(640 , happyReduce_640),
-	(641 , happyReduce_641),
-	(642 , happyReduce_642),
-	(643 , happyReduce_643),
-	(644 , happyReduce_644),
-	(645 , happyReduce_645),
-	(646 , happyReduce_646),
-	(647 , happyReduce_647),
-	(648 , happyReduce_648),
-	(649 , happyReduce_649),
-	(650 , happyReduce_650),
-	(651 , happyReduce_651),
-	(652 , happyReduce_652),
-	(653 , happyReduce_653),
-	(654 , happyReduce_654),
-	(655 , happyReduce_655),
-	(656 , happyReduce_656),
-	(657 , happyReduce_657),
-	(658 , happyReduce_658),
-	(659 , happyReduce_659),
-	(660 , happyReduce_660),
-	(661 , happyReduce_661),
-	(662 , happyReduce_662),
-	(663 , happyReduce_663),
-	(664 , happyReduce_664),
-	(665 , happyReduce_665),
-	(666 , happyReduce_666),
-	(667 , happyReduce_667),
-	(668 , happyReduce_668),
-	(669 , happyReduce_669),
-	(670 , happyReduce_670),
-	(671 , happyReduce_671),
-	(672 , happyReduce_672),
-	(673 , happyReduce_673),
-	(674 , happyReduce_674),
-	(675 , happyReduce_675),
-	(676 , happyReduce_676),
-	(677 , happyReduce_677),
-	(678 , happyReduce_678),
-	(679 , happyReduce_679),
-	(680 , happyReduce_680),
-	(681 , happyReduce_681),
-	(682 , happyReduce_682),
-	(683 , happyReduce_683),
-	(684 , happyReduce_684),
-	(685 , happyReduce_685),
-	(686 , happyReduce_686),
-	(687 , happyReduce_687),
-	(688 , happyReduce_688),
-	(689 , happyReduce_689),
-	(690 , happyReduce_690),
-	(691 , happyReduce_691),
-	(692 , happyReduce_692),
-	(693 , happyReduce_693)
-	]
-
-happy_n_terms = 145 :: Int
-happy_n_nonterms = 241 :: Int
-
-happyReduce_8 = happySpecReduce_2  0# happyReduction_8
-happyReduction_8 happy_x_2
-	happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	happyIn11
-		 (let (os,ss,l) = happy_var_1 in map (\x -> x os ss l) happy_var_2
-	)}}
-
-happyReduce_9 = happySpecReduce_2  1# happyReduction_9
-happyReduction_9 happy_x_2
-	happy_x_1
-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	happyIn12
-		 (happy_var_1 : happy_var_2
-	)}}
-
-happyReduce_10 = happySpecReduce_1  1# happyReduction_10
-happyReduction_10 happy_x_1
-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 ([happy_var_1]
-	)}
-
-happyReduce_11 = happyMonadReduce 2# 2# happyReduction_11
-happyReduction_11 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	( checkPageModule happy_var_2 happy_var_1)}}
-	) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_12 = happyMonadReduce 5# 2# happyReduction_12
-happyReduction_12 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 XCodeTagOpen) -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 XCodeTagClose) -> 
-	case happyOut14 happy_x_5 of { happy_var_5 -> 
-	( let (os,ss,l) = happy_var_1 in checkHybridModule happy_var_5 (happy_var_3 os ss l) happy_var_2 happy_var_4)}}}}}
-	) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_13 = happySpecReduce_2  2# happyReduction_13
-happyReduction_13 happy_x_2
-	happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (let (os,ss,l) = happy_var_1 in happy_var_2 os ss l
-	)}}
-
-happyReduce_14 = happyMonadReduce 9# 3# happyReduction_14
-happyReduction_14 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 XStdTagOpen) -> 
-	case happyOut178 happy_x_2 of { happy_var_2 -> 
-	case happyOut181 happy_x_3 of { happy_var_3 -> 
-	case happyOut183 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 XStdTagClose) -> 
-	case happyOut176 happy_x_6 of { happy_var_6 -> 
-	case happyOutTok happy_x_7 of { (Loc happy_var_7 XCloseTagOpen) -> 
-	case happyOut178 happy_x_8 of { happy_var_8 -> 
-	case happyOutTok happy_x_9 of { (Loc happy_var_9 XStdTagClose) -> 
-	( do { n <- checkEqNames happy_var_2 happy_var_8;
-                                                                       let { cn = reverse happy_var_6;
-                                                                             as = reverse happy_var_3; };
-                                                                       return $ XTag (happy_var_1 <^^> happy_var_9 <** [happy_var_1,happy_var_5,happy_var_7,happy_var_9]) n as happy_var_4 cn })}}}}}}}}}
-	) (\r -> happyReturn (happyIn14 r))
-
-happyReduce_15 = happyReduce 5# 3# happyReduction_15
-happyReduction_15 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 XStdTagOpen) -> 
-	case happyOut178 happy_x_2 of { happy_var_2 -> 
-	case happyOut181 happy_x_3 of { happy_var_3 -> 
-	case happyOut183 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 XEmptyTagClose) -> 
-	happyIn14
-		 (XETag (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_5]) happy_var_2 (reverse happy_var_3) happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_16 = happySpecReduce_3  4# happyReduction_16
-happyReduction_16 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut16 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn15
-		 (let (os,ss,ml) = happy_var_2 in (os,happy_var_1:ss++[happy_var_3],happy_var_1 <^^> happy_var_3)
-	)}}}
-
-happyReduce_17 = happySpecReduce_3  5# happyReduction_17
-happyReduction_17 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 SemiColon) -> 
-	case happyOut16 happy_x_3 of { happy_var_3 -> 
-	happyIn16
-		 (let (os,ss,ml) = happy_var_3 in (happy_var_1 : os, happy_var_2 : ss, Just $ ann happy_var_1 <++> nIS happy_var_2 <+?> ml)
-	)}}}
-
-happyReduce_18 = happySpecReduce_0  5# happyReduction_18
-happyReduction_18  =  happyIn16
-		 (([],[],Nothing)
-	)
-
-happyReduce_19 = happyReduce 4# 6# happyReduction_19
-happyReduction_19 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LANGUAGE) -> 
-	case happyOut18 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> 
-	happyIn17
-		 (LanguagePragma (happy_var_1 <^^> happy_var_4 <** (happy_var_1:snd happy_var_2 ++ reverse happy_var_3 ++ [happy_var_4])) (fst happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_20 = happySpecReduce_3  6# happyReduction_20
-happyReduction_20 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn17
-		 (let Loc l (OPTIONS (mc, s)) = happy_var_1
-                                                      in OptionsPragma (l <^^> happy_var_3 <** (l:reverse happy_var_2 ++ [happy_var_3])) (readTool mc) s
-	)}}}
-
-happyReduce_21 = happySpecReduce_3  6# happyReduction_21
-happyReduction_21 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ANN) -> 
-	case happyOut87 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn17
-		 (AnnModulePragma (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_22 = happySpecReduce_3  7# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut234 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut18 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 ((happy_var_1 : fst happy_var_3, happy_var_2 : snd happy_var_3)
-	)}}}
-
-happyReduce_23 = happySpecReduce_1  7# happyReduction_23
-happyReduction_23 happy_x_1
-	 =  case happyOut234 happy_x_1 of { happy_var_1 -> 
-	happyIn18
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_24 = happySpecReduce_2  8# happyReduction_24
-happyReduction_24 happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut22 happy_x_2 of { happy_var_2 -> 
-	happyIn19
-		 (let (is,ds,ss1,inf) = happy_var_2
-                 in \os ss l -> Module (l <++> inf <** (ss ++ ss1)) happy_var_1 os is ds
-	)}}
-
-happyReduce_25 = happyReduce 5# 9# happyReduction_25
-happyReduction_25 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> 
-	case happyOut245 happy_x_2 of { happy_var_2 -> 
-	case happyOut21 happy_x_3 of { happy_var_3 -> 
-	case happyOut26 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 KW_Where) -> 
-	happyIn20
-		 (Just $ ModuleHead (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_5]) happy_var_2 happy_var_3 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_26 = happySpecReduce_0  9# happyReduction_26
-happyReduction_26  =  happyIn20
-		 (Nothing
-	)
-
-happyReduce_27 = happySpecReduce_3  10# happyReduction_27
-happyReduction_27 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DEPRECATED) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn21
-		 (let Loc l (StringTok (s,_)) = happy_var_2 in Just $ DeprText (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) s
-	)}}}
-
-happyReduce_28 = happySpecReduce_3  10# happyReduction_28
-happyReduction_28 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 WARNING) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn21
-		 (let Loc l (StringTok (s,_)) = happy_var_2 in Just $ WarnText (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) s
-	)}}}
-
-happyReduce_29 = happySpecReduce_0  10# happyReduction_29
-happyReduction_29  =  happyIn21
-		 (Nothing
-	)
-
-happyReduce_30 = happySpecReduce_3  11# happyReduction_30
-happyReduction_30 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn22
-		 (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3)
-	)}}}
-
-happyReduce_31 = happySpecReduce_3  11# happyReduction_31
-happyReduction_31 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn22
-		 (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3)
-	)}}}
-
-happyReduce_32 = happyReduce 4# 12# happyReduction_32
-happyReduction_32 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut24 happy_x_3 of { happy_var_3 -> 
-	case happyOut49 happy_x_4 of { happy_var_4 -> 
-	happyIn23
-		 ((reverse (fst happy_var_2), fst happy_var_4, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3 ++ snd happy_var_4)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_33 = happySpecReduce_2  12# happyReduction_33
-happyReduction_33 happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn23
-		 (([], fst happy_var_2, reverse happy_var_1 ++ snd happy_var_2)
-	)}}
-
-happyReduce_34 = happySpecReduce_3  12# happyReduction_34
-happyReduction_34 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn23
-		 ((reverse (fst happy_var_2), [], reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)
-	)}}}
-
-happyReduce_35 = happySpecReduce_1  12# happyReduction_35
-happyReduction_35 happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	happyIn23
-		 (([], [], reverse happy_var_1)
-	)}
-
-happyReduce_36 = happySpecReduce_2  13# happyReduction_36
-happyReduction_36 happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 SemiColon) -> 
-	happyIn24
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_37 = happySpecReduce_1  14# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
-	happyIn25
-		 (happy_var_1
-	)}
-
-happyReduce_38 = happySpecReduce_0  14# happyReduction_38
-happyReduction_38  =  happyIn25
-		 ([]
-	)
-
-happyReduce_39 = happySpecReduce_1  15# happyReduction_39
-happyReduction_39 happy_x_1
-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> 
-	happyIn26
-		 (Just happy_var_1
-	)}
-
-happyReduce_40 = happySpecReduce_0  15# happyReduction_40
-happyReduction_40  =  happyIn26
-		 (Nothing
-	)
-
-happyReduce_41 = happyReduce 4# 16# happyReduction_41
-happyReduction_41 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut28 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn27
-		 (ExportSpecList (happy_var_1 <^^> happy_var_4 <** (happy_var_1:reverse (snd happy_var_2) ++ happy_var_3 ++ [happy_var_4])) (reverse (fst happy_var_2))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_42 = happySpecReduce_3  16# happyReduction_42
-happyReduction_42 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn27
-		 (ExportSpecList (happy_var_1 <^^> happy_var_3 <** (happy_var_1:happy_var_2++[happy_var_3])) []
-	)}}}
-
-happyReduce_43 = happySpecReduce_1  17# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Comma) -> 
-	happyIn28
-		 ([happy_var_1]
-	)}
-
-happyReduce_44 = happySpecReduce_0  17# happyReduction_44
-happyReduction_44  =  happyIn28
-		 ([  ]
-	)
-
-happyReduce_45 = happySpecReduce_3  18# happyReduction_45
-happyReduction_45 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut30 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_46 = happySpecReduce_1  18# happyReduction_46
-happyReduction_46 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn29
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_47 = happySpecReduce_1  19# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  case happyOut216 happy_x_1 of { happy_var_1 -> 
-	happyIn30
-		 (EVar (ann happy_var_1) (NoNamespace (ann happy_var_1)) happy_var_1
-	)}
-
-happyReduce_48 = happyMonadReduce 2# 19# happyReduction_48
-happyReduction_48 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut216 happy_x_2 of { happy_var_2 -> 
-	( do { checkEnabled ExplicitNamespaces;
-                                                      return (EVar (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1, srcInfoSpan (ann happy_var_2)]) (TypeNamespace (nIS happy_var_1 <** [happy_var_1])) happy_var_2) })}}
-	) (\r -> happyReturn (happyIn30 r))
-
-happyReduce_49 = happySpecReduce_1  19# happyReduction_49
-happyReduction_49 happy_x_1
-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> 
-	happyIn30
-		 (EAbs (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_50 = happyReduce 4# 19# happyReduction_50
-happyReduction_50 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut247 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DotDot) -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn30
-		 (EThingAll  (ann happy_var_1 <++> nIS happy_var_4 <** [happy_var_2,happy_var_3,happy_var_4]) happy_var_1
-	) `HappyStk` happyRest}}}}
-
-happyReduce_51 = happySpecReduce_3  19# happyReduction_51
-happyReduction_51 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn30
-		 (EThingWith (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3])    happy_var_1 []
-	)}}}
-
-happyReduce_52 = happyReduce 4# 19# happyReduction_52
-happyReduction_52 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut247 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut43 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn30
-		 (EThingWith (ann happy_var_1 <++> nIS happy_var_4 <** (happy_var_2:reverse (snd happy_var_3) ++ [happy_var_4])) happy_var_1 (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_53 = happySpecReduce_2  19# happyReduction_53
-happyReduction_53 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> 
-	case happyOut245 happy_x_2 of { happy_var_2 -> 
-	happyIn30
-		 (EModuleContents (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_54 = happySpecReduce_3  20# happyReduction_54
-happyReduction_54 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut32 happy_x_3 of { happy_var_3 -> 
-	happyIn31
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_55 = happySpecReduce_1  20# happyReduction_55
-happyReduction_55 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_56 = happyReduce 8# 21# happyReduction_56
-happyReduction_56 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Import) -> 
-	case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut34 happy_x_3 of { happy_var_3 -> 
-	case happyOut35 happy_x_4 of { happy_var_4 -> 
-	case happyOut36 happy_x_5 of { happy_var_5 -> 
-	case happyOut245 happy_x_6 of { happy_var_6 -> 
-	case happyOut37 happy_x_7 of { happy_var_7 -> 
-	case happyOut38 happy_x_8 of { happy_var_8 -> 
-	happyIn32
-		 (let { (mmn,ss,ml) = happy_var_7 ;
-                                      l = nIS happy_var_1 <++> ann happy_var_6 <+?> ml <+?> (fmap ann) happy_var_8 <** (happy_var_1:snd happy_var_2 ++ snd happy_var_3 ++ snd happy_var_4 ++ snd happy_var_5 ++ ss)}
-                                 in ImportDecl l happy_var_6 (fst happy_var_4) (fst happy_var_2) (fst happy_var_3) (fst happy_var_5) mmn happy_var_8
-	) `HappyStk` happyRest}}}}}}}}
-
-happyReduce_57 = happySpecReduce_2  22# happyReduction_57
-happyReduction_57 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SOURCE) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 PragmaEnd) -> 
-	happyIn33
-		 ((True,[happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_58 = happySpecReduce_0  22# happyReduction_58
-happyReduction_58  =  happyIn33
-		 ((False,[])
-	)
-
-happyReduce_59 = happyMonadReduce 1# 23# happyReduction_59
-happyReduction_59 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> 
-	( do { checkEnabledOneOf [Safe, SafeImports, Trustworthy] ;
-                                                 return (True, [happy_var_1]) })}
-	) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_60 = happySpecReduce_0  23# happyReduction_60
-happyReduction_60  =  happyIn34
-		 ((False, [])
-	)
-
-happyReduce_61 = happySpecReduce_1  24# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> 
-	happyIn35
-		 ((True,[happy_var_1])
-	)}
-
-happyReduce_62 = happySpecReduce_0  24# happyReduction_62
-happyReduction_62  =  happyIn35
-		 ((False, [])
-	)
-
-happyReduce_63 = happyMonadReduce 1# 25# happyReduction_63
-happyReduction_63 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
-	( do { checkEnabled PackageImports ;
-                                                      let { Loc l (StringTok (s,_)) = happy_var_1 } ;
-                                                      return $ (Just s,[l]) })}
-	) (\r -> happyReturn (happyIn36 r))
-
-happyReduce_64 = happySpecReduce_0  25# happyReduction_64
-happyReduction_64  =  happyIn36
-		 ((Nothing,[])
-	)
-
-happyReduce_65 = happySpecReduce_2  26# happyReduction_65
-happyReduction_65 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> 
-	case happyOut245 happy_x_2 of { happy_var_2 -> 
-	happyIn37
-		 ((Just happy_var_2,[happy_var_1],Just (nIS happy_var_1 <++> ann happy_var_2))
-	)}}
-
-happyReduce_66 = happySpecReduce_0  26# happyReduction_66
-happyReduction_66  =  happyIn37
-		 ((Nothing,[],Nothing)
-	)
-
-happyReduce_67 = happySpecReduce_1  27# happyReduction_67
-happyReduction_67 happy_x_1
-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 (Just happy_var_1
-	)}
-
-happyReduce_68 = happySpecReduce_0  27# happyReduction_68
-happyReduction_68  =  happyIn38
-		 (Nothing
-	)
-
-happyReduce_69 = happyReduce 5# 28# happyReduction_69
-happyReduction_69 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut40 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut41 happy_x_3 of { happy_var_3 -> 
-	case happyOut28 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> 
-	happyIn39
-		 (let {(b,ml,s) = happy_var_1 ;
-                                                      l = (ml <?+> (happy_var_2 <^^> happy_var_5)) <** (s ++ happy_var_2:reverse (snd happy_var_3) ++ happy_var_4 ++ [happy_var_5])}
-                                                 in ImportSpecList l b (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_70 = happyReduce 4# 28# happyReduction_70
-happyReduction_70 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut40 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut28 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn39
-		 (let {(b,ml,s) = happy_var_1 ; l = (ml <?+> (happy_var_2 <^^> happy_var_4)) <** (s ++ happy_var_2:happy_var_3 ++ [happy_var_4])}
-                                                 in ImportSpecList l b []
-	) `HappyStk` happyRest}}}}
-
-happyReduce_71 = happySpecReduce_1  29# happyReduction_71
-happyReduction_71 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> 
-	happyIn40
-		 ((True,Just (nIS happy_var_1),[happy_var_1])
-	)}
-
-happyReduce_72 = happySpecReduce_0  29# happyReduction_72
-happyReduction_72  =  happyIn40
-		 ((False,Nothing,[])
-	)
-
-happyReduce_73 = happySpecReduce_3  30# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut42 happy_x_3 of { happy_var_3 -> 
-	happyIn41
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_74 = happySpecReduce_1  30# happyReduction_74
-happyReduction_74 happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_75 = happySpecReduce_1  31# happyReduction_75
-happyReduction_75 happy_x_1
-	 =  case happyOut214 happy_x_1 of { happy_var_1 -> 
-	happyIn42
-		 (IVar (ann happy_var_1) (NoNamespace (ann happy_var_1)) happy_var_1
-	)}
-
-happyReduce_76 = happyMonadReduce 2# 31# happyReduction_76
-happyReduction_76 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut214 happy_x_2 of { happy_var_2 -> 
-	( do { checkEnabled ExplicitNamespaces;
-                                                      return (IVar (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1, srcInfoSpan (ann happy_var_2)]) (TypeNamespace (nIS happy_var_1 <** [happy_var_1])) happy_var_2) })}}
-	) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_77 = happySpecReduce_1  31# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut246 happy_x_1 of { happy_var_1 -> 
-	happyIn42
-		 (IAbs (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_78 = happyReduce 4# 31# happyReduction_78
-happyReduction_78 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut246 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DotDot) -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn42
-		 (IThingAll  (ann happy_var_1 <++> nIS happy_var_4 <** [happy_var_2,happy_var_3,happy_var_4]) happy_var_1
-	) `HappyStk` happyRest}}}}
-
-happyReduce_79 = happySpecReduce_3  31# happyReduction_79
-happyReduction_79 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut246 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn42
-		 (IThingWith (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3])    happy_var_1 []
-	)}}}
-
-happyReduce_80 = happyReduce 4# 31# happyReduction_80
-happyReduction_80 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut246 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut43 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn42
-		 (IThingWith (ann happy_var_1 <++> nIS happy_var_4 <** (happy_var_2:reverse (snd happy_var_3) ++ [happy_var_4])) happy_var_1 (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_81 = happySpecReduce_3  32# happyReduction_81
-happyReduction_81 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut44 happy_x_3 of { happy_var_3 -> 
-	happyIn43
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_82 = happySpecReduce_1  32# happyReduction_82
-happyReduction_82 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_83 = happySpecReduce_1  33# happyReduction_83
-happyReduction_83 happy_x_1
-	 =  case happyOut214 happy_x_1 of { happy_var_1 -> 
-	happyIn44
-		 (VarName (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_84 = happySpecReduce_1  33# happyReduction_84
-happyReduction_84 happy_x_1
-	 =  case happyOut218 happy_x_1 of { happy_var_1 -> 
-	happyIn44
-		 (ConName (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_85 = happySpecReduce_3  34# happyReduction_85
-happyReduction_85 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> 
-	case happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn45
-		 (let (ops,ss,l) = happy_var_3
-                                                 in InfixDecl (ann happy_var_1 <++> l <** (snd happy_var_2 ++ reverse ss)) happy_var_1 (fst happy_var_2) (reverse ops)
-	)}}}
-
-happyReduce_86 = happySpecReduce_0  35# happyReduction_86
-happyReduction_86  =  happyIn46
-		 ((Nothing, [])
-	)
-
-happyReduce_87 = happyMonadReduce 1# 35# happyReduction_87
-happyReduction_87 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
-	( let Loc l (IntTok (i,_)) = happy_var_1 in checkPrec i >>= \i -> return (Just i, [l]))}
-	) (\r -> happyReturn (happyIn46 r))
-
-happyReduce_88 = happySpecReduce_1  36# happyReduction_88
-happyReduction_88 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Infix) -> 
-	happyIn47
-		 (AssocNone  $ nIS happy_var_1
-	)}
-
-happyReduce_89 = happySpecReduce_1  36# happyReduction_89
-happyReduction_89 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixL) -> 
-	happyIn47
-		 (AssocLeft  $ nIS happy_var_1
-	)}
-
-happyReduce_90 = happySpecReduce_1  36# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixR) -> 
-	happyIn47
-		 (AssocRight $ nIS happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_3  37# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut225 happy_x_3 of { happy_var_3 -> 
-	happyIn48
-		 (let (ops,ss,l) = happy_var_1 in (happy_var_3 : ops, happy_var_2 : ss, l <++> ann happy_var_3)
-	)}}}
-
-happyReduce_92 = happySpecReduce_1  37# happyReduction_92
-happyReduction_92 happy_x_1
-	 =  case happyOut225 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (([happy_var_1],[],ann happy_var_1)
-	)}
-
-happyReduce_93 = happyMonadReduce 2# 38# happyReduction_93
-happyReduction_93 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	( checkRevDecls (fst happy_var_1) >>= \ds -> return (ds, snd happy_var_1 ++ reverse happy_var_2))}}
-	) (\r -> happyReturn (happyIn49 r))
-
-happyReduce_94 = happySpecReduce_3  39# happyReduction_94
-happyReduction_94 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut51 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_95 = happySpecReduce_1  39# happyReduction_95
-happyReduction_95 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_96 = happyMonadReduce 4# 40# happyReduction_96
-happyReduction_96 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut89 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> 
-	case happyOut103 happy_x_4 of { happy_var_4 -> 
-	( do { dh <- checkSimpleType happy_var_2;
-                       let {l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]};
-                       return (TypeDecl l dh happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_97 = happyMonadReduce 5# 40# happyReduction_97
-happyReduction_97 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Family) -> 
-	case happyOut91 happy_x_3 of { happy_var_3 -> 
-	case happyOut136 happy_x_4 of { happy_var_4 -> 
-	case happyOut53 happy_x_5 of { happy_var_5 -> 
-	( do { dh <- checkSimpleType happy_var_3;
-                       let {l = nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** (happy_var_1:happy_var_2:snd happy_var_4)};
-                       case happy_var_5 of {
-                         Nothing    -> return (TypeFamDecl l dh (fst happy_var_4));
-                         Just (x,a) -> return (ClosedTypeFamDecl (l <** [a]) dh (fst happy_var_4) x); }})}}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_98 = happyMonadReduce 5# 40# happyReduction_98
-happyReduction_98 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut88 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 Equals) -> 
-	case happyOut103 happy_x_5 of { happy_var_5 -> 
-	( do { -- no checkSimpleType happy_var_4 since dtype may contain type patterns
-                       checkEnabled TypeFamilies ;
-                       let {l = nIS happy_var_1 <++> ann happy_var_5 <** [happy_var_1,happy_var_2,happy_var_4]};
-                       return (TypeInsDecl l happy_var_3 happy_var_5) })}}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_99 = happyMonadReduce 4# 40# happyReduction_99
-happyReduction_99 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOut119 happy_x_3 of { happy_var_3 -> 
-	case happyOut127 happy_x_4 of { happy_var_4 -> 
-	( do { (cs,dh) <- checkDataHeader happy_var_2;
-                       let { (qds,ss,minf) = happy_var_3;
-                             l = happy_var_1 <> happy_var_2 <+?> minf <+?> fmap ann happy_var_4 <** ss};
-                       checkDataOrNew happy_var_1 qds;
-                       return (DataDecl l happy_var_1 cs dh (reverse qds) happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_100 = happyMonadReduce 5# 40# happyReduction_100
-happyReduction_100 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOut136 happy_x_3 of { happy_var_3 -> 
-	case happyOut115 happy_x_4 of { happy_var_4 -> 
-	case happyOut127 happy_x_5 of { happy_var_5 -> 
-	( do { (cs,dh) <- checkDataHeader happy_var_2;
-                       let { (gs,ss,minf) = happy_var_4;
-                             l = ann happy_var_1 <+?> minf <+?> fmap ann happy_var_5 <** (snd happy_var_3 ++ ss)};
-                       checkDataOrNewG happy_var_1 gs;
-                       case (gs, fst happy_var_3) of
-                        ([], Nothing) -> return (DataDecl l happy_var_1 cs dh [] happy_var_5)
-                        _ -> checkEnabled GADTs >> return (GDataDecl l happy_var_1 cs dh (fst happy_var_3) (reverse gs) happy_var_5) })}}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_101 = happyMonadReduce 4# 40# happyReduction_101
-happyReduction_101 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Family) -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	case happyOut136 happy_x_4 of { happy_var_4 -> 
-	( do { (cs,dh) <- checkDataHeader happy_var_3;
-                       let {l = nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** (happy_var_1:happy_var_2:snd happy_var_4)};
-                       return (DataFamDecl l cs dh (fst happy_var_4)) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_102 = happyMonadReduce 5# 40# happyReduction_102
-happyReduction_102 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	case happyOut119 happy_x_4 of { happy_var_4 -> 
-	case happyOut127 happy_x_5 of { happy_var_5 -> 
-	( do { -- (cs,c,t) <- checkDataHeader happy_var_4;
-                       checkEnabled TypeFamilies ;
-                       let { (qds,ss,minf) = happy_var_4 ;
-                             l = happy_var_1 <> happy_var_3 <+?> minf <+?> fmap ann happy_var_5 <** happy_var_2:ss };
-                       checkDataOrNew happy_var_1 qds;
-                       return (DataInsDecl l happy_var_1 happy_var_3 (reverse qds) happy_var_5) })}}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_103 = happyMonadReduce 6# 40# happyReduction_103
-happyReduction_103 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	case happyOut136 happy_x_4 of { happy_var_4 -> 
-	case happyOut115 happy_x_5 of { happy_var_5 -> 
-	case happyOut127 happy_x_6 of { happy_var_6 -> 
-	( do { -- (cs,c,t) <- checkDataHeader happy_var_4;
-                       checkEnabled TypeFamilies ;
-                       let {(gs,ss,minf) = happy_var_5;
-                            l = ann happy_var_1 <+?> minf <+?> fmap ann happy_var_6 <** (happy_var_2:snd happy_var_4 ++ ss)};
-                       checkDataOrNewG happy_var_1 gs;
-                       return (GDataInsDecl l happy_var_1 happy_var_3 (fst happy_var_4) (reverse gs) happy_var_6) })}}}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_104 = happyMonadReduce 4# 40# happyReduction_104
-happyReduction_104 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Class) -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOut112 happy_x_3 of { happy_var_3 -> 
-	case happyOut137 happy_x_4 of { happy_var_4 -> 
-	( do { (cs,dh) <- checkClassHeader happy_var_2;
-                       let {(fds,ss1,minf1) = happy_var_3;(mcs,ss2,minf2) = happy_var_4} ;
-                       let { l = nIS happy_var_1 <++> ann happy_var_2 <+?> minf1 <+?> minf2 <** (happy_var_1:ss1 ++ ss2)} ;
-                       return (ClassDecl l cs dh fds mcs) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_105 = happyMonadReduce 4# 40# happyReduction_105
-happyReduction_105 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Instance) -> 
-	case happyOut52 happy_x_2 of { happy_var_2 -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	case happyOut142 happy_x_4 of { happy_var_4 -> 
-	( do { ih <- checkInstHeader happy_var_3;
-                       let {(mis,ss,minf) = happy_var_4};
-                       return (InstDecl (nIS happy_var_1 <++> ann happy_var_3 <+?> minf <** (happy_var_1:ss)) happy_var_2 ih mis) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_106 = happyMonadReduce 4# 40# happyReduction_106
-happyReduction_106 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut52 happy_x_3 of { happy_var_3 -> 
-	case happyOut104 happy_x_4 of { happy_var_4 -> 
-	( do { checkEnabled StandaloneDeriving ;
-                       ih <- checkInstHeader happy_var_4;
-                       let {l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_2]};
-                       return (DerivDecl l happy_var_3 ih) })}}}}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_107 = happyReduce 4# 40# happyReduction_107
-happyReduction_107 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Default) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut58 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn51
-		 (DefaultDecl (happy_var_1 <^^> happy_var_4 <** (happy_var_1:happy_var_2 : snd happy_var_3 ++ [happy_var_4])) (fst happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_108 = happyMonadReduce 1# 40# happyReduction_108
-happyReduction_108 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut155 happy_x_1 of { happy_var_1 -> 
-	( do
-              checkToplevel happy_var_1
-              checkExpr happy_var_1 >>= \e -> return (SpliceDecl (ann e) e))}
-	) (\r -> happyReturn (happyIn51 r))
-
-happyReduce_109 = happyReduce 5# 40# happyReduction_109
-happyReduction_109 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Foreign) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Import) -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut75 happy_x_4 of { happy_var_4 -> 
-	case happyOut76 happy_x_5 of { happy_var_5 -> 
-	happyIn51
-		 (let (s,n,t,ss) = happy_var_5 in ForImp (nIS happy_var_1 <++> ann t <** (happy_var_1:happy_var_2:ss)) happy_var_3 happy_var_4 s n t
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_110 = happyReduce 4# 40# happyReduction_110
-happyReduction_110 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Foreign) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Export) -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut76 happy_x_4 of { happy_var_4 -> 
-	happyIn51
-		 (let (s,n,t,ss) = happy_var_4 in ForExp (nIS happy_var_1 <++> ann t <** (happy_var_1:happy_var_2:ss)) happy_var_3    s n t
-	) `HappyStk` happyRest}}}}
-
-happyReduce_111 = happySpecReduce_3  40# happyReduction_111
-happyReduction_111 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RULES) -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn51
-		 (RulePragmaDecl (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) $ reverse happy_var_2
-	)}}}
-
-happyReduce_112 = happySpecReduce_3  40# happyReduction_112
-happyReduction_112 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DEPRECATED) -> 
-	case happyOut83 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn51
-		 (DeprPragmaDecl (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) $ reverse (fst happy_var_2)
-	)}}}
-
-happyReduce_113 = happySpecReduce_3  40# happyReduction_113
-happyReduction_113 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 WARNING) -> 
-	case happyOut83 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn51
-		 (WarnPragmaDecl (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) $ reverse (fst happy_var_2)
-	)}}}
-
-happyReduce_114 = happySpecReduce_3  40# happyReduction_114
-happyReduction_114 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ANN) -> 
-	case happyOut87 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn51
-		 (AnnPragma      (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_115 = happySpecReduce_1  40# happyReduction_115
-happyReduction_115 happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_116 = happySpecReduce_2  41# happyReduction_116
-happyReduction_116 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 OVERLAP) -> 
-	happyIn52
-		 (Just (Overlap (nIS happy_var_1))
-	)}
-
-happyReduce_117 = happySpecReduce_2  41# happyReduction_117
-happyReduction_117 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 INCOHERENT) -> 
-	happyIn52
-		 (Just (Incoherent (nIS happy_var_1))
-	)}
-
-happyReduce_118 = happySpecReduce_2  41# happyReduction_118
-happyReduction_118 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 NO_OVERLAP) -> 
-	happyIn52
-		 (Just (NoOverlap (nIS happy_var_1))
-	)}
-
-happyReduce_119 = happySpecReduce_0  41# happyReduction_119
-happyReduction_119  =  happyIn52
-		 (Nothing
-	)
-
-happyReduce_120 = happySpecReduce_0  42# happyReduction_120
-happyReduction_120  =  happyIn53
-		 (Nothing
-	)
-
-happyReduce_121 = happySpecReduce_2  42# happyReduction_121
-happyReduction_121 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOut54 happy_x_2 of { happy_var_2 -> 
-	happyIn53
-		 (Just (happy_var_2, happy_var_1)
-	)}}
-
-happyReduce_122 = happySpecReduce_3  43# happyReduction_122
-happyReduction_122 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut55 happy_x_2 of { happy_var_2 -> 
-	happyIn54
-		 (happy_var_2
-	)}
-
-happyReduce_123 = happySpecReduce_3  43# happyReduction_123
-happyReduction_123 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut55 happy_x_2 of { happy_var_2 -> 
-	happyIn54
-		 (happy_var_2
-	)}
-
-happyReduce_124 = happySpecReduce_3  44# happyReduction_124
-happyReduction_124 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
-	case happyOut56 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1 ++ [happy_var_3]
-	)}}
-
-happyReduce_125 = happySpecReduce_2  44# happyReduction_125
-happyReduction_125 happy_x_2
-	happy_x_1
-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
-	happyIn55
-		 (happy_var_1
-	)}
-
-happyReduce_126 = happySpecReduce_1  44# happyReduction_126
-happyReduction_126 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn55
-		 ([happy_var_1]
-	)}
-
-happyReduce_127 = happyMonadReduce 3# 45# happyReduction_127
-happyReduction_127 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut88 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	( do { checkEnabled TypeFamilies ;
-                        return (TypeEqn (ann happy_var_1 <++> ann happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3) })}}}
-	) (\r -> happyReturn (happyIn56 r))
-
-happyReduce_128 = happySpecReduce_1  46# happyReduction_128
-happyReduction_128 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> 
-	happyIn57
-		 (DataType $ nIS happy_var_1
-	)}
-
-happyReduce_129 = happySpecReduce_1  46# happyReduction_129
-happyReduction_129 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_NewType) -> 
-	happyIn57
-		 (NewType  $ nIS happy_var_1
-	)}
-
-happyReduce_130 = happyMonadReduce 1# 47# happyReduction_130
-happyReduction_130 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut106 happy_x_1 of { happy_var_1 -> 
-	( do { ts <- mapM checkType (fst happy_var_1);
-                                              return $ (reverse ts, reverse (snd happy_var_1)) })}
-	) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_131 = happySpecReduce_1  47# happyReduction_131
-happyReduction_131 happy_x_1
-	 =  case happyOut90 happy_x_1 of { happy_var_1 -> 
-	happyIn58
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_132 = happySpecReduce_0  47# happyReduction_132
-happyReduction_132  =  happyIn58
-		 (([],[])
-	)
-
-happyReduce_133 = happyMonadReduce 3# 48# happyReduction_133
-happyReduction_133 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	( checkRevDecls (fst happy_var_2) >>= \ds -> return (ds, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3))}}}
-	) (\r -> happyReturn (happyIn59 r))
-
-happyReduce_134 = happySpecReduce_1  48# happyReduction_134
-happyReduction_134 happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	happyIn59
-		 (([],reverse happy_var_1)
-	)}
-
-happyReduce_135 = happySpecReduce_3  49# happyReduction_135
-happyReduction_135 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut61 happy_x_3 of { happy_var_3 -> 
-	happyIn60
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_136 = happySpecReduce_1  49# happyReduction_136
-happyReduction_136 happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	happyIn60
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_137 = happySpecReduce_1  50# happyReduction_137
-happyReduction_137 happy_x_1
-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
-	happyIn61
-		 (happy_var_1
-	)}
-
-happyReduce_138 = happySpecReduce_1  50# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn61
-		 (happy_var_1
-	)}
-
-happyReduce_139 = happySpecReduce_1  50# happyReduction_139
-happyReduction_139 happy_x_1
-	 =  case happyOut147 happy_x_1 of { happy_var_1 -> 
-	happyIn61
-		 (happy_var_1
-	)}
-
-happyReduce_140 = happySpecReduce_3  51# happyReduction_140
-happyReduction_140 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut59 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn62
-		 (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) (fst happy_var_2)
-	)}}}
-
-happyReduce_141 = happySpecReduce_3  51# happyReduction_141
-happyReduction_141 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut59 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn62
-		 (let l' = if null (fst happy_var_2) then nIS happy_var_3 else (ann . last $ fst happy_var_2)
-                                         in BDecls (nIS happy_var_1 <++> l' <** (happy_var_1:snd happy_var_2++[happy_var_3])) (fst happy_var_2)
-	)}}}
-
-happyReduce_142 = happySpecReduce_1  52# happyReduction_142
-happyReduction_142 happy_x_1
-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (happy_var_1
-	)}
-
-happyReduce_143 = happySpecReduce_1  52# happyReduction_143
-happyReduction_143 happy_x_1
-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
-	happyIn63
-		 (happy_var_1
-	)}
-
-happyReduce_144 = happyMonadReduce 3# 53# happyReduction_144
-happyReduction_144 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	( do { v <- checkSigVar happy_var_1;
-                                                               return $ TypeSig (happy_var_1 <> happy_var_3 <** [happy_var_2]) [v] happy_var_3 })}}}
-	) (\r -> happyReturn (happyIn64 r))
-
-happyReduce_145 = happyMonadReduce 5# 53# happyReduction_145
-happyReduction_145 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> 
-	case happyOut103 happy_x_5 of { happy_var_5 -> 
-	( do { v <- checkSigVar happy_var_1;
-                                                               let {(vs,ss,_) = happy_var_3 ; l = happy_var_1 <> happy_var_5 <** (happy_var_2 : reverse ss ++ [happy_var_4]) } ;
-                                                               return $ TypeSig l (v : reverse vs) happy_var_5 })}}}}}
-	) (\r -> happyReturn (happyIn64 r))
-
-happyReduce_146 = happyReduce 4# 54# happyReduction_146
-happyReduction_146 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut79 happy_x_2 of { happy_var_2 -> 
-	case happyOut216 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> 
-	happyIn65
-		 (let Loc l (INLINE s) = happy_var_1 in InlineSig (l <^^> happy_var_4 <** [l,happy_var_4]) s happy_var_2 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_147 = happyReduce 4# 54# happyReduction_147
-happyReduction_147 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 INLINE_CONLIKE) -> 
-	case happyOut79 happy_x_2 of { happy_var_2 -> 
-	case happyOut216 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> 
-	happyIn65
-		 (InlineConlikeSig (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_4]) happy_var_2 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_148 = happyReduce 6# 54# happyReduction_148
-happyReduction_148 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 SPECIALISE) -> 
-	case happyOut79 happy_x_2 of { happy_var_2 -> 
-	case happyOut216 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> 
-	case happyOut66 happy_x_5 of { happy_var_5 -> 
-	case happyOutTok happy_x_6 of { (Loc happy_var_6 PragmaEnd) -> 
-	happyIn65
-		 (SpecSig (happy_var_1 <^^> happy_var_6 <** (happy_var_1: happy_var_4 : snd happy_var_5 ++ [happy_var_6])) happy_var_2 happy_var_3 (fst happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_149 = happyReduce 6# 54# happyReduction_149
-happyReduction_149 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut79 happy_x_2 of { happy_var_2 -> 
-	case happyOut216 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> 
-	case happyOut66 happy_x_5 of { happy_var_5 -> 
-	case happyOutTok happy_x_6 of { (Loc happy_var_6 PragmaEnd) -> 
-	happyIn65
-		 (let Loc l (SPECIALISE_INLINE s) = happy_var_1
-               in SpecInlineSig (l <^^> happy_var_6 <** (l:happy_var_4:snd happy_var_5++[happy_var_6])) s happy_var_2 happy_var_3 (fst happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_150 = happyMonadReduce 4# 54# happyReduction_150
-happyReduction_150 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 SPECIALISE) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> 
-	( do { ih <- checkInstHeader happy_var_3;
-                                                               let {l = happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_2,happy_var_4]};
-                                                               return $ InstSig l ih })}}}}
-	) (\r -> happyReturn (happyIn65 r))
-
-happyReduce_151 = happySpecReduce_3  54# happyReduction_151
-happyReduction_151 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 MINIMAL) -> 
-	case happyOut68 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	happyIn65
-		 (MinimalPragma (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_152 = happySpecReduce_1  55# happyReduction_152
-happyReduction_152 happy_x_1
-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_153 = happySpecReduce_3  55# happyReduction_153
-happyReduction_153 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut66 happy_x_3 of { happy_var_3 -> 
-	happyIn66
-		 ((happy_var_1 : fst happy_var_3, happy_var_2 : snd happy_var_3)
-	)}}}
-
-happyReduce_154 = happyMonadReduce 1# 56# happyReduction_154
-happyReduction_154 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut104 happy_x_1 of { happy_var_1 -> 
-	( checkType $ mkTyForall (ann happy_var_1) Nothing Nothing happy_var_1)}
-	) (\r -> happyReturn (happyIn67 r))
-
-happyReduce_155 = happySpecReduce_1  57# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOut69 happy_x_1 of { happy_var_1 -> 
-	happyIn68
-		 (Just happy_var_1
-	)}
-
-happyReduce_156 = happySpecReduce_0  57# happyReduction_156
-happyReduction_156  =  happyIn68
-		 (Nothing
-	)
-
-happyReduce_157 = happySpecReduce_1  58# happyReduction_157
-happyReduction_157 happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	happyIn69
-		 (happy_var_1
-	)}
-
-happyReduce_158 = happySpecReduce_3  58# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut69 happy_x_3 of { happy_var_3 -> 
-	happyIn69
-		 (OrFormula (ann happy_var_1 <++>  ann happy_var_3 <** [happy_var_2]) [happy_var_1,happy_var_3]
-	)}}}
-
-happyReduce_159 = happySpecReduce_1  59# happyReduction_159
-happyReduction_159 happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	happyIn70
-		 (happy_var_1
-	)}
-
-happyReduce_160 = happySpecReduce_3  59# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (AndFormula (ann happy_var_1 <++> ann happy_var_3 <** [happy_var_2]) [happy_var_1,happy_var_3]
-	)}}}
-
-happyReduce_161 = happySpecReduce_3  60# happyReduction_161
-happyReduction_161 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut69 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn71
-		 (ParenFormula (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_162 = happySpecReduce_1  60# happyReduction_162
-happyReduction_162 happy_x_1
-	 =  case happyOut214 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 (VarFormula (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_163 = happySpecReduce_1  61# happyReduction_163
-happyReduction_163 happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (happy_var_1
-	)}
-
-happyReduce_164 = happySpecReduce_3  61# happyReduction_164
-happyReduction_164 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut210 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn72
-		 (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2) (fst happy_var_2)
-	)}}}
-
-happyReduce_165 = happySpecReduce_3  61# happyReduction_165
-happyReduction_165 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut210 happy_x_2 of { happy_var_2 -> 
-	happyIn72
-		 (let l' =  ann . last $ fst happy_var_2
-                                         in IPBinds (nIS happy_var_1 <++> l' <** snd happy_var_2) (fst happy_var_2)
-	)}}
-
-happyReduce_166 = happySpecReduce_3  62# happyReduction_166
-happyReduction_166 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut214 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (let (ns,ss,l) = happy_var_1 in (happy_var_3 : ns, happy_var_2 : ss, l <++> ann happy_var_3)
-	)}}}
-
-happyReduce_167 = happyMonadReduce 1# 62# happyReduction_167
-happyReduction_167 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut216 happy_x_1 of { happy_var_1 -> 
-	( do { n <- checkUnQual happy_var_1;
-                                              return ([n],[],ann n) })}
-	) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_168 = happySpecReduce_1  63# happyReduction_168
-happyReduction_168 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> 
-	happyIn74
-		 (StdCall   (nIS happy_var_1)
-	)}
-
-happyReduce_169 = happySpecReduce_1  63# happyReduction_169
-happyReduction_169 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> 
-	happyIn74
-		 (CCall     (nIS happy_var_1)
-	)}
-
-happyReduce_170 = happySpecReduce_1  63# happyReduction_170
-happyReduction_170 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> 
-	happyIn74
-		 (CPlusPlus (nIS happy_var_1)
-	)}
-
-happyReduce_171 = happySpecReduce_1  63# happyReduction_171
-happyReduction_171 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> 
-	happyIn74
-		 (DotNet    (nIS happy_var_1)
-	)}
-
-happyReduce_172 = happySpecReduce_1  63# happyReduction_172
-happyReduction_172 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> 
-	happyIn74
-		 (Jvm       (nIS happy_var_1)
-	)}
-
-happyReduce_173 = happySpecReduce_1  63# happyReduction_173
-happyReduction_173 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> 
-	happyIn74
-		 (Js        (nIS happy_var_1)
-	)}
-
-happyReduce_174 = happySpecReduce_1  63# happyReduction_174
-happyReduction_174 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> 
-	happyIn74
-		 (CApi      (nIS happy_var_1)
-	)}
-
-happyReduce_175 = happySpecReduce_1  64# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> 
-	happyIn75
-		 (Just $ PlaySafe  (nIS happy_var_1) False
-	)}
-
-happyReduce_176 = happySpecReduce_1  64# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> 
-	happyIn75
-		 (Just $ PlayRisky (nIS happy_var_1)
-	)}
-
-happyReduce_177 = happySpecReduce_1  64# happyReduction_177
-happyReduction_177 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> 
-	happyIn75
-		 (Just $ PlaySafe  (nIS happy_var_1) True
-	)}
-
-happyReduce_178 = happySpecReduce_1  64# happyReduction_178
-happyReduction_178 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> 
-	happyIn75
-		 (Just $ PlayInterruptible (nIS happy_var_1)
-	)}
-
-happyReduce_179 = happySpecReduce_0  64# happyReduction_179
-happyReduction_179  =  happyIn75
-		 (Nothing
-	)
-
-happyReduce_180 = happyReduce 4# 65# happyReduction_180
-happyReduction_180 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut215 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> 
-	case happyOut88 happy_x_4 of { happy_var_4 -> 
-	happyIn76
-		 (let Loc l (StringTok (s,_)) = happy_var_1 in (Just s, happy_var_2, happy_var_4, [l,happy_var_3])
-	) `HappyStk` happyRest}}}}
-
-happyReduce_181 = happySpecReduce_3  65# happyReduction_181
-happyReduction_181 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut215 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut88 happy_x_3 of { happy_var_3 -> 
-	happyIn76
-		 ((Nothing, happy_var_1, happy_var_3, [happy_var_2])
-	)}}}
-
-happyReduce_182 = happySpecReduce_3  66# happyReduction_182
-happyReduction_182 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> 
-	case happyOut78 happy_x_3 of { happy_var_3 -> 
-	happyIn77
-		 (happy_var_3 : happy_var_1
-	)}}
-
-happyReduce_183 = happySpecReduce_2  66# happyReduction_183
-happyReduction_183 happy_x_2
-	happy_x_1
-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> 
-	happyIn77
-		 (happy_var_1
-	)}
-
-happyReduce_184 = happySpecReduce_1  66# happyReduction_184
-happyReduction_184 happy_x_1
-	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
-	happyIn77
-		 ([happy_var_1]
-	)}
-
-happyReduce_185 = happySpecReduce_0  66# happyReduction_185
-happyReduction_185  =  happyIn77
-		 ([]
-	)
-
-happyReduce_186 = happyMonadReduce 6# 67# happyReduction_186
-happyReduction_186 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> 
-	case happyOut79 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut155 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 Equals) -> 
-	case happyOut153 happy_x_6 of { happy_var_6 -> 
-	( do { let {Loc l (StringTok (s,_)) = happy_var_1};
-                                                                  e <- checkRuleExpr happy_var_4;
-                                                                  return $ Rule (nIS l <++> ann happy_var_6 <** l:snd happy_var_3 ++ [happy_var_5]) s happy_var_2 (fst happy_var_3) e happy_var_6 })}}}}}}
-	) (\r -> happyReturn (happyIn78 r))
-
-happyReduce_187 = happySpecReduce_0  68# happyReduction_187
-happyReduction_187  =  happyIn79
-		 (Nothing
-	)
-
-happyReduce_188 = happySpecReduce_3  68# happyReduction_188
-happyReduction_188 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn79
-		 (let Loc l (IntTok (i,_)) = happy_var_2 in Just $ ActiveFrom  (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3])    (fromInteger i)
-	)}}}
-
-happyReduce_189 = happyReduce 4# 68# happyReduction_189
-happyReduction_189 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Tilde) -> 
-	case happyOutTok happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightSquare) -> 
-	happyIn79
-		 (let Loc l (IntTok (i,_)) = happy_var_3 in Just $ ActiveUntil (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_2,l,happy_var_4]) (fromInteger i)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_190 = happySpecReduce_0  69# happyReduction_190
-happyReduction_190  =  happyIn80
-		 ((Nothing,[])
-	)
-
-happyReduce_191 = happySpecReduce_3  69# happyReduction_191
-happyReduction_191 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> 
-	case happyOut81 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> 
-	happyIn80
-		 ((Just happy_var_2,[happy_var_1,happy_var_3])
-	)}}}
-
-happyReduce_192 = happySpecReduce_1  70# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  case happyOut82 happy_x_1 of { happy_var_1 -> 
-	happyIn81
-		 ([happy_var_1]
-	)}
-
-happyReduce_193 = happySpecReduce_2  70# happyReduction_193
-happyReduction_193 happy_x_2
-	happy_x_1
-	 =  case happyOut82 happy_x_1 of { happy_var_1 -> 
-	case happyOut81 happy_x_2 of { happy_var_2 -> 
-	happyIn81
-		 (happy_var_1 : happy_var_2
-	)}}
-
-happyReduce_194 = happySpecReduce_1  71# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  case happyOut231 happy_x_1 of { happy_var_1 -> 
-	happyIn82
-		 (RuleVar (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_195 = happyReduce 5# 71# happyReduction_195
-happyReduction_195 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut231 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> 
-	case happyOut103 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> 
-	happyIn82
-		 (TypedRuleVar (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_3,happy_var_5]) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_196 = happySpecReduce_3  72# happyReduction_196
-happyReduction_196 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 SemiColon) -> 
-	case happyOut84 happy_x_3 of { happy_var_3 -> 
-	happyIn83
-		 ((fst happy_var_3 : fst happy_var_1, snd happy_var_1 ++ (happy_var_2:snd happy_var_3))
-	)}}}
-
-happyReduce_197 = happySpecReduce_2  72# happyReduction_197
-happyReduction_197 happy_x_2
-	happy_x_1
-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 SemiColon) -> 
-	happyIn83
-		 ((fst happy_var_1, snd happy_var_1 ++ [happy_var_2])
-	)}}
-
-happyReduce_198 = happySpecReduce_1  72# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  case happyOut84 happy_x_1 of { happy_var_1 -> 
-	happyIn83
-		 (([fst happy_var_1],snd happy_var_1)
-	)}
-
-happyReduce_199 = happySpecReduce_0  72# happyReduction_199
-happyReduction_199  =  happyIn83
-		 (([],[])
-	)
-
-happyReduce_200 = happySpecReduce_2  73# happyReduction_200
-happyReduction_200 happy_x_2
-	happy_x_1
-	 =  case happyOut85 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	happyIn84
-		 (let Loc l (StringTok (s,_)) = happy_var_2 in ((fst happy_var_1,s),snd happy_var_1 ++ [l])
-	)}}
-
-happyReduce_201 = happySpecReduce_1  74# happyReduction_201
-happyReduction_201 happy_x_1
-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> 
-	happyIn85
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_202 = happySpecReduce_3  74# happyReduction_202
-happyReduction_202 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut85 happy_x_3 of { happy_var_3 -> 
-	happyIn85
-		 ((happy_var_1 : fst happy_var_3, happy_var_2 : snd happy_var_3)
-	)}}}
-
-happyReduce_203 = happySpecReduce_1  75# happyReduction_203
-happyReduction_203 happy_x_1
-	 =  case happyOut218 happy_x_1 of { happy_var_1 -> 
-	happyIn86
-		 (happy_var_1
-	)}
-
-happyReduce_204 = happySpecReduce_1  75# happyReduction_204
-happyReduction_204 happy_x_1
-	 =  case happyOut214 happy_x_1 of { happy_var_1 -> 
-	happyIn86
-		 (happy_var_1
-	)}
-
-happyReduce_205 = happyMonadReduce 3# 76# happyReduction_205
-happyReduction_205 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut234 happy_x_2 of { happy_var_2 -> 
-	case happyOut166 happy_x_3 of { happy_var_3 -> 
-	( checkExpr happy_var_3 >>= \e -> return (TypeAnn   (nIS happy_var_1 <++> ann e <** [happy_var_1]) happy_var_2 e))}}}
-	) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_206 = happyMonadReduce 2# 76# happyReduction_206
-happyReduction_206 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	( checkExpr happy_var_2 >>= \e -> return (ModuleAnn (nIS happy_var_1 <++> ann e <** [happy_var_1])    e))}}
-	) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_207 = happyMonadReduce 2# 76# happyReduction_207
-happyReduction_207 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut86 happy_x_1 of { happy_var_1 -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	( checkExpr happy_var_2 >>= \e -> return (Ann (happy_var_1 <> e) happy_var_1 e))}}
-	) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_208 = happyMonadReduce 1# 77# happyReduction_208
-happyReduction_208 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut89 happy_x_1 of { happy_var_1 -> 
-	( checkType happy_var_1)}
-	) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_209 = happySpecReduce_1  78# happyReduction_209
-happyReduction_209 happy_x_1
-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> 
-	happyIn89
-		 (happy_var_1
-	)}
-
-happyReduce_210 = happySpecReduce_3  78# happyReduction_210
-happyReduction_210 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOut102 happy_x_2 of { happy_var_2 -> 
-	case happyOut89 happy_x_3 of { happy_var_3 -> 
-	happyIn89
-		 (TyInfix (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_211 = happySpecReduce_3  78# happyReduction_211
-happyReduction_211 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOut250 happy_x_2 of { happy_var_2 -> 
-	case happyOut89 happy_x_3 of { happy_var_3 -> 
-	happyIn89
-		 (TyInfix (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_212 = happySpecReduce_3  78# happyReduction_212
-happyReduction_212 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	happyIn89
-		 (TyFun (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_213 = happyMonadReduce 3# 78# happyReduction_213
-happyReduction_213 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Tilde) -> 
-	case happyOut93 happy_x_3 of { happy_var_3 -> 
-	( do { checkEnabledOneOf [TypeFamilies, GADTs] ;
-                                              let {l = happy_var_1 <> happy_var_3 <** [happy_var_2]};
-                                              return $ TyPred l $ EqualP l happy_var_1 happy_var_3 })}}}
-	) (\r -> happyReturn (happyIn89 r))
-
-happyReduce_214 = happyMonadReduce 1# 79# happyReduction_214
-happyReduction_214 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut91 happy_x_1 of { happy_var_1 -> 
-	( checkType happy_var_1)}
-	) (\r -> happyReturn (happyIn90 r))
-
-happyReduce_215 = happySpecReduce_3  80# happyReduction_215
-happyReduction_215 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut217 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut89 happy_x_3 of { happy_var_3 -> 
-	happyIn91
-		 (let l = (happy_var_1 <> happy_var_3 <** [happy_var_2]) in TyPred l $ IParam l happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_216 = happySpecReduce_1  80# happyReduction_216
-happyReduction_216 happy_x_1
-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> 
-	happyIn91
-		 (happy_var_1
-	)}
-
-happyReduce_217 = happyMonadReduce 1# 81# happyReduction_217
-happyReduction_217 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut93 happy_x_1 of { happy_var_1 -> 
-	( checkType happy_var_1)}
-	) (\r -> happyReturn (happyIn92 r))
-
-happyReduce_218 = happySpecReduce_2  82# happyReduction_218
-happyReduction_218 happy_x_2
-	happy_x_1
-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOut94 happy_x_2 of { happy_var_2 -> 
-	happyIn93
-		 (TyApp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2
-	)}}
-
-happyReduce_219 = happySpecReduce_1  82# happyReduction_219
-happyReduction_219 happy_x_1
-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> 
-	happyIn93
-		 (happy_var_1
-	)}
-
-happyReduce_220 = happySpecReduce_1  83# happyReduction_220
-happyReduction_220 happy_x_1
-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
-	happyIn94
-		 (TyCon   (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_221 = happySpecReduce_1  83# happyReduction_221
-happyReduction_221 happy_x_1
-	 =  case happyOut248 happy_x_1 of { happy_var_1 -> 
-	happyIn94
-		 (TyVar   (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_222 = happySpecReduce_2  83# happyReduction_222
-happyReduction_222 happy_x_2
-	happy_x_1
-	 =  case happyOut96 happy_x_1 of { happy_var_1 -> 
-	case happyOut94 happy_x_2 of { happy_var_2 -> 
-	happyIn94
-		 (let (bangOrPack, locs) = happy_var_1
-                                          in let annot = if bangOrPack then (BangedTy (nIS (last locs) <** locs)) else UnpackedTy (nIS (head locs) <++> nIS (last locs) <** locs)
-                                           in bangType (nIS (head locs) <++> ann happy_var_2) annot happy_var_2
-	)}}
-
-happyReduce_223 = happySpecReduce_3  83# happyReduction_223
-happyReduction_223 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut106 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn94
-		 (TyTuple (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (happy_var_3:snd happy_var_2))) Boxed   (reverse (fst happy_var_2))
-	)}}}
-
-happyReduce_224 = happySpecReduce_3  83# happyReduction_224
-happyReduction_224 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut107 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> 
-	happyIn94
-		 (TyTuple (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (happy_var_3:snd happy_var_2))) Unboxed (reverse (fst happy_var_2))
-	)}}}
-
-happyReduce_225 = happySpecReduce_3  83# happyReduction_225
-happyReduction_225 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOut91 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn94
-		 (TyList  (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_226 = happySpecReduce_3  83# happyReduction_226
-happyReduction_226 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ParArrayLeftSquare) -> 
-	case happyOut91 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 ParArrayRightSquare) -> 
-	happyIn94
-		 (TyParArray  (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_227 = happySpecReduce_3  83# happyReduction_227
-happyReduction_227 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn94
-		 (TyParen (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_228 = happyReduce 5# 83# happyReduction_228
-happyReduction_228 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> 
-	case happyOut130 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> 
-	happyIn94
-		 (TyKind  (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_3,happy_var_5]) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_229 = happySpecReduce_3  83# happyReduction_229
-happyReduction_229 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THParenEscape) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn94
-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in TySplice l $ ParenSplice l happy_var_2
-	)}}}
-
-happyReduce_230 = happySpecReduce_1  83# happyReduction_230
-happyReduction_230 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn94
-		 (let Loc l (THIdEscape s) = happy_var_1 in TySplice (nIS l) $ IdSplice (nIS l) s
-	)}
-
-happyReduce_231 = happyMonadReduce 1# 83# happyReduction_231
-happyReduction_231 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut95 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled DataKinds >> return (TyPromoted (ann happy_var_1) happy_var_1))}
-	) (\r -> happyReturn (happyIn94 r))
-
-happyReduce_232 = happyReduce 4# 84# happyReduction_232
-happyReduction_232 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut99 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightSquare) -> 
-	happyIn95
-		 (PromotedList  (happy_var_1 <^^> happy_var_4 <** (happy_var_1: reverse(happy_var_4:snd happy_var_3))) True  (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}
-
-happyReduce_233 = happySpecReduce_3  84# happyReduction_233
-happyReduction_233 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn95
-		 (PromotedList  (happy_var_1 <^^> happy_var_3 <** [happy_var_1, happy_var_3])                 True  []
-	)}}
-
-happyReduce_234 = happySpecReduce_3  84# happyReduction_234
-happyReduction_234 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOut98 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn95
-		 (PromotedList  (happy_var_1 <^^> happy_var_3 <** (happy_var_1: reverse(happy_var_3:snd happy_var_2))) False (reverse (fst happy_var_2))
-	)}}}
-
-happyReduce_235 = happyReduce 4# 84# happyReduction_235
-happyReduction_235 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut99 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn95
-		 (PromotedTuple (happy_var_1 <^^> happy_var_4 <** (happy_var_1: reverse(happy_var_4:snd happy_var_3)))       (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}
-
-happyReduce_236 = happySpecReduce_3  84# happyReduction_236
-happyReduction_236 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn95
-		 (PromotedUnit  (happy_var_1 <^^> happy_var_3 )
-	)}}
-
-happyReduce_237 = happySpecReduce_2  84# happyReduction_237
-happyReduction_237 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut228 happy_x_2 of { happy_var_2 -> 
-	happyIn95
-		 (PromotedCon ((noInfoSpan happy_var_1 <++> ann happy_var_2) <** [happy_var_1]) True  happy_var_2
-	)}}
-
-happyReduce_238 = happySpecReduce_2  84# happyReduction_238
-happyReduction_238 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut247 happy_x_2 of { happy_var_2 -> 
-	happyIn95
-		 (PromotedCon ((noInfoSpan happy_var_1 <++> ann happy_var_2) <** [happy_var_1]) True  happy_var_2
-	)}}
-
-happyReduce_239 = happySpecReduce_1  84# happyReduction_239
-happyReduction_239 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn95
-		 (let Loc l (IntTok  (i,raw)) = happy_var_1 in PromotedInteger (nIS l) i raw
-	)}
-
-happyReduce_240 = happySpecReduce_1  84# happyReduction_240
-happyReduction_240 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn95
-		 (let Loc l (StringTok (s,raw)) = happy_var_1 in PromotedString (nIS l) s raw
-	)}
-
-happyReduce_241 = happySpecReduce_1  85# happyReduction_241
-happyReduction_241 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	happyIn96
-		 ((True, [happy_var_1])
-	)}
-
-happyReduce_242 = happySpecReduce_3  85# happyReduction_242
-happyReduction_242 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 UNPACK) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 PragmaEnd) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Exclamation) -> 
-	happyIn96
-		 ((False, [happy_var_1,happy_var_2,happy_var_3])
-	)}}}
-
-happyReduce_243 = happySpecReduce_1  86# happyReduction_243
-happyReduction_243 happy_x_1
-	 =  case happyOut95 happy_x_1 of { happy_var_1 -> 
-	happyIn97
-		 (happy_var_1
-	)}
-
-happyReduce_244 = happySpecReduce_1  86# happyReduction_244
-happyReduction_244 happy_x_1
-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> 
-	happyIn97
-		 (PromotedCon (ann happy_var_1) False happy_var_1
-	)}
-
-happyReduce_245 = happySpecReduce_3  87# happyReduction_245
-happyReduction_245 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut97 happy_x_3 of { happy_var_3 -> 
-	happyIn98
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_246 = happySpecReduce_1  88# happyReduction_246
-happyReduction_246 happy_x_1
-	 =  case happyOut97 happy_x_1 of { happy_var_1 -> 
-	happyIn99
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_247 = happySpecReduce_3  88# happyReduction_247
-happyReduction_247 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut97 happy_x_3 of { happy_var_3 -> 
-	happyIn99
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_248 = happySpecReduce_1  89# happyReduction_248
-happyReduction_248 happy_x_1
-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
-	happyIn100
-		 (happy_var_1
-	)}
-
-happyReduce_249 = happySpecReduce_2  89# happyReduction_249
-happyReduction_249 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightParen) -> 
-	happyIn100
-		 (unit_tycon_name              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_250 = happySpecReduce_3  89# happyReduction_250
-happyReduction_250 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn100
-		 (fun_tycon_name               (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_2,happy_var_3])
-	)}}}
-
-happyReduce_251 = happySpecReduce_2  89# happyReduction_251
-happyReduction_251 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightSquare) -> 
-	happyIn100
-		 (list_tycon_name              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_252 = happySpecReduce_3  89# happyReduction_252
-happyReduction_252 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn100
-		 (tuple_tycon_name             (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse happy_var_2 ++ [happy_var_3])) Boxed (length happy_var_2)
-	)}}}
-
-happyReduce_253 = happySpecReduce_2  89# happyReduction_253
-happyReduction_253 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightHashParen) -> 
-	happyIn100
-		 (unboxed_singleton_tycon_name (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_254 = happySpecReduce_3  89# happyReduction_254
-happyReduction_254 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> 
-	happyIn100
-		 (tuple_tycon_name             (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse happy_var_2 ++ [happy_var_3])) Unboxed (length happy_var_2)
-	)}}}
-
-happyReduce_255 = happySpecReduce_1  90# happyReduction_255
-happyReduction_255 happy_x_1
-	 =  case happyOut233 happy_x_1 of { happy_var_1 -> 
-	happyIn101
-		 (happy_var_1
-	)}
-
-happyReduce_256 = happySpecReduce_3  90# happyReduction_256
-happyReduction_256 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut228 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn101
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_257 = happySpecReduce_3  90# happyReduction_257
-happyReduction_257 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut237 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn101
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_258 = happySpecReduce_1  91# happyReduction_258
-happyReduction_258 happy_x_1
-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> 
-	happyIn102
-		 (happy_var_1
-	)}
-
-happyReduce_259 = happyMonadReduce 1# 92# happyReduction_259
-happyReduction_259 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut104 happy_x_1 of { happy_var_1 -> 
-	( checkType happy_var_1)}
-	) (\r -> happyReturn (happyIn103 r))
-
-happyReduce_260 = happyReduce 4# 93# happyReduction_260
-happyReduction_260 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> 
-	case happyOut108 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> 
-	case happyOut104 happy_x_4 of { happy_var_4 -> 
-	happyIn104
-		 (mkTyForall (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) (Just (reverse (fst happy_var_2))) Nothing happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_261 = happySpecReduce_2  93# happyReduction_261
-happyReduction_261 happy_x_2
-	happy_x_1
-	 =  case happyOut105 happy_x_1 of { happy_var_1 -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	happyIn104
-		 (mkTyForall (happy_var_1 <> happy_var_2) Nothing (Just happy_var_1) happy_var_2
-	)}}
-
-happyReduce_262 = happySpecReduce_1  93# happyReduction_262
-happyReduction_262 happy_x_1
-	 =  case happyOut91 happy_x_1 of { happy_var_1 -> 
-	happyIn104
-		 (happy_var_1
-	)}
-
-happyReduce_263 = happyMonadReduce 2# 94# happyReduction_263
-happyReduction_263 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleArrow) -> 
-	( checkPContext $ (amap (\l -> l <++> nIS happy_var_2 <** (srcInfoPoints l ++ [happy_var_2]))) happy_var_1)}}
-	) (\r -> happyReturn (happyIn105 r))
-
-happyReduce_264 = happyMonadReduce 4# 94# happyReduction_264
-happyReduction_264 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut93 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Tilde) -> 
-	case happyOut93 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleArrow) -> 
-	( do { checkEnabledOneOf [TypeFamilies, GADTs];
-                                              let {l = happy_var_1 <> happy_var_3 <** [happy_var_2,happy_var_4]};
-                                              checkPContext (TyPred l $ EqualP l happy_var_1 happy_var_3) })}}}}
-	) (\r -> happyReturn (happyIn105 r))
-
-happyReduce_265 = happySpecReduce_3  95# happyReduction_265
-happyReduction_265 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	happyIn106
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_266 = happySpecReduce_1  96# happyReduction_266
-happyReduction_266 happy_x_1
-	 =  case happyOut104 happy_x_1 of { happy_var_1 -> 
-	happyIn107
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_267 = happySpecReduce_3  96# happyReduction_267
-happyReduction_267 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut104 happy_x_3 of { happy_var_3 -> 
-	happyIn107
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_268 = happySpecReduce_2  97# happyReduction_268
-happyReduction_268 happy_x_2
-	happy_x_1
-	 =  case happyOut108 happy_x_1 of { happy_var_1 -> 
-	case happyOut109 happy_x_2 of { happy_var_2 -> 
-	happyIn108
-		 ((happy_var_2 : fst happy_var_1, Just (snd happy_var_1 <?+> ann happy_var_2))
-	)}}
-
-happyReduce_269 = happySpecReduce_0  97# happyReduction_269
-happyReduction_269  =  happyIn108
-		 (([],Nothing)
-	)
-
-happyReduce_270 = happySpecReduce_1  98# happyReduction_270
-happyReduction_270 happy_x_1
-	 =  case happyOut248 happy_x_1 of { happy_var_1 -> 
-	happyIn109
-		 (UnkindedVar (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_271 = happyReduce 5# 98# happyReduction_271
-happyReduction_271 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut248 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> 
-	case happyOut130 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> 
-	happyIn109
-		 (KindedVar (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_3,happy_var_5]) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_272 = happySpecReduce_2  99# happyReduction_272
-happyReduction_272 happy_x_2
-	happy_x_1
-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> 
-	case happyOut248 happy_x_2 of { happy_var_2 -> 
-	happyIn110
-		 ((happy_var_2 : fst happy_var_1, Just (snd happy_var_1 <?+> ann happy_var_2))
-	)}}
-
-happyReduce_273 = happySpecReduce_0  99# happyReduction_273
-happyReduction_273  =  happyIn110
-		 (([], Nothing)
-	)
-
-happyReduce_274 = happySpecReduce_2  100# happyReduction_274
-happyReduction_274 happy_x_2
-	happy_x_1
-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> 
-	case happyOut248 happy_x_2 of { happy_var_2 -> 
-	happyIn111
-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <?+> ann happy_var_2)
-	)}}
-
-happyReduce_275 = happySpecReduce_0  101# happyReduction_275
-happyReduction_275  =  happyIn112
-		 (([],[], Nothing)
-	)
-
-happyReduce_276 = happyMonadReduce 2# 101# happyReduction_276
-happyReduction_276 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Bar) -> 
-	case happyOut113 happy_x_2 of { happy_var_2 -> 
-	( do { checkEnabled FunctionalDependencies ;
-                                              let {(fds,ss,l) = happy_var_2} ;
-                                              return (reverse fds, happy_var_1 : reverse ss, Just (nIS happy_var_1 <++> l)) })}}
-	) (\r -> happyReturn (happyIn112 r))
-
-happyReduce_277 = happySpecReduce_3  102# happyReduction_277
-happyReduction_277 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut113 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut114 happy_x_3 of { happy_var_3 -> 
-	happyIn113
-		 (let (fds,ss,l) = happy_var_1 in (happy_var_3 : fds, happy_var_2 : ss, l <++> ann happy_var_3)
-	)}}}
-
-happyReduce_278 = happySpecReduce_1  102# happyReduction_278
-happyReduction_278 happy_x_1
-	 =  case happyOut114 happy_x_1 of { happy_var_1 -> 
-	happyIn113
-		 (([happy_var_1],[],ann happy_var_1)
-	)}
-
-happyReduce_279 = happySpecReduce_3  103# happyReduction_279
-happyReduction_279 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> 
-	case happyOut111 happy_x_3 of { happy_var_3 -> 
-	happyIn114
-		 (FunDep (snd happy_var_1 <?+> nIS happy_var_2 <++> snd happy_var_3 <** [happy_var_2]) (reverse (fst happy_var_1)) (reverse (fst happy_var_3))
-	)}}}
-
-happyReduce_280 = happyMonadReduce 4# 104# happyReduction_280
-happyReduction_280 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOut116 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> 
-	( return (fst happy_var_3, happy_var_1 : happy_var_2 : snd happy_var_3 ++ [happy_var_4], Just $ happy_var_1 <^^> happy_var_4))}}}}
-	) (\r -> happyReturn (happyIn115 r))
-
-happyReduce_281 = happyMonadReduce 4# 104# happyReduction_281
-happyReduction_281 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOut243 happy_x_2 of { happy_var_2 -> 
-	case happyOut116 happy_x_3 of { happy_var_3 -> 
-	case happyOut244 happy_x_4 of { happy_var_4 -> 
-	( return (fst happy_var_3, happy_var_1 : happy_var_2 : snd happy_var_3 ++ [happy_var_4], Just $ happy_var_1 <^^> happy_var_4))}}}}
-	) (\r -> happyReturn (happyIn115 r))
-
-happyReduce_282 = happyMonadReduce 0# 104# happyReduction_282
-happyReduction_282 (happyRest) tk
-	 = happyThen (( checkEnabled EmptyDataDecls >> return ([],[],Nothing))
-	) (\r -> happyReturn (happyIn115 r))
-
-happyReduce_283 = happySpecReduce_3  105# happyReduction_283
-happyReduction_283 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut117 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn116
-		 ((fst happy_var_2, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)
-	)}}}
-
-happyReduce_284 = happySpecReduce_3  106# happyReduction_284
-happyReduction_284 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut117 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut118 happy_x_3 of { happy_var_3 -> 
-	happyIn117
-		 ((happy_var_3 ++ fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_285 = happySpecReduce_1  106# happyReduction_285
-happyReduction_285 happy_x_1
-	 =  case happyOut118 happy_x_1 of { happy_var_1 -> 
-	happyIn117
-		 ((happy_var_1,[])
-	)}
-
-happyReduce_286 = happyMonadReduce 3# 107# happyReduction_286
-happyReduction_286 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut219 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	( do { c <- checkUnQual happy_var_1;
-                                               return [GadtDecl (happy_var_1 <> happy_var_3 <** [happy_var_2]) c Nothing happy_var_3] })}}}
-	) (\r -> happyReturn (happyIn118 r))
-
-happyReduce_287 = happyMonadReduce 7# 107# happyReduction_287
-happyReduction_287 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut219 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 LeftCurly) -> 
-	case happyOut125 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightCurly) -> 
-	case happyOutTok happy_x_6 of { (Loc happy_var_6 RightArrow) -> 
-	case happyOut103 happy_x_7 of { happy_var_7 -> 
-	( do { c <- checkUnQual happy_var_1;
-                                              return [GadtDecl (happy_var_1 <> happy_var_7 <** [happy_var_2,happy_var_3,happy_var_5,happy_var_6] ++ snd happy_var_4) c (Just (reverse $ fst happy_var_4)) happy_var_7] })}}}}}}}
-	) (\r -> happyReturn (happyIn118 r))
-
-happyReduce_288 = happySpecReduce_2  108# happyReduction_288
-happyReduction_288 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> 
-	case happyOut120 happy_x_2 of { happy_var_2 -> 
-	happyIn119
-		 (let (ds,ss,l) = happy_var_2 in (ds, happy_var_1 : reverse ss, Just $ nIS happy_var_1 <++> l)
-	)}}
-
-happyReduce_289 = happySpecReduce_3  109# happyReduction_289
-happyReduction_289 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut120 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut121 happy_x_3 of { happy_var_3 -> 
-	happyIn120
-		 (let (ds,ss,l) = happy_var_1 in (happy_var_3 : ds, happy_var_2 : ss, l <++> ann happy_var_3)
-	)}}}
-
-happyReduce_290 = happySpecReduce_1  109# happyReduction_290
-happyReduction_290 happy_x_1
-	 =  case happyOut121 happy_x_1 of { happy_var_1 -> 
-	happyIn120
-		 (([happy_var_1],[],ann happy_var_1)
-	)}
-
-happyReduce_291 = happyMonadReduce 3# 110# happyReduction_291
-happyReduction_291 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut122 happy_x_1 of { happy_var_1 -> 
-	case happyOut105 happy_x_2 of { happy_var_2 -> 
-	case happyOut123 happy_x_3 of { happy_var_3 -> 
-	( do { checkEnabled ExistentialQuantification ;
-                                               ctxt <- checkContext (Just happy_var_2) ;
-                                               let {(mtvs,ss,ml) = happy_var_1} ;
-                                               return $ QualConDecl (ml <?+> ann happy_var_3 <** ss) mtvs ctxt happy_var_3 })}}}
-	) (\r -> happyReturn (happyIn121 r))
-
-happyReduce_292 = happySpecReduce_2  110# happyReduction_292
-happyReduction_292 happy_x_2
-	happy_x_1
-	 =  case happyOut122 happy_x_1 of { happy_var_1 -> 
-	case happyOut123 happy_x_2 of { happy_var_2 -> 
-	happyIn121
-		 (let (mtvs, ss, ml) = happy_var_1 in QualConDecl (ml <?+> ann happy_var_2 <** ss) mtvs Nothing happy_var_2
-	)}}
-
-happyReduce_293 = happyMonadReduce 3# 111# happyReduction_293
-happyReduction_293 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> 
-	case happyOut108 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> 
-	( checkEnabled ExistentialQuantification >> return (Just (fst happy_var_2), [happy_var_1,happy_var_3], Just $ happy_var_1 <^^> happy_var_3))}}}
-	) (\r -> happyReturn (happyIn122 r))
-
-happyReduce_294 = happySpecReduce_0  111# happyReduction_294
-happyReduction_294  =  happyIn122
-		 ((Nothing, [], Nothing)
-	)
-
-happyReduce_295 = happySpecReduce_1  112# happyReduction_295
-happyReduction_295 happy_x_1
-	 =  case happyOut124 happy_x_1 of { happy_var_1 -> 
-	happyIn123
-		 (let (n,ts,l) = happy_var_1 in ConDecl l n ts
-	)}
-
-happyReduce_296 = happySpecReduce_3  112# happyReduction_296
-happyReduction_296 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut92 happy_x_1 of { happy_var_1 -> 
-	case happyOut223 happy_x_2 of { happy_var_2 -> 
-	case happyOut92 happy_x_3 of { happy_var_3 -> 
-	happyIn123
-		 (InfixConDecl (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_297 = happyMonadReduce 3# 112# happyReduction_297
-happyReduction_297 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut219 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	( do { c <- checkUnQual happy_var_1; return $ RecDecl (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3]) c [] })}}}
-	) (\r -> happyReturn (happyIn123 r))
-
-happyReduce_298 = happyMonadReduce 4# 112# happyReduction_298
-happyReduction_298 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut219 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOut125 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> 
-	( do { c <- checkUnQual happy_var_1;
-                                              return $ RecDecl (ann happy_var_1 <++> nIS happy_var_4 <** (happy_var_2:reverse (snd happy_var_3) ++ [happy_var_4])) c (reverse (fst happy_var_3)) })}}}}
-	) (\r -> happyReturn (happyIn123 r))
-
-happyReduce_299 = happyMonadReduce 1# 113# happyReduction_299
-happyReduction_299 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut93 happy_x_1 of { happy_var_1 -> 
-	( do { (c,ts) <- splitTyConApp happy_var_1;
-                                              return (c, ts, ann happy_var_1) })}
-	) (\r -> happyReturn (happyIn124 r))
-
-happyReduce_300 = happySpecReduce_3  114# happyReduction_300
-happyReduction_300 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut125 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut126 happy_x_3 of { happy_var_3 -> 
-	happyIn125
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_301 = happySpecReduce_1  114# happyReduction_301
-happyReduction_301 happy_x_1
-	 =  case happyOut126 happy_x_1 of { happy_var_1 -> 
-	happyIn125
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_302 = happySpecReduce_3  115# happyReduction_302
-happyReduction_302 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	happyIn126
-		 (let (ns,ss,l) = happy_var_1 in FieldDecl (l <++> ann happy_var_3 <** (reverse ss ++ [happy_var_2])) (reverse ns) happy_var_3
-	)}}}
-
-happyReduce_303 = happySpecReduce_0  116# happyReduction_303
-happyReduction_303  =  happyIn127
-		 (Nothing
-	)
-
-happyReduce_304 = happySpecReduce_2  116# happyReduction_304
-happyReduction_304 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> 
-	case happyOut129 happy_x_2 of { happy_var_2 -> 
-	happyIn127
-		 (let l = nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1] in Just $ Deriving l [IRule (ann happy_var_2) Nothing Nothing happy_var_2]
-	)}}
-
-happyReduce_305 = happySpecReduce_3  116# happyReduction_305
-happyReduction_305 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn127
-		 (Just $ Deriving (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_2,happy_var_3]) []
-	)}}}
-
-happyReduce_306 = happyReduce 4# 116# happyReduction_306
-happyReduction_306 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> 
-	case happyOut128 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn127
-		 (Just $ Deriving (happy_var_1 <^^> happy_var_4 <** happy_var_1:happy_var_2: reverse (snd happy_var_3) ++ [happy_var_4]) (reverse (fst happy_var_3))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_307 = happyMonadReduce 1# 117# happyReduction_307
-happyReduction_307 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut107 happy_x_1 of { happy_var_1 -> 
-	( checkDeriving (fst happy_var_1) >>= \ds -> return (ds, snd happy_var_1))}
-	) (\r -> happyReturn (happyIn128 r))
-
-happyReduce_308 = happySpecReduce_1  118# happyReduction_308
-happyReduction_308 happy_x_1
-	 =  case happyOut233 happy_x_1 of { happy_var_1 -> 
-	happyIn129
-		 (IHCon (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_309 = happyMonadReduce 1# 119# happyReduction_309
-happyReduction_309 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut131 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled KindSignatures >> return happy_var_1)}
-	) (\r -> happyReturn (happyIn130 r))
-
-happyReduce_310 = happySpecReduce_1  120# happyReduction_310
-happyReduction_310 happy_x_1
-	 =  case happyOut132 happy_x_1 of { happy_var_1 -> 
-	happyIn131
-		 (happy_var_1
-	)}
-
-happyReduce_311 = happySpecReduce_2  120# happyReduction_311
-happyReduction_311 happy_x_2
-	happy_x_1
-	 =  case happyOut132 happy_x_1 of { happy_var_1 -> 
-	case happyOut131 happy_x_2 of { happy_var_2 -> 
-	happyIn131
-		 (KindApp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2
-	)}}
-
-happyReduce_312 = happySpecReduce_3  120# happyReduction_312
-happyReduction_312 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut132 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> 
-	case happyOut131 happy_x_3 of { happy_var_3 -> 
-	happyIn131
-		 (KindFn (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_313 = happySpecReduce_1  121# happyReduction_313
-happyReduction_313 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> 
-	happyIn132
-		 (KindStar  (nIS happy_var_1)
-	)}
-
-happyReduce_314 = happySpecReduce_1  121# happyReduction_314
-happyReduction_314 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	happyIn132
-		 (KindBang  (nIS happy_var_1)
-	)}
-
-happyReduce_315 = happySpecReduce_3  121# happyReduction_315
-happyReduction_315 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut131 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn132
-		 (KindParen (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_316 = happyMonadReduce 1# 121# happyReduction_316
-happyReduction_316 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut133 happy_x_1 of { happy_var_1 -> 
-	( checkKind happy_var_1 >> return happy_var_1)}
-	) (\r -> happyReturn (happyIn132 r))
-
-happyReduce_317 = happyMonadReduce 1# 121# happyReduction_317
-happyReduction_317 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut229 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled PolyKinds >> return (KindVar (ann happy_var_1) happy_var_1))}
-	) (\r -> happyReturn (happyIn132 r))
-
-happyReduce_318 = happySpecReduce_1  122# happyReduction_318
-happyReduction_318 happy_x_1
-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> 
-	happyIn133
-		 (KindVar (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_319 = happySpecReduce_2  122# happyReduction_319
-happyReduction_319 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightParen) -> 
-	happyIn133
-		 (let l = happy_var_1 <^^> happy_var_2 in KindVar l (unit_tycon_name l)
-	)}}
-
-happyReduce_320 = happySpecReduce_3  122# happyReduction_320
-happyReduction_320 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut134 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn133
-		 (KindTuple (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (happy_var_3:snd happy_var_2))) (reverse (fst happy_var_2))
-	)}}}
-
-happyReduce_321 = happySpecReduce_3  122# happyReduction_321
-happyReduction_321 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOut135 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn133
-		 (KindList  (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (happy_var_3:snd happy_var_2))) (reverse (fst happy_var_2))
-	)}}}
-
-happyReduce_322 = happySpecReduce_3  123# happyReduction_322
-happyReduction_322 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut135 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut132 happy_x_3 of { happy_var_3 -> 
-	happyIn134
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_323 = happySpecReduce_1  124# happyReduction_323
-happyReduction_323 happy_x_1
-	 =  case happyOut132 happy_x_1 of { happy_var_1 -> 
-	happyIn135
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_324 = happySpecReduce_3  124# happyReduction_324
-happyReduction_324 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut135 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut132 happy_x_3 of { happy_var_3 -> 
-	happyIn135
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_325 = happySpecReduce_0  125# happyReduction_325
-happyReduction_325  =  happyIn136
-		 ((Nothing,[])
-	)
-
-happyReduce_326 = happySpecReduce_2  125# happyReduction_326
-happyReduction_326 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> 
-	case happyOut130 happy_x_2 of { happy_var_2 -> 
-	happyIn136
-		 ((Just happy_var_2,[happy_var_1])
-	)}}
-
-happyReduce_327 = happyMonadReduce 4# 126# happyReduction_327
-happyReduction_327 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOut138 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> 
-	( checkClassBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}}
-	) (\r -> happyReturn (happyIn137 r))
-
-happyReduce_328 = happyMonadReduce 4# 126# happyReduction_328
-happyReduction_328 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOut243 happy_x_2 of { happy_var_2 -> 
-	case happyOut138 happy_x_3 of { happy_var_3 -> 
-	case happyOut244 happy_x_4 of { happy_var_4 -> 
-	( do { vs <- checkClassBody (fst happy_var_3);
-                                              let { l' = if null (fst happy_var_3) then nIS happy_var_4 else (ann . last $ fst happy_var_3) };
-                                              return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (nIS happy_var_1 <++> l')) })}}}}
-	) (\r -> happyReturn (happyIn137 r))
-
-happyReduce_329 = happySpecReduce_0  126# happyReduction_329
-happyReduction_329  =  happyIn137
-		 ((Nothing,[],Nothing)
-	)
-
-happyReduce_330 = happyMonadReduce 3# 127# happyReduction_330
-happyReduction_330 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut139 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	( checkRevClsDecls (fst happy_var_2) >>= \cs -> return (cs, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3))}}}
-	) (\r -> happyReturn (happyIn138 r))
-
-happyReduce_331 = happySpecReduce_1  127# happyReduction_331
-happyReduction_331 happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	happyIn138
-		 (([],reverse happy_var_1)
-	)}
-
-happyReduce_332 = happySpecReduce_3  128# happyReduction_332
-happyReduction_332 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut139 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut140 happy_x_3 of { happy_var_3 -> 
-	happyIn139
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_333 = happySpecReduce_1  128# happyReduction_333
-happyReduction_333 happy_x_1
-	 =  case happyOut140 happy_x_1 of { happy_var_1 -> 
-	happyIn139
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_334 = happySpecReduce_1  129# happyReduction_334
-happyReduction_334 happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	happyIn140
-		 (ClsDecl (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_335 = happyMonadReduce 1# 129# happyReduction_335
-happyReduction_335 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut141 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled TypeFamilies >> return happy_var_1)}
-	) (\r -> happyReturn (happyIn140 r))
-
-happyReduce_336 = happyMonadReduce 2# 129# happyReduction_336
-happyReduction_336 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Default) -> 
-	case happyOut63 happy_x_2 of { happy_var_2 -> 
-	( checkEnabled DefaultSignatures >> checkDefSigDef happy_var_2 >>= \(n,t,l) -> return (ClsDefSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1,l]) n t))}}
-	) (\r -> happyReturn (happyIn140 r))
-
-happyReduce_337 = happyMonadReduce 3# 130# happyReduction_337
-happyReduction_337 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut91 happy_x_2 of { happy_var_2 -> 
-	case happyOut136 happy_x_3 of { happy_var_3 -> 
-	( do { dh <- checkSimpleType happy_var_2;
-                    return (ClsTyFam  (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) dh (fst happy_var_3)) })}}}
-	) (\r -> happyReturn (happyIn141 r))
-
-happyReduce_338 = happyReduce 4# 130# happyReduction_338
-happyReduction_338 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut88 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> 
-	case happyOut103 happy_x_4 of { happy_var_4 -> 
-	happyIn141
-		 (ClsTyDef (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_339 = happyReduce 5# 130# happyReduction_339
-happyReduction_339 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> 
-	case happyOut88 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 Equals) -> 
-	case happyOut103 happy_x_5 of { happy_var_5 -> 
-	happyIn141
-		 (ClsTyDef (nIS happy_var_1 <++> ann happy_var_5 <** [happy_var_1,happy_var_2,happy_var_4]) happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_340 = happyMonadReduce 3# 130# happyReduction_340
-happyReduction_340 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> 
-	case happyOut104 happy_x_2 of { happy_var_2 -> 
-	case happyOut136 happy_x_3 of { happy_var_3 -> 
-	( do { (cs,dh) <- checkDataHeader happy_var_2;
-                    return (ClsDataFam (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) cs dh (fst happy_var_3)) })}}}
-	) (\r -> happyReturn (happyIn141 r))
-
-happyReduce_341 = happyMonadReduce 4# 131# happyReduction_341
-happyReduction_341 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOut143 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> 
-	( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}}
-	) (\r -> happyReturn (happyIn142 r))
-
-happyReduce_342 = happyMonadReduce 4# 131# happyReduction_342
-happyReduction_342 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOut243 happy_x_2 of { happy_var_2 -> 
-	case happyOut143 happy_x_3 of { happy_var_3 -> 
-	case happyOut244 happy_x_4 of { happy_var_4 -> 
-	( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}}
-	) (\r -> happyReturn (happyIn142 r))
-
-happyReduce_343 = happySpecReduce_0  131# happyReduction_343
-happyReduction_343  =  happyIn142
-		 ((Nothing, [], Nothing)
-	)
-
-happyReduce_344 = happyMonadReduce 3# 132# happyReduction_344
-happyReduction_344 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut144 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	( checkRevInstDecls (fst happy_var_2) >>= \is -> return (is, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3))}}}
-	) (\r -> happyReturn (happyIn143 r))
-
-happyReduce_345 = happySpecReduce_1  132# happyReduction_345
-happyReduction_345 happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	happyIn143
-		 (([],reverse happy_var_1)
-	)}
-
-happyReduce_346 = happySpecReduce_3  133# happyReduction_346
-happyReduction_346 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut144 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut145 happy_x_3 of { happy_var_3 -> 
-	happyIn144
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_347 = happySpecReduce_1  133# happyReduction_347
-happyReduction_347 happy_x_1
-	 =  case happyOut145 happy_x_1 of { happy_var_1 -> 
-	happyIn144
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_348 = happySpecReduce_1  134# happyReduction_348
-happyReduction_348 happy_x_1
-	 =  case happyOut147 happy_x_1 of { happy_var_1 -> 
-	happyIn145
-		 (InsDecl (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_349 = happyMonadReduce 1# 134# happyReduction_349
-happyReduction_349 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut146 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled TypeFamilies >> return happy_var_1)}
-	) (\r -> happyReturn (happyIn145 r))
-
-happyReduce_350 = happySpecReduce_1  134# happyReduction_350
-happyReduction_350 happy_x_1
-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> 
-	happyIn145
-		 (InsDecl (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_351 = happyMonadReduce 1# 134# happyReduction_351
-happyReduction_351 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut64 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled InstanceSigs >> return (InsDecl (ann happy_var_1) happy_var_1))}
-	) (\r -> happyReturn (happyIn145 r))
-
-happyReduce_352 = happyMonadReduce 4# 135# happyReduction_352
-happyReduction_352 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	case happyOut88 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> 
-	case happyOut103 happy_x_4 of { happy_var_4 -> 
-	( do { -- no checkSimpleType happy_var_4 since dtype may contain type patterns
-                       return (InsType (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) happy_var_2 happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn146 r))
-
-happyReduce_353 = happyMonadReduce 4# 135# happyReduction_353
-happyReduction_353 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut103 happy_x_2 of { happy_var_2 -> 
-	case happyOut119 happy_x_3 of { happy_var_3 -> 
-	case happyOut127 happy_x_4 of { happy_var_4 -> 
-	( do { -- (cs,c,t) <- checkDataHeader happy_var_4;
-                       let {(ds,ss,minf) = happy_var_3};
-                       checkDataOrNew happy_var_1 ds;
-                       return (InsData (happy_var_1 <> happy_var_2 <+?> minf <+?> fmap ann happy_var_4 <** ss ) happy_var_1 happy_var_2 (reverse ds) happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn146 r))
-
-happyReduce_354 = happyMonadReduce 5# 135# happyReduction_354
-happyReduction_354 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut103 happy_x_2 of { happy_var_2 -> 
-	case happyOut136 happy_x_3 of { happy_var_3 -> 
-	case happyOut115 happy_x_4 of { happy_var_4 -> 
-	case happyOut127 happy_x_5 of { happy_var_5 -> 
-	( do { -- (cs,c,t) <- checkDataHeader happy_var_4;
-                       let { (gs,ss,minf) = happy_var_4 } ;
-                       checkDataOrNewG happy_var_1 gs;
-                       return $ InsGData (ann happy_var_1 <+?> minf <+?> fmap ann happy_var_5 <** (snd happy_var_3 ++ ss)) happy_var_1 happy_var_2 (fst happy_var_3) (reverse gs) happy_var_5 })}}}}}
-	) (\r -> happyReturn (happyIn146 r))
-
-happyReduce_355 = happyMonadReduce 4# 136# happyReduction_355
-happyReduction_355 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOut149 happy_x_2 of { happy_var_2 -> 
-	case happyOut150 happy_x_3 of { happy_var_3 -> 
-	case happyOut148 happy_x_4 of { happy_var_4 -> 
-	( checkValDef ((happy_var_1 <> happy_var_3 <+?> (fmap ann) (fst happy_var_4)) <** (snd happy_var_4)) happy_var_1 happy_var_2 happy_var_3 (fst happy_var_4))}}}}
-	) (\r -> happyReturn (happyIn147 r))
-
-happyReduce_356 = happyMonadReduce 4# 136# happyReduction_356
-happyReduction_356 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	case happyOut150 happy_x_3 of { happy_var_3 -> 
-	case happyOut148 happy_x_4 of { happy_var_4 -> 
-	( do { checkEnabled BangPatterns ;
-                                              let { l = nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1] };
-                                              p <- checkPattern (BangPat l happy_var_2);
-                                              return $ PatBind (p <> happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** snd happy_var_4)
-                                                          p happy_var_3 (fst happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn147 r))
-
-happyReduce_357 = happySpecReduce_2  137# happyReduction_357
-happyReduction_357 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn148
-		 ((Just happy_var_2, [happy_var_1])
-	)}}
-
-happyReduce_358 = happySpecReduce_0  137# happyReduction_358
-happyReduction_358  =  happyIn148
-		 ((Nothing, [])
-	)
-
-happyReduce_359 = happyMonadReduce 2# 138# happyReduction_359
-happyReduction_359 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> 
-	case happyOut103 happy_x_2 of { happy_var_2 -> 
-	( checkEnabled ScopedTypeVariables >> return (Just (happy_var_2, happy_var_1)))}}
-	) (\r -> happyReturn (happyIn149 r))
-
-happyReduce_360 = happySpecReduce_0  138# happyReduction_360
-happyReduction_360  =  happyIn149
-		 (Nothing
-	)
-
-happyReduce_361 = happySpecReduce_2  139# happyReduction_361
-happyReduction_361 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	happyIn150
-		 (UnGuardedRhs (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_362 = happySpecReduce_1  139# happyReduction_362
-happyReduction_362 happy_x_1
-	 =  case happyOut151 happy_x_1 of { happy_var_1 -> 
-	happyIn150
-		 (GuardedRhss (snd happy_var_1) (reverse $ fst happy_var_1)
-	)}
-
-happyReduce_363 = happySpecReduce_2  140# happyReduction_363
-happyReduction_363 happy_x_2
-	happy_x_1
-	 =  case happyOut151 happy_x_1 of { happy_var_1 -> 
-	case happyOut152 happy_x_2 of { happy_var_2 -> 
-	happyIn151
-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <++> ann happy_var_2)
-	)}}
-
-happyReduce_364 = happySpecReduce_1  140# happyReduction_364
-happyReduction_364 happy_x_1
-	 =  case happyOut152 happy_x_1 of { happy_var_1 -> 
-	happyIn151
-		 (([happy_var_1],ann happy_var_1)
-	)}
-
-happyReduce_365 = happyMonadReduce 4# 141# happyReduction_365
-happyReduction_365 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Bar) -> 
-	case happyOut190 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	( do { checkPatternGuards (fst happy_var_2);
-                                       return $ GuardedRhs (nIS happy_var_1 <++> ann happy_var_4 <** (happy_var_1:snd happy_var_2 ++ [happy_var_3])) (reverse (fst happy_var_2)) happy_var_4 })}}}}
-	) (\r -> happyReturn (happyIn152 r))
-
-happyReduce_366 = happyMonadReduce 1# 142# happyReduction_366
-happyReduction_366 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut154 happy_x_1 of { happy_var_1 -> 
-	( checkExpr happy_var_1)}
-	) (\r -> happyReturn (happyIn153 r))
-
-happyReduce_367 = happySpecReduce_3  143# happyReduction_367
-happyReduction_367 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> 
-	case happyOut103 happy_x_3 of { happy_var_3 -> 
-	happyIn154
-		 (ExpTypeSig      (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_368 = happySpecReduce_1  143# happyReduction_368
-happyReduction_368 happy_x_1
-	 =  case happyOut155 happy_x_1 of { happy_var_1 -> 
-	happyIn154
-		 (happy_var_1
-	)}
-
-happyReduce_369 = happySpecReduce_2  143# happyReduction_369
-happyReduction_369 happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOut226 happy_x_2 of { happy_var_2 -> 
-	happyIn154
-		 (PostOp          (happy_var_1 <> happy_var_2)          happy_var_1 happy_var_2
-	)}}
-
-happyReduce_370 = happySpecReduce_3  143# happyReduction_370
-happyReduction_370 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftArrowTail) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn154
-		 (LeftArrApp      (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_371 = happySpecReduce_3  143# happyReduction_371
-happyReduction_371 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrowTail) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn154
-		 (RightArrApp     (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_372 = happySpecReduce_3  143# happyReduction_372
-happyReduction_372 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftDblArrowTail) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn154
-		 (LeftArrHighApp  (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_373 = happySpecReduce_3  143# happyReduction_373
-happyReduction_373 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightDblArrowTail) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn154
-		 (RightArrHighApp (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_374 = happySpecReduce_1  144# happyReduction_374
-happyReduction_374 happy_x_1
-	 =  case happyOut156 happy_x_1 of { happy_var_1 -> 
-	happyIn155
-		 (happy_var_1
-	)}
-
-happyReduce_375 = happySpecReduce_1  144# happyReduction_375
-happyReduction_375 happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	happyIn155
-		 (happy_var_1
-	)}
-
-happyReduce_376 = happySpecReduce_3  145# happyReduction_376
-happyReduction_376 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOut226 happy_x_2 of { happy_var_2 -> 
-	case happyOut158 happy_x_3 of { happy_var_3 -> 
-	happyIn156
-		 (InfixApp (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_377 = happySpecReduce_1  145# happyReduction_377
-happyReduction_377 happy_x_1
-	 =  case happyOut158 happy_x_1 of { happy_var_1 -> 
-	happyIn156
-		 (happy_var_1
-	)}
-
-happyReduce_378 = happySpecReduce_3  146# happyReduction_378
-happyReduction_378 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut157 happy_x_1 of { happy_var_1 -> 
-	case happyOut226 happy_x_2 of { happy_var_2 -> 
-	case happyOut161 happy_x_3 of { happy_var_3 -> 
-	happyIn157
-		 (InfixApp (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3
-	)}}}
-
-happyReduce_379 = happySpecReduce_1  146# happyReduction_379
-happyReduction_379 happy_x_1
-	 =  case happyOut161 happy_x_1 of { happy_var_1 -> 
-	happyIn157
-		 (happy_var_1
-	)}
-
-happyReduce_380 = happyReduce 4# 147# happyReduction_380
-happyReduction_380 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 Backslash) -> 
-	case happyOut164 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> 
-	case happyOut154 happy_x_4 of { happy_var_4 -> 
-	happyIn158
-		 (Lambda (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) (reverse happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_381 = happyReduce 4# 147# happyReduction_381
-happyReduction_381 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_In) -> 
-	case happyOut154 happy_x_4 of { happy_var_4 -> 
-	happyIn158
-		 (Let    (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3])    happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_382 = happyReduce 8# 147# happyReduction_382
-happyReduction_382 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_If) -> 
-	case happyOut154 happy_x_2 of { happy_var_2 -> 
-	case happyOut159 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 KW_Then) -> 
-	case happyOut154 happy_x_5 of { happy_var_5 -> 
-	case happyOut159 happy_x_6 of { happy_var_6 -> 
-	case happyOutTok happy_x_7 of { (Loc happy_var_7 KW_Else) -> 
-	case happyOut154 happy_x_8 of { happy_var_8 -> 
-	happyIn158
-		 (If     (nIS happy_var_1 <++> ann happy_var_8 <** (happy_var_1:happy_var_3 ++ happy_var_4:happy_var_6 ++ [happy_var_7])) happy_var_2 happy_var_5 happy_var_8
-	) `HappyStk` happyRest}}}}}}}}
-
-happyReduce_383 = happyMonadReduce 2# 147# happyReduction_383
-happyReduction_383 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_If) -> 
-	case happyOut201 happy_x_2 of { happy_var_2 -> 
-	( checkEnabled MultiWayIf >>
-                                           let (alts, inf, ss) = happy_var_2
-                                           in return (MultiIf (nIS happy_var_1 <++> inf <** (happy_var_1:ss)) alts))}}
-	) (\r -> happyReturn (happyIn158 r))
-
-happyReduce_384 = happyReduce 4# 147# happyReduction_384
-happyReduction_384 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Proc) -> 
-	case happyOut165 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> 
-	case happyOut154 happy_x_4 of { happy_var_4 -> 
-	happyIn158
-		 (Proc   (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3])    happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_385 = happySpecReduce_1  147# happyReduction_385
-happyReduction_385 happy_x_1
-	 =  case happyOut162 happy_x_1 of { happy_var_1 -> 
-	happyIn158
-		 (happy_var_1
-	)}
-
-happyReduce_386 = happyMonadReduce 1# 148# happyReduction_386
-happyReduction_386 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> 
-	( checkEnabled DoAndIfThenElse >> return [happy_var_1])}
-	) (\r -> happyReturn (happyIn159 r))
-
-happyReduce_387 = happySpecReduce_0  148# happyReduction_387
-happyReduction_387  =  happyIn159
-		 ([]
-	)
-
-happyReduce_388 = happySpecReduce_1  149# happyReduction_388
-happyReduction_388 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> 
-	happyIn160
-		 ([happy_var_1]
-	)}
-
-happyReduce_389 = happySpecReduce_0  149# happyReduction_389
-happyReduction_389  =  happyIn160
-		 ([]
-	)
-
-happyReduce_390 = happyReduce 4# 150# happyReduction_390
-happyReduction_390 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Case) -> 
-	case happyOut154 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_Of) -> 
-	case happyOut193 happy_x_4 of { happy_var_4 -> 
-	happyIn161
-		 (let (als, inf, ss) = happy_var_4 in Case (nIS happy_var_1 <++> inf <** (happy_var_1:happy_var_3:ss)) happy_var_2 als
-	) `HappyStk` happyRest}}}}
-
-happyReduce_391 = happyMonadReduce 3# 150# happyReduction_391
-happyReduction_391 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Backslash) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Case) -> 
-	case happyOut193 happy_x_3 of { happy_var_3 -> 
-	( do { checkEnabled LambdaCase ;
-                                              let { (als, inf, ss) = happy_var_3 } ;
-                                              return (LCase (nIS happy_var_1 <++> inf <** (happy_var_1:happy_var_2:ss)) als) })}}}
-	) (\r -> happyReturn (happyIn161 r))
-
-happyReduce_392 = happySpecReduce_2  150# happyReduction_392
-happyReduction_392 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Minus) -> 
-	case happyOut163 happy_x_2 of { happy_var_2 -> 
-	happyIn161
-		 (NegApp (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_393 = happySpecReduce_2  150# happyReduction_393
-happyReduction_393 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Do) -> 
-	case happyOut204 happy_x_2 of { happy_var_2 -> 
-	happyIn161
-		 (let (sts, inf, ss) = happy_var_2 in Do   (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts
-	)}}
-
-happyReduce_394 = happySpecReduce_2  150# happyReduction_394
-happyReduction_394 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_MDo) -> 
-	case happyOut204 happy_x_2 of { happy_var_2 -> 
-	happyIn161
-		 (let (sts, inf, ss) = happy_var_2 in MDo  (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts
-	)}}
-
-happyReduce_395 = happySpecReduce_1  150# happyReduction_395
-happyReduction_395 happy_x_1
-	 =  case happyOut163 happy_x_1 of { happy_var_1 -> 
-	happyIn161
-		 (happy_var_1
-	)}
-
-happyReduce_396 = happyReduce 4# 151# happyReduction_396
-happyReduction_396 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 CORE) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	case happyOut154 happy_x_4 of { happy_var_4 -> 
-	happyIn162
-		 (let Loc l (StringTok (s,_)) = happy_var_2 in CorePragma (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_397 = happyReduce 4# 151# happyReduction_397
-happyReduction_397 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 SCC) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> 
-	case happyOut154 happy_x_4 of { happy_var_4 -> 
-	happyIn162
-		 (let Loc l (StringTok (s,_)) = happy_var_2 in SCCPragma  (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_398 = happyReduce 11# 151# happyReduction_398
-happyReduction_398 (happy_x_11 `HappyStk`
-	happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 GENERATED) -> 
-	case happyOutTok happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 Colon) -> 
-	case happyOutTok happy_x_5 of { happy_var_5 -> 
-	case happyOutTok happy_x_6 of { (Loc happy_var_6 Minus) -> 
-	case happyOutTok happy_x_7 of { happy_var_7 -> 
-	case happyOutTok happy_x_8 of { (Loc happy_var_8 Colon) -> 
-	case happyOutTok happy_x_9 of { happy_var_9 -> 
-	case happyOutTok happy_x_10 of { (Loc happy_var_10 PragmaEnd) -> 
-	case happyOut154 happy_x_11 of { happy_var_11 -> 
-	happyIn162
-		 (let { Loc l0 (StringTok (s,_)) = happy_var_2;
-                                                  Loc l1 (IntTok (i1,_))   = happy_var_3;
-                                                  Loc l2 (IntTok (i2,_))   = happy_var_5;
-                                                  Loc l3 (IntTok (i3,_))   = happy_var_7;
-                                                  Loc l4 (IntTok (i4,_))   = happy_var_9}
-                                             in GenPragma (nIS happy_var_1 <++> ann happy_var_11 <** [happy_var_1,l0,l1,happy_var_4,l2,happy_var_6,l3,happy_var_8,l4,happy_var_10])
-                                                      s (fromInteger i1, fromInteger i2)
-                                                        (fromInteger i3, fromInteger i4) happy_var_11
-	) `HappyStk` happyRest}}}}}}}}}}}
-
-happyReduce_399 = happySpecReduce_2  152# happyReduction_399
-happyReduction_399 happy_x_2
-	happy_x_1
-	 =  case happyOut163 happy_x_1 of { happy_var_1 -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	happyIn163
-		 (App (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2
-	)}}
-
-happyReduce_400 = happySpecReduce_1  152# happyReduction_400
-happyReduction_400 happy_x_1
-	 =  case happyOut166 happy_x_1 of { happy_var_1 -> 
-	happyIn163
-		 (happy_var_1
-	)}
-
-happyReduce_401 = happySpecReduce_2  153# happyReduction_401
-happyReduction_401 happy_x_2
-	happy_x_1
-	 =  case happyOut164 happy_x_1 of { happy_var_1 -> 
-	case happyOut165 happy_x_2 of { happy_var_2 -> 
-	happyIn164
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_402 = happySpecReduce_1  153# happyReduction_402
-happyReduction_402 happy_x_1
-	 =  case happyOut165 happy_x_1 of { happy_var_1 -> 
-	happyIn164
-		 ([happy_var_1]
-	)}
-
-happyReduce_403 = happyMonadReduce 1# 154# happyReduction_403
-happyReduction_403 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut166 happy_x_1 of { happy_var_1 -> 
-	( checkPattern happy_var_1)}
-	) (\r -> happyReturn (happyIn165 r))
-
-happyReduce_404 = happyMonadReduce 2# 154# happyReduction_404
-happyReduction_404 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	( checkPattern (BangPat (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2))}}
-	) (\r -> happyReturn (happyIn165 r))
-
-happyReduce_405 = happyMonadReduce 3# 155# happyReduction_405
-happyReduction_405 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut216 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 At) -> 
-	case happyOut166 happy_x_3 of { happy_var_3 -> 
-	( do { n <- checkUnQual happy_var_1;
-                                              return (AsPat (happy_var_1 <> happy_var_3 <** [happy_var_2]) n happy_var_3) })}}}
-	) (\r -> happyReturn (happyIn166 r))
-
-happyReduce_406 = happyMonadReduce 3# 155# happyReduction_406
-happyReduction_406 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut216 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RPCAt) -> 
-	case happyOut166 happy_x_3 of { happy_var_3 -> 
-	( do { n <- checkUnQual happy_var_1;
-                                              return (CAsRP (happy_var_1 <> happy_var_3 <** [happy_var_2]) n happy_var_3) })}}}
-	) (\r -> happyReturn (happyIn166 r))
-
-happyReduce_407 = happySpecReduce_2  155# happyReduction_407
-happyReduction_407 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Tilde) -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	happyIn166
-		 (IrrPat (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_408 = happySpecReduce_1  155# happyReduction_408
-happyReduction_408 happy_x_1
-	 =  case happyOut167 happy_x_1 of { happy_var_1 -> 
-	happyIn166
-		 (happy_var_1
-	)}
-
-happyReduce_409 = happyMonadReduce 3# 156# happyReduction_409
-happyReduction_409 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut167 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	( liftM (amap (const (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3]))) $ mkRecConstrOrUpdate happy_var_1 [])}}}
-	) (\r -> happyReturn (happyIn167 r))
-
-happyReduce_410 = happyMonadReduce 4# 156# happyReduction_410
-happyReduction_410 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut167 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> 
-	case happyOut208 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> 
-	( liftM (amap (const (ann happy_var_1 <++> nIS happy_var_4 <** (happy_var_2:snd happy_var_3 ++ [happy_var_4]))))
-                                              $ mkRecConstrOrUpdate happy_var_1 (fst happy_var_3))}}}}
-	) (\r -> happyReturn (happyIn167 r))
-
-happyReduce_411 = happySpecReduce_1  156# happyReduction_411
-happyReduction_411 happy_x_1
-	 =  case happyOut168 happy_x_1 of { happy_var_1 -> 
-	happyIn167
-		 (happy_var_1
-	)}
-
-happyReduce_412 = happySpecReduce_1  157# happyReduction_412
-happyReduction_412 happy_x_1
-	 =  case happyOut217 happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (IPVar (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_413 = happySpecReduce_1  157# happyReduction_413
-happyReduction_413 happy_x_1
-	 =  case happyOut216 happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (Var (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_414 = happySpecReduce_1  157# happyReduction_414
-happyReduction_414 happy_x_1
-	 =  case happyOut213 happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (happy_var_1
-	)}
-
-happyReduce_415 = happySpecReduce_1  157# happyReduction_415
-happyReduction_415 happy_x_1
-	 =  case happyOut242 happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (Lit (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_416 = happySpecReduce_3  157# happyReduction_416
-happyReduction_416 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn168
-		 (Paren (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_417 = happySpecReduce_3  157# happyReduction_417
-happyReduction_417 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOut171 happy_x_3 of { happy_var_3 -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> head (snd happy_var_3) <** happy_var_1:reverse (snd happy_var_3)) Boxed (Just happy_var_2 : fst happy_var_3)
-	)}}}
-
-happyReduce_418 = happyReduce 4# 157# happyReduction_418
-happyReduction_418 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> happy_var_4 <** happy_var_1:reverse (happy_var_4:happy_var_2)) Boxed
-                                                      (replicate (length happy_var_2) Nothing ++ [Just happy_var_3])
-	) `HappyStk` happyRest}}}}
-
-happyReduce_419 = happyReduce 4# 157# happyReduction_419
-happyReduction_419 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	case happyOut171 happy_x_4 of { happy_var_4 -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> head (snd happy_var_4) <** happy_var_1:reverse (snd happy_var_4 ++ happy_var_2)) Boxed
-                                                      (replicate (length happy_var_2) Nothing ++ Just happy_var_3 : fst happy_var_4)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_420 = happySpecReduce_3  157# happyReduction_420
-happyReduction_420 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOut172 happy_x_3 of { happy_var_3 -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> head (snd happy_var_3) <** happy_var_1:reverse (snd happy_var_3)) Unboxed (Just happy_var_2 : fst happy_var_3)
-	)}}}
-
-happyReduce_421 = happySpecReduce_3  157# happyReduction_421
-happyReduction_421 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) Unboxed [Just happy_var_2]
-	)}}}
-
-happyReduce_422 = happyReduce 4# 157# happyReduction_422
-happyReduction_422 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightHashParen) -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> happy_var_4 <** happy_var_1:reverse (happy_var_4:happy_var_2)) Unboxed
-                                                      (replicate (length happy_var_2) Nothing ++ [Just happy_var_3])
-	) `HappyStk` happyRest}}}}
-
-happyReduce_423 = happyReduce 4# 157# happyReduction_423
-happyReduction_423 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	case happyOut172 happy_x_4 of { happy_var_4 -> 
-	happyIn168
-		 (TupleSection (happy_var_1 <^^> head (snd happy_var_4) <** happy_var_1:reverse (snd happy_var_4 ++ happy_var_2)) Unboxed
-                                                      (replicate (length happy_var_2) Nothing ++ Just happy_var_3 : fst happy_var_4)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_424 = happySpecReduce_3  157# happyReduction_424
-happyReduction_424 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOut184 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> 
-	happyIn168
-		 (amap (\l -> l <** [happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3 <** [happy_var_1])
-	)}}}
-
-happyReduce_425 = happySpecReduce_3  157# happyReduction_425
-happyReduction_425 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ParArrayLeftSquare) -> 
-	case happyOut192 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 ParArrayRightSquare) -> 
-	happyIn168
-		 (amap (\l -> l <** [happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3 <** [happy_var_1])
-	)}}}
-
-happyReduce_426 = happySpecReduce_1  157# happyReduction_426
-happyReduction_426 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Underscore) -> 
-	happyIn168
-		 (WildCard (nIS happy_var_1)
-	)}
-
-happyReduce_427 = happyMonadReduce 3# 157# happyReduction_427
-happyReduction_427 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut174 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	( checkEnabled RegularPatterns >> return (Paren (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2))}}}
-	) (\r -> happyReturn (happyIn168 r))
-
-happyReduce_428 = happySpecReduce_3  157# happyReduction_428
-happyReduction_428 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RPGuardOpen) -> 
-	case happyOut173 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RPGuardClose) -> 
-	happyIn168
-		 (SeqRP (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (snd happy_var_2) ++ [happy_var_3])) $ reverse (fst happy_var_2)
-	)}}}
-
-happyReduce_429 = happyReduce 5# 157# happyReduction_429
-happyReduction_429 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 RPGuardOpen) -> 
-	case happyOut154 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 Bar) -> 
-	case happyOut190 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 RPGuardClose) -> 
-	happyIn168
-		 (GuardRP (happy_var_1 <^^> happy_var_5 <** (happy_var_1:happy_var_3 : snd happy_var_4 ++ [happy_var_5])) happy_var_2 $ (reverse $ fst happy_var_4)
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_430 = happySpecReduce_1  157# happyReduction_430
-happyReduction_430 happy_x_1
-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (happy_var_1
-	)}
-
-happyReduce_431 = happySpecReduce_1  157# happyReduction_431
-happyReduction_431 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (let Loc l (THIdEscape s) = happy_var_1 in SpliceExp (nIS l) $ IdSplice (nIS l) s
-	)}
-
-happyReduce_432 = happySpecReduce_3  157# happyReduction_432
-happyReduction_432 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THParenEscape) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn168
-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in SpliceExp l $ ParenSplice l happy_var_2
-	)}}}
-
-happyReduce_433 = happySpecReduce_3  157# happyReduction_433
-happyReduction_433 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THExpQuote) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 THCloseQuote) -> 
-	happyIn168
-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in BracketExp l $ ExpBracket l happy_var_2
-	)}}}
-
-happyReduce_434 = happyMonadReduce 3# 157# happyReduction_434
-happyReduction_434 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 THPatQuote) -> 
-	case happyOut155 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 THCloseQuote) -> 
-	( do { p <- checkPattern happy_var_2;
-                                              let {l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) };
-                                              return $ BracketExp l $ PatBracket l p })}}}
-	) (\r -> happyReturn (happyIn168 r))
-
-happyReduce_435 = happySpecReduce_3  157# happyReduction_435
-happyReduction_435 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTypQuote) -> 
-	case happyOut103 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 THCloseQuote) -> 
-	happyIn168
-		 (let l = happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3] in BracketExp l $ TypeBracket l happy_var_2
-	)}}}
-
-happyReduce_436 = happyReduce 5# 157# happyReduction_436
-happyReduction_436 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 THDecQuote) -> 
-	case happyOut243 happy_x_2 of { happy_var_2 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut244 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 THCloseQuote) -> 
-	happyIn168
-		 (let l = happy_var_1 <^^> happy_var_5 <** (happy_var_1:snd happy_var_3 ++ [happy_var_5])
-                                            in BracketExp l $ DeclBracket (happy_var_1 <^^> happy_var_5 <** (happy_var_2:snd happy_var_3 ++ [happy_var_4,happy_var_5])) (fst happy_var_3)
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_437 = happySpecReduce_2  157# happyReduction_437
-happyReduction_437 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut216 happy_x_2 of { happy_var_2 -> 
-	happyIn168
-		 (VarQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_438 = happySpecReduce_2  157# happyReduction_438
-happyReduction_438 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> 
-	case happyOut219 happy_x_2 of { happy_var_2 -> 
-	happyIn168
-		 (VarQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_439 = happySpecReduce_2  157# happyReduction_439
-happyReduction_439 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTyQuote) -> 
-	case happyOut248 happy_x_2 of { happy_var_2 -> 
-	happyIn168
-		 (TypQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) (UnQual (ann happy_var_2) happy_var_2)
-	)}}
-
-happyReduce_440 = happySpecReduce_2  157# happyReduction_440
-happyReduction_440 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTyQuote) -> 
-	case happyOut100 happy_x_2 of { happy_var_2 -> 
-	happyIn168
-		 (TypQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_441 = happySpecReduce_1  157# happyReduction_441
-happyReduction_441 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn168
-		 (let Loc l (THQuasiQuote (n,q)) = happy_var_1 in QuasiQuote (nIS l) n q
-	)}
-
-happyReduce_442 = happySpecReduce_2  158# happyReduction_442
-happyReduction_442 happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	happyIn169
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_443 = happySpecReduce_1  158# happyReduction_443
-happyReduction_443 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Comma) -> 
-	happyIn169
-		 ([happy_var_1]
-	)}
-
-happyReduce_444 = happySpecReduce_1  159# happyReduction_444
-happyReduction_444 happy_x_1
-	 =  case happyOut154 happy_x_1 of { happy_var_1 -> 
-	happyIn170
-		 (happy_var_1
-	)}
-
-happyReduce_445 = happySpecReduce_2  159# happyReduction_445
-happyReduction_445 happy_x_2
-	happy_x_1
-	 =  case happyOut227 happy_x_1 of { happy_var_1 -> 
-	case happyOut155 happy_x_2 of { happy_var_2 -> 
-	happyIn170
-		 (PreOp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2
-	)}}
-
-happyReduce_446 = happyMonadReduce 3# 159# happyReduction_446
-happyReduction_446 (happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut154 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	( do {checkEnabled ViewPatterns;
-                                             return $ ViewPat (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3})}}}
-	) (\r -> happyReturn (happyIn170 r))
-
-happyReduce_447 = happySpecReduce_3  160# happyReduction_447
-happyReduction_447 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOut171 happy_x_3 of { happy_var_3 -> 
-	happyIn171
-		 (let (mes, ss) = happy_var_3 in (replicate (length happy_var_1 - 1) Nothing ++ Just happy_var_2 : mes, ss ++ happy_var_1)
-	)}}}
-
-happyReduce_448 = happySpecReduce_3  160# happyReduction_448
-happyReduction_448 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn171
-		 ((replicate (length happy_var_1 - 1) Nothing ++ [Just happy_var_2], happy_var_3 : happy_var_1)
-	)}}}
-
-happyReduce_449 = happySpecReduce_2  160# happyReduction_449
-happyReduction_449 happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightParen) -> 
-	happyIn171
-		 ((replicate (length happy_var_1) Nothing, happy_var_2 : happy_var_1)
-	)}}
-
-happyReduce_450 = happySpecReduce_3  161# happyReduction_450
-happyReduction_450 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOut172 happy_x_3 of { happy_var_3 -> 
-	happyIn172
-		 (let (mes, ss) = happy_var_3 in (replicate (length happy_var_1 - 1) Nothing ++ Just happy_var_2 : mes, ss ++ happy_var_1)
-	)}}}
-
-happyReduce_451 = happySpecReduce_3  161# happyReduction_451
-happyReduction_451 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOut170 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> 
-	happyIn172
-		 ((replicate (length happy_var_1 - 1) Nothing ++ [Just happy_var_2], happy_var_3 : happy_var_1)
-	)}}}
-
-happyReduce_452 = happySpecReduce_2  161# happyReduction_452
-happyReduction_452 happy_x_2
-	happy_x_1
-	 =  case happyOut169 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightHashParen) -> 
-	happyIn172
-		 ((replicate (length happy_var_1) Nothing, happy_var_2 : happy_var_1)
-	)}}
-
-happyReduce_453 = happySpecReduce_3  162# happyReduction_453
-happyReduction_453 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut173 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn173
-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)
-	)}}}
-
-happyReduce_454 = happySpecReduce_1  162# happyReduction_454
-happyReduction_454 happy_x_1
-	 =  case happyOut154 happy_x_1 of { happy_var_1 -> 
-	happyIn173
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_455 = happySpecReduce_3  163# happyReduction_455
-happyReduction_455 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut154 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut174 happy_x_3 of { happy_var_3 -> 
-	happyIn174
-		 (EitherRP (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_456 = happySpecReduce_3  163# happyReduction_456
-happyReduction_456 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut154 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn174
-		 (EitherRP (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_457 = happyMonadReduce 10# 164# happyReduction_457
-happyReduction_457 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 XStdTagOpen) -> 
-	case happyOut178 happy_x_2 of { happy_var_2 -> 
-	case happyOut181 happy_x_3 of { happy_var_3 -> 
-	case happyOut183 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 XStdTagClose) -> 
-	case happyOut176 happy_x_6 of { happy_var_6 -> 
-	case happyOut160 happy_x_7 of { happy_var_7 -> 
-	case happyOutTok happy_x_8 of { (Loc happy_var_8 XCloseTagOpen) -> 
-	case happyOut178 happy_x_9 of { happy_var_9 -> 
-	case happyOutTok happy_x_10 of { (Loc happy_var_10 XStdTagClose) -> 
-	( do { n <- checkEqNames happy_var_2 happy_var_9;
-                                                                       let { cn = reverse happy_var_6;
-                                                                             as = reverse happy_var_3;
-                                                                             l  = happy_var_1 <^^> happy_var_10 <** [happy_var_1,happy_var_5] ++ happy_var_7 ++ [happy_var_8,srcInfoSpan (ann happy_var_9),happy_var_10] };
-                                                                       return $ XTag l n as happy_var_4 cn })}}}}}}}}}}
-	) (\r -> happyReturn (happyIn175 r))
-
-happyReduce_458 = happyReduce 5# 164# happyReduction_458
-happyReduction_458 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 XStdTagOpen) -> 
-	case happyOut178 happy_x_2 of { happy_var_2 -> 
-	case happyOut181 happy_x_3 of { happy_var_3 -> 
-	case happyOut183 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 XEmptyTagClose) -> 
-	happyIn175
-		 (XETag   (happy_var_1 <^^> happy_var_5 <** [happy_var_1,happy_var_5]) happy_var_2 (reverse happy_var_3) happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_459 = happySpecReduce_3  164# happyReduction_459
-happyReduction_459 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 XCodeTagOpen) -> 
-	case happyOut154 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 XCodeTagClose) -> 
-	happyIn175
-		 (XExpTag (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_460 = happyReduce 5# 164# happyReduction_460
-happyReduction_460 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 XChildTagOpen) -> 
-	case happyOut176 happy_x_2 of { happy_var_2 -> 
-	case happyOut160 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 XCloseTagOpen) -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 XCodeTagClose) -> 
-	happyIn175
-		 (XChildTag (happy_var_1 <^^> happy_var_5 <** (happy_var_1:happy_var_3++[happy_var_4,happy_var_5])) (reverse happy_var_2)
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_461 = happySpecReduce_2  165# happyReduction_461
-happyReduction_461 happy_x_2
-	happy_x_1
-	 =  case happyOut176 happy_x_1 of { happy_var_1 -> 
-	case happyOut177 happy_x_2 of { happy_var_2 -> 
-	happyIn176
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_462 = happySpecReduce_0  165# happyReduction_462
-happyReduction_462  =  happyIn176
-		 ([]
-	)
-
-happyReduce_463 = happySpecReduce_1  166# happyReduction_463
-happyReduction_463 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn177
-		 (let Loc l (XPCDATA pcd) = happy_var_1 in XPcdata (nIS l) pcd
-	)}
-
-happyReduce_464 = happySpecReduce_3  166# happyReduction_464
-happyReduction_464 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 XRPatOpen) -> 
-	case happyOut173 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 XRPatClose) -> 
-	happyIn177
-		 (XRPats (happy_var_1 <^^> happy_var_3 <** (snd happy_var_2 ++ [happy_var_1,happy_var_3])) $ reverse (fst happy_var_2)
-	)}}}
-
-happyReduce_465 = happySpecReduce_1  166# happyReduction_465
-happyReduction_465 happy_x_1
-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> 
-	happyIn177
-		 (happy_var_1
-	)}
-
-happyReduce_466 = happySpecReduce_3  167# happyReduction_466
-happyReduction_466 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut179 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Colon) -> 
-	case happyOut179 happy_x_3 of { happy_var_3 -> 
-	happyIn178
-		 (let {Loc l1 s1 = happy_var_1; Loc l2 s2 = happy_var_3}
-                                         in XDomName (nIS l1 <++> nIS l2 <** [l1,happy_var_2,l2]) s1 s2
-	)}}}
-
-happyReduce_467 = happySpecReduce_1  167# happyReduction_467
-happyReduction_467 happy_x_1
-	 =  case happyOut179 happy_x_1 of { happy_var_1 -> 
-	happyIn178
-		 (let Loc l str = happy_var_1 in XName (nIS l) str
-	)}
-
-happyReduce_468 = happySpecReduce_1  168# happyReduction_468
-happyReduction_468 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn179
-		 (let Loc l (VarId  s) = happy_var_1 in Loc l s
-	)}
-
-happyReduce_469 = happySpecReduce_1  168# happyReduction_469
-happyReduction_469 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn179
-		 (let Loc l (ConId  s) = happy_var_1 in Loc l s
-	)}
-
-happyReduce_470 = happySpecReduce_1  168# happyReduction_470
-happyReduction_470 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn179
-		 (let Loc l (DVarId s) = happy_var_1 in Loc l $ mkDVar s
-	)}
-
-happyReduce_471 = happySpecReduce_1  168# happyReduction_471
-happyReduction_471 happy_x_1
-	 =  case happyOut180 happy_x_1 of { happy_var_1 -> 
-	happyIn179
-		 (happy_var_1
-	)}
-
-happyReduce_472 = happySpecReduce_1  169# happyReduction_472
-happyReduction_472 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> 
-	happyIn180
-		 (Loc happy_var_1 "type"
-	)}
-
-happyReduce_473 = happySpecReduce_1  169# happyReduction_473
-happyReduction_473 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Class) -> 
-	happyIn180
-		 (Loc happy_var_1 "class"
-	)}
-
-happyReduce_474 = happySpecReduce_1  169# happyReduction_474
-happyReduction_474 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> 
-	happyIn180
-		 (Loc happy_var_1 "data"
-	)}
-
-happyReduce_475 = happySpecReduce_1  169# happyReduction_475
-happyReduction_475 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Foreign) -> 
-	happyIn180
-		 (Loc happy_var_1 "foreign"
-	)}
-
-happyReduce_476 = happySpecReduce_1  169# happyReduction_476
-happyReduction_476 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Export) -> 
-	happyIn180
-		 (Loc happy_var_1 "export"
-	)}
-
-happyReduce_477 = happySpecReduce_1  169# happyReduction_477
-happyReduction_477 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> 
-	happyIn180
-		 (Loc happy_var_1 "safe"
-	)}
-
-happyReduce_478 = happySpecReduce_1  169# happyReduction_478
-happyReduction_478 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> 
-	happyIn180
-		 (Loc happy_var_1 "unsafe"
-	)}
-
-happyReduce_479 = happySpecReduce_1  169# happyReduction_479
-happyReduction_479 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> 
-	happyIn180
-		 (Loc happy_var_1 "interruptible"
-	)}
-
-happyReduce_480 = happySpecReduce_1  169# happyReduction_480
-happyReduction_480 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> 
-	happyIn180
-		 (Loc happy_var_1 "threadsafe"
-	)}
-
-happyReduce_481 = happySpecReduce_1  169# happyReduction_481
-happyReduction_481 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> 
-	happyIn180
-		 (Loc happy_var_1 "stdcall"
-	)}
-
-happyReduce_482 = happySpecReduce_1  169# happyReduction_482
-happyReduction_482 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> 
-	happyIn180
-		 (Loc happy_var_1 "ccall"
-	)}
-
-happyReduce_483 = happySpecReduce_1  169# happyReduction_483
-happyReduction_483 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> 
-	happyIn180
-		 (Loc happy_var_1 "cplusplus"
-	)}
-
-happyReduce_484 = happySpecReduce_1  169# happyReduction_484
-happyReduction_484 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> 
-	happyIn180
-		 (Loc happy_var_1 "dotnet"
-	)}
-
-happyReduce_485 = happySpecReduce_1  169# happyReduction_485
-happyReduction_485 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> 
-	happyIn180
-		 (Loc happy_var_1 "jvm"
-	)}
-
-happyReduce_486 = happySpecReduce_1  169# happyReduction_486
-happyReduction_486 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> 
-	happyIn180
-		 (Loc happy_var_1 "js"
-	)}
-
-happyReduce_487 = happySpecReduce_1  169# happyReduction_487
-happyReduction_487 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> 
-	happyIn180
-		 (Loc happy_var_1 "capi"
-	)}
-
-happyReduce_488 = happySpecReduce_1  169# happyReduction_488
-happyReduction_488 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> 
-	happyIn180
-		 (Loc happy_var_1 "as"
-	)}
-
-happyReduce_489 = happySpecReduce_1  169# happyReduction_489
-happyReduction_489 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_By) -> 
-	happyIn180
-		 (Loc happy_var_1 "by"
-	)}
-
-happyReduce_490 = happySpecReduce_1  169# happyReduction_490
-happyReduction_490 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Case) -> 
-	happyIn180
-		 (Loc happy_var_1 "case"
-	)}
-
-happyReduce_491 = happySpecReduce_1  169# happyReduction_491
-happyReduction_491 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Default) -> 
-	happyIn180
-		 (Loc happy_var_1 "default"
-	)}
-
-happyReduce_492 = happySpecReduce_1  169# happyReduction_492
-happyReduction_492 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> 
-	happyIn180
-		 (Loc happy_var_1 "deriving"
-	)}
-
-happyReduce_493 = happySpecReduce_1  169# happyReduction_493
-happyReduction_493 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Do) -> 
-	happyIn180
-		 (Loc happy_var_1 "do"
-	)}
-
-happyReduce_494 = happySpecReduce_1  169# happyReduction_494
-happyReduction_494 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Else) -> 
-	happyIn180
-		 (Loc happy_var_1 "else"
-	)}
-
-happyReduce_495 = happySpecReduce_1  169# happyReduction_495
-happyReduction_495 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Family) -> 
-	happyIn180
-		 (Loc happy_var_1 "family"
-	)}
-
-happyReduce_496 = happySpecReduce_1  169# happyReduction_496
-happyReduction_496 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> 
-	happyIn180
-		 (Loc happy_var_1 "forall"
-	)}
-
-happyReduce_497 = happySpecReduce_1  169# happyReduction_497
-happyReduction_497 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Group) -> 
-	happyIn180
-		 (Loc happy_var_1 "group"
-	)}
-
-happyReduce_498 = happySpecReduce_1  169# happyReduction_498
-happyReduction_498 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> 
-	happyIn180
-		 (Loc happy_var_1 "hiding"
-	)}
-
-happyReduce_499 = happySpecReduce_1  169# happyReduction_499
-happyReduction_499 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_If) -> 
-	happyIn180
-		 (Loc happy_var_1 "if"
-	)}
-
-happyReduce_500 = happySpecReduce_1  169# happyReduction_500
-happyReduction_500 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Import) -> 
-	happyIn180
-		 (Loc happy_var_1 "import"
-	)}
-
-happyReduce_501 = happySpecReduce_1  169# happyReduction_501
-happyReduction_501 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_In) -> 
-	happyIn180
-		 (Loc happy_var_1 "in"
-	)}
-
-happyReduce_502 = happySpecReduce_1  169# happyReduction_502
-happyReduction_502 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Infix) -> 
-	happyIn180
-		 (Loc happy_var_1 "infix"
-	)}
-
-happyReduce_503 = happySpecReduce_1  169# happyReduction_503
-happyReduction_503 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixL) -> 
-	happyIn180
-		 (Loc happy_var_1 "infixl"
-	)}
-
-happyReduce_504 = happySpecReduce_1  169# happyReduction_504
-happyReduction_504 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixR) -> 
-	happyIn180
-		 (Loc happy_var_1 "infixr"
-	)}
-
-happyReduce_505 = happySpecReduce_1  169# happyReduction_505
-happyReduction_505 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Instance) -> 
-	happyIn180
-		 (Loc happy_var_1 "instance"
-	)}
-
-happyReduce_506 = happySpecReduce_1  169# happyReduction_506
-happyReduction_506 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> 
-	happyIn180
-		 (Loc happy_var_1 "let"
-	)}
-
-happyReduce_507 = happySpecReduce_1  169# happyReduction_507
-happyReduction_507 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_MDo) -> 
-	happyIn180
-		 (Loc happy_var_1 "mdo"
-	)}
-
-happyReduce_508 = happySpecReduce_1  169# happyReduction_508
-happyReduction_508 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> 
-	happyIn180
-		 (Loc happy_var_1 "module"
-	)}
-
-happyReduce_509 = happySpecReduce_1  169# happyReduction_509
-happyReduction_509 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_NewType) -> 
-	happyIn180
-		 (Loc happy_var_1 "newtype"
-	)}
-
-happyReduce_510 = happySpecReduce_1  169# happyReduction_510
-happyReduction_510 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Of) -> 
-	happyIn180
-		 (Loc happy_var_1 "of"
-	)}
-
-happyReduce_511 = happySpecReduce_1  169# happyReduction_511
-happyReduction_511 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Proc) -> 
-	happyIn180
-		 (Loc happy_var_1 "proc"
-	)}
-
-happyReduce_512 = happySpecReduce_1  169# happyReduction_512
-happyReduction_512 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Rec) -> 
-	happyIn180
-		 (Loc happy_var_1 "rec"
-	)}
-
-happyReduce_513 = happySpecReduce_1  169# happyReduction_513
-happyReduction_513 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	happyIn180
-		 (Loc happy_var_1 "then"
-	)}
-
-happyReduce_514 = happySpecReduce_1  169# happyReduction_514
-happyReduction_514 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Using) -> 
-	happyIn180
-		 (Loc happy_var_1 "using"
-	)}
-
-happyReduce_515 = happySpecReduce_1  169# happyReduction_515
-happyReduction_515 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> 
-	happyIn180
-		 (Loc happy_var_1 "where"
-	)}
-
-happyReduce_516 = happySpecReduce_1  169# happyReduction_516
-happyReduction_516 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> 
-	happyIn180
-		 (Loc happy_var_1 "qualified"
-	)}
-
-happyReduce_517 = happySpecReduce_2  170# happyReduction_517
-happyReduction_517 happy_x_2
-	happy_x_1
-	 =  case happyOut181 happy_x_1 of { happy_var_1 -> 
-	case happyOut182 happy_x_2 of { happy_var_2 -> 
-	happyIn181
-		 (happy_var_2 : happy_var_1
-	)}}
-
-happyReduce_518 = happySpecReduce_0  170# happyReduction_518
-happyReduction_518  =  happyIn181
-		 ([]
-	)
-
-happyReduce_519 = happySpecReduce_3  171# happyReduction_519
-happyReduction_519 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut178 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> 
-	case happyOut166 happy_x_3 of { happy_var_3 -> 
-	happyIn182
-		 (XAttr (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_520 = happySpecReduce_1  172# happyReduction_520
-happyReduction_520 happy_x_1
-	 =  case happyOut166 happy_x_1 of { happy_var_1 -> 
-	happyIn183
-		 (Just happy_var_1
-	)}
-
-happyReduce_521 = happySpecReduce_0  172# happyReduction_521
-happyReduction_521  =  happyIn183
-		 (Nothing
-	)
-
-happyReduce_522 = happySpecReduce_1  173# happyReduction_522
-happyReduction_522 happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	happyIn184
-		 (\l -> List l [happy_var_1]
-	)}
-
-happyReduce_523 = happySpecReduce_1  173# happyReduction_523
-happyReduction_523 happy_x_1
-	 =  case happyOut185 happy_x_1 of { happy_var_1 -> 
-	happyIn184
-		 (\l -> let (ps,ss) = happy_var_1 in List (l <** reverse ss) (reverse ps)
-	)}
-
-happyReduce_524 = happySpecReduce_2  173# happyReduction_524
-happyReduction_524 happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> 
-	happyIn184
-		 (\l -> EnumFrom       (l <** [happy_var_2]) happy_var_1
-	)}}
-
-happyReduce_525 = happyReduce 4# 173# happyReduction_525
-happyReduction_525 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> 
-	happyIn184
-		 (\l -> EnumFromThen   (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_526 = happySpecReduce_3  173# happyReduction_526
-happyReduction_526 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn184
-		 (\l -> EnumFromTo     (l <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_527 = happyReduce 5# 173# happyReduction_527
-happyReduction_527 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> 
-	case happyOut154 happy_x_5 of { happy_var_5 -> 
-	happyIn184
-		 (\l -> EnumFromThenTo (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_528 = happySpecReduce_3  173# happyReduction_528
-happyReduction_528 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut186 happy_x_3 of { happy_var_3 -> 
-	happyIn184
-		 (\l -> let (stss, ss) = happy_var_3 in ParComp (l <** (happy_var_2:ss)) happy_var_1 (reverse stss)
-	)}}}
-
-happyReduce_529 = happySpecReduce_3  174# happyReduction_529
-happyReduction_529 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut185 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	happyIn185
-		 (let (es, ss) = happy_var_1 in (happy_var_3 : es, happy_var_2 : ss)
-	)}}}
-
-happyReduce_530 = happySpecReduce_3  174# happyReduction_530
-happyReduction_530 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut170 happy_x_3 of { happy_var_3 -> 
-	happyIn185
-		 (([happy_var_3,happy_var_1], [happy_var_2])
-	)}}}
-
-happyReduce_531 = happySpecReduce_3  175# happyReduction_531
-happyReduction_531 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut186 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut187 happy_x_3 of { happy_var_3 -> 
-	happyIn186
-		 (let { (stss, ss1) = happy_var_1;
-                                              (sts, ss2) = happy_var_3 }
-                                         in (reverse sts : stss, ss1 ++ [happy_var_2] ++ reverse ss2)
-	)}}}
-
-happyReduce_532 = happySpecReduce_1  175# happyReduction_532
-happyReduction_532 happy_x_1
-	 =  case happyOut187 happy_x_1 of { happy_var_1 -> 
-	happyIn186
-		 (let (sts, ss) = happy_var_1 in ([reverse sts], reverse ss)
-	)}
-
-happyReduce_533 = happySpecReduce_3  176# happyReduction_533
-happyReduction_533 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut187 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut188 happy_x_3 of { happy_var_3 -> 
-	happyIn187
-		 (let (sts, ss) = happy_var_1 in (happy_var_3 : sts, happy_var_2 : ss)
-	)}}}
-
-happyReduce_534 = happySpecReduce_1  176# happyReduction_534
-happyReduction_534 happy_x_1
-	 =  case happyOut188 happy_x_1 of { happy_var_1 -> 
-	happyIn187
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_535 = happySpecReduce_1  177# happyReduction_535
-happyReduction_535 happy_x_1
-	 =  case happyOut189 happy_x_1 of { happy_var_1 -> 
-	happyIn188
-		 (happy_var_1
-	)}
-
-happyReduce_536 = happySpecReduce_1  177# happyReduction_536
-happyReduction_536 happy_x_1
-	 =  case happyOut191 happy_x_1 of { happy_var_1 -> 
-	happyIn188
-		 (QualStmt (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_537 = happySpecReduce_2  178# happyReduction_537
-happyReduction_537 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	happyIn189
-		 (ThenTrans    (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_538 = happyReduce 4# 178# happyReduction_538
-happyReduction_538 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_By) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	happyIn189
-		 (ThenBy       (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_539 = happyReduce 4# 178# happyReduction_539
-happyReduction_539 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Group) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_By) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	happyIn189
-		 (GroupBy      (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_2,happy_var_3]) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_540 = happyReduce 4# 178# happyReduction_540
-happyReduction_540 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Group) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_Using) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	happyIn189
-		 (GroupUsing   (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_2,happy_var_3]) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_541 = happyReduce 6# 178# happyReduction_541
-happyReduction_541 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Group) -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_By) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	case happyOutTok happy_x_5 of { (Loc happy_var_5 KW_Using) -> 
-	case happyOut153 happy_x_6 of { happy_var_6 -> 
-	happyIn189
-		 (GroupByUsing (nIS happy_var_1 <++> ann happy_var_6 <** [happy_var_1,happy_var_2,happy_var_3,happy_var_5]) happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_542 = happySpecReduce_3  179# happyReduction_542
-happyReduction_542 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut190 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut191 happy_x_3 of { happy_var_3 -> 
-	happyIn190
-		 (let (sts, ss) = happy_var_1 in (happy_var_3 : sts, happy_var_2 : ss)
-	)}}}
-
-happyReduce_543 = happySpecReduce_1  179# happyReduction_543
-happyReduction_543 happy_x_1
-	 =  case happyOut191 happy_x_1 of { happy_var_1 -> 
-	happyIn190
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_544 = happySpecReduce_3  180# happyReduction_544
-happyReduction_544 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut200 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftArrow) -> 
-	case happyOut153 happy_x_3 of { happy_var_3 -> 
-	happyIn191
-		 (Generator (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_545 = happySpecReduce_1  180# happyReduction_545
-happyReduction_545 happy_x_1
-	 =  case happyOut153 happy_x_1 of { happy_var_1 -> 
-	happyIn191
-		 (Qualifier (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_546 = happySpecReduce_2  180# happyReduction_546
-happyReduction_546 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn191
-		 (LetStmt   (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_547 = happySpecReduce_0  181# happyReduction_547
-happyReduction_547  =  happyIn192
-		 (\l -> ParArray l []
-	)
-
-happyReduce_548 = happySpecReduce_1  181# happyReduction_548
-happyReduction_548 happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	happyIn192
-		 (\l -> ParArray l [happy_var_1]
-	)}
-
-happyReduce_549 = happySpecReduce_1  181# happyReduction_549
-happyReduction_549 happy_x_1
-	 =  case happyOut185 happy_x_1 of { happy_var_1 -> 
-	happyIn192
-		 (\l -> let (ps,ss) = happy_var_1 in ParArray (l <** reverse ss) (reverse ps)
-	)}
-
-happyReduce_550 = happySpecReduce_3  181# happyReduction_550
-happyReduction_550 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn192
-		 (\l -> ParArrayFromTo     (l <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_551 = happyReduce 5# 181# happyReduction_551
-happyReduction_551 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> 
-	case happyOut154 happy_x_5 of { happy_var_5 -> 
-	happyIn192
-		 (\l -> ParArrayFromThenTo (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_552 = happySpecReduce_3  181# happyReduction_552
-happyReduction_552 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut170 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> 
-	case happyOut186 happy_x_3 of { happy_var_3 -> 
-	happyIn192
-		 (\l -> let (stss, ss) = happy_var_3 in ParArrayComp (l <** (happy_var_2:ss)) happy_var_1 (reverse stss)
-	)}}}
-
-happyReduce_553 = happySpecReduce_3  182# happyReduction_553
-happyReduction_553 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut194 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn193
-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_554 = happySpecReduce_3  182# happyReduction_554
-happyReduction_554 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut194 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn193
-		 (let l' =  ann . last $ fst happy_var_2
-                                         in (fst happy_var_2, nIS happy_var_1 <++> l', happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_555 = happySpecReduce_3  183# happyReduction_555
-happyReduction_555 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut195 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn194
-		 ((reverse $ fst happy_var_2, happy_var_1 ++ snd happy_var_2 ++ happy_var_3)
-	)}}}
-
-happyReduce_556 = happySpecReduce_3  184# happyReduction_556
-happyReduction_556 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut195 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut196 happy_x_3 of { happy_var_3 -> 
-	happyIn195
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ happy_var_2)
-	)}}}
-
-happyReduce_557 = happySpecReduce_1  184# happyReduction_557
-happyReduction_557 happy_x_1
-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> 
-	happyIn195
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_558 = happySpecReduce_3  185# happyReduction_558
-happyReduction_558 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut200 happy_x_1 of { happy_var_1 -> 
-	case happyOut197 happy_x_2 of { happy_var_2 -> 
-	case happyOut148 happy_x_3 of { happy_var_3 -> 
-	happyIn196
-		 (Alt (happy_var_1 <> happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** snd happy_var_3) happy_var_1 happy_var_2 (fst happy_var_3)
-	)}}}
-
-happyReduce_559 = happySpecReduce_2  186# happyReduction_559
-happyReduction_559 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RightArrow) -> 
-	case happyOut153 happy_x_2 of { happy_var_2 -> 
-	happyIn197
-		 (UnGuardedRhs (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_560 = happySpecReduce_1  186# happyReduction_560
-happyReduction_560 happy_x_1
-	 =  case happyOut198 happy_x_1 of { happy_var_1 -> 
-	happyIn197
-		 (GuardedRhss  (snd happy_var_1) (reverse $ fst happy_var_1)
-	)}
-
-happyReduce_561 = happySpecReduce_2  187# happyReduction_561
-happyReduction_561 happy_x_2
-	happy_x_1
-	 =  case happyOut198 happy_x_1 of { happy_var_1 -> 
-	case happyOut199 happy_x_2 of { happy_var_2 -> 
-	happyIn198
-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <++> ann happy_var_2)
-	)}}
-
-happyReduce_562 = happySpecReduce_1  187# happyReduction_562
-happyReduction_562 happy_x_1
-	 =  case happyOut199 happy_x_1 of { happy_var_1 -> 
-	happyIn198
-		 (([happy_var_1], ann happy_var_1)
-	)}
-
-happyReduce_563 = happyMonadReduce 4# 188# happyReduction_563
-happyReduction_563 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Bar) -> 
-	case happyOut190 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> 
-	case happyOut153 happy_x_4 of { happy_var_4 -> 
-	( do { checkPatternGuards (fst happy_var_2);
-                                       let {l = nIS happy_var_1 <++> ann happy_var_4 <** (happy_var_1:snd happy_var_2 ++ [happy_var_3])};
-                                       return (GuardedRhs l (reverse (fst happy_var_2)) happy_var_4) })}}}}
-	) (\r -> happyReturn (happyIn199 r))
-
-happyReduce_564 = happyMonadReduce 1# 189# happyReduction_564
-happyReduction_564 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut154 happy_x_1 of { happy_var_1 -> 
-	( checkPattern happy_var_1)}
-	) (\r -> happyReturn (happyIn200 r))
-
-happyReduce_565 = happyMonadReduce 2# 189# happyReduction_565
-happyReduction_565 (happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	case happyOut166 happy_x_2 of { happy_var_2 -> 
-	( checkPattern (BangPat (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2))}}
-	) (\r -> happyReturn (happyIn200 r))
-
-happyReduce_566 = happySpecReduce_3  190# happyReduction_566
-happyReduction_566 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut202 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn201
-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_567 = happySpecReduce_3  190# happyReduction_567
-happyReduction_567 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut202 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn201
-		 (let l' =  ann . last $ fst happy_var_2
-                                           in (fst happy_var_2, nIS happy_var_1 <++> l', happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_568 = happySpecReduce_3  191# happyReduction_568
-happyReduction_568 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut203 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn202
-		 ((reverse $ fst happy_var_2, happy_var_1 ++ snd happy_var_2 ++ happy_var_3)
-	)}}}
-
-happyReduce_569 = happySpecReduce_3  192# happyReduction_569
-happyReduction_569 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut203 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	case happyOut199 happy_x_3 of { happy_var_3 -> 
-	happyIn203
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ happy_var_2)
-	)}}}
-
-happyReduce_570 = happySpecReduce_1  192# happyReduction_570
-happyReduction_570 happy_x_1
-	 =  case happyOut199 happy_x_1 of { happy_var_1 -> 
-	happyIn203
-		 (([happy_var_1], [])
-	)}
-
-happyReduce_571 = happySpecReduce_3  193# happyReduction_571
-happyReduction_571 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> 
-	case happyOut205 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> 
-	happyIn204
-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_572 = happySpecReduce_3  193# happyReduction_572
-happyReduction_572 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> 
-	case happyOut205 happy_x_2 of { happy_var_2 -> 
-	case happyOut244 happy_x_3 of { happy_var_3 -> 
-	happyIn204
-		 (let l' =  ann . last $ fst happy_var_2
-                                         in (fst happy_var_2, nIS happy_var_1 <++> l', happy_var_1:snd happy_var_2 ++ [happy_var_3])
-	)}}}
-
-happyReduce_573 = happySpecReduce_2  194# happyReduction_573
-happyReduction_573 happy_x_2
-	happy_x_1
-	 =  case happyOut207 happy_x_1 of { happy_var_1 -> 
-	case happyOut206 happy_x_2 of { happy_var_2 -> 
-	happyIn205
-		 ((happy_var_1 : fst happy_var_2, snd happy_var_2)
-	)}}
-
-happyReduce_574 = happySpecReduce_2  194# happyReduction_574
-happyReduction_574 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> 
-	case happyOut205 happy_x_2 of { happy_var_2 -> 
-	happyIn205
-		 ((fst happy_var_2, happy_var_1 : snd happy_var_2)
-	)}}
-
-happyReduce_575 = happySpecReduce_0  194# happyReduction_575
-happyReduction_575  =  happyIn205
-		 (([],[])
-	)
-
-happyReduce_576 = happySpecReduce_2  195# happyReduction_576
-happyReduction_576 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> 
-	case happyOut205 happy_x_2 of { happy_var_2 -> 
-	happyIn206
-		 ((fst happy_var_2, happy_var_1 : snd happy_var_2)
-	)}}
-
-happyReduce_577 = happySpecReduce_0  195# happyReduction_577
-happyReduction_577  =  happyIn206
-		 (([],[])
-	)
-
-happyReduce_578 = happySpecReduce_2  196# happyReduction_578
-happyReduction_578 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> 
-	case happyOut72 happy_x_2 of { happy_var_2 -> 
-	happyIn207
-		 (LetStmt (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2
-	)}}
-
-happyReduce_579 = happySpecReduce_3  196# happyReduction_579
-happyReduction_579 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut200 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftArrow) -> 
-	case happyOut153 happy_x_3 of { happy_var_3 -> 
-	happyIn207
-		 (Generator (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_580 = happySpecReduce_1  196# happyReduction_580
-happyReduction_580 happy_x_1
-	 =  case happyOut153 happy_x_1 of { happy_var_1 -> 
-	happyIn207
-		 (Qualifier (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_581 = happySpecReduce_2  196# happyReduction_581
-happyReduction_581 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Rec) -> 
-	case happyOut204 happy_x_2 of { happy_var_2 -> 
-	happyIn207
-		 (let (stms,inf,ss) = happy_var_2 in RecStmt (nIS happy_var_1 <++> inf <** happy_var_1:ss) stms
-	)}}
-
-happyReduce_582 = happySpecReduce_3  197# happyReduction_582
-happyReduction_582 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut209 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> 
-	case happyOut208 happy_x_3 of { happy_var_3 -> 
-	happyIn208
-		 (let (fbs, ss) = happy_var_3 in (happy_var_1 : fbs, happy_var_2 : ss)
-	)}}}
-
-happyReduce_583 = happySpecReduce_1  197# happyReduction_583
-happyReduction_583 happy_x_1
-	 =  case happyOut209 happy_x_1 of { happy_var_1 -> 
-	happyIn208
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_584 = happyMonadReduce 1# 197# happyReduction_584
-happyReduction_584 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 DotDot) -> 
-	( do { checkEnabled RecordWildCards `atSrcLoc` (getPointLoc happy_var_1);
-                                              return ([FieldWildcard (nIS happy_var_1)], []) })}
-	) (\r -> happyReturn (happyIn208 r))
-
-happyReduce_585 = happySpecReduce_3  198# happyReduction_585
-happyReduction_585 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut216 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> 
-	case happyOut154 happy_x_3 of { happy_var_3 -> 
-	happyIn209
-		 (FieldUpdate (happy_var_1 <>happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_586 = happyMonadReduce 1# 198# happyReduction_586
-happyReduction_586 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (case happyOut216 happy_x_1 of { happy_var_1 -> 
-	( checkEnabled NamedFieldPuns >> checkQualOrUnQual happy_var_1 >>= return . FieldPun (ann happy_var_1))}
-	) (\r -> happyReturn (happyIn209 r))
-
-happyReduce_587 = happySpecReduce_3  199# happyReduction_587
-happyReduction_587 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> 
-	case happyOut211 happy_x_2 of { happy_var_2 -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	happyIn210
-		 ((reverse (fst happy_var_2), reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)
-	)}}}
-
-happyReduce_588 = happySpecReduce_3  200# happyReduction_588
-happyReduction_588 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut211 happy_x_1 of { happy_var_1 -> 
-	case happyOut24 happy_x_2 of { happy_var_2 -> 
-	case happyOut212 happy_x_3 of { happy_var_3 -> 
-	happyIn211
-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)
-	)}}}
-
-happyReduce_589 = happySpecReduce_1  200# happyReduction_589
-happyReduction_589 happy_x_1
-	 =  case happyOut212 happy_x_1 of { happy_var_1 -> 
-	happyIn211
-		 (([happy_var_1],[])
-	)}
-
-happyReduce_590 = happySpecReduce_3  201# happyReduction_590
-happyReduction_590 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut217 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> 
-	case happyOut153 happy_x_3 of { happy_var_3 -> 
-	happyIn212
-		 (IPBind (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3
-	)}}}
-
-happyReduce_591 = happySpecReduce_2  202# happyReduction_591
-happyReduction_591 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightParen) -> 
-	happyIn213
-		 (p_unit_con              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_592 = happySpecReduce_2  202# happyReduction_592
-happyReduction_592 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightSquare) -> 
-	happyIn213
-		 (List                    (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2]) []
-	)}}
-
-happyReduce_593 = happySpecReduce_3  202# happyReduction_593
-happyReduction_593 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn213
-		 (p_tuple_con             (happy_var_1 <^^> happy_var_3 <** happy_var_1:reverse (happy_var_3:happy_var_2)) Boxed (length happy_var_2)
-	)}}}
-
-happyReduce_594 = happySpecReduce_2  202# happyReduction_594
-happyReduction_594 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightHashParen) -> 
-	happyIn213
-		 (p_unboxed_singleton_con (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])
-	)}}
-
-happyReduce_595 = happySpecReduce_3  202# happyReduction_595
-happyReduction_595 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> 
-	case happyOut169 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> 
-	happyIn213
-		 (p_tuple_con             (happy_var_1 <^^> happy_var_3 <** happy_var_1:reverse (happy_var_3:happy_var_2)) Unboxed (length happy_var_2)
-	)}}}
-
-happyReduce_596 = happySpecReduce_1  202# happyReduction_596
-happyReduction_596 happy_x_1
-	 =  case happyOut219 happy_x_1 of { happy_var_1 -> 
-	happyIn213
-		 (Con (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_597 = happySpecReduce_1  203# happyReduction_597
-happyReduction_597 happy_x_1
-	 =  case happyOut231 happy_x_1 of { happy_var_1 -> 
-	happyIn214
-		 (happy_var_1
-	)}
-
-happyReduce_598 = happySpecReduce_3  203# happyReduction_598
-happyReduction_598 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut239 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn214
-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2
-	)}}}
-
-happyReduce_599 = happySpecReduce_1  204# happyReduction_599
-happyReduction_599 happy_x_1
-	 =  case happyOut230 happy_x_1 of { happy_var_1 -> 
-	happyIn215
-		 (happy_var_1
-	)}
-
-happyReduce_600 = happySpecReduce_3  204# happyReduction_600
-happyReduction_600 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut239 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn215
-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2
-	)}}}
-
-happyReduce_601 = happySpecReduce_1  205# happyReduction_601
-happyReduction_601 happy_x_1
-	 =  case happyOut229 happy_x_1 of { happy_var_1 -> 
-	happyIn216
-		 (happy_var_1
-	)}
-
-happyReduce_602 = happySpecReduce_3  205# happyReduction_602
-happyReduction_602 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut237 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn216
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_603 = happySpecReduce_1  206# happyReduction_603
-happyReduction_603 happy_x_1
-	 =  case happyOut232 happy_x_1 of { happy_var_1 -> 
-	happyIn217
-		 (happy_var_1
-	)}
-
-happyReduce_604 = happySpecReduce_1  207# happyReduction_604
-happyReduction_604 happy_x_1
-	 =  case happyOut234 happy_x_1 of { happy_var_1 -> 
-	happyIn218
-		 (happy_var_1
-	)}
-
-happyReduce_605 = happySpecReduce_3  207# happyReduction_605
-happyReduction_605 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut236 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn218
-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2
-	)}}}
-
-happyReduce_606 = happySpecReduce_1  208# happyReduction_606
-happyReduction_606 happy_x_1
-	 =  case happyOut233 happy_x_1 of { happy_var_1 -> 
-	happyIn219
-		 (happy_var_1
-	)}
-
-happyReduce_607 = happySpecReduce_3  208# happyReduction_607
-happyReduction_607 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> 
-	case happyOut228 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> 
-	happyIn219
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_608 = happySpecReduce_1  209# happyReduction_608
-happyReduction_608 happy_x_1
-	 =  case happyOut239 happy_x_1 of { happy_var_1 -> 
-	happyIn220
-		 (happy_var_1
-	)}
-
-happyReduce_609 = happySpecReduce_3  209# happyReduction_609
-happyReduction_609 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut231 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn220
-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2
-	)}}}
-
-happyReduce_610 = happySpecReduce_1  210# happyReduction_610
-happyReduction_610 happy_x_1
-	 =  case happyOut237 happy_x_1 of { happy_var_1 -> 
-	happyIn221
-		 (happy_var_1
-	)}
-
-happyReduce_611 = happySpecReduce_3  210# happyReduction_611
-happyReduction_611 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut229 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn221
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_612 = happySpecReduce_1  211# happyReduction_612
-happyReduction_612 happy_x_1
-	 =  case happyOut238 happy_x_1 of { happy_var_1 -> 
-	happyIn222
-		 (happy_var_1
-	)}
-
-happyReduce_613 = happySpecReduce_3  211# happyReduction_613
-happyReduction_613 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut229 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn222
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_614 = happySpecReduce_1  212# happyReduction_614
-happyReduction_614 happy_x_1
-	 =  case happyOut236 happy_x_1 of { happy_var_1 -> 
-	happyIn223
-		 (happy_var_1
-	)}
-
-happyReduce_615 = happySpecReduce_3  212# happyReduction_615
-happyReduction_615 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut234 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn223
-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2
-	)}}}
-
-happyReduce_616 = happySpecReduce_1  213# happyReduction_616
-happyReduction_616 happy_x_1
-	 =  case happyOut228 happy_x_1 of { happy_var_1 -> 
-	happyIn224
-		 (happy_var_1
-	)}
-
-happyReduce_617 = happySpecReduce_3  213# happyReduction_617
-happyReduction_617 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut233 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn224
-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_618 = happySpecReduce_1  214# happyReduction_618
-happyReduction_618 happy_x_1
-	 =  case happyOut220 happy_x_1 of { happy_var_1 -> 
-	happyIn225
-		 (VarOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_619 = happySpecReduce_1  214# happyReduction_619
-happyReduction_619 happy_x_1
-	 =  case happyOut223 happy_x_1 of { happy_var_1 -> 
-	happyIn225
-		 (ConOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_620 = happySpecReduce_1  215# happyReduction_620
-happyReduction_620 happy_x_1
-	 =  case happyOut221 happy_x_1 of { happy_var_1 -> 
-	happyIn226
-		 (QVarOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_621 = happySpecReduce_1  215# happyReduction_621
-happyReduction_621 happy_x_1
-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> 
-	happyIn226
-		 (QConOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_622 = happySpecReduce_1  216# happyReduction_622
-happyReduction_622 happy_x_1
-	 =  case happyOut222 happy_x_1 of { happy_var_1 -> 
-	happyIn227
-		 (QVarOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_623 = happySpecReduce_1  216# happyReduction_623
-happyReduction_623 happy_x_1
-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> 
-	happyIn227
-		 (QConOp (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_624 = happySpecReduce_1  217# happyReduction_624
-happyReduction_624 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Colon) -> 
-	happyIn228
-		 (list_cons_name (nIS happy_var_1)
-	)}
-
-happyReduce_625 = happySpecReduce_1  217# happyReduction_625
-happyReduction_625 happy_x_1
-	 =  case happyOut235 happy_x_1 of { happy_var_1 -> 
-	happyIn228
-		 (happy_var_1
-	)}
-
-happyReduce_626 = happySpecReduce_1  218# happyReduction_626
-happyReduction_626 happy_x_1
-	 =  case happyOut231 happy_x_1 of { happy_var_1 -> 
-	happyIn229
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_627 = happySpecReduce_1  218# happyReduction_627
-happyReduction_627 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn229
-		 (let {Loc l (QVarId q) = happy_var_1; nis = nIS l}
-                                 in Qual nis (ModuleName nis (fst q)) (Ident nis (snd q))
-	)}
-
-happyReduce_628 = happySpecReduce_1  219# happyReduction_628
-happyReduction_628 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn230
-		 (let Loc l (VarId v) = happy_var_1 in Ident (nIS l) v
-	)}
-
-happyReduce_629 = happySpecReduce_1  219# happyReduction_629
-happyReduction_629 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> 
-	happyIn230
-		 (as_name        (nIS happy_var_1)
-	)}
-
-happyReduce_630 = happySpecReduce_1  219# happyReduction_630
-happyReduction_630 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> 
-	happyIn230
-		 (qualified_name (nIS happy_var_1)
-	)}
-
-happyReduce_631 = happySpecReduce_1  219# happyReduction_631
-happyReduction_631 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> 
-	happyIn230
-		 (hiding_name    (nIS happy_var_1)
-	)}
-
-happyReduce_632 = happySpecReduce_1  219# happyReduction_632
-happyReduction_632 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Export) -> 
-	happyIn230
-		 (export_name    (nIS happy_var_1)
-	)}
-
-happyReduce_633 = happySpecReduce_1  219# happyReduction_633
-happyReduction_633 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> 
-	happyIn230
-		 (stdcall_name   (nIS happy_var_1)
-	)}
-
-happyReduce_634 = happySpecReduce_1  219# happyReduction_634
-happyReduction_634 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> 
-	happyIn230
-		 (ccall_name     (nIS happy_var_1)
-	)}
-
-happyReduce_635 = happySpecReduce_1  219# happyReduction_635
-happyReduction_635 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> 
-	happyIn230
-		 (cplusplus_name (nIS happy_var_1)
-	)}
-
-happyReduce_636 = happySpecReduce_1  219# happyReduction_636
-happyReduction_636 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> 
-	happyIn230
-		 (dotnet_name    (nIS happy_var_1)
-	)}
-
-happyReduce_637 = happySpecReduce_1  219# happyReduction_637
-happyReduction_637 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> 
-	happyIn230
-		 (jvm_name       (nIS happy_var_1)
-	)}
-
-happyReduce_638 = happySpecReduce_1  219# happyReduction_638
-happyReduction_638 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> 
-	happyIn230
-		 (js_name        (nIS happy_var_1)
-	)}
-
-happyReduce_639 = happySpecReduce_1  219# happyReduction_639
-happyReduction_639 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> 
-	happyIn230
-		 (capi_name      (nIS happy_var_1)
-	)}
-
-happyReduce_640 = happySpecReduce_1  220# happyReduction_640
-happyReduction_640 happy_x_1
-	 =  case happyOut230 happy_x_1 of { happy_var_1 -> 
-	happyIn231
-		 (happy_var_1
-	)}
-
-happyReduce_641 = happySpecReduce_1  220# happyReduction_641
-happyReduction_641 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> 
-	happyIn231
-		 (safe_name       (nIS happy_var_1)
-	)}
-
-happyReduce_642 = happySpecReduce_1  220# happyReduction_642
-happyReduction_642 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> 
-	happyIn231
-		 (unsafe_name     (nIS happy_var_1)
-	)}
-
-happyReduce_643 = happySpecReduce_1  220# happyReduction_643
-happyReduction_643 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> 
-	happyIn231
-		 (interruptible_name (nIS happy_var_1)
-	)}
-
-happyReduce_644 = happySpecReduce_1  220# happyReduction_644
-happyReduction_644 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> 
-	happyIn231
-		 (threadsafe_name (nIS happy_var_1)
-	)}
-
-happyReduce_645 = happySpecReduce_1  220# happyReduction_645
-happyReduction_645 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> 
-	happyIn231
-		 (forall_name	  (nIS happy_var_1)
-	)}
-
-happyReduce_646 = happySpecReduce_1  220# happyReduction_646
-happyReduction_646 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Family) -> 
-	happyIn231
-		 (family_name     (nIS happy_var_1)
-	)}
-
-happyReduce_647 = happySpecReduce_1  221# happyReduction_647
-happyReduction_647 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn232
-		 (let Loc l (IDupVarId i) = happy_var_1 in IPDup (nIS l) i
-	)}
-
-happyReduce_648 = happySpecReduce_1  221# happyReduction_648
-happyReduction_648 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn232
-		 (let Loc l (ILinVarId i) = happy_var_1 in IPLin (nIS l) i
-	)}
-
-happyReduce_649 = happySpecReduce_1  222# happyReduction_649
-happyReduction_649 happy_x_1
-	 =  case happyOut234 happy_x_1 of { happy_var_1 -> 
-	happyIn233
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_650 = happySpecReduce_1  222# happyReduction_650
-happyReduction_650 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn233
-		 (let {Loc l (QConId q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Ident nis (snd q))
-	)}
-
-happyReduce_651 = happySpecReduce_1  223# happyReduction_651
-happyReduction_651 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn234
-		 (let Loc l (ConId c) = happy_var_1 in Ident (nIS l) c
-	)}
-
-happyReduce_652 = happySpecReduce_1  224# happyReduction_652
-happyReduction_652 happy_x_1
-	 =  case happyOut236 happy_x_1 of { happy_var_1 -> 
-	happyIn235
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_653 = happySpecReduce_1  224# happyReduction_653
-happyReduction_653 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn235
-		 (let {Loc l (QConSym q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q))
-	)}
-
-happyReduce_654 = happySpecReduce_1  225# happyReduction_654
-happyReduction_654 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn236
-		 (let Loc l (ConSym c) = happy_var_1 in Symbol (nIS l) c
-	)}
-
-happyReduce_655 = happySpecReduce_1  226# happyReduction_655
-happyReduction_655 happy_x_1
-	 =  case happyOut239 happy_x_1 of { happy_var_1 -> 
-	happyIn237
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_656 = happySpecReduce_1  226# happyReduction_656
-happyReduction_656 happy_x_1
-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> 
-	happyIn237
-		 (happy_var_1
-	)}
-
-happyReduce_657 = happySpecReduce_1  227# happyReduction_657
-happyReduction_657 happy_x_1
-	 =  case happyOut240 happy_x_1 of { happy_var_1 -> 
-	happyIn238
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_658 = happySpecReduce_1  227# happyReduction_658
-happyReduction_658 happy_x_1
-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> 
-	happyIn238
-		 (happy_var_1
-	)}
-
-happyReduce_659 = happySpecReduce_1  228# happyReduction_659
-happyReduction_659 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn239
-		 (let Loc l (VarSym v) = happy_var_1 in Symbol (nIS l) v
-	)}
-
-happyReduce_660 = happySpecReduce_1  228# happyReduction_660
-happyReduction_660 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Minus) -> 
-	happyIn239
-		 (minus_name (nIS happy_var_1)
-	)}
-
-happyReduce_661 = happySpecReduce_1  228# happyReduction_661
-happyReduction_661 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	happyIn239
-		 (bang_name  (nIS happy_var_1)
-	)}
-
-happyReduce_662 = happySpecReduce_1  228# happyReduction_662
-happyReduction_662 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Dot) -> 
-	happyIn239
-		 (dot_name   (nIS happy_var_1)
-	)}
-
-happyReduce_663 = happySpecReduce_1  228# happyReduction_663
-happyReduction_663 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> 
-	happyIn239
-		 (star_name  (nIS happy_var_1)
-	)}
-
-happyReduce_664 = happySpecReduce_1  229# happyReduction_664
-happyReduction_664 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn240
-		 (let Loc l (VarSym v) = happy_var_1 in Symbol (nIS l) v
-	)}
-
-happyReduce_665 = happySpecReduce_1  229# happyReduction_665
-happyReduction_665 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> 
-	happyIn240
-		 (bang_name (nIS happy_var_1)
-	)}
-
-happyReduce_666 = happySpecReduce_1  229# happyReduction_666
-happyReduction_666 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Dot) -> 
-	happyIn240
-		 (dot_name  (nIS happy_var_1)
-	)}
-
-happyReduce_667 = happySpecReduce_1  229# happyReduction_667
-happyReduction_667 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> 
-	happyIn240
-		 (star_name (nIS happy_var_1)
-	)}
-
-happyReduce_668 = happySpecReduce_1  230# happyReduction_668
-happyReduction_668 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn241
-		 (let {Loc l (QVarSym q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q))
-	)}
-
-happyReduce_669 = happySpecReduce_1  231# happyReduction_669
-happyReduction_669 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (IntTok        (i,raw)) = happy_var_1 in Int        (nIS l) i raw
-	)}
-
-happyReduce_670 = happySpecReduce_1  231# happyReduction_670
-happyReduction_670 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (Character     (c,raw)) = happy_var_1 in Char       (nIS l) c raw
-	)}
-
-happyReduce_671 = happySpecReduce_1  231# happyReduction_671
-happyReduction_671 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (FloatTok      (r,raw)) = happy_var_1 in Frac       (nIS l) r raw
-	)}
-
-happyReduce_672 = happySpecReduce_1  231# happyReduction_672
-happyReduction_672 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (StringTok     (s,raw)) = happy_var_1 in String     (nIS l) s raw
-	)}
-
-happyReduce_673 = happySpecReduce_1  231# happyReduction_673
-happyReduction_673 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (IntTokHash    (i,raw)) = happy_var_1 in PrimInt    (nIS l) i raw
-	)}
-
-happyReduce_674 = happySpecReduce_1  231# happyReduction_674
-happyReduction_674 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (WordTokHash   (w,raw)) = happy_var_1 in PrimWord   (nIS l) w raw
-	)}
-
-happyReduce_675 = happySpecReduce_1  231# happyReduction_675
-happyReduction_675 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (FloatTokHash  (f,raw)) = happy_var_1 in PrimFloat  (nIS l) f raw
-	)}
-
-happyReduce_676 = happySpecReduce_1  231# happyReduction_676
-happyReduction_676 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (DoubleTokHash (d,raw)) = happy_var_1 in PrimDouble (nIS l) d raw
-	)}
-
-happyReduce_677 = happySpecReduce_1  231# happyReduction_677
-happyReduction_677 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (CharacterHash (c,raw)) = happy_var_1 in PrimChar   (nIS l) c raw
-	)}
-
-happyReduce_678 = happySpecReduce_1  231# happyReduction_678
-happyReduction_678 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn242
-		 (let Loc l (StringHash    (s,raw)) = happy_var_1 in PrimString (nIS l) s raw
-	)}
-
-happyReduce_679 = happyMonadReduce 0# 232# happyReduction_679
-happyReduction_679 (happyRest) tk
-	 = happyThen (( pushCurrentContext >> getSrcLoc >>= \s -> return $ mkSrcSpan s s {- >>= \x -> trace (show x) (return x) -})
-	) (\r -> happyReturn (happyIn243 r))
-
-happyReduce_680 = happySpecReduce_1  233# happyReduction_680
-happyReduction_680 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 VRightCurly) -> 
-	happyIn244
-		 (happy_var_1 {- >>= \x -> trace (show x ++ show x ++ show x) (return x) -}
-	)}
-
-happyReduce_681 = happyMonadReduce 1# 233# happyReduction_681
-happyReduction_681 (happy_x_1 `HappyStk`
-	happyRest) tk
-	 = happyThen (( popContext >> getSrcLoc >>= \s -> return $ mkSrcSpan s s {- >>= \x -> trace (show x ++ show x) (return x) -})
-	) (\r -> happyReturn (happyIn244 r))
-
-happyReduce_682 = happySpecReduce_1  234# happyReduction_682
-happyReduction_682 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn245
-		 (let Loc l (ConId  n) = happy_var_1 in ModuleName (nIS l) n
-	)}
-
-happyReduce_683 = happySpecReduce_1  234# happyReduction_683
-happyReduction_683 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn245
-		 (let Loc l (QConId n) = happy_var_1 in ModuleName (nIS l) (fst n ++ '.':snd n)
-	)}
-
-happyReduce_684 = happySpecReduce_1  235# happyReduction_684
-happyReduction_684 happy_x_1
-	 =  case happyOut218 happy_x_1 of { happy_var_1 -> 
-	happyIn246
-		 (happy_var_1
-	)}
-
-happyReduce_685 = happySpecReduce_1  236# happyReduction_685
-happyReduction_685 happy_x_1
-	 =  case happyOut219 happy_x_1 of { happy_var_1 -> 
-	happyIn247
-		 (happy_var_1
-	)}
-
-happyReduce_686 = happySpecReduce_1  237# happyReduction_686
-happyReduction_686 happy_x_1
-	 =  case happyOut249 happy_x_1 of { happy_var_1 -> 
-	happyIn248
-		 (happy_var_1
-	)}
-
-happyReduce_687 = happySpecReduce_1  238# happyReduction_687
-happyReduction_687 happy_x_1
-	 =  case happyOut230 happy_x_1 of { happy_var_1 -> 
-	happyIn249
-		 (happy_var_1
-	)}
-
-happyReduce_688 = happySpecReduce_1  238# happyReduction_688
-happyReduction_688 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> 
-	happyIn249
-		 (safe_name       (nIS happy_var_1)
-	)}
-
-happyReduce_689 = happySpecReduce_1  238# happyReduction_689
-happyReduction_689 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> 
-	happyIn249
-		 (unsafe_name     (nIS happy_var_1)
-	)}
-
-happyReduce_690 = happySpecReduce_1  238# happyReduction_690
-happyReduction_690 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> 
-	happyIn249
-		 (threadsafe_name (nIS happy_var_1)
-	)}
-
-happyReduce_691 = happySpecReduce_3  239# happyReduction_691
-happyReduction_691 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> 
-	case happyOut248 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> 
-	happyIn250
-		 (UnQual (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2
-	)}}}
-
-happyReduce_692 = happySpecReduce_1  239# happyReduction_692
-happyReduction_692 happy_x_1
-	 =  case happyOut251 happy_x_1 of { happy_var_1 -> 
-	happyIn250
-		 (UnQual (ann happy_var_1) happy_var_1
-	)}
-
-happyReduce_693 = happySpecReduce_1  240# happyReduction_693
-happyReduction_693 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn251
-		 (let Loc l (VarSym x) = happy_var_1 in Symbol (nIS l) x
-	)}
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	Loc _ EOF -> happyDoAction 144# tk action sts stk;
-	Loc _ (VarId _) -> cont 1#;
-	Loc _ (QVarId _) -> cont 2#;
-	Loc _ (IDupVarId _) -> cont 3#;
-	Loc _ (ILinVarId _) -> cont 4#;
-	Loc _ (ConId _) -> cont 5#;
-	Loc _ (QConId _) -> cont 6#;
-	Loc _ (DVarId _) -> cont 7#;
-	Loc _ (VarSym _) -> cont 8#;
-	Loc _ (ConSym _) -> cont 9#;
-	Loc _ (QVarSym _) -> cont 10#;
-	Loc _ (QConSym _) -> cont 11#;
-	Loc _ (IntTok _) -> cont 12#;
-	Loc _ (FloatTok _) -> cont 13#;
-	Loc _ (Character _) -> cont 14#;
-	Loc _ (StringTok _) -> cont 15#;
-	Loc _ (IntTokHash _) -> cont 16#;
-	Loc _ (WordTokHash _) -> cont 17#;
-	Loc _ (FloatTokHash _) -> cont 18#;
-	Loc _ (DoubleTokHash _) -> cont 19#;
-	Loc _ (CharacterHash _) -> cont 20#;
-	Loc _ (StringHash _) -> cont 21#;
-	Loc happy_dollar_dollar LeftParen -> cont 22#;
-	Loc happy_dollar_dollar RightParen -> cont 23#;
-	Loc happy_dollar_dollar LeftHashParen -> cont 24#;
-	Loc happy_dollar_dollar RightHashParen -> cont 25#;
-	Loc happy_dollar_dollar SemiColon -> cont 26#;
-	Loc happy_dollar_dollar LeftCurly -> cont 27#;
-	Loc happy_dollar_dollar RightCurly -> cont 28#;
-	Loc happy_dollar_dollar VRightCurly -> cont 29#;
-	Loc happy_dollar_dollar LeftSquare -> cont 30#;
-	Loc happy_dollar_dollar RightSquare -> cont 31#;
-	Loc happy_dollar_dollar ParArrayLeftSquare -> cont 32#;
-	Loc happy_dollar_dollar ParArrayRightSquare -> cont 33#;
-	Loc happy_dollar_dollar Comma -> cont 34#;
-	Loc happy_dollar_dollar Underscore -> cont 35#;
-	Loc happy_dollar_dollar BackQuote -> cont 36#;
-	Loc happy_dollar_dollar Dot -> cont 37#;
-	Loc happy_dollar_dollar DotDot -> cont 38#;
-	Loc happy_dollar_dollar Colon -> cont 39#;
-	Loc happy_dollar_dollar DoubleColon -> cont 40#;
-	Loc happy_dollar_dollar Equals -> cont 41#;
-	Loc happy_dollar_dollar Backslash -> cont 42#;
-	Loc happy_dollar_dollar Bar -> cont 43#;
-	Loc happy_dollar_dollar LeftArrow -> cont 44#;
-	Loc happy_dollar_dollar RightArrow -> cont 45#;
-	Loc happy_dollar_dollar At -> cont 46#;
-	Loc happy_dollar_dollar Tilde -> cont 47#;
-	Loc happy_dollar_dollar DoubleArrow -> cont 48#;
-	Loc happy_dollar_dollar Minus -> cont 49#;
-	Loc happy_dollar_dollar Exclamation -> cont 50#;
-	Loc happy_dollar_dollar Star -> cont 51#;
-	Loc happy_dollar_dollar LeftArrowTail -> cont 52#;
-	Loc happy_dollar_dollar RightArrowTail -> cont 53#;
-	Loc happy_dollar_dollar LeftDblArrowTail -> cont 54#;
-	Loc happy_dollar_dollar RightDblArrowTail -> cont 55#;
-	Loc happy_dollar_dollar RPGuardOpen -> cont 56#;
-	Loc happy_dollar_dollar RPGuardClose -> cont 57#;
-	Loc happy_dollar_dollar RPCAt -> cont 58#;
-	Loc _ (THIdEscape _) -> cont 59#;
-	Loc happy_dollar_dollar THParenEscape -> cont 60#;
-	Loc happy_dollar_dollar THExpQuote -> cont 61#;
-	Loc happy_dollar_dollar THPatQuote -> cont 62#;
-	Loc happy_dollar_dollar THTypQuote -> cont 63#;
-	Loc happy_dollar_dollar THDecQuote -> cont 64#;
-	Loc happy_dollar_dollar THCloseQuote -> cont 65#;
-	Loc happy_dollar_dollar THVarQuote -> cont 66#;
-	Loc happy_dollar_dollar THTyQuote -> cont 67#;
-	Loc _ (THQuasiQuote _) -> cont 68#;
-	Loc _ (XPCDATA _) -> cont 69#;
-	Loc happy_dollar_dollar XStdTagOpen -> cont 70#;
-	Loc happy_dollar_dollar XCloseTagOpen -> cont 71#;
-	Loc happy_dollar_dollar XCodeTagOpen -> cont 72#;
-	Loc happy_dollar_dollar XChildTagOpen -> cont 73#;
-	Loc happy_dollar_dollar XStdTagClose -> cont 74#;
-	Loc happy_dollar_dollar XEmptyTagClose -> cont 75#;
-	Loc happy_dollar_dollar XCodeTagClose -> cont 76#;
-	Loc happy_dollar_dollar XRPatOpen -> cont 77#;
-	Loc happy_dollar_dollar XRPatClose -> cont 78#;
-	Loc happy_dollar_dollar KW_Foreign -> cont 79#;
-	Loc happy_dollar_dollar KW_Export -> cont 80#;
-	Loc happy_dollar_dollar KW_Safe -> cont 81#;
-	Loc happy_dollar_dollar KW_Unsafe -> cont 82#;
-	Loc happy_dollar_dollar KW_Threadsafe -> cont 83#;
-	Loc happy_dollar_dollar KW_Interruptible -> cont 84#;
-	Loc happy_dollar_dollar KW_StdCall -> cont 85#;
-	Loc happy_dollar_dollar KW_CCall -> cont 86#;
-	Loc happy_dollar_dollar KW_CPlusPlus -> cont 87#;
-	Loc happy_dollar_dollar KW_DotNet -> cont 88#;
-	Loc happy_dollar_dollar KW_Jvm -> cont 89#;
-	Loc happy_dollar_dollar KW_Js -> cont 90#;
-	Loc happy_dollar_dollar KW_CApi -> cont 91#;
-	Loc happy_dollar_dollar KW_As -> cont 92#;
-	Loc happy_dollar_dollar KW_By -> cont 93#;
-	Loc happy_dollar_dollar KW_Case -> cont 94#;
-	Loc happy_dollar_dollar KW_Class -> cont 95#;
-	Loc happy_dollar_dollar KW_Data -> cont 96#;
-	Loc happy_dollar_dollar KW_Default -> cont 97#;
-	Loc happy_dollar_dollar KW_Deriving -> cont 98#;
-	Loc happy_dollar_dollar KW_Do -> cont 99#;
-	Loc happy_dollar_dollar KW_Else -> cont 100#;
-	Loc happy_dollar_dollar KW_Family -> cont 101#;
-	Loc happy_dollar_dollar KW_Forall -> cont 102#;
-	Loc happy_dollar_dollar KW_Group -> cont 103#;
-	Loc happy_dollar_dollar KW_Hiding -> cont 104#;
-	Loc happy_dollar_dollar KW_If -> cont 105#;
-	Loc happy_dollar_dollar KW_Import -> cont 106#;
-	Loc happy_dollar_dollar KW_In -> cont 107#;
-	Loc happy_dollar_dollar KW_Infix -> cont 108#;
-	Loc happy_dollar_dollar KW_InfixL -> cont 109#;
-	Loc happy_dollar_dollar KW_InfixR -> cont 110#;
-	Loc happy_dollar_dollar KW_Instance -> cont 111#;
-	Loc happy_dollar_dollar KW_Let -> cont 112#;
-	Loc happy_dollar_dollar KW_MDo -> cont 113#;
-	Loc happy_dollar_dollar KW_Module -> cont 114#;
-	Loc happy_dollar_dollar KW_NewType -> cont 115#;
-	Loc happy_dollar_dollar KW_Of -> cont 116#;
-	Loc happy_dollar_dollar KW_Proc -> cont 117#;
-	Loc happy_dollar_dollar KW_Rec -> cont 118#;
-	Loc happy_dollar_dollar KW_Then -> cont 119#;
-	Loc happy_dollar_dollar KW_Type -> cont 120#;
-	Loc happy_dollar_dollar KW_Using -> cont 121#;
-	Loc happy_dollar_dollar KW_Where -> cont 122#;
-	Loc happy_dollar_dollar KW_Qualified -> cont 123#;
-	Loc _ (INLINE _) -> cont 124#;
-	Loc happy_dollar_dollar INLINE_CONLIKE -> cont 125#;
-	Loc happy_dollar_dollar SPECIALISE -> cont 126#;
-	Loc _ (SPECIALISE_INLINE _) -> cont 127#;
-	Loc happy_dollar_dollar SOURCE -> cont 128#;
-	Loc happy_dollar_dollar RULES -> cont 129#;
-	Loc happy_dollar_dollar CORE -> cont 130#;
-	Loc happy_dollar_dollar SCC -> cont 131#;
-	Loc happy_dollar_dollar GENERATED -> cont 132#;
-	Loc happy_dollar_dollar DEPRECATED -> cont 133#;
-	Loc happy_dollar_dollar WARNING -> cont 134#;
-	Loc happy_dollar_dollar UNPACK -> cont 135#;
-	Loc _ (OPTIONS _) -> cont 136#;
-	Loc happy_dollar_dollar LANGUAGE -> cont 137#;
-	Loc happy_dollar_dollar ANN -> cont 138#;
-	Loc happy_dollar_dollar MINIMAL -> cont 139#;
-	Loc happy_dollar_dollar NO_OVERLAP -> cont 140#;
-	Loc happy_dollar_dollar OVERLAP -> cont 141#;
-	Loc happy_dollar_dollar INCOHERENT -> cont 142#;
-	Loc happy_dollar_dollar PragmaEnd -> cont 143#;
-	_ -> happyError' tk
-	})
-
-happyError_ 144# tk = happyError' tk
-happyError_ _ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (>>=)
-happyReturn :: () => a -> P a
-happyReturn = (return)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Loc Token) -> P a
-happyError' tk = parseError tk
-
-mparseModule = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut13 x))
-
-mparseExp = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut153 x))
-
-mparsePat = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut200 x))
-
-mparseDecl = happySomeParser where
-  happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut51 x))
-
-mparseType = happySomeParser where
-  happySomeParser = happyThen (happyParse 4#) (\x -> happyReturn (happyOut103 x))
-
-mparseStmt = happySomeParser where
-  happySomeParser = happyThen (happyParse 5#) (\x -> happyReturn (happyOut207 x))
-
-mparseModules = happySomeParser where
-  happySomeParser = happyThen (happyParse 6#) (\x -> happyReturn (happyOut11 x))
-
-mfindOptPragmas = happySomeParser where
-  happySomeParser = happyThen (happyParse 7#) (\x -> happyReturn (happyOut15 x))
-
-happySeq = happyDontSeq
-
-
-type L = SrcSpanInfo -- just for convenience
-type S = SrcSpan
-
-parseError :: Loc Token -> P a
-parseError t = fail $ "Parse error: " ++ showToken (unLoc t)
-
-(<>) :: (Annotated a, Annotated b) => a SrcSpanInfo -> b SrcSpanInfo -> SrcSpanInfo
-a <> b = ann a <++> ann b
-infixl 6 <>
-
-nIS = noInfoSpan
-iS = infoSpan
-
-
--- | Parse of a string, which should contain a complete Haskell module.
-parseModule :: String -> ParseResult (Module SrcSpanInfo)
-parseModule = simpleParse mparseModule
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode.
-parseModuleWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
-parseModuleWithMode = modeParse mparseModule
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseModuleWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
-parseModuleWithComments = commentParse mparseModule
-
--- | Parse of a string containing a Haskell expression.
-parseExp :: String -> ParseResult (Exp SrcSpanInfo)
-parseExp = simpleParse mparseExp
-
--- | Parse of a string containing a Haskell expression, using an explicit mode.
-parseExpWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo)
-parseExpWithMode = modeParse mparseExp
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseExpWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment])
-parseExpWithComments = commentParse mparseExp
-
--- | Parse of a string containing a Haskell pattern.
-parsePat :: String -> ParseResult (Pat SrcSpanInfo)
-parsePat = simpleParse mparsePat
-
--- | Parse of a string containing a Haskell pattern, using an explicit mode.
-parsePatWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo)
-parsePatWithMode = modeParse mparsePat
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parsePatWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment])
-parsePatWithComments = commentParse mparsePat
-
--- | Parse of a string containing a Haskell top-level declaration.
-parseDecl :: String -> ParseResult (Decl SrcSpanInfo)
-parseDecl = simpleParse mparseDecl
-
--- | Parse of a string containing a Haskell top-level declaration, using an explicit mode.
-parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo)
-parseDeclWithMode = modeParse mparseDecl
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment])
-parseDeclWithComments = commentParse mparseDecl
-
--- | Parse of a string containing a Haskell type.
-parseType :: String -> ParseResult (Type SrcSpanInfo)
-parseType = runParser mparseType
-
--- | Parse of a string containing a Haskell type, using an explicit mode.
-parseTypeWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo)
-parseTypeWithMode mode = runParserWithMode mode mparseType
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseTypeWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment])
-parseTypeWithComments mode str = runParserWithModeComments mode mparseType str
-
--- | Parse of a string containing a Haskell statement.
-parseStmt :: String -> ParseResult (Stmt SrcSpanInfo)
-parseStmt = simpleParse mparseStmt
-
--- | Parse of a string containing a Haskell type, using an explicit mode.
-parseStmtWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo)
-parseStmtWithMode = modeParse mparseStmt
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment])
-parseStmtWithComments = commentParse mparseStmt
-
-
-simpleParse :: AppFixity a => P (a L) -> String -> ParseResult (a L)
-simpleParse p = applyFixities preludeFixities <=< runParser p
-
-modeParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L)
-modeParse p mode = applyFixities' (fixities mode) <=< runParserWithMode mode p
-
-commentParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L, [Comment])
-commentParse p mode str = do (ast, cs) <- runParserWithModeComments mode p str
-                             ast' <- applyFixities' (fixities mode) ast
-                             return (ast', cs)
-
--- | Partial parse of a string starting with a series of top-level option pragmas.
-getTopPragmas :: String -> ParseResult [ModulePragma SrcSpanInfo]
-getTopPragmas = runParser (mfindOptPragmas >>= \(ps,_,_) -> return ps)
-
--- | Parse of a string, which should contain a complete Haskell module.
-parseModules :: String -> ParseResult [Module SrcSpanInfo]
-parseModules = mapM (applyFixities preludeFixities) <=< runParser mparseModules
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode.
-parseModulesWithMode :: ParseMode -> String -> ParseResult [Module SrcSpanInfo]
-parseModulesWithMode mode = mapM (applyFixities' (fixities mode)) <=< runParserWithMode mode mparseModules
-
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseModulesWithComments :: ParseMode -> String -> ParseResult ([Module SrcSpanInfo], [Comment])
-parseModulesWithComments mode str = do (ast,cs) <- runParserWithModeComments mode mparseModules str
-                                       ast' <- mapM (applyFixities' (fixities mode)) ast
-                                       return (ast', cs)
-applyFixities' :: (AppFixity a) => Maybe [Fixity] -> a L -> ParseResult (a L)
-applyFixities' Nothing ast = return ast
-applyFixities' (Just fixs) ast = applyFixities fixs ast
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command-line>" #-}
-{-# LINE 8 "<command-line>" #-}
-# 1 "/usr/include/stdc-predef.h" 1 3 4
-
-# 17 "/usr/include/stdc-predef.h" 3 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{-# LINE 8 "<command-line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 13 "templates/GenericTemplate.hs" #-}
-
-
-
-
-
--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
-#if __GLASGOW_HASKELL__ > 706
-#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Bool)
-#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)
-#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Bool)
-#else
-#define LT(n,m) (n Happy_GHC_Exts.<# m)
-#define GTE(n,m) (n Happy_GHC_Exts.>=# m)
-#define EQ(n,m) (n Happy_GHC_Exts.==# m)
-#endif
-{-# LINE 46 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
-
-
-
-
-
-{-# LINE 67 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 77 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 86 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-        happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-        = {- nothing -}
-
-
-          case action of
-                0#           -> {- nothing -}
-                                     happyFail i tk st
-                -1#          -> {- nothing -}
-                                     happyAccept i tk st
-                n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
-
-                                                   (happyReduceArr Happy_Data_Array.! rule) i tk st
-                                                   where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
-                n                 -> {- nothing -}
-
-
-                                     happyShift new_state i tk st
-                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-         off_i  = (off Happy_GHC_Exts.+# i)
-         check  = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))
-                  then EQ(indexShortOffAddr happyCheck off_i, i)
-                  else False
-         action
-          | check     = indexShortOffAddr happyTable off_i
-          | otherwise = indexShortOffAddr happyDefActions st
-
-
-indexShortOffAddr (HappyA# arr) off =
-        Happy_GHC_Exts.narrow16Int# i
-  where
-        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-        off' = off Happy_GHC_Exts.*# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
-         sts1@((HappyCons (st1@(action)) (_))) ->
-                let r = fn stk in  -- it doesn't hurt to always seq here...
-                happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-      case happyDrop k (HappyCons (st) (sts)) of
-        sts1@((HappyCons (st1@(action)) (_))) ->
-          let drop_stk = happyDropStk k stk in
-          happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-      case happyDrop k (HappyCons (st) (sts)) of
-        sts1@((HappyCons (st1@(action)) (_))) ->
-         let drop_stk = happyDropStk k stk
-
-             off = indexShortOffAddr happyGotoOffsets st1
-             off_i = (off Happy_GHC_Exts.+# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-          in
-          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off = indexShortOffAddr happyGotoOffsets st
-         off_i = (off Happy_GHC_Exts.+# nt)
-         new_state = indexShortOffAddr happyTable off_i
-
-
-
-
------------------------------------------------------------------------------
--- Error recovery (0# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail 0# tk old_st _ stk@(x `HappyStk` _) =
-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
---      trace "failing" $ 
-        happyError_ i tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
-                                                (saved_tok `HappyStk` _ `HappyStk` stk) =
---      trace ("discarding state, depth " ++ show (length stk))  $
-        happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail  i tk (action) sts stk =
---      trace "entering error recovery" $
-        happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll :: a
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
-happyTcHack x y = y
-{-# INLINE happyTcHack #-}
-
-
------------------------------------------------------------------------------
--- Seq-ing.  If the --strict flag is given, then Happy emits 
---      happySeq = happyDoSeq
--- otherwise it emits
---      happySeq = happyDontSeq
-
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq   a b = a `seq` b
-happyDontSeq a b = b
-
------------------------------------------------------------------------------
--- Don't inline any functions from the template.  GHC has a nasty habit
--- of deciding to inline happyGoto everywhere, which increases the size of
--- the generated parser quite a bit.
-
-
-{-# NOINLINE happyDoAction #-}
-{-# NOINLINE happyTable #-}
-{-# NOINLINE happyCheck #-}
-{-# NOINLINE happyActOffsets #-}
-{-# NOINLINE happyGotoOffsets #-}
-{-# NOINLINE happyDefActions #-}
-
-{-# NOINLINE happyShift #-}
-{-# NOINLINE happySpecReduce_0 #-}
-{-# NOINLINE happySpecReduce_1 #-}
-{-# NOINLINE happySpecReduce_2 #-}
-{-# NOINLINE happySpecReduce_3 #-}
-{-# NOINLINE happyReduce #-}
-{-# NOINLINE happyMonadReduce #-}
-{-# NOINLINE happyGoto #-}
-{-# NOINLINE happyFail #-}
-
--- end of Happy Template.
diff --git a/haskell-src-exts.cabal b/haskell-src-exts.cabal
--- a/haskell-src-exts.cabal
+++ b/haskell-src-exts.cabal
@@ -1,39 +1,29 @@
 Name:                   haskell-src-exts
-Version:                1.16.0.1
+Version:                1.24.0
 License:                BSD3
 License-File:           LICENSE
 Build-Type:             Simple
 Author:                 Niklas Broberg
-Maintainer:             Niklas Broberg <niklas.broberg@chalmers.se>, Roman Cheplyaka <roma@ro-che.info>
+Maintainer:             Dan Burton <danburton.email@gmail.com>
 Category:               Language
 Synopsis:               Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer
 Description:            Haskell-Source with Extensions (HSE, haskell-src-exts)
-                        is an extension of the standard haskell-src package,
-                        and handles most registered syntactic extensions to Haskell, including:
-                        .
-                        * Multi-parameter type classes with functional dependencies
-                        .
-                        * Indexed type families (including associated types)
-                        .
-                        * Empty data declarations
-                        .
-                        * GADTs
-                        .
-                        * Implicit parameters
-                        .
-                        * Template Haskell
+                        is a standalone parser for Haskell. In addition to
+                        standard Haskell, all extensions implemented in GHC are supported.
                         .
-                        and a few more. All extensions implemented in GHC are supported.
                         Apart from these standard extensions,
                         it also handles regular patterns as per the HaRP extension
                         as well as HSX-style embedded XML syntax.
 Homepage:               https://github.com/haskell-suite/haskell-src-exts
+Bug-Reports:            https://github.com/haskell-suite/haskell-src-exts/issues
 Stability:              Stable
 Cabal-Version:          >= 1.10
+Tested-With:            GHC == 9.14.1
 
 Extra-Source-Files:
                         README.md
                         CHANGELOG
+                        RELEASENOTES-1.17.0
                         tests/examples/*.hs
                         tests/examples/*.lhs
                         tests/examples/*.hs.parser.golden
@@ -49,37 +39,39 @@
 
 Library
   Default-language:     Haskell98
-  Build-Tools:          happy >= 1.17
-  Build-Depends:        array >= 0.1, pretty >= 1.0, cpphs >= 1.3,
+  Build-Tools:          happy >= 1.19
+  Build-Depends:        array >= 0.1 && < 0.6,
+                        pretty >= 1.0 && < 1.2,
                         base >= 4.5 && < 5,
                         -- this is needed to access GHC.Generics on GHC 7.4
-                        ghc-prim
+                        ghc-prim < 0.14
+  -- this is needed to access Data.Semigroup and Control.Monad.Fail on GHCs
+  -- before 8.0
+  if !impl(ghc >= 8.0)
+    Build-Depends:
+                        semigroups >= 0.18.3 && < 0.21,
+                        fail == 4.9.*
 
   Exposed-modules:      Language.Haskell.Exts,
                         Language.Haskell.Exts.Lexer,
-                        Language.Haskell.Exts.Parser,
                         Language.Haskell.Exts.Pretty,
-                        Language.Haskell.Exts.Syntax,
                         Language.Haskell.Exts.Extension,
                         Language.Haskell.Exts.Build,
-                        Language.Haskell.Exts.Fixity,
-                        Language.Haskell.Exts.Comments,
                         Language.Haskell.Exts.SrcLoc,
-                        
-                        Language.Haskell.Exts.Annotated,
-                        Language.Haskell.Exts.Annotated.Syntax,
-                        Language.Haskell.Exts.Annotated.Fixity,
-                        Language.Haskell.Exts.Annotated.Build,
-                        Language.Haskell.Exts.Annotated.ExactPrint,
-                        Language.Haskell.Exts.Annotated.Simplify
 
+                        Language.Haskell.Exts.Syntax,
+                        Language.Haskell.Exts.Fixity,
+                        Language.Haskell.Exts.ExactPrint,
+                        Language.Haskell.Exts.Parser,
+                        Language.Haskell.Exts.Comments
+
   Other-modules:        Language.Haskell.Exts.ExtScheme,
-                        
                         Language.Haskell.Exts.ParseMonad,
                         Language.Haskell.Exts.ParseSyntax,
                         Language.Haskell.Exts.InternalLexer,
                         Language.Haskell.Exts.ParseUtils,
                         Language.Haskell.Exts.InternalParser
+                        Language.Preprocessor.Unlit
   Hs-source-dirs:       src
   Ghc-options:          -Wall
 
@@ -91,9 +83,10 @@
   type:                exitcode-stdio-1.0
   hs-source-dirs:      tests
   main-is:             Runner.hs
+  other-modules:       Extensions
   GHC-Options:         -threaded -Wall
   Default-language:    Haskell2010
-  Build-depends:       base < 5,
+  Build-depends:       base,
                        mtl,
                        containers,
                        haskell-src-exts,
@@ -103,4 +96,4 @@
                        tasty-golden >= 2.2.2,
                        filepath,
                        directory,
-                       syb
+                       pretty-show >= 1.6.16
diff --git a/src/Language/Haskell/Exts.hs b/src/Language/Haskell/Exts.hs
--- a/src/Language/Haskell/Exts.hs
+++ b/src/Language/Haskell/Exts.hs
@@ -18,11 +18,13 @@
       module Language.Haskell.Exts.Syntax
     , module Language.Haskell.Exts.Build
     , module Language.Haskell.Exts.Lexer
-    , module Language.Haskell.Exts.Parser
     , module Language.Haskell.Exts.Pretty
-    , module Language.Haskell.Exts.Extension
     , module Language.Haskell.Exts.Fixity
+    , module Language.Haskell.Exts.ExactPrint
+    , module Language.Haskell.Exts.SrcLoc
     , module Language.Haskell.Exts.Comments
+    , module Language.Haskell.Exts.Extension
+    , module Language.Haskell.Exts.Parser
     -- * Parsing of Haskell source files
     , parseFile
     , parseFileWithMode
@@ -33,96 +35,92 @@
     , parseFileContentsWithMode
     , parseFileContentsWithExts
     , parseFileContentsWithComments
-    , parseFileContentsWithCommentsAndPragmas
     -- * Read extensions declared in LANGUAGE pragmas
     , readExtensions
     ) where
 
 import Language.Haskell.Exts.Build
-import Language.Haskell.Exts.Syntax
+import Language.Haskell.Exts.Comments
 import Language.Haskell.Exts.Parser
-import Language.Haskell.Exts.Lexer
+import Language.Haskell.Exts.Syntax
+import Language.Haskell.Exts.Lexer ( lexTokenStream, lexTokenStreamWithMode, Token(..) )
 import Language.Haskell.Exts.Pretty
-import Language.Haskell.Exts.Extension
 import Language.Haskell.Exts.Fixity
-import Language.Haskell.Exts.Comments
+import Language.Haskell.Exts.ExactPrint
+import Language.Haskell.Exts.SrcLoc
+import Language.Haskell.Exts.Extension
 
 import Data.List
 import Data.Maybe (fromMaybe)
 import Language.Preprocessor.Unlit
+import System.IO
 
 -- | Parse a source file on disk, using the default parse mode.
-parseFile :: FilePath -> IO (ParseResult Module)
+parseFile :: FilePath -> IO (ParseResult (Module SrcSpanInfo))
 parseFile fp = parseFileWithMode (defaultParseMode { parseFilename = fp }) fp
 
 -- | Parse a source file on disk, with an extra set of extensions to know about
 --   on top of what the file itself declares.
-parseFileWithExts :: [Extension] -> FilePath -> IO (ParseResult Module)
-parseFileWithExts exts fp = parseFileWithMode (defaultParseMode { extensions = exts, parseFilename = fp }) fp
+parseFileWithExts :: [Extension] -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
+parseFileWithExts exts fp =
+    parseFileWithMode (defaultParseMode {
+                         extensions = exts,
+                         parseFilename = fp }) fp
 
 -- | Parse a source file on disk, supplying a custom parse mode.
-parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult Module)
-parseFileWithMode p fp = readFile fp >>= return . parseFileContentsWithMode p
+parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
+parseFileWithMode p fp = readUTF8File fp >>= return . parseFileContentsWithMode p
 
--- | Parse a source file on disk, supplying a custom parse mode, and retaining comments.
-parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module, [Comment]))
-parseFileWithComments p fp = readFile fp >>= return . parseFileContentsWithComments p
+parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))
+parseFileWithComments p fp = readUTF8File fp >>= return . parseFileContentsWithComments p
 
 -- | Parse a source file on disk, supplying a custom parse mode, and retaining comments
 --  as well as unknown pragmas.
-parseFileWithCommentsAndPragmas :: ParseMode -> FilePath -> IO (ParseResult (Module, [Comment], [UnknownPragma]))
+parseFileWithCommentsAndPragmas
+  :: ParseMode -> FilePath
+  -> IO (ParseResult (Module SrcSpanInfo, [Comment], [UnknownPragma]))
 parseFileWithCommentsAndPragmas p fp =
-    readFile fp >>= return . parseFileContentsWithCommentsAndPragmas p
+    readUTF8File fp >>= return . parseFileContentsWithCommentsAndPragmas p
 
+-- | Parse a source file from a string using a custom parse mode retaining comments
+--   as well as unknown pragmas.
+parseFileContentsWithCommentsAndPragmas
+  :: ParseMode -> String
+  -> ParseResult (Module SrcSpanInfo, [Comment], [UnknownPragma])
+parseFileContentsWithCommentsAndPragmas pmode str = separatePragmas parseResult
+    where parseResult = parseFileContentsWithComments pmode str
+
 -- | Parse a source file from a string using the default parse mode.
-parseFileContents :: String -> ParseResult Module
+parseFileContents :: String -> ParseResult (Module SrcSpanInfo)
 parseFileContents = parseFileContentsWithMode defaultParseMode
 
 -- | Parse a source file from a string, with an extra set of extensions to know about
 --   on top of what the file itself declares.
-parseFileContentsWithExts :: [Extension] -> String -> ParseResult Module
-parseFileContentsWithExts exts = parseFileContentsWithMode (defaultParseMode { extensions = exts })
+parseFileContentsWithExts :: [Extension] -> String -> ParseResult (Module SrcSpanInfo)
+parseFileContentsWithExts exts =
+    parseFileContentsWithMode (defaultParseMode { extensions = exts })
 
 -- | Parse a source file from a string using a custom parse mode.
-parseFileContentsWithMode :: ParseMode -> String -> ParseResult Module
-parseFileContentsWithMode p@(ParseMode fn oldLang exts ign _ _) rawStr =
+parseFileContentsWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
+parseFileContentsWithMode p@(ParseMode fn oldLang exts ign _ _ _) rawStr =
         let md = delit fn $ ppContents rawStr
-            (bLang, extraExts) = 
+            (bLang, extraExts) =
                 case (ign, readExtensions md) of
-                  (False, Just (mLang, es)) -> 
+                  (False, Just (mLang, es)) ->
                        (fromMaybe oldLang mLang, es)
                   _ -> (oldLang, [])
-         in parseWithMode (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
+         in -- trace (fn ++ ": " ++ show extraExts) $
+              parseModuleWithMode (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
 
--- | Parse a source file from a string using a custom parse mode and retaining comments.
-parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module, [Comment])
-parseFileContentsWithComments p@(ParseMode fn oldLang exts ign _ _) rawStr =
+parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
+parseFileContentsWithComments p@(ParseMode fn oldLang exts ign _ _ _) rawStr =
         let md = delit fn $ ppContents rawStr
-            (bLang, extraExts) = 
+            (bLang, extraExts) =
                 case (ign, readExtensions md) of
-                  (False, Just (mLang, es)) -> 
+                  (False, Just (mLang, es)) ->
                        (fromMaybe oldLang mLang, es)
                   _ -> (oldLang, [])
-         in parseWithComments (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
-
--- | Parse a source file from a string using a custom parse mode retaining comments
---   as well as unknown pragmas.
-parseFileContentsWithCommentsAndPragmas :: ParseMode -> String -> ParseResult (Module, [Comment], [UnknownPragma])
-parseFileContentsWithCommentsAndPragmas pmode str = separatePragmas parseResult
-    where parseResult = parseFileContentsWithComments pmode str
-
-{-- | Gather the extensions declared in LANGUAGE pragmas
---   at the top of the file. Returns 'Nothing' if the
---   parse of the pragmas fails.
-readExtensions :: String -> Maybe [Extension]
-readExtensions str = case getTopPragmas str of
-        ParseOk pgms -> Just (concatMap getExts pgms)
-        _            -> Nothing
-  where getExts :: ModulePragma -> [Extension]
-        getExts (LanguagePragma _ ns) = map readExt ns
-        getExts _ = []
-
-        readExt (Ident e) = classifyExtension e -}
+         in parseModuleWithComments (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
 
 -- | Gather the extensions declared in LANGUAGE pragmas
 --   at the top of the file. Returns 'Nothing' if the
@@ -131,11 +129,11 @@
 readExtensions str = case getTopPragmas str of
         ParseOk pgms -> extractLang $ concatMap getExts pgms
         _            -> Nothing
-  where getExts :: ModulePragma -> [Either Language Extension]
+  where getExts :: ModulePragma l -> [Either Language Extension]
         getExts (LanguagePragma _ ns) = map readExt ns
         getExts _ = []
 
-        readExt (Ident e) = 
+        readExt (Ident _ e) =
             case classifyLanguage e of
               UnknownLanguage _ -> Right $ classifyExtension e
               lang -> Left lang
@@ -158,9 +156,18 @@
 delit :: String -> String -> String
 delit fn = if ".lhs" `isSuffixOf` fn then unlit fn else id
 
+readUTF8File :: FilePath -> IO String
+readUTF8File fp = do
+  h <- openFile fp ReadMode
+  hSetEncoding h utf8
+  c <- hGetContents h >>= \s -> length s `seq` return s
+  hClose h
+  return c
+
 -- | Converts a parse result with comments to a parse result with comments and
 --   unknown pragmas.
-separatePragmas :: ParseResult (Module, [Comment]) -> ParseResult (Module, [Comment], [UnknownPragma])
+separatePragmas :: ParseResult (Module SrcSpanInfo, [Comment])
+                -> ParseResult (Module SrcSpanInfo, [Comment], [UnknownPragma])
 separatePragmas r =
     case r of
         ParseOk (m, comments) ->
diff --git a/src/Language/Haskell/Exts/Annotated.hs b/src/Language/Haskell/Exts/Annotated.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated.hs
+++ /dev/null
@@ -1,148 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts
--- Copyright   :  (c) Niklas Broberg 2004-2009
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- An umbrella module for the various functionality
--- of the package. Also provides some convenient
--- functionality for dealing directly with source files.
---
------------------------------------------------------------------------------
-module Language.Haskell.Exts.Annotated (
-    -- * Re-exported modules
-      module Language.Haskell.Exts.Annotated.Syntax
-    , module Language.Haskell.Exts.Annotated.Build
-    , module Language.Haskell.Exts.Parser
-    , module Language.Haskell.Exts.Lexer
-    , module Language.Haskell.Exts.Pretty
-    , module Language.Haskell.Exts.Annotated.Fixity
-    , module Language.Haskell.Exts.Annotated.ExactPrint
-    , module Language.Haskell.Exts.SrcLoc
-    , module Language.Haskell.Exts.Comments
-    , module Language.Haskell.Exts.Extension
-    -- * Parsing of Haskell source files
-    , parseFile
-    , parseFileWithMode
-    , parseFileWithExts
-    , parseFileWithComments
-    , parseFileContents
-    , parseFileContentsWithMode
-    , parseFileContentsWithExts
-    , parseFileContentsWithComments
-    -- * Parsing of Haskell source elements,
-    , parseModule, parseModuleWithMode, parseModuleWithComments
-    , parseExp, parseExpWithMode, parseExpWithComments
-    , parseStmt, parseStmtWithMode, parseStmtWithComments
-    , parsePat, parsePatWithMode, parsePatWithComments
-    , parseDecl, parseDeclWithMode, parseDeclWithComments
-    , parseType, parseTypeWithMode, parseTypeWithComments
-    -- * Read extensions declared in LANGUAGE pragmas
-    , readExtensions
-    ) where
-
-import Language.Haskell.Exts.Annotated.Build
-import Language.Haskell.Exts.Annotated.Syntax
-import Language.Haskell.Exts.Parser ( Parseable(..), ParseResult(..), fromParseResult, ParseMode(..), defaultParseMode )
-import Language.Haskell.Exts.Lexer ( lexTokenStream, lexTokenStreamWithMode, Token(..) )
-import Language.Haskell.Exts.Pretty
-import Language.Haskell.Exts.Annotated.Fixity
-import Language.Haskell.Exts.Annotated.ExactPrint
-import Language.Haskell.Exts.SrcLoc
-import Language.Haskell.Exts.Extension
-import Language.Haskell.Exts.Comments
-
-import Language.Haskell.Exts.InternalParser
-
-import Data.List
-import Data.Maybe (fromMaybe)
-import Language.Preprocessor.Unlit
-
--- | Parse a source file on disk, using the default parse mode.
-parseFile :: FilePath -> IO (ParseResult (Module SrcSpanInfo))
-parseFile fp = parseFileWithMode (defaultParseMode { parseFilename = fp }) fp
-
--- | Parse a source file on disk, with an extra set of extensions to know about
---   on top of what the file itself declares.
-parseFileWithExts :: [Extension] -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
-parseFileWithExts exts fp = 
-    parseFileWithMode (defaultParseMode { 
-                         extensions = exts, 
-                         parseFilename = fp }) fp
-
--- | Parse a source file on disk, supplying a custom parse mode.
-parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo))
-parseFileWithMode p fp = readFile fp >>= return . parseFileContentsWithMode p
-
-parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))
-parseFileWithComments p fp = readFile fp >>= return . parseFileContentsWithComments p
-
--- | Parse a source file from a string using the default parse mode.
-parseFileContents :: String -> ParseResult (Module SrcSpanInfo)
-parseFileContents = parseFileContentsWithMode defaultParseMode
-
--- | Parse a source file from a string, with an extra set of extensions to know about
---   on top of what the file itself declares.
-parseFileContentsWithExts :: [Extension] -> String -> ParseResult (Module SrcSpanInfo)
-parseFileContentsWithExts exts = 
-    parseFileContentsWithMode (defaultParseMode { extensions = exts })
-
--- | Parse a source file from a string using a custom parse mode.
-parseFileContentsWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
-parseFileContentsWithMode p@(ParseMode fn oldLang exts ign _ _) rawStr =
-        let md = delit fn $ ppContents rawStr
-            (bLang, extraExts) = 
-                case (ign, readExtensions md) of
-                  (False, Just (mLang, es)) -> 
-                       (fromMaybe oldLang mLang, es)
-                  _ -> (oldLang, [])
-         in -- trace (fn ++ ": " ++ show extraExts) $
-              parseModuleWithMode (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
-
-parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
-parseFileContentsWithComments p@(ParseMode fn oldLang exts ign _ _) rawStr =
-        let md = delit fn $ ppContents rawStr
-            (bLang, extraExts) = 
-                case (ign, readExtensions md) of
-                  (False, Just (mLang, es)) -> 
-                       (fromMaybe oldLang mLang, es)
-                  _ -> (oldLang, [])
-         in parseModuleWithComments (p { baseLanguage = bLang, extensions = exts ++ extraExts }) md
-
--- | Gather the extensions declared in LANGUAGE pragmas
---   at the top of the file. Returns 'Nothing' if the
---   parse of the pragmas fails.
-readExtensions :: String -> Maybe (Maybe Language, [Extension])
-readExtensions str = case getTopPragmas str of
-        ParseOk pgms -> extractLang $ concatMap getExts pgms
-        _            -> Nothing
-  where getExts :: ModulePragma l -> [Either Language Extension]
-        getExts (LanguagePragma _ ns) = map readExt ns
-        getExts _ = []
-
-        readExt (Ident _ e) = 
-            case classifyLanguage e of
-              UnknownLanguage _ -> Right $ classifyExtension e
-              lang -> Left lang
-        readExt Symbol {} = error "readExt: Symbol"
-
-        extractLang = extractLang' Nothing []
-
-        extractLang' lacc eacc [] = Just (lacc, eacc)
-        extractLang' Nothing eacc (Left l : rest) = extractLang' (Just l) eacc rest
-        extractLang' (Just l1) eacc (Left l2:rest)
-            | l1 == l2  = extractLang' (Just l1) eacc rest
-            | otherwise = Nothing
-        extractLang' lacc eacc (Right ext : rest) = extractLang' lacc (ext:eacc) rest
-
-ppContents :: String -> String
-ppContents = unlines . f . lines
-  where f (('#':_):rest) = rest
-        f x = x
-
-delit :: String -> String -> String
-delit fn = if ".lhs" `isSuffixOf` fn then unlit fn else id
diff --git a/src/Language/Haskell/Exts/Annotated/Build.hs b/src/Language/Haskell/Exts/Annotated/Build.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated/Build.hs
+++ /dev/null
@@ -1,291 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.Build
--- Copyright   :  (c) The GHC Team, 1997-2000,
---                (c) Niklas Broberg 2004
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  experimental
--- Portability :  portable
---
--- This module contains combinators to use when building
--- Haskell source trees programmatically, as opposed to
--- parsing them from a string. The contents here are quite
--- experimental and will likely receive a lot of attention
--- when the rest has stabilised.
---
------------------------------------------------------------------------------
-
-module Language.Haskell.Exts.Annotated.Build (
-
-    -- * Syntax building functions
-    name,       -- :: String -> Name
-    sym,        -- :: String -> Name
-    var,        -- :: Name -> Exp
-    op,         -- :: Name -> QOp
-    qvar,       -- :: Module -> Name -> Exp
-    pvar,       -- :: Name -> Pat
-    app,        -- :: Exp -> Exp -> Exp
-    infixApp,   -- :: Exp -> QOp -> Exp -> Exp
-    appFun,     -- :: Exp -> [Exp] -> Exp
-    pApp,       -- :: Name -> [Pat] -> Pat
-    tuple,      -- :: [Exp] -> Exp
-    pTuple,     -- :: [Pat] -> Pat
-    varTuple,   -- :: [Name] -> Exp
-    pvarTuple,  -- :: [Name] -> Pat
-    function,   -- :: String -> Exp
-    strE,       -- :: String -> Exp
-    charE,      -- :: Char -> Exp
-    intE,       -- :: Integer -> Exp
-    strP,       -- :: String -> Pat
-    charP,      -- :: Char -> Pat
-    intP,       -- :: Integer -> Pat
-    doE,        -- :: [Stmt] -> Exp
-    lamE,       -- :: SrcLoc -> [Pat] -> Exp -> Exp
-    letE,       -- :: [Decl] -> Exp -> Exp
-    caseE,      -- :: Exp -> [Alt] -> Exp
-    alt,        -- :: SrcLoc -> Pat -> Exp -> Alt
-    altGW,      -- :: SrcLoc -> Pat -> [Stmt] -> Exp -> Binds -> Alt
-    listE,      -- :: [Exp] -> Exp
-    eList,      -- :: Exp
-    peList,     -- :: Pat
-    paren,      -- :: Exp -> Exp
-    pParen,     -- :: Pat -> Pat
-    qualStmt,   -- :: Exp -> Stmt
-    genStmt,    -- :: SrcLoc -> Pat -> Exp -> Stmt
-    letStmt,    -- :: [Decl] -> Stmt
-    binds,      -- :: [Decl] -> Binds
-    noBinds,    -- :: Binds
-    wildcard,   -- :: Pat
-    genNames,   -- :: String -> Int -> [Name]
-
-    -- * More advanced building
-    sfun,           -- :: SrcLoc -> Name -> [Name] -> Rhs -> Binds -> Decl
-    simpleFun,      -- :: SrcLoc -> Name -> Name -> Exp -> Decl
-    patBind,        -- :: SrcLoc -> Pat -> Exp -> Decl
-    patBindWhere,   -- :: SrcLoc -> Pat -> Exp -> [Decl] -> Decl
-    nameBind,       -- :: SrcLoc -> Name -> Exp -> Decl
-    metaFunction,   -- :: String -> [Exp] -> Exp
-    metaConPat      -- :: String -> [Pat] -> Pat
-  ) where
-
-import Language.Haskell.Exts.Annotated.Syntax
-
------------------------------------------------------------------------------
--- Help functions for Abstract syntax
-
--- | An identifier with the given string as its name.
---   The string should be a valid Haskell identifier.
-name :: l -> String -> Name l
-name = Ident
-
--- | A symbol identifier. The string should be a valid
---   Haskell symbol identifier.
-sym :: l -> String -> Name l
-sym = Symbol
-
--- | A local variable as expression.
-var :: l -> Name l -> Exp l
-var l = Var l . UnQual l
-
--- | Use the given identifier as an operator.
-op :: l -> Name l -> QOp l
-op l = QVarOp l . UnQual l
-
--- | A qualified variable as expression.
-qvar :: l -> ModuleName l -> Name l -> Exp l
-qvar l m = Var l . Qual l m
-
--- | A pattern variable.
-pvar :: l -> Name l -> Pat l
-pvar = PVar
-
--- | Application of expressions by juxtaposition.
-app :: l -> Exp l -> Exp l -> Exp l
-app = App
-
--- | Apply an operator infix.
-infixApp :: l -> Exp l -> QOp l -> Exp l -> Exp l
-infixApp = InfixApp
-
--- | Apply a function to a list of arguments.
-appFun :: [l] -> Exp l -> [Exp l] -> Exp l
-appFun _ f [] = f
-appFun (l:ls) f (a:as) = appFun ls (app l f a) as
-appFun [] _ (_:_) = error "haskell-src-exts: Build: appFun: too few annotations supplied"
-
--- | A constructor pattern, with argument patterns.
-pApp :: l -> Name l -> [Pat l] -> Pat l
-pApp l n = PApp l (UnQual l n)
-
--- | A tuple expression.
-tuple :: l -> [Exp l] -> Exp l
-tuple l = Tuple l Boxed
-
--- | A tuple pattern.
-pTuple :: l -> [Pat l] -> Pat l
-pTuple l = PTuple l Boxed
-
--- | A tuple expression consisting of variables only.
-varTuple :: l -> [Name l] -> Exp l
-varTuple l ns = tuple l $ map (var l) ns
-
--- | A tuple pattern consisting of variables only.
-pvarTuple :: l -> [Name l] -> Pat l
-pvarTuple l ns = pTuple l $ map (pvar l) ns
-
--- | A function with a given name.
-function :: l -> String -> Exp l
-function l = var l . Ident l
-
--- | A literal string expression.
-strE :: l -> String -> Exp l
-strE l s = Lit l $ String l s s
-
--- | A literal character expression.
-charE :: l -> Char -> Exp l
-charE l c = Lit l $ Char l c [c]
-
--- | A literal integer expression.
-intE :: l -> Integer -> Exp l
-intE l i = Lit l $ Int l i (show i)
-
--- | A literal string pattern.
-strP :: l -> String -> Pat l
-strP l s = PLit l (Signless l) $ String l s s
-
--- | A literal character pattern.
-charP :: l -> Char -> Pat l
-charP l c = PLit l (Signless l) $ Char l c [c]
-
--- | A literal integer pattern.
-intP :: l -> Integer -> Pat l
-intP l i = PLit l (if i >= 0 then Signless l else Negative l) . Int l i . show . abs $ i
-
--- | A do block formed by the given statements.
---   The last statement in the list should be
---   a 'Qualifier' expression.
-doE :: l -> [Stmt l] -> Exp l
-doE = Do
-
--- | Lambda abstraction, given a list of argument
---   patterns and an expression body.
-lamE :: l -> [Pat l] -> Exp l -> Exp l
-lamE = Lambda
-
--- | A @let@ ... @in@ block.
-letE :: l -> [Decl l] -> Exp l -> Exp l
-letE l ds e = Let l (binds l ds) e
-
--- | A @case@ expression.
-caseE :: l -> Exp l -> [Alt l] -> Exp l
-caseE = Case
-
--- | An unguarded alternative in a @case@ expression.
-alt :: l -> Pat l -> Exp l -> Alt l
-alt l p e = Alt l p (unGAlt l e) Nothing
-
--- | An alternative with a single guard in a @case@ expression.
-altGW :: l -> Pat l -> [Stmt l] -> Exp l -> Binds l -> Alt l
-altGW l p gs e w = Alt l p (gAlt l gs e) (Just w)
-
--- | An unguarded righthand side of a @case@ alternative.
-unGAlt :: l -> Exp l -> Rhs l
-unGAlt = UnGuardedRhs
-
--- | An list of guarded righthand sides for a @case@ alternative.
-gAlts :: l -> [([Stmt l], Exp l)] -> Rhs l
-gAlts l as = GuardedRhss l $ map (\(gs,e) -> GuardedRhs l gs e) as
-
--- | A single guarded righthand side for a @case@ alternative.
-gAlt :: l -> [Stmt l] -> Exp l -> Rhs l
-gAlt l gs e = gAlts l [(gs,e)]
-
--- | A list expression.
-listE :: l -> [Exp l] -> Exp l
-listE = List
-
--- | The empty list expression.
-eList :: l -> Exp l
-eList l = List l []
-
--- | The empty list pattern.
-peList :: l -> Pat l
-peList l = PList l []
-
--- | Put parentheses around an expression.
-paren :: l -> Exp l -> Exp l
-paren = Paren
-
--- | Put parentheses around a pattern.
-pParen :: l -> Pat l -> Pat l
-pParen = PParen
-
--- | A qualifier expression statement.
-qualStmt :: l -> Exp l -> Stmt l
-qualStmt = Qualifier
-
--- | A generator statement: /pat/ @<-@ /exp/
-genStmt :: l -> Pat l -> Exp l -> Stmt l
-genStmt = Generator
-
--- | A @let@ binding group as a statement.
-letStmt :: l -> [Decl l] -> Stmt l
-letStmt l ds = LetStmt l $ binds l ds
-
--- | Hoist a set of declarations to a binding group.
-binds :: l -> [Decl l] -> Binds l
-binds = BDecls
-
--- | An empty binding group.
-noBinds :: l -> Binds l
-noBinds l = binds l []
-
--- | The wildcard pattern: @_@
-wildcard :: l -> Pat l
-wildcard = PWildCard
-
--- | Generate k names by appending numbers 1 through k to a given string.
-genNames :: l -> String -> Int -> [Name l]
-genNames l s k = [ Ident l $ s ++ show i | i <- [1..k] ]
-
--------------------------------------------------------------------------------
--- Some more specialised help functions
-
--- | A function with a single clause
-sfun :: l -> Name l -> [Name l] -> Rhs l -> Maybe (Binds l) -> Decl l
-sfun l f pvs rhs mbs = FunBind l [Match l f (map (pvar l) pvs) rhs mbs]
-
--- | A function with a single clause, a single argument, no guards
--- and no where declarations
-simpleFun :: l -> Name l -> Name l -> Exp l -> Decl l
-simpleFun l f a e = let rhs = UnGuardedRhs l e
-             in sfun l f [a] rhs Nothing
-
--- | A pattern bind where the pattern is a variable, and where
--- there are no guards and no 'where' clause.
-patBind :: l -> Pat l -> Exp l -> Decl l
-patBind l p e = let rhs = UnGuardedRhs l e
-         in PatBind l p rhs Nothing
-
--- | A pattern bind where the pattern is a variable, and where
--- there are no guards, but with a 'where' clause.
-patBindWhere :: l -> Pat l -> Exp l -> [Decl l] -> Decl l
-patBindWhere l p e ds = let rhs = UnGuardedRhs l e
-             in PatBind l p rhs (Just $ binds l ds)
-
--- | Bind an identifier to an expression.
-nameBind :: l -> Name l -> Exp l -> Decl l
-nameBind l n e = patBind l (pvar l n) e
-
--- | Apply function of a given name to a list of arguments.
-metaFunction :: l -> String -> [Exp l] -> Exp l
-metaFunction l' s' es' = mf l' s' (reverse es')
-  where mf l s []     = var l $ name l s
-        mf l s (e:es) = app l (mf l s es) e
-
--- | Apply a constructor of a given name to a list of pattern
---   arguments, forming a constructor pattern.
-metaConPat :: l -> String -> [Pat l] -> Pat l
-metaConPat l s ps = pApp l (name l s) ps
diff --git a/src/Language/Haskell/Exts/Annotated/ExactPrint.hs b/src/Language/Haskell/Exts/Annotated/ExactPrint.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated/ExactPrint.hs
+++ /dev/null
@@ -1,2071 +0,0 @@
-{-# LANGUAGE DeriveFunctor #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.ExactPrint
--- Copyright   :  (c) Niklas Broberg 2009
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- Exact-printer for Haskell abstract syntax. The input is a (semi-concrete)
--- abstract syntax tree, annotated with exact source information to enable
--- printing the tree exactly as it was parsed.
---
------------------------------------------------------------------------------
-module Language.Haskell.Exts.Annotated.ExactPrint
-        ( exactPrint
-        , ExactP
-        ) where
-
-import Language.Haskell.Exts.Annotated.Syntax
-import Language.Haskell.Exts.SrcLoc
-import Language.Haskell.Exts.Comments
-
-import Control.Monad (when, liftM, ap, unless)
-import Control.Applicative (Applicative(..))
-import Control.Arrow ((***), (&&&))
-import Prelude hiding (exp)
-import Data.List (intersperse)
-
--- import Debug.Trace (trace)
-
-------------------------------------------------------
--- The EP monad and basic combinators
-
-type Pos = (Int,Int)
-
-pos :: (SrcInfo loc) => loc -> Pos
-pos ss = (startLine ss, startColumn ss)
-
-newtype EP x = EP (Pos -> [Comment] -> (x, Pos, [Comment], ShowS))
-
-instance Functor EP where
-  fmap = liftM
-  
-instance Applicative EP where
-  pure = return
-  (<*>) = ap
-
-instance Monad EP where
-  return x = EP $ \l cs -> (x, l, cs, id)
-
-  EP m >>= k = EP $ \l0 c0 -> let
-        (a, l1, c1, s1) = m l0 c0
-        EP f = k a
-        (b, l2, c2, s2) = f l1 c1
-    in (b, l2, c2, s1 . s2)
-
-runEP :: EP () -> [Comment] -> String
-runEP (EP f) cs = let (_,_,_,s) = f (1,1) cs in s ""
-
-getPos :: EP Pos
-getPos = EP (\l cs -> (l,l,cs,id))
-
-setPos :: Pos -> EP ()
-setPos l = EP (\_ cs -> ((),l,cs,id))
-
-printString :: String -> EP ()
-printString str = EP (\(l,c) cs -> ((), (l,c+length str), cs, showString str))
-
-getComment :: EP (Maybe Comment)
-getComment = EP $ \l cs ->
-    let x = case cs of
-             c:_ -> Just c
-             _   -> Nothing
-     in (x, l, cs, id)
-
-dropComment :: EP ()
-dropComment = EP $ \l cs ->
-    let cs' = case cs of
-               (_:cs1) -> cs1
-               _       -> cs
-     in ((), l, cs', id)
-
-newLine :: EP ()
-newLine = do
-    (l,_) <- getPos
-    printString "\n"
-    setPos (l+1,1)
-
-padUntil :: Pos -> EP ()
-padUntil (l,c) = do
-    (l1,c1) <- getPos
-    case  {- trace (show ((l,c), (l1,c1))) -} () of
-     _ {-()-} | l1 >= l && c1 <= c -> printString $ replicate (c - c1) ' '
-              | l1 < l             -> newLine >> padUntil (l,c)
-              | otherwise          -> return ()
-
-
-mPrintComments :: Pos -> EP ()
-mPrintComments p = do
-    mc <- getComment
-    case mc of
-     Nothing -> return ()
-     Just (Comment multi s str) ->
-        when (pos s < p) $ do
-            dropComment
-            padUntil (pos s)
-            printComment multi str
-            setPos (srcSpanEndLine s, srcSpanEndColumn s)
-            mPrintComments p
-
-printComment :: Bool -> String -> EP ()
-printComment b str
-    | b         = printString $ "{-" ++ str ++ "-}"
-    | otherwise = printString $ "--" ++ str
-
-printWhitespace :: Pos -> EP ()
-printWhitespace p = mPrintComments p >> padUntil p
-
-printStringAt :: Pos -> String -> EP ()
-printStringAt p str = printWhitespace p >> printString str
-
-errorEP :: String -> EP a
-errorEP = fail
-
-------------------------------------------------------------------------------
--- Printing of source elements
-
--- | Print an AST exactly as specified by the annotations on the nodes in the tree.
-exactPrint :: (ExactP ast) => ast SrcSpanInfo -> [Comment] -> String
-exactPrint ast = runEP (exactPC ast)
-
-exactPC :: (ExactP ast) => ast SrcSpanInfo -> EP ()
-exactPC ast = let p = pos (ann ast) in mPrintComments p >> padUntil p >> exactP ast
-
-printSeq :: [(Pos, EP ())] -> EP ()
-printSeq [] = return ()
-printSeq ((p,pr):xs) = printWhitespace p >> pr >> printSeq xs
-
-printStrs :: SrcInfo loc => [(loc, String)] -> EP ()
-printStrs = printSeq . map (pos *** printString)
-
-printPoints :: SrcSpanInfo -> [String] -> EP ()
-printPoints l = printStrs . zip (srcInfoPoints l)
-
-printInterleaved, printInterleaved' :: (Annotated ast, ExactP ast, SrcInfo loc) => [(loc, String)] -> [ast SrcSpanInfo] -> EP ()
-printInterleaved sistrs asts = printSeq $
-    interleave (map (pos *** printString ) sistrs)
-               (map (pos . ann &&& exactP) asts)
-
-printInterleaved' sistrs (a:asts) = exactPC a >> printInterleaved sistrs asts
-printInterleaved' _ _ = internalError "printInterleaved'"
-
-printStreams :: [(Pos, EP ())] -> [(Pos, EP ())] -> EP ()
-printStreams [] ys = printSeq ys
-printStreams xs [] = printSeq xs
-printStreams (x@(p1,ep1):xs) (y@(p2,ep2):ys)
-    | p1 <= p2 = printWhitespace p1 >> ep1 >> printStreams xs (y:ys)
-    | otherwise = printWhitespace p2 >> ep2 >> printStreams (x:xs) ys
-
-
-interleave :: [a] -> [a] -> [a]
-interleave [] ys = ys
-interleave xs [] = xs
-interleave (x:xs) (y:ys) = x:y: interleave xs ys
-
-maybeEP :: (a -> EP ()) -> Maybe a -> EP ()
-maybeEP = maybe (return ())
-
-bracketList :: (Annotated ast, ExactP ast) => (String, String, String) -> [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
-bracketList (a,b,c) poss asts = printInterleaved (pList poss (a,b,c)) asts
-
-pList :: [a] -> (b, b, b) -> [(a, b)]
-pList (p:ps) (a,b,c) = (p,a) : pList' ps (b,c)
-pList _ _ = internalError "pList"
-pList' :: [a] -> (b, b) -> [(a, b)]
-pList' [] _ = []
-pList' [p] (_,c) = [(p,c)]
-pList' (p:ps) (b,c) = (p, b) : pList' ps (b,c)
-
-parenList, squareList, squareColonList, curlyList, parenHashList :: (Annotated ast, ExactP ast) => [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
-parenList = bracketList ("(",",",")")
-squareList = bracketList ("[",",","]")
-squareColonList = bracketList ("[:",",",":]")
-curlyList = bracketList ("{",",","}")
-parenHashList = bracketList ("(#",",","#)")
-
-layoutList :: (Functor ast, Show (ast ()), Annotated ast, ExactP ast) => [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
-layoutList poss asts = printStreams
-        (map (pos *** printString) $ lList poss)
-        (map (pos . ann &&& exactP) asts)
-
-lList :: [SrcSpan] -> [(SrcSpan, String)]
-lList (p:ps) = (if isNullSpan p then (p,"") else (p,"{")) : lList' ps
-lList _ = internalError "lList"
-lList' :: [SrcSpan] -> [(SrcSpan, String)]
-lList' [] = []
-lList' [p] = [if isNullSpan p then (p,"") else (p,"}")]
-lList' (p:ps) = (if isNullSpan p then (p,"") else (p,";")) : lList' ps
-
-printSemi :: SrcSpan -> EP ()
-printSemi p = do
-  printWhitespace (pos p)
-  unless (isNullSpan p) $ printString ";"
-
-
---------------------------------------------------
--- Exact printing
-
-class Annotated ast => ExactP ast where
-  exactP :: ast SrcSpanInfo -> EP ()
-
-instance ExactP Literal where
-  exactP lit = case lit of
-    Char       _ _ rw -> printString ('\'':rw ++ "\'")
-    String     _ _ rw -> printString ('\"':rw ++ "\"")
-    Int        _ _ rw -> printString rw
-    Frac       _ _ rw -> printString rw
-    PrimInt    _ _ rw -> printString (rw ++ "#" )
-    PrimWord   _ _ rw -> printString (rw ++ "##")
-    PrimFloat  _ _ rw -> printString (rw ++ "#" )
-    PrimDouble _ _ rw -> printString (rw ++ "##")
-    PrimChar   _ _ rw -> printString ('\'':rw ++ "\'#" )
-    PrimString _ _ rw -> printString ('\"':rw ++ "\"#" )
-
-instance ExactP Sign where
-  exactP sg = case sg of
-    Signless _ -> return ()
-    Negative l -> printStringAt (pos l) "-"
-
-instance ExactP ModuleName where
-  exactP (ModuleName _ str) = printString str
-
-instance ExactP SpecialCon where
-  exactP sc = case sc of
-    UnitCon l   -> printPoints l ["(",")"]
-    ListCon l   -> printPoints l ["[","]"]
-    FunCon  l   -> case srcInfoPoints l of
-                    [_,b,_] -> printStringAt (pos b) "->"
-                    _ -> errorEP "ExactP: SpecialCon is given wrong number of srcInfoPoints"
-    TupleCon l b n -> printPoints l $
-        case b of
-         Unboxed -> "(#": replicate (n-1) "," ++ ["#)"]
-         _       -> "(" : replicate (n-1) "," ++ [")"]
-    Cons _      -> printString ":"
-    UnboxedSingleCon l -> printPoints l ["(#","#)"]
-
-isSymbol :: Name l -> Bool
-isSymbol (Symbol _ _) = True
-isSymbol _ = False
-
-getName :: QName l -> Name l
-getName (UnQual _ s) = s
-getName (Qual _ _ s) = s
-getName (Special l (Cons _)) = Symbol l ":"
-getName (Special l (FunCon _)) = Symbol l "->"
-getName (Special l s) = Ident l (specialName s)
-
-specialName :: SpecialCon l -> String
-specialName (UnitCon _) = "()"
-specialName (ListCon _) = "[]"
-specialName (FunCon  _) = "->"
-specialName (TupleCon _ b n) = "(" ++ hash ++ replicate (n-1) ',' ++ hash ++ ")"
-    where hash = case b of
-                   Unboxed -> "#"
-                   _       -> ""
-specialName (Cons _) = ":"
-specialName (UnboxedSingleCon _) = "(# #)"
-
-instance ExactP QName where
-  exactP qn
-    | isSymbol (getName qn) =
-        case srcInfoPoints (ann qn) of
-         [_,b,c] -> do
-            printString "("
-            printWhitespace (pos b)
-            epQName qn
-            printStringAt (pos c) ")"
-         _ -> errorEP "ExactP: QName is given wrong number of srcInfoPoints"
-    | otherwise = epQName qn
-
-epQName :: QName SrcSpanInfo -> EP ()
-epQName qn = case qn of
-    Qual    _ mn n  -> exactP mn >> printString "." >> epName n
-    UnQual  _    n  -> epName n
-    Special _ sc    -> exactP sc
-
-epInfixQName :: QName SrcSpanInfo -> EP ()
-epInfixQName qn
-    | isSymbol (getName qn) = printWhitespace (pos (ann qn)) >> epQName qn
-    | otherwise =
-        case srcInfoPoints (ann qn) of
-         [a,b,c] -> do
-            printStringAt (pos a) "`"
-            printWhitespace (pos b)
-            epQName qn
-            printStringAt (pos c) "`"
-         _ -> errorEP "ExactP: QName (epInfixName) is given wrong number of srcInfoPoints"
-
-instance ExactP Name where
-  exactP n = case n of
-    Ident  _ str    -> printString str
-    Symbol l str    ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "("
-            printWhitespace (pos b)
-            printString str
-            printStringAt (pos c) ")"
-         [] -> printString str
-         _ -> errorEP "ExactP: Name is given wrong number of srcInfoPoints"
-
-epName :: Name SrcSpanInfo -> EP ()
-epName (Ident  _ str) = printString str
-epName (Symbol _ str) = printString str
-
-epInfixName :: Name SrcSpanInfo -> EP ()
-epInfixName n
-    | isSymbol n = printWhitespace (pos (ann n)) >> epName n
-    | otherwise =
-        case srcInfoPoints (ann n) of
-         [a,b,c] -> do
-            printStringAt (pos a) "`"
-            printWhitespace (pos b)
-            epName n
-            printStringAt (pos c) "`"
-         _ -> errorEP "ExactP: Name (epInfixName) is given wrong number of srcInfoPoints"
-
-instance ExactP IPName where
-  exactP ipn = case ipn of
-    IPDup _ str -> printString $ '?':str
-    IPLin _ str -> printString $ '%':str
-
-instance ExactP QOp where
-  exactP qop = case qop of
-    QVarOp _ qn -> epInfixQName qn
-    QConOp _ qn -> epInfixQName qn
-
-instance ExactP Op where
-  exactP op = case op of
-    VarOp _ n -> epInfixName n
-    ConOp _ n -> epInfixName n
-
-
-
-instance ExactP CName where
-  exactP cn = case cn of
-    VarName _ n -> exactP n
-    ConName _ n -> exactP n
-
-instance ExactP Namespace where
-  exactP ns = case ns of
-     NoNamespace _   -> return ()
-     TypeNamespace l ->
-        case srcInfoPoints l of
-            [a] -> printStringAt (pos a) "type"
-            _   -> errorEP "ExactP: Namespace is given too few srcInfoPoints"
-
-instance ExactP ExportSpec where
-  exactP espec = case espec of
-     EVar _ t qn    -> exactPC t >> exactPC qn
-     EAbs _ qn      -> exactP qn
-     EThingAll l qn -> exactP qn >> printPoints l ["(","..",")"]
-     EThingWith l qn cns    ->
-        let k = length (srcInfoPoints l)
-         in exactP qn >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) cns
-     EModuleContents _ mn -> printString "module" >> exactPC mn
-
-instance ExactP ExportSpecList where
-  exactP (ExportSpecList l ess) =
-    let k = length (srcInfoPoints l)
-     in printInterleaved (zip (srcInfoPoints l) $ "(": replicate (k-2) "," ++ [")"]) ess
-
-instance ExactP ImportSpecList where
-  exactP (ImportSpecList l hid ispecs) = do
-    let pts = srcInfoPoints l
-    pts1 <- if hid then do
-             let (x:pts') = pts
-             printStringAt (pos x) "hiding"
-             return pts'
-            else return pts
-    let k = length pts1
-    printInterleaved (zip pts1 $ "(": replicate (k-2) "," ++ [")"]) ispecs
-
-instance ExactP ImportSpec where
-  exactP ispec = case ispec of
-    IVar _ t qn -> exactPC t >> exactPC qn
-    IAbs _ n    -> exactP n
-    IThingAll l n   -> exactP n >> printPoints l ["(","..",")"]
-    IThingWith l n cns    ->
-        let k = length (srcInfoPoints l)
-         in exactP n >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) cns
-
-instance ExactP ImportDecl where
-  exactP (ImportDecl l mn qf src safe mpkg mas mispecs) = do
-    printString "import"
-    case srcInfoPoints l of
-     (_:pts) -> do
-        pts1 <- if src then
-                 case pts of
-                  x:y:pts' -> do
-                     printStringAt (pos x) "{-# SOURCE"
-                     printStringAt (pos y) "#-}"
-                     return pts'
-                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-                else return pts
-        pts2 <- if safe then
-                 case pts1 of
-                  x:pts' -> do
-                     printStringAt (pos x) "safe"
-                     return pts'
-                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-                else return pts1
-        pts3 <- if qf then
-                 case pts2 of
-                  x:pts' -> do
-                     printStringAt (pos x) "qualified"
-                     return pts'
-                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-                else return pts2
-        pts4 <- case mpkg of
-                Just pkg ->
-                  case pts3 of
-                   x:pts' -> do
-                      printStringAt (pos x) $ show pkg
-                      return pts'
-                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-                _ -> return pts3
-        exactPC mn
-        _ <- case mas of
-                Just as ->
-                 case pts4 of
-                  x:pts' -> do
-                     printStringAt (pos x) "as"
-                     exactPC as
-                     return pts'
-                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-                _ -> return pts4
-        case mispecs of
-         Nothing -> return ()
-         Just ispecs -> exactPC ispecs
-     _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
-
-instance ExactP Module where
-  exactP mdl = case mdl of
-    Module l mmh oss ids decls -> do
-        let (oPts, pts) = splitAt (max (length oss + 1) 2) (srcInfoPoints l)
-        layoutList oPts oss
-        maybeEP exactPC mmh
-        printStreams (map (pos *** printString) $ lList pts)
-                     (map (pos . ann &&& exactPC) ids ++ map (pos . ann &&& exactPC) (sepFunBinds decls))
-    XmlPage l _mn oss xn attrs mat es  -> do
-        let (oPts, pPts) = splitAt (max (length oss + 1) 2) $ srcInfoPoints l
-        case pPts of
-         [a,b,c,d,e] -> do
-            layoutList oPts oss
-            printStringAt (pos a) "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC es
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         _ -> errorEP "ExactP: Module: XmlPage is given wrong number of srcInfoPoints"
-    XmlHybrid l mmh oss ids decls xn attrs mat es -> do
-        let (oPts, pts) = splitAt (max (length oss + 1) 2) (srcInfoPoints l)
-        layoutList oPts oss
-        maybeEP exactPC mmh
-        let (dPts, pPts) = splitAt (length pts - 5) pts
-        case pPts of
-         [a,b,c,d,e] -> do
-            printStreams (map (\(p,s) -> (pos p, printString s)) $ lList dPts)
-                         (map (\i -> (pos $ ann i, exactPC i)) ids ++ map (\d' -> (pos $ ann d', exactPC d')) (sepFunBinds decls))
-
-            printStringAt (pos a) "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC es
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         _ -> errorEP "ExactP: Module: XmlHybrid is given wrong number of srcInfoPoints"
-
-instance ExactP ModuleHead where
-  exactP (ModuleHead l mn mwt mess) =
-    case srcInfoPoints l of
-     [a,b] -> do
-        printStringAt (pos a) "module"
-        exactPC mn
-        maybeEP exactPC mwt
-        maybeEP exactPC mess
-        printStringAt (pos b) "where"
-     _ -> errorEP "ExactP: ModuleHead is given wrong number of srcInfoPoints"
-
-instance ExactP ModulePragma where
-  exactP op = case op of
-    LanguagePragma   l ns       ->
-        let pts = srcInfoPoints l
-            k = length ns - 1 -- number of commas
-            m = length pts - k - 2 -- number of virtual semis, likely 0
-         in printInterleaved (zip pts ("{-# LANGUAGE":replicate k "," ++ replicate m "" ++ ["#-}"])) ns
-    OptionsPragma    l mt str   ->
-        let k = length (srcInfoPoints l)
-            opstr = "{-# OPTIONS" ++ case mt of { Just t -> "_" ++ show t ; _ -> "" } ++ str
-         in printPoints l $ opstr : replicate (k-2) "" ++ ["#-}"]
-    AnnModulePragma  l ann'      ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "{-# ANN"
-            exactPC ann'
-            printStringAt (pos b) "#-}"
-         _ -> errorEP "ExactP: ModulePragma: AnnPragma is given wrong number of srcInfoPoints"
-
-instance ExactP WarningText where
-    exactP (DeprText l str) = printPoints l ["{-# DEPRECATED", str, "#-}"]
-    exactP (WarnText l str) = printPoints l ["{-# WARNING",    str, "#-}"]
-
-instance ExactP Assoc where
-  exactP a = case a of
-    AssocNone  _ -> printString "infix"
-    AssocLeft  _ -> printString "infixl"
-    AssocRight _ -> printString "infixr"
-
-instance ExactP DataOrNew where
-  exactP (DataType _) = printString "data"
-  exactP (NewType  _) = printString "newtype"
-
-instance ExactP TypeEqn where
-  exactP (TypeEqn l t1 t2) =
-    case srcInfoPoints l of
-      [a] -> do
-         exactPC t1
-         printStringAt (pos a) "="
-         exactPC t2
-      _ -> errorEP "ExactP: TypeEqn is given wrong number of srcInfoPoints"
-
-instance ExactP Decl where
-  exactP decl = case decl of
-    TypeDecl     l dh t      ->
-        case srcInfoPoints l of
-         [a,b] -> do
-            printStringAt (pos a) "type"
-            exactPC dh
-            printStringAt (pos b) "="
-            exactPC t
-         _ -> errorEP "ExactP: Decl: TypeDecl is given wrong number of srcInfoPoints"
-    TypeFamDecl  l dh mk     ->
-        case srcInfoPoints l of
-         a:b:ps -> do
-            printStringAt (pos a) "type"
-            printStringAt (pos b) "family"
-            exactPC dh
-            maybeEP (\k -> printStringAt (pos (head ps)) "::" >> exactPC k) mk
-         _ -> errorEP "ExactP: Decl: TypeFamDecl is given wrong number of srcInfoPoints"
-    ClosedTypeFamDecl  l dh mk eqns ->
-        case srcInfoPoints l of
-         a:b:c:ps -> do
-            printStringAt (pos a) "type"
-            printStringAt (pos b) "family"
-            exactPC dh
-            maybeEP (\k -> printStringAt (pos (head ps)) "::" >> exactPC k) mk
-            printStringAt (pos c) "where"
-            mapM_ exactP eqns
-         _ -> errorEP "ExactP: Decl: ClosedTypeFamDecl is given wrong number of srcInfoPoints"
-    DataDecl     l dn mctxt dh constrs mder -> do
-        exactP dn
-        maybeEP exactPC mctxt
-        exactPC dh
-        -- the next line works for empty data types since the srcInfoPoints will be empty then
-        printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs
-        maybeEP exactPC mder
-    GDataDecl    l dn mctxt dh mk gds mder -> do
-        let pts = srcInfoPoints l
-        exactP dn
-        maybeEP exactPC mctxt
-        exactPC dh
-        pts1 <- case mk of
-                Nothing -> return pts
-                Just kd -> case pts of
-                            p:pts' -> do
-                               printStringAt (pos p) "::"
-                               exactPC kd
-                               return pts'
-                            _ -> errorEP "ExactP: Decl: GDataDecl is given too few srcInfoPoints"
-        case pts1 of
-         x:pts' -> do
-            printStringAt (pos x) "where"
-            layoutList pts' gds
-            maybeEP exactPC mder
-         _ -> errorEP "ExactP: Decl: GDataDecl is given too few srcInfoPoints"
-    DataFamDecl  l mctxt dh mk -> do
-        printString "data"
-        maybeEP exactPC mctxt
-        exactPC dh
-        maybeEP (\kd -> printStringAt (pos (head (srcInfoPoints l))) "::" >> exactPC kd) mk
-    TypeInsDecl  l t1 t2 ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "type"
-            printStringAt (pos b) "instance"
-            exactPC t1
-            printStringAt (pos c) "="
-            exactPC t2
-         _ -> errorEP "ExactP: Decl: TypeInsDecl is given wrong number of srcInfoPoints"
-    DataInsDecl  l dn t constrs mder    ->
-        case srcInfoPoints l of
-         p:pts -> do
-            exactP dn
-            printStringAt (pos p) "instance"
-            exactPC t
-            printInterleaved (zip pts ("=": repeat "|")) constrs
-            maybeEP exactPC mder
-         _ -> errorEP "ExactP: Decl: DataInsDecl is given too few srcInfoPoints"
-    GDataInsDecl l dn t mk gds mder     ->
-        case srcInfoPoints l of
-         p:pts -> do
-            exactP dn
-            printStringAt (pos p) "instance"
-            exactPC t
-            pts1 <- case mk of
-                    Nothing -> return pts
-                    Just kd -> case pts of
-                                p':pts' -> do
-                                    printStringAt (pos p') "::"
-                                    exactPC kd
-                                    return pts'
-                                _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
-            case pts1 of
-             x:pts' -> do
-                printStringAt (pos x) "where"
-                layoutList pts' gds
-                maybeEP exactPC mder
-             _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
-         _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
-    ClassDecl    l mctxt dh fds mcds    ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "class"
-            maybeEP exactPC mctxt
-            exactPC dh
-            _ <- case fds of
-                    [] -> return pts
-                    _  -> do
-                      let (pts1, pts2) = splitAt (length fds) pts
-                      printInterleaved (zip pts1 ("|":repeat ",")) fds
-                      return pts2
-            maybeEP (\cds ->
-                case pts of
-                 p:pts' -> do
-                    printStringAt (pos p) "where"
-                    layoutList pts' $ sepClassFunBinds cds
-                 _ -> errorEP "ExactP: Decl: ClassDecl is given too few srcInfoPoints"
-                ) mcds
-         _ -> errorEP "ExactP: Decl: ClassDecl is given too few srcInfoPoints"
-    InstDecl     l movlp ih mids        ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "instance"
-            maybeEP exactPC movlp
-            exactPC ih
-            maybeEP (\ids -> do
-                let (p:pts') = pts
-                printStringAt (pos p) "where"
-                layoutList pts' $ sepInstFunBinds ids
-                ) mids
-         _ -> errorEP "ExactP: Decl: InstDecl is given too few srcInfoPoints"
-    DerivDecl    l movlp ih             ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "deriving"
-            printStringAt (pos b) "instance"
-            maybeEP exactPC movlp
-            exactPC ih
-         _ -> errorEP "ExactP: Decl: DerivDecl is given wrong number of srcInfoPoints"
-    InfixDecl    l assoc mprec ops      -> do
-        let pts = srcInfoPoints l
-        exactP assoc
-        pts1 <- case mprec of
-                Nothing -> return pts
-                Just prec ->
-                    case pts of
-                     p:pts' -> do
-                        printStringAt (pos p) (show prec)
-                        return pts'
-                     _ -> errorEP "ExactP: Decl: InfixDecl is given too few srcInfoPoints"
-        printInterleaved' (zip pts1 (repeat ",")) ops
-    DefaultDecl  l ts   ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "default"
-            printInterleaved (zip (init pts) ("(":repeat ",")) ts
-            printStringAt (pos (last pts)) ")"
-         _ -> errorEP "ExactP: Decl: DefaultDecl is given too few srcInfoPoints"
-    SpliceDecl   _ spl  -> exactP spl
-    TypeSig      l ns t -> do
-        let pts = srcInfoPoints l
-        printInterleaved' (zip pts (replicate (length pts - 1) "," ++ ["::"])) ns
-        exactPC t
-    FunBind      _ ms   -> mapM_ exactPC ms
-    PatBind      l p rhs mbs -> do
-        let pts = srcInfoPoints l
-        exactP p
-        exactPC rhs
-        maybeEP (\bs -> printStringAt (pos (head pts)) "where" >> exactPC bs) mbs
-    ForImp       l cc msf mstr n t   ->
-        case srcInfoPoints l of
-         _:b:pts -> do
-            printString "foreign"
-            printStringAt (pos b) "import"
-            exactPC cc
-            maybeEP exactPC msf
-            pts1 <- case mstr of
-                      Nothing -> return pts
-                      Just str -> case pts of
-                                   x:pts' -> do
-                                      printStringAt (pos x) (show str)
-                                      return pts'
-                                   _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
-            case pts1 of
-             y:_ -> do
-                exactPC n
-                printStringAt (pos y) "::"
-                exactPC t
-             _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
-         _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
-    ForExp       l cc mstr n t      ->
-        case srcInfoPoints l of
-         _:b:pts -> do
-            printString "foreign"
-            printStringAt (pos b) "export"
-            exactPC cc
-            pts1 <- case mstr of
-                      Nothing -> return pts
-                      Just str -> case pts of
-                                   x:pts' -> do
-                                      printStringAt (pos x) (show str)
-                                      return pts'
-                                   _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
-            case pts1 of
-             y:_ -> do
-                exactPC n
-                printStringAt (pos y) "::"
-                exactPC t
-             _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
-         _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
-    RulePragmaDecl   l rs   ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "{-# RULES"
-            mapM_ exactPC rs
-            printStringAt (pos b) "#-}"
-         _ -> errorEP "ExactP: Decl: RulePragmaDecl is given too few srcInfoPoints"
-    DeprPragmaDecl   l nstrs ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "{-# DEPRECATED"
-            printWarndeprs (map pos (init pts)) nstrs
-            printStringAt (pos (last pts)) "#-}"
-         _ -> errorEP "ExactP: Decl: DeprPragmaDecl is given too few srcInfoPoints"
-    WarnPragmaDecl   l nstrs ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "{-# WARNING"
-            printWarndeprs (map pos (init pts)) nstrs
-            printStringAt (pos (last pts)) "#-}"
-         _ -> errorEP "ExactP: Decl: WarnPragmaDecl is given too few srcInfoPoints"
-    InlineSig        l inl mact qn    ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString $ if inl then "{-# INLINE" else "{-# NOINLINE"
-            maybeEP exactPC mact
-            exactPC qn
-            printStringAt (pos b) "#-}"
-         _ -> errorEP "ExactP: Decl: InlineSig is given wrong number of srcInfoPoints"
-    InlineConlikeSig l mact qn    ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "{-# INLINE CONLIKE"
-            maybeEP exactPC mact
-            exactPC qn
-            printStringAt (pos b) "#-}"
-         _ -> errorEP "ExactP: Decl: InlineConlikeSig is given wrong number of srcInfoPoints"
-    SpecSig          l mact qn ts ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "{-# SPECIALISE"
-            maybeEP exactPC mact
-            exactPC qn
-            printInterleaved (zip pts ("::" : replicate (length pts - 2) "," ++ ["#-}"])) ts
-         _ -> errorEP "ExactP: Decl: SpecSig is given too few srcInfoPoints"
-    SpecInlineSig    l b mact qn ts ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString $ "{-# SPECIALISE " ++ if b then "INLINE" else "NOINLINE"
-            maybeEP exactPC mact
-            exactPC qn
-            printInterleaved (zip pts ("::" : replicate (length pts - 2) "," ++ ["#-}"])) ts
-         _ -> errorEP "ExactP: Decl: SpecInlineSig is given too few srcInfoPoints"
-    InstSig          l ih     ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "{-# SPECIALISE"
-            printStringAt (pos b) "instance"
-            exactPC ih
-            printStringAt (pos c) "#-}"
-         _ -> errorEP "ExactP: Decl: InstSig is given wrong number of srcInfoPoints"
-    AnnPragma       l ann'       ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "{-# ANN"
-            exactPC ann'
-            printStringAt (pos b) "#-}"
-         _ -> errorEP "ExactP: Decl: AnnPragma is given wrong number of srcInfoPoints"
-    MinimalPragma       l b      ->
-        case srcInfoPoints l of
-         [_,b'] -> do
-            printString "{-# MINIMAL"
-            maybeEP exactPC b
-            printStringAt (pos b') "#-}"
-         _ -> errorEP "ExactP: Decl: MinimalPragma is given wrong number of srcInfoPoints"
-
-
-instance ExactP Annotation where
-    exactP ann' = case ann' of
-        Ann     _ n e   -> do
-            exactP n
-            exactPC e
-        TypeAnn _ n e   -> do
-            printString "type"
-            exactPC n
-            exactPC e
-        ModuleAnn _ e   -> do
-            printString "module"
-            exactPC e
-
-instance ExactP BooleanFormula where
-    exactP b' = case b' of
-        VarFormula _ n -> exactPC n
-        AndFormula l bs ->
-         let pts = srcInfoPoints l
-         in printStreams (zip (map pos pts) (repeat $ printString ",")) (map (pos . ann &&& exactPC) bs)
-        OrFormula l bs   ->
-         let pts = srcInfoPoints l
-         in printStreams (zip (map pos pts) (repeat $ printString "|")) (map (pos . ann &&& exactPC) bs)
-        ParenFormula l b   ->
-            case srcInfoPoints l of
-                [a'',b''] -> printStringAt (pos a'') "(" >> exactPC b >> printStringAt (pos b'') ")"
-                _ -> errorEP "ExactP: BooleanFormula: ParenFormula is given wrong number of srcInfoPoints"
-
-printWarndeprs :: [Pos] -> [([Name SrcSpanInfo], String)] -> EP ()
-printWarndeprs _ [] = return ()
-printWarndeprs ps' ((ns',str'):nsts') = printWd ps' ns' str' nsts'
-  where printWd :: [Pos] -> [Name SrcSpanInfo] -> String -> [([Name SrcSpanInfo], String)] -> EP ()
-        printWd (p:ps) []  str nsts = printStringAt p (show str) >> printWarndeprs ps nsts
-        printWd ps     [n] str nsts = exactPC n >> printWd ps [] str nsts
-        printWd (p:ps) (n:ns) str nsts = exactPC n >> printStringAt p "," >> printWd ps ns str nsts
-        printWd _ _ _ _ = internalError "printWd"
-
-
-sepFunBinds :: [Decl SrcSpanInfo] -> [Decl SrcSpanInfo]
-sepFunBinds [] = []
-sepFunBinds (FunBind _ ms:ds) = map (\m -> FunBind (ann m) [m]) ms ++ sepFunBinds ds
-sepFunBinds (d:ds) = d : sepFunBinds ds
-
-sepClassFunBinds :: [ClassDecl SrcSpanInfo] -> [ClassDecl SrcSpanInfo]
-sepClassFunBinds [] = []
-sepClassFunBinds (ClsDecl _ (FunBind _ ms):ds) = map (\m -> ClsDecl (ann m) $ FunBind (ann m) [m]) ms ++ sepClassFunBinds ds
-sepClassFunBinds (d:ds) = d : sepClassFunBinds ds
-
-sepInstFunBinds :: [InstDecl SrcSpanInfo] -> [InstDecl SrcSpanInfo]
-sepInstFunBinds [] = []
-sepInstFunBinds (InsDecl _ (FunBind _ ms):ds) = map (\m -> InsDecl (ann m) $ FunBind (ann m) [m]) ms ++ sepInstFunBinds ds
-sepInstFunBinds (d:ds) = d : sepInstFunBinds ds
-
-instance ExactP DeclHead where
-  exactP dh' = case dh' of
-    DHead _ n           -> exactP n
-    DHInfix _ tva n     -> exactP tva >> epInfixName n
-    DHParen l dh        ->
-        case srcInfoPoints l of
-         [_,b] -> printString "(" >> exactPC dh >> printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: DeclHead: DeclParen is given wrong number of srcInfoPoints"
-    DHApp   _ dh t      -> exactP dh >> exactPC t
-
-instance ExactP InstRule where
-  exactP ih' = case ih' of
-    IRule l mtvs mctxt qn    -> do
-        let pts = srcInfoPoints l
-        _ <- case mtvs of
-                Nothing -> return pts
-                Just tvs ->
-                    case pts of
-                     [a,b] -> do
-                        printStringAt (pos a) "forall"
-                        mapM_ exactPC tvs
-                        printStringAt (pos b) "."
-                        return pts
-                     _ -> errorEP "ExactP: InstRule: IRule is given too few srcInfoPoints"
-        maybeEP exactPC mctxt
-        exactPC qn
-    IParen l ih        ->
-        case srcInfoPoints l of
-         [a,b] -> printStringAt (pos a) "(" >> exactPC ih >> printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: InstRule: IParen is given wrong number of srcInfoPoints"
-
-instance ExactP InstHead where
-   exactP doih' = case doih' of
-    IHCon _ qn      -> exactPC qn
-    IHInfix _ ta qn -> exactPC ta >> epInfixQName qn
-    IHParen l doih  ->
-        case srcInfoPoints l of
-         [a,b] -> printStringAt (pos a) "(" >> exactPC doih >> printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: OrInstHead: IHParen is given wrong number of srcInfoPoints"
-    IHApp _ doih t  -> exactPC doih >> exactPC t
-
-instance ExactP TyVarBind where
-  exactP (KindedVar   l n k) =
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "("
-            exactPC n
-            printStringAt (pos b) "::"
-            exactPC k
-            printStringAt (pos c) ")"
-         _ -> errorEP "ExactP: TyVarBind: KindedVar is given wrong number of srcInfoPoints"
-  exactP (UnkindedVar l n) =
-        case srcInfoPoints l of
-                 [a,_,c] -> do
-                    printStringAt (pos a) "("
-                    exactPC n
-                    printStringAt (pos c) ")"
-                 [] -> exactPC n
-                 _ -> errorEP "ExactP: TyVarBind: UnkindedVar is given wrong number of srcInfoPoints"
-
-instance ExactP Kind where
-  exactP kd' = case kd' of
-    KindStar  _     -> printString "*"
-    KindBang  _     -> printString "!"
-    KindFn    l k1 k2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP k1
-            printStringAt (pos a) "->"
-            exactPC k2
-         _ -> errorEP "ExactP: Kind: KindFn is given wrong number of srcInfoPoints"
-    KindParen l kd  ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "("
-            exactPC kd
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Kind: KindParen is given wrong number of srcInfoPoints"
-    KindVar _ n     -> epQName n
-    KindApp _ k1 k2 -> do
-        exactP k1
-        exactPC k2
-    KindTuple l ks ->
-        let o = "("
-            e = ")"
-            pts = srcInfoPoints l
-        in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) ks
-    KindList  l ks ->
-        let o = "["
-            e = "]"
-            pts = srcInfoPoints l
-        in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) ks
-
-
-
-instance ExactP Type where
-  exactP t' = case t' of
-    TyForall l mtvs mctxt t -> do
-        let pts = srcInfoPoints l
-        _ <- case mtvs of
-                Nothing -> return pts
-                Just tvs ->
-                    case pts of
-                     _:b:pts' -> do
-                        printString "forall"
-                        mapM_ exactPC tvs
-                        printStringAt (pos b) "."
-                        return pts'
-                     _ -> errorEP "ExactP: Type: TyForall is given too few srcInfoPoints"
-        maybeEP exactPC mctxt
-        exactPC t
-    TyFun   l t1 t2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP t1
-            printStringAt (pos a) "->"
-            exactPC t2
-         _ -> errorEP "ExactP: Type: TyFun is given wrong number of srcInfoPoints"
-    TyTuple l bx ts ->
-        case bx of
-          Boxed   -> parenList (srcInfoPoints l) ts
-          Unboxed -> parenHashList (srcInfoPoints l) ts
-    TyList  l t     ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "["
-            exactPC t
-            printStringAt (pos b) "]"
-         _ -> errorEP "ExactP: Type: TyList is given wrong number of srcInfoPoints"
-    TyParArray l t     ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "[:"
-            exactPC t
-            printStringAt (pos b) ":]"
-         _ -> errorEP "ExactP: Type: TyParArray is given wrong number of srcInfoPoints"
-    TyApp   _ t1 t2 -> exactP t1 >> exactPC t2
-    TyVar   _ n     -> exactP n
-    TyCon   _ qn    -> exactP qn
-    TyParen l t     ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "("
-            exactPC t
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Type: TyParen is given wrong number of srcInfoPoints"
-    TyInfix _ t1 qn t2 -> exactP t1 >> epInfixQName qn >> exactPC t2
-    TyKind  l t kd ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "("
-            exactPC t
-            printStringAt (pos b) "::"
-            exactPC kd
-            printStringAt (pos c) ")"
-         _ -> errorEP "ExactP: Type: TyKind is given wrong number of srcInfoPoints"
-    TyPromoted _ p -> exactPC p
-    TyEquals l t0 t1 -> case srcInfoPoints l of
-                          a:_ -> exactPC t0 >> printStringAt (pos a) "~" >> exactPC t1
-                          _   -> errorEP "ExactP: Type: TyEquals is given wrong number of srcInfoPoints"
-
-    TySplice _ sp  -> exactP sp
-    TyBang _ b t -> exactPC b >> exactPC t
-
-instance ExactP Promoted where
-  exactP (PromotedInteger _ _ rw) = printString rw
-  exactP (PromotedString _ _ rw)  = printString ('\"':rw ++ "\"")
-  exactP (PromotedCon l True qn)  = case srcInfoPoints l of
-    [a] -> printStringAt (pos a) "'" >> epQName qn
-    _ -> errorEP "ExactP: Promoted: PromotedCon is given wrong number of srcInfoPoints"
-  exactP (PromotedCon _ False qn) = epQName qn
-  exactP (PromotedList l b pl) =
-    let o | b = "'[" | otherwise = "["
-        e = "]"
-        pts = srcInfoPoints l
-    in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) pl
-  exactP (PromotedTuple l pl) =
-    let o = "'("
-        e = ")"
-        pts = srcInfoPoints l
-    in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) pl
-  exactP (PromotedUnit l) = case srcInfoPoints l of
-    [_,b] -> do
-        printString "("
-        printStringAt (pos b) ")"
-    _ -> errorEP "ExactP: Promoted: PromotedUnit is given wrong number of srcInfoPoints"
-
-
-instance ExactP Context where
-  exactP ctxt = do
-    printContext ctxt
-    printStringAt (pos . last . srcInfoPoints . ann $ ctxt) "=>"
-
-printContext :: Context SrcSpanInfo -> EP ()
-printContext ctxt = do
-    let l = ann ctxt
-        pts = init $ srcInfoPoints l
-    case ctxt of
-     CxSingle _ asst -> exactP asst
-     CxEmpty _ ->
-        case pts of
-         [a,b] -> do
-            printStringAt (pos a) "("
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Context: CxEmpty is given wrong number of srcInfoPoints"
-     CxTuple _ assts -> parenList pts assts
-
-
-instance ExactP Asst where
-  exactP asst = case asst of
-    ClassA _ qn ts -> exactP qn >> mapM_ exactPC ts
-    VarA _ n          -> exactPC n
-    InfixA _ ta qn tb -> exactP ta >> epInfixQName qn >> exactPC tb
-    IParam l ipn t    ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP ipn
-            printStringAt (pos a) "::"
-            exactPC t
-         _ -> errorEP "ExactP: Asst: IParam is given wrong number of srcInfoPoints"
-    EqualP l t1 t2  ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP t1
-            printStringAt (pos a) "~"
-            exactPC t2
-         _ -> internalError "Asst -> EqualP"
-    ParenA l asst' ->
-        case take 2 $ srcInfoPoints l of
-         [a,b] -> do
-            printStringAt (pos a) "("
-            exactPC asst'
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Asst: ParenA is given wrong number of srcInfoPoints"
-
-instance ExactP Deriving where
-  exactP (Deriving l ihs) =
-    case srcInfoPoints l of
-     _:pts -> do
-        printString "deriving"
-        case pts of
-         [] -> exactPC $ head ihs
-         _  -> parenList pts ihs
-     _ -> errorEP "ExactP: Deriving is given too few srcInfoPoints"
-
-instance ExactP ClassDecl where
-  exactP cdecl = case cdecl of
-    ClsDecl    _ d -> exactP d
-    ClsDataFam l mctxt dh mk ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "data"
-            maybeEP exactPC mctxt
-            exactPC dh
-            maybeEP (\kd -> printStringAt (pos (head pts)) "::" >> exactPC kd) mk
-         _ -> errorEP "ExactP: ClassDecl: ClsDataFam is given too few srcInfoPoints"
-    ClsTyFam   l dh mk  ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "type"
-            exactPC dh
-            maybeEP (\kd -> printStringAt (pos (head pts)) "::" >> exactPC kd) mk
-         _ -> errorEP "ExactP: ClassDecl: ClsTyFam is given too few srcInfoPoints"
-    ClsTyDef   l t1 t2  ->
-        case srcInfoPoints l of
-         _:b:c:_ -> do -- 3 sourceInfoPoints implies parsed as "type instance"
-            printString "type"
-            printStringAt (pos b) "instance"
-            exactPC t1
-            printStringAt (pos c) "="
-            exactPC t2
-         _:b:_ -> do
-            printString "type"
-            exactPC t1
-            printStringAt (pos b) "="
-            exactPC t2
-         _ -> errorEP "ExactP: ClassDecl: ClsTyDef is given too few srcInfoPoints"
-    ClsDefSig  l n t    ->
-        case srcInfoPoints l of
-         _:b:_ -> do
-            printString "default"
-            exactPC n
-            printStringAt (pos b) "::"
-            exactPC t
-         _ -> errorEP "ExactP: ClassDecl: ClsDefSig is given too few srcInfoPoints"
-
-
-instance ExactP InstDecl where
-  exactP idecl = case idecl of
-    InsDecl   _ d -> exactP d
-    InsType   l t1 t2 ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "type"
-            exactPC t1
-            printStringAt (pos b) "="
-            exactPC t2
-         _ -> internalError "InstDecl -> InsType"
-    InsData   l dn t constrs mder -> do
-        exactP dn
-        exactPC t
-        printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs
-        maybeEP exactPC mder
-    InsGData  l dn t mk gds mder  -> do
-        let pts = srcInfoPoints l
-        exactP dn
-        exactPC t
-        pts1 <- case mk of
-                Nothing -> return pts
-                Just kd -> case pts of
-                            p:pts' -> do
-                                printStringAt (pos p) "::"
-                                exactPC kd
-                                return pts'
-                            _ -> errorEP "ExactP: InstDecl: InsGData is given too few srcInfoPoints"
-        case pts1 of
-         x:_ -> do
-            printStringAt (pos x) "where"
-            mapM_ exactPC gds
-            maybeEP exactPC mder
-         _ -> errorEP "ExactP: InstDecl: InsGData is given too few srcInfoPoints"
---  InsInline l inl mact qn   -> do
---        case srcInfoPoints l of
---         [a,b] -> do
---            printString $ if inl then "{-# INLINE" else "{-# NOINLINE"
---            maybeEP exactPC mact
---            exactPC qn
---            printStringAt (pos b) "#-}"
---         _ -> errorEP "ExactP: InstDecl: InsInline is given wrong number of srcInfoPoints"
-
-instance ExactP FunDep where
-  exactP (FunDep l nxs nys) =
-    case srcInfoPoints l of
-     [a] -> do
-        mapM_ exactPC nxs
-        printStringAt (pos a) "->"
-        mapM_ exactPC nys
-     _ -> errorEP "ExactP: FunDep is given wrong number of srcInfoPoints"
-
-instance ExactP QualConDecl where
-  exactP (QualConDecl l mtvs mctxt cd) = do
-        let pts = srcInfoPoints l
-        _ <- case mtvs of
-                Nothing -> return pts
-                Just tvs ->
-                    case pts of
-                     _:b:pts' -> do
-                        printString "forall"
-                        mapM_ exactPC tvs
-                        printStringAt (pos b) "."
-                        return pts'
-                     _ -> errorEP "ExactP: QualConDecl is given wrong number of srcInfoPoints"
-        maybeEP exactPC mctxt
-        exactPC cd
-
-instance ExactP ConDecl where
-  exactP cd = case cd of
-    ConDecl _ n bts -> exactP n >> mapM_ exactPC bts
-    InfixConDecl _ bta n btb -> exactP bta >> epInfixName n >> exactP btb
-    RecDecl l n fds -> exactP n >> curlyList (srcInfoPoints l) fds
-
-instance ExactP GadtDecl where
-  exactP (GadtDecl l n ns' t) =
-    case ns' of
-        Nothing ->
-            case srcInfoPoints l of
-                [a] -> do
-                    exactP n
-                    printStringAt (pos a) "::"
-                    exactPC t
-                _ -> errorEP "ExactP: GadtDecl is given wrong number of srcInfoPoints"
-        Just ts ->
-            case srcInfoPoints l of
-                (a:b:c:d:rest) -> do
-                    exactPC n
-                    printStringAt (pos a) "::"
-                    printStringAt (pos b) "{"
-                    printInterleaved' (zip rest (repeat ",")) ts
-                    printStringAt (pos c) "}"
-                    printStringAt (pos d) "->"
-                    exactPC t
-                _ -> errorEP "ExactP: GadtDecl is given wrong number of srcInfoPoints"
-
-instance ExactP BangType where
-  exactP bt = case bt of
-    BangedTy   l  ->
-        case srcInfoPoints l of
-            [a] -> printStringAt (pos a) "!"
-            _   -> errorEP "ExactP: BangType: BangedTy is given wrong number of srcInfoPoints"
-    UnpackedTy l  ->
-      case srcInfoPoints l of
-       [a,b,c] -> do
-          printStringAt (pos a) "{-# UNPACK"
-          printStringAt (pos b) "#-}"
-          printStringAt (pos c) "!"
-       _ -> errorEP "ExactP: BangType: UnpackedTy is given wrong number of srcInfoPoints"
-
-instance ExactP Splice where
-  exactP (IdSplice _ str) = printString $ '$':str
-  exactP (ParenSplice l e) =
-    case srcInfoPoints l of
-     [_,b] -> do
-        printString "$("
-        exactPC e
-        printStringAt (pos b) ")"
-     _ -> errorEP "ExactP: Splice: ParenSplice is given wrong number of srcInfoPoints"
-
-instance ExactP Exp where
-  exactP exp = case exp of
-    Var _ qn        -> exactP qn
-    IPVar _ ipn     -> exactP ipn
-    Con _ qn        -> exactP qn
-    Lit _ lit       -> exactP lit
-    InfixApp _ e1 op e2 -> exactP e1 >> exactPC op >> exactPC e2
-    App _ e1 e2     -> exactP e1 >> exactPC e2
-    NegApp _ e      -> printString "-" >> exactPC e
-    Lambda l ps e   ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "\\"
-            mapM_ exactPC ps
-            printStringAt (pos b) "->"
-            exactPC e
-         _ -> errorEP "ExactP: Exp: Lambda is given wrong number of srcInfoPoints"
-    Let l bs e      ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "let"
-            exactPC bs
-            printStringAt (pos b) "in"
-            exactPC e
-         _ -> errorEP "ExactP: Exp: Let is given wrong number of srcInfoPoints"
-    If l ec et ee   -> -- traceShow (srcInfoPoints l) $ do
-        -- First we need to sort out if there are any optional
-        -- semicolons hiding among the srcInfoPoints.
-        case srcInfoPoints l of
-         (_:b:c:rest) -> do
-            let (mpSemi1,pThen,rest2) =
-                           if snd (spanSize b) == 4 -- this is "then", not a semi
-                            then (Nothing, b, c:rest)
-                            else (Just b, c, rest)
-            case rest2 of
-              (c':rest3) -> do
-                let (mpSemi2,rest4) = if snd (spanSize c') == 4 -- this is "else", not a semi
-                                       then (Nothing, rest2)
-                                       else (Just c', rest3)
-                case rest4 of
-                  [pElse] -> do
-                    -- real work starts here:
-                    printString "if"
-                    exactPC ec
-                    maybeEP printSemi  mpSemi1
-                    printStringAt (pos pThen) "then"
-                    exactPC et
-                    maybeEP printSemi mpSemi2
-                    printStringAt (pos pElse) "else"
-                    exactPC ee
-                  [] -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
-                  _  -> errorEP "ExactP: Exp: If is given too many srcInfoPoints"
-              _ -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
-
-         _ -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
-    MultiIf l alts ->
-        case srcInfoPoints l of
-          _:pts -> do
-            printString "if"
-            layoutList pts (map GuardedAlt alts)
-          _ -> internalError "Exp -> MultiIf"
-    Case l e alts   ->
-        case srcInfoPoints l of
-         _:b:pts -> do
-            printString "case"
-            exactPC e
-            printStringAt (pos b) "of"
-            layoutList pts alts
-         _ -> errorEP "ExactP: Exp: Case is given too few srcInfoPoints"
-    Do l stmts      ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "do"
-            layoutList pts stmts
-         _ -> errorEP "ExactP: Exp: Do is given too few srcInfoPoints"
-    MDo l stmts     ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "mdo"
-            layoutList pts stmts
-         _ -> errorEP "ExactP: Exp: Mdo is given wrong number of srcInfoPoints"
-    Tuple l bx es   ->
-        case bx of
-          Boxed   -> parenList (srcInfoPoints l) es
-          Unboxed -> parenHashList (srcInfoPoints l) es
-    TupleSection l bx mexps -> do
-        let pts = srcInfoPoints l
-            (o, e) = case bx of Boxed -> ("(", ")"); Unboxed -> ("(#", "#)")
-        printSeq $ interleave (zip (map pos $ init pts) (map printString (o: repeat ",")) ++ [(pos $ last pts, printString e)])
-                              (map (maybe (0,0) (pos . ann) &&& maybeEP exactPC) mexps)
-    List l es               -> squareList (srcInfoPoints l) es
-    ParArray l es           -> squareColonList (srcInfoPoints l) es
-    Paren l p               -> parenList (srcInfoPoints l) [p]
-    LeftSection l e qop     ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "("
-            exactPC e
-            exactPC qop
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Exp: LeftSection is given wrong number of srcInfoPoints"
-    RightSection l qop e    ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "("
-            exactPC qop
-            exactPC e
-            printStringAt (pos b) ")"
-         _ -> errorEP "ExactP: Exp: RightSection is given wrong number of srcInfoPoints"
-    RecConstr l qn fups     -> do
-        let pts = srcInfoPoints l
-        exactP qn
-        curlyList pts fups
-    RecUpdate l e fups      -> do
-        let pts = srcInfoPoints l
-        exactP e
-        curlyList pts fups
-    EnumFrom l e            ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "["
-            exactPC e
-            printStringAt (pos b) ".."
-            printStringAt (pos c) "]"
-         _ -> errorEP "ExactP: Exp: EnumFrom is given wrong number of srcInfoPoints"
-    EnumFromTo l e1 e2      ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "["
-            exactPC e1
-            printStringAt (pos b) ".."
-            exactPC e2
-            printStringAt (pos c) "]"
-         _ -> errorEP "ExactP: Exp: EnumFromTo is given wrong number of srcInfoPoints"
-    EnumFromThen l e1 e2    ->
-        case srcInfoPoints l of
-         [_,b,c,d] -> do
-            printString "["
-            exactPC e1
-            printStringAt (pos b) ","
-            exactPC e2
-            printStringAt (pos c) ".."
-            printStringAt (pos d) "]"
-         _ -> errorEP "ExactP: Exp: EnumFromThen is given wrong number of srcInfoPoints"
-    EnumFromThenTo l e1 e2 e3   ->
-        case srcInfoPoints l of
-         [_,b,c,d] -> do
-            printString "["
-            exactPC e1
-            printStringAt (pos b) ","
-            exactPC e2
-            printStringAt (pos c) ".."
-            exactPC e3
-            printStringAt (pos d) "]"
-         _ -> errorEP "ExactP: Exp: EnumFromToThen is given wrong number of srcInfoPoints"
-    ParArrayFromTo l e1 e2      ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "[:"
-            exactPC e1
-            printStringAt (pos b) ".."
-            exactPC e2
-            printStringAt (pos c) ":]"
-         _ -> errorEP "ExactP: Exp: ParArrayFromTo is given wrong number of srcInfoPoints"
-    ParArrayFromThenTo l e1 e2 e3   ->
-        case srcInfoPoints l of
-         [_,b,c,d] -> do
-            printString "[:"
-            exactPC e1
-            printStringAt (pos b) ","
-            exactPC e2
-            printStringAt (pos c) ".."
-            exactPC e3
-            printStringAt (pos d) ":]"
-         _ -> errorEP "ExactP: Exp: ParArrayFromToThen is given wrong number of srcInfoPoints"
-    ListComp l e qss            ->
-        case srcInfoPoints l of
-         _:pts -> do
-            printString "["
-            exactPC e
-            bracketList ("|",",","]") pts qss
-         _ -> errorEP "ExactP: Exp: ListComp is given too few srcInfoPoints"
-    ParComp  l e qsss           ->
-        case srcInfoPoints l of
-         _:pts -> do
-            let (strs, qss) = unzip $ pairUp qsss
-            printString "["
-            exactPC e
-            printInterleaved (zip pts (strs ++ ["]"])) qss
-         _ -> errorEP "ExactP: Exp: ParComp is given wrong number of srcInfoPoints"
-      where pairUp [] = []
-            pairUp ((a:as):xs) = ("|", a) : zip (repeat ",") as ++ pairUp xs
-            pairUp _ = internalError "Exp -> ParComp -> pairUp"
-    ParArrayComp  l e qsss           ->
-        case srcInfoPoints l of
-         _:pts -> do
-            let (strs, qss) = unzip $ pairUp qsss
-            printString "[:"
-            exactPC e
-            printInterleaved (zip pts (strs ++ [":]"])) qss
-         _ -> errorEP "ExactP: Exp: ParArrayComp is given wrong number of srcInfoPoints"
-      where pairUp [] = []
-            pairUp ((a:as):xs) = ("|", a) : zip (repeat "|") as ++ pairUp xs
-            pairUp _ = internalError "Exp -> ParArrayComp -> pairUp"
-
-    ExpTypeSig l e t    ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e
-            printStringAt (pos a) "::"
-            exactPC t
-         _ -> errorEP "ExactP: Exp: ExpTypeSig is given wrong number of srcInfoPoints"
-    VarQuote _ qn   -> do
-      printString "'"
-      exactPC qn
-    TypQuote _ qn -> do
-      printString "''"
-      exactPC qn
-    BracketExp _ br -> exactP br
-    SpliceExp _ sp  -> exactP sp
-    QuasiQuote _ name qt    -> do
-        let qtLines = lines qt
-        printString $ "[" ++ name ++ "|"
-        sequence_ (intersperse newLine $ map printString qtLines)
-        printString "|]"
-    XTag l xn attrs mat es  ->
-        case srcInfoPoints l of
-         [_,b,c,d,e] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC es
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         -- TODO: Fugly hack/duplication, should be refactored
-         -- For the case when there's an optional semicolon
-         [_,b,semi,c,d,e] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC es
-            printSemi semi
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         _ -> errorEP "ExactP: Exp: XTag is given wrong number of srcInfoPoints"
-    XETag l xn attrs mat    ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) "/>"
-         _ -> errorEP "ExactP: Exp: XETag is given wrong number of srcInfoPoints"
-    XPcdata _ str   -> do
-        let strLines = lines str
-        sequence_ (intersperse newLine $ map printString strLines)
-    XExpTag l e     ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "<%"
-            exactPC e
-            printStringAt (pos b) "%>"
-         _ -> errorEP "ExactP: Exp: XExpTag is given wrong number of srcInfoPoints"
-    XChildTag l es  ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "<%>"
-            mapM_ exactPC es
-            printStringAt (pos b) "</"
-            printStringAt (pos c) "%>"
-         -- Ugly duplication for when there's an optional semi
-         [_,semi,b,c] -> do
-            printString "<%>"
-            mapM_ exactPC es
-            printSemi semi
-            printStringAt (pos b) "</"
-            printStringAt (pos c) "%>"
-         _ -> errorEP "ExactP: Exp: XChildTag is given wrong number of srcInfoPoints"
-    CorePragma l      str e         ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString $ "{-# CORE " ++ show str
-            printStringAt (pos b) "#-}"
-            exactPC e
-         _ -> errorEP "ExactP: Exp: CorePragma is given wrong number of srcInfoPoints"
-    SCCPragma  l      str e         ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString $ "{-# SCC " ++ show str
-            printStringAt (pos b) "#-}"
-            exactPC e
-         _ -> errorEP "ExactP: Exp: SCCPragma is given wrong number of srcInfoPoints"
-    GenPragma  l      str (i1,i2) (i3,i4) e -> do
-        printStrs $ zip (srcInfoPoints l) ["{-# GENERATED", show str, show i1, ":", show i2, "-", show i3, ":", show i4, "#-}"]
-        exactPC e
-    Proc            l p e   ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "proc"
-            exactPC p
-            printStringAt (pos b) "->"
-            exactPC e
-         _ -> errorEP "ExactP: Exp: Proc is given wrong number of srcInfoPoints"
-    LeftArrApp      l e1 e2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e1
-            printStringAt (pos a) "-<"
-            exactPC e2
-         _ -> errorEP "ExactP: Exp: LeftArrApp is given wrong number of srcInfoPoints"
-    RightArrApp     l e1 e2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e1
-            printStringAt (pos a) ">-"
-            exactPC e2
-         _ -> errorEP "ExactP: Exp: RightArrApp is given wrong number of srcInfoPoints"
-    LeftArrHighApp  l e1 e2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e1
-            printStringAt (pos a) "-<<"
-            exactPC e2
-         _ -> errorEP "ExactP: Exp: LeftArrHighApp is given wrong number of srcInfoPoints"
-    RightArrHighApp l e1 e2 ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e1
-            printStringAt (pos a) ">>-"
-            exactPC e2
-         _ -> errorEP "ExactP: Exp: RightArrHighApp is given wrong number of srcInfoPoints"
-
-    LCase l alts   ->
-        case srcInfoPoints l of
-         _:b:pts -> do
-            printString "\\"
-            printStringAt (pos b) "case"
-            layoutList pts alts
-         _ -> errorEP "ExactP: Exp: LCase is given wrong number of srcInfoPoints"
-
-instance ExactP FieldUpdate where
-  exactP fup = case fup of
-    FieldUpdate l qn e  ->
-      case srcInfoPoints l of
-       [a] -> do
-          exactP qn
-          printStringAt (pos a) "="
-          exactPC e
-       _ -> errorEP "ExactP: FieldUpdate is given wrong number of srcInfoPoints"
-    FieldPun _ n    -> exactP n
-    FieldWildcard _ -> printString ".."
-
-instance ExactP Stmt where
-  exactP stmt = case stmt of
-    Generator l p e ->
-      case srcInfoPoints l of
-       [a] -> do
-          exactP p
-          printStringAt (pos a) "<-"
-          exactPC e
-       _ -> errorEP "ExactP: Stmt: Generator is given wrong number of srcInfoPoints"
-    Qualifier _ e -> exactP e
-    LetStmt _ bds   -> do
-      printString "let"
-      exactPC bds
-    RecStmt l ss    ->
-      case srcInfoPoints l of
-       _:pts -> do
-          printString "rec"
-          layoutList pts ss
-       _ -> errorEP "ExactP: Stmt: RecStmt is given too few srcInfoPoints"
-
-instance ExactP QualStmt where
-  exactP qstmt = case qstmt of
-    QualStmt     _ stmt -> exactP stmt
-    ThenTrans    _ e    -> printString "then" >> exactPC e
-    ThenBy      l e1 e2 ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "then"
-            exactPC e1
-            printStringAt (pos b) "by"
-            exactPC e2
-         _ -> errorEP "ExactP: QualStmt: ThenBy is given wrong number of srcInfoPoints"
-    GroupBy      l e        -> do
-        printStrs $ zip (srcInfoPoints l) ["then","group","by"]
-        exactPC e
-    GroupUsing   l e        -> do
-        printStrs $ zip (srcInfoPoints l) ["then","group","using"]
-        exactPC e
-    GroupByUsing l e1 e2    -> do
-        let pts = srcInfoPoints l
-        printStrs $ zip (init pts) ["then","group","by"]
-        exactPC e1
-        printStringAt (pos (last pts)) "using"
-        exactPC e2
-
-instance ExactP Bracket where
-  exactP br = case br of
-    ExpBracket l e  ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "[|"
-            exactPC e
-            printStringAt (pos b) "|]"
-         _ -> errorEP "ExactP: Bracket: ExpBracket is given wrong number of srcInfoPoints"
-    PatBracket l p  ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "[p|"
-            exactPC p
-            printStringAt (pos b) "|]"
-         _ -> errorEP "ExactP: Bracket: PatBracket is given wrong number of srcInfoPoints"
-    TypeBracket l t  ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "[t|"
-            exactPC t
-            printStringAt (pos b) "|]"
-         _ -> errorEP "ExactP: Bracket: TypeBracket is given wrong number of srcInfoPoints"
-    DeclBracket l ds ->
-        case srcInfoPoints l of
-         pts@(_:_) -> do
-            printString "[d|"
-            layoutList (init pts) (sepFunBinds ds)
-            printStringAt (pos (last pts)) "|]"
-         _ -> errorEP "ExactP: Bracket: DeclBracket is given too few srcInfoPoints"
-
-instance ExactP XAttr where
-  exactP (XAttr l xn e) =
-    case srcInfoPoints l of
-     [a] -> do
-        exactP xn
-        printStringAt (pos a) "="
-        exactPC e
-     _ -> errorEP "ExactP: XAttr is given wrong number of srcInfoPoints"
-
-instance ExactP Alt where
-  exactP (Alt l p galts mbs) = do
-    exactP p
-    exactPC (GuardedAlts galts)
-    maybeEP (\bs -> printStringAt (pos (head (srcInfoPoints l))) "where" >> exactPC bs) mbs
-
-instance ExactP Match where
-  exactP (Match l n ps rhs mbinds) = do
-    let pts = srcInfoPoints l
-        len = length pts
-        pars = len `div` 2
-        (oPars,cParsWh) = splitAt pars pts
-        (cPars,_) = splitAt pars cParsWh    -- _§ is either singleton or empty
-    printStrs (zip oPars (repeat "("))
-    exactPC n
-    printStreams (zip (map pos cPars) (repeat $ printString ")")) (map (pos . ann &&& exactPC) ps)
-    exactPC rhs
-    maybeEP (\bds -> printStringAt (pos (head pts)) "where" >> exactPC bds) mbinds
-  exactP (InfixMatch l a n bs rhs mbinds) = do
-    let pts = srcInfoPoints l
-        len = length pts
-        pars = len `div` 2
-        (oPars,cParsWh) = splitAt pars pts
-        (cPars,whPt) = splitAt pars cParsWh    -- whPt is either singleton or empty
-    printStrs (zip oPars (repeat "("))
-    exactPC a
-    epInfixName n
-    printInterleaved' (zip cPars (repeat ")")) bs
-    exactPC rhs
-    maybeEP (\bds -> printStringAt (pos (head whPt)) "where" >> exactPC bds) mbinds
-
-instance ExactP Rhs where
-  exactP (UnGuardedRhs _ e) = printString "=" >> exactPC e
-  exactP (GuardedRhss  _ grhss) = mapM_ exactPC grhss
-
-instance ExactP GuardedRhs where
-  exactP (GuardedRhs l ss e) =
-    case srcInfoPoints l of
-     _:pts -> do
-        printString "|"
-        printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "=")]) ss
-        exactPC e
-     _ -> errorEP "ExactP: GuardedRhs is given wrong number of srcInfoPoints"
-
-newtype GuardedAlts l = GuardedAlts (Rhs l)
-    deriving (Functor, Show)
-instance Annotated GuardedAlts where
-    amap f (GuardedAlts v) = GuardedAlts (amap f v)
-    ann (GuardedAlts v) = ann v
-
-newtype GuardedAlt l = GuardedAlt (GuardedRhs l)
-    deriving (Functor, Show)
-instance Annotated GuardedAlt where
-    amap f (GuardedAlt v) = GuardedAlt (amap f v)
-    ann (GuardedAlt v) = ann v
-
-instance ExactP GuardedAlts where
-  exactP (GuardedAlts (UnGuardedRhs _ e)) = printString "->" >> exactPC e
-  exactP (GuardedAlts (GuardedRhss  _ grhss)) = mapM_ (exactPC . GuardedAlt) grhss
-
-instance ExactP GuardedAlt where
-  exactP (GuardedAlt (GuardedRhs l ss e)) =
-    case srcInfoPoints l of
-     _:pts -> do
-        printString "|"
-        printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "->")]) ss
-        exactPC e
-     _ -> errorEP "ExactP: GuardedAlt is given wrong number of srcInfoPoints"
-
-instance ExactP Pat where
-  exactP pat = case pat of
-    PVar l n    -> exactPC (fmap (const l) n)
-    PLit _ sg lit -> exactPC sg >> exactPC lit
-    PNPlusK l n k   ->
-        case srcInfoPoints l of
-         [a,b] -> do
-            exactP n
-            printStringAt (pos a) "+"
-            printStringAt (pos b) (show k)
-         _ -> errorEP "ExactP: Pat: PNPlusK is given wrong number of srcInfoPoints"
-    PInfixApp _ pa qn pb -> exactP pa >> epInfixQName qn >> exactPC pb
-    PApp _ qn ps    -> exactP qn >> mapM_ exactPC ps
-    PTuple l bx ps ->
-        case bx of
-          Boxed   -> parenList (srcInfoPoints l) ps
-          Unboxed -> parenHashList (srcInfoPoints l) ps
-    PList l ps  -> squareList (srcInfoPoints l) ps
-    PParen l p  -> parenList (srcInfoPoints l) [p]
-    PRec l qn pfs   -> exactP qn >> curlyList (srcInfoPoints l) pfs
-    PAsPat l n p    ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP n
-            printStringAt (pos a) "@"
-            exactPC p
-         _ -> errorEP "ExactP: Pat: PAsPat is given wrong number of srcInfoPoints"
-    PWildCard _ -> printString "_"
-    PIrrPat _ p -> printString "~" >> exactPC p
-    PatTypeSig l p t ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP p
-            printStringAt (pos a) "::"
-            exactPC t
-         _ -> errorEP "ExactP: Pat: PatTypeSig is given wrong number of srcInfoPoints"
-    PViewPat l e p ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP e
-            printStringAt (pos a) "->"
-            exactPC p
-         _ -> errorEP "ExactP: Pat: PViewPat is given wrong number of srcInfoPoints"
-    PRPat l rps -> squareList (srcInfoPoints l) rps
-    PXTag l xn attrs mat ps ->
-        case srcInfoPoints l of
-         [_,b,c,d,e] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC ps
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         -- Optional semi
-         [_,b,semi,c,d,e] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) ">"
-            mapM_ exactPC ps
-            printSemi semi
-            printStringAt (pos c) "</"
-            printWhitespace (pos d)
-            exactP xn
-            printStringAt (pos e) ">"
-         _ -> errorEP "ExactP: Pat: PXTag is given wrong number of srcInfoPoints"
-    PXETag l xn attrs mat ->
-        case srcInfoPoints l of
-         [_,b] -> do
-            printString "<"
-            exactPC xn
-            mapM_ exactPC attrs
-            maybeEP exactPC mat
-            printStringAt (pos b) "/>"
-         _ -> errorEP "ExactP: Pat: PXETag is given wrong number of srcInfoPoints"
-    PXPcdata _ str -> printString str
-    PXPatTag l p   ->
-        case srcInfoPoints l of
-         [_,_] -> do
-            printString "<%"
-            exactPC p
-            printString "%>"
-         _ -> errorEP "ExactP: Pat: PXPatTag is given wrong number of srcInfoPoints"
-    PXRPats  l rps  -> bracketList ("<[",",","]>") (srcInfoPoints l) rps
-    PQuasiQuote _ name qt   -> printString $ "[$" ++ name ++ "|" ++ qt ++ "]"
-    PBangPat _ p    -> printString "!" >> exactPC p
-
-instance ExactP PatField where
-  exactP pf = case pf of
-    PFieldPat l qn p        ->
-        case srcInfoPoints l of
-         [a] -> do
-            exactP qn
-            printStringAt (pos a) "="
-            exactPC p
-         _ -> errorEP "ExactP: PatField: PFieldPat is given wrong number of srcInfoPoints"
-    PFieldPun _ n   -> exactP n
-    PFieldWildcard _ -> printString ".."
-
-instance ExactP RPat where
-  exactP rpat = case rpat of
-    RPOp _ rp op    -> exactP rp >> exactPC op
-    RPEither l r1 r2 ->
-      case srcInfoPoints l of
-       [a] -> do
-          exactP r1
-          printStringAt (pos a) "|"
-          exactPC r2
-       _ -> errorEP "ExactP: RPat: RPEither is given wrong number of srcInfoPoints"
-    RPSeq l rps -> bracketList ("(|",",","|)") (srcInfoPoints l) rps
-    RPGuard l p stmts   ->
-      case srcInfoPoints l of
-       _:pts -> do
-          printString "(|"
-          exactPC p
-          bracketList ("|",",","|)") pts stmts
-       _ -> errorEP "ExactP: RPat: RPGuard is given wrong number of srcInfoPoints"
-    RPCAs l n rp    ->
-      case srcInfoPoints l of
-       [a] -> do
-          exactP n
-          printStringAt (pos a) "@:"
-          exactPC rp
-       _ -> errorEP "ExactP: RPat: RPCAs is given wrong number of srcInfoPoints"
-    RPAs l n rp     ->
-      case srcInfoPoints l of
-       [a] -> do
-          exactP n
-          printStringAt (pos a) "@"
-          exactPC rp
-       _ -> errorEP "ExactP: RPat: RPAs is given wrong number of srcInfoPoints"
-    RPParen l rp    -> parenList (srcInfoPoints l) [rp]
-    RPPat _ p   -> exactP p
-
-instance ExactP RPatOp where
-  exactP rop = printString $ case rop of
-    RPStar  _  -> "*"
-    RPStarG _  -> "*!"
-    RPPlus  _  -> "+"
-    RPPlusG _  -> "+!"
-    RPOpt   _  -> "?"
-    RPOptG  _  -> "?!"
-
-instance ExactP PXAttr where
-  exactP (PXAttr l xn p) =
-    case srcInfoPoints l of
-     [a] -> do
-        exactP xn
-        printStringAt (pos a) "="
-        exactPC p
-     _ -> errorEP "ExactP: PXAttr is given wrong number of srcInfoPoints"
-
-instance ExactP XName where
-  exactP xn = case xn of
-    XName _ name -> printString name
-    XDomName l dom name ->
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString dom
-            printStringAt (pos b) ":"
-            printStringAt (pos c) name
-         _ -> errorEP "ExactP: XName: XDomName is given wrong number of srcInfoPoints"
-
-instance ExactP Binds where
-  exactP (BDecls  l ds)  = layoutList (srcInfoPoints l) (sepFunBinds ds)
-  exactP (IPBinds l ips) = layoutList (srcInfoPoints l) ips
-
-instance ExactP CallConv where
-  exactP (StdCall   _) = printString "stdcall"
-  exactP (CCall     _) = printString "ccall"
-  exactP (CPlusPlus _) = printString "cplusplus"
-  exactP (DotNet    _) = printString "dotnet"
-  exactP (Jvm       _) = printString "jvm"
-  exactP (Js        _) = printString "js"
-  exactP (CApi      _) = printString "capi"
-
-instance ExactP Safety where
-  exactP (PlayRisky _) = printString "unsafe"
-  exactP (PlaySafe _ b) = printString $ if b then "threadsafe" else "safe"
-  exactP (PlayInterruptible _) = printString "interruptible"
-
-instance ExactP Rule where
-  exactP (Rule l str mact mrvs e1 e2) =
-    case srcInfoPoints l of
-     _:pts -> do
-        printString (show str)
-        maybeEP exactP mact
-        pts1 <- case mrvs of
-                Nothing -> return pts
-                Just rvs ->
-                    case pts of
-                     a':b:pts' -> do
-                        printStringAt (pos a') "forall"
-                        mapM_ exactPC rvs
-                        printStringAt (pos b) "."
-                        return pts'
-                     _ -> errorEP "ExactP: Rule is given too few srcInfoPoints"
-        case pts1 of
-         [x] -> do
-            exactPC e1
-            printStringAt (pos x) "="
-            exactPC e2
-         _ -> errorEP "ExactP: Rule is given wrong number of srcInfoPoints"
-     _ -> errorEP "ExactP: Rule is given too few srcInfoPoints"
-
-instance ExactP RuleVar where
-  exactP (TypedRuleVar l n t) =
-        case srcInfoPoints l of
-         [_,b,c] -> do
-            printString "("
-            exactPC n
-            printStringAt (pos b) "::"
-            exactPC t
-            printStringAt (pos c) ")"
-         _ -> errorEP "ExactP: RuleVar: TypedRuleVar is given wrong number of srcInfoPoints"
-  exactP (RuleVar _ n) = exactP n
-
-instance ExactP Overlap where
-  exactP (NoOverlap _) =
-    printString "{-# NO_OVERLAP #-}"
-  exactP (Overlap _) =
-    printString "{-# OVERLAP #-}"
-  exactP (Incoherent _) =
-    printString "{-# INCOHERENT #-}"
-
-instance ExactP Activation where
-  exactP (ActiveFrom   l i) =
-    printPoints l ["[", show i, "]"]
-  exactP (ActiveUntil  l i) =
-    printPoints l ["[", "~", show i, "]"]
-
-instance ExactP FieldDecl where
-  exactP (FieldDecl l ns bt) = do
-    let pts = srcInfoPoints l
-    printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "::")]) ns
-    exactPC bt
-
-instance ExactP IPBind where
-  exactP (IPBind l ipn e) =
-    case srcInfoPoints l of
-     [a] -> do
-        exactP ipn
-        printStringAt (pos a) "="
-        exactPC e
-     _ -> errorEP "ExactP: IPBind is given wrong number of srcInfoPoints"
-
--- Hopefully, this will never fire.
--- If it does, hopefully by that time https://github.com/sol/rewrite-with-location
--- will be implemented.
--- If not, then removing all calls to internalError should give a better
--- idea where the error comes from.
--- So far, it's necessary to eliminate non-exhaustive patterns warnings.
--- We don't want to turn them off, as we want unhandled AST nodes to be
--- reported.
-internalError :: String -> a
-internalError loc' = error $ unlines
-    [ "haskell-src-exts: ExactPrint: internal error (non-exhaustive pattern)"
-    , "Location: " ++ loc'
-    , "This is either caused by supplying incorrect location information or by"
-    , "a bug in haskell-src-exts. If this happens on an unmodified AST obtained"
-    , "by the haskell-src-exts Parser it is a bug, please it report it at"
-    , "https://github.com/haskell-suite/haskell-src-exts"]
diff --git a/src/Language/Haskell/Exts/Annotated/Fixity.hs b/src/Language/Haskell/Exts/Annotated/Fixity.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated/Fixity.hs
+++ /dev/null
@@ -1,338 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.Fixity
--- Copyright   :  (c) Niklas Broberg 2009
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- Fixity information to give the parser so that infix operators can
--- be parsed properly.
---
------------------------------------------------------------------------------
-module Language.Haskell.Exts.Annotated.Fixity
-    (
-    -- * Fixity representation
-      Fixity(..)
-    -- | The following three functions all create lists of
-    --   fixities from textual representations of operators.
-    --   The intended usage is e.g.
-    --
-    -- > fixs = infixr_ 0  ["$","$!","`seq`"]
-    --
-    --   Note that the operators are expected as you would
-    --   write them infix, i.e. with ` characters surrounding
-    --   /varid/ operators, and /varsym/ operators written as is.
-    , infix_, infixl_, infixr_
-    -- ** Collections of fixities
-    , preludeFixities, baseFixities
-
-    -- * Applying fixities to an AST
-    , AppFixity(..)
-    ) where
-
-import Language.Haskell.Exts.Annotated.Syntax
-import Language.Haskell.Exts.SrcLoc
-
-import Language.Haskell.Exts.Fixity ( Fixity(..), infix_, infixl_, infixr_, preludeFixities, baseFixities, prefixMinusFixity )
-import qualified Language.Haskell.Exts.Syntax as S ( Assoc(..), QOp(..), QName(..), Name(..), SpecialCon(..), ModuleName )
-import Language.Haskell.Exts.Annotated.Simplify ( sQOp, sAssoc, sQName, sModuleHead, sName )
-
-import Control.Monad (when, (<=<), liftM, liftM2, liftM3, liftM4)
-import Data.Traversable (mapM)
-import Prelude hiding (mapM)
-
--- | All AST elements that may include expressions which in turn may
---   need fixity tweaking will be instances of this class.
-class AppFixity ast where
-  -- | Tweak any expressions in the element to account for the
-  --   fixities given. Assumes that all operator expressions are
-  --   fully left associative chains to begin with.
-  applyFixities :: Monad m => [Fixity]      -- ^ The fixities to account for.
-                    -> ast SrcSpanInfo      -- ^ The element to tweak.
-                    -> m (ast SrcSpanInfo)  -- ^ The same element, but with operator expressions updated, or a failure.
-
-
-instance AppFixity Exp where
-  applyFixities fixs' = infFix fixs' <=< leafFix fixs'
-    where -- This is the real meat case. We can assume a left-associative list to begin with.
-          infFix fixs (InfixApp l2 a op2 z) = do
-              e <- infFix fixs a
-              let fixup (a1,p1) (a2,p2) y pre = do
-                      when (p1 == p2 && (a1 /= a2 || a1 == S.AssocNone)) -- Ambiguous infix expression!
-                           $ fail "Ambiguous infix expression"
-                      if (p1 > p2 || p1 == p2 && (a1 == S.AssocLeft || a2 == S.AssocNone)) -- Already right order
-                       then return $ InfixApp l2 e op2 z
-                       else liftM pre (infFix fixs $ InfixApp (ann y <++> ann z) y op2 z)
-              case e of
-               InfixApp _ x op1 y -> fixup (askFixity fixs op1) (askFixity fixs op2) y (InfixApp l2 x op1)
-               NegApp   _       y -> fixup prefixMinusFixity    (askFixity fixs op2) y (NegApp l2)
-               _  -> return $ InfixApp l2 e op2 z
-
-          infFix _ e = return e
-
---ambOps l = ParseFailed (getPointLoc l) $ "Ambiguous infix expression"
-
-instance AppFixity Pat where
-  applyFixities fixs' = infFix fixs' <=< leafFixP fixs'
-    where -- This is the real meat case. We can assume a left-associative list to begin with.
-          infFix fixs (PInfixApp l2 a op2 z) = do
-              p <- infFix fixs a
-              let fixup (a1,p1) (a2,p2) y pre = do
-                      when (p1 == p2 && (a1 /= a2 || a1 == S.AssocNone )) -- Ambiguous infix expression!
-                           $ fail "Ambiguous infix expression"
-                      if (p1 > p2 || p1 == p2 && (a1 == S.AssocLeft || a2 == S.AssocNone)) -- Already right order
-                       then return $ PInfixApp l2 p op2 z
-                       else liftM pre (infFix fixs $ PInfixApp (ann y <++> ann z) y op2 z)
-              case p of
-               PInfixApp _ x op1 y -> fixup (askFixityP fixs op1) (askFixityP fixs op2) y (PInfixApp l2 x op1)
-               _  -> return $ PInfixApp l2 p op2 z
-
-          infFix _ p = return p
-
--- Internal: lookup associativity and precedence of an operator
-askFixity :: [Fixity] -> QOp l -> (S.Assoc, Int)
-askFixity xs k = askFix xs (f $ sQOp k) -- undefined -- \k -> askFixityP xs (f k) -- lookupWithDefault (AssocLeft, 9) (f k) mp
-    where
-        f (S.QVarOp x) = g x
-        f (S.QConOp x) = g x
-
-        g (S.Special S.Cons) = S.UnQual (S.Symbol ":")
-        g x                  = x
-
--- Same using patterns
-askFixityP :: [Fixity] -> QName l -> (S.Assoc, Int)
-askFixityP xs qn = askFix xs (g $ sQName qn)
-    where
-        g (S.Special S.Cons) = S.UnQual (S.Symbol ":")
-        g x                  = x
-        
-askFix :: [Fixity] -> S.QName -> (S.Assoc, Int)
-askFix xs = \k -> lookupWithDefault (S.AssocLeft, 9) k mp
-    where
-        lookupWithDefault def k mp' = case lookup k mp' of
-            Nothing -> def
-            Just x  -> x
-
-        mp = [(x,(a,p)) | Fixity a p x <- xs]
-
-
--------------------------------------------------------------------
--- Boilerplate - yuck!! Everything below here is internal stuff
-
-instance AppFixity Module where
-    applyFixities fixs (Module l mmh prs imp decls) =
-        liftM (Module l mmh prs imp) $ appFixDecls (Just mn) fixs decls
-      where (mn, _, _) = sModuleHead mmh
-    applyFixities fixs (XmlPage l mn os xn xas mexp cs) =
-        liftM3 (XmlPage l mn os xn) (fix xas) (fix mexp) (fix cs)
-      where fix xs = mapM (applyFixities fixs) xs
-    applyFixities fixs (XmlHybrid l mmh prs imp decls xn xas mexp cs) =
-        liftM4 (flip (XmlHybrid l mmh prs imp) xn) (appFixDecls (Just mn) fixs decls)
-                (fixe xas) (fixe mexp) (fixe cs)
-      where fixe xs = let extraFixs = getFixities (Just mn) decls
-                       in mapM (applyFixities (fixs++extraFixs)) xs
-            (mn, _, _) = sModuleHead mmh
-
-instance AppFixity Decl where
-    applyFixities fixs decl = case decl of
-        ClassDecl l ctxt dh deps cdecls   -> liftM (ClassDecl l ctxt dh deps) $ mapM (mapM fix) cdecls
-        InstDecl  l olp ih idecls         -> liftM (InstDecl  l olp ih)  $ mapM (mapM fix) idecls
-        SpliceDecl l spl        -> liftM (SpliceDecl l) $ fix spl
-        FunBind l matches       -> liftM (FunBind l) $ mapM fix matches
-        PatBind l p rhs bs      -> liftM3 (PatBind l) (fix p) (fix rhs) (mapM fix bs)
-        AnnPragma l ann'         -> liftM (AnnPragma l) $ fix ann'
-        _                       -> return decl
-      where fix x = applyFixities fixs x
-
-appFixDecls :: Monad m => Maybe S.ModuleName -> [Fixity] -> [Decl SrcSpanInfo] -> m [Decl SrcSpanInfo]
-appFixDecls mmdl fixs decls =
-    let extraFixs = getFixities mmdl decls
-     in mapM (applyFixities (fixs++extraFixs)) decls
-
-getFixities :: Maybe S.ModuleName -> [Decl l] -> [Fixity]
-getFixities mmdl = concatMap (getFixity mmdl)
-
-getFixity :: Maybe S.ModuleName -> Decl l -> [Fixity]
-getFixity mmdl (InfixDecl _ a mp ops) = let p = maybe 9 id mp in map (Fixity (sAssoc a) p) (concatMap g ops)
-  where g (VarOp _ x) = f $ sName x
-        g (ConOp _ x) = f $ sName x
-        f x = case mmdl of
-              Nothing -> [            S.UnQual x]
-              Just m  -> [S.Qual m x, S.UnQual x]
-getFixity _ _ = []
-
-instance AppFixity Annotation where
-    applyFixities fixs ann' = case ann' of
-        Ann     l n e   -> liftM (Ann l n) $ fix e
-        TypeAnn l n e   -> liftM (TypeAnn l n) $ fix e
-        ModuleAnn l e   -> liftM (ModuleAnn l) $ fix e
-      where fix x = applyFixities fixs x
-
-instance AppFixity ClassDecl where
-    applyFixities fixs (ClsDecl l decl) = liftM (ClsDecl l) $ applyFixities fixs decl
-    applyFixities _ cdecl = return cdecl
-
-instance AppFixity InstDecl where
-    applyFixities fixs (InsDecl l decl) = liftM (InsDecl l) $ applyFixities fixs decl
-    applyFixities _ idecl = return idecl
-
-instance AppFixity Match where
-    applyFixities fixs match = case match of
-        Match l n ps rhs bs -> liftM3 (Match l n) (mapM fix ps) (fix rhs) (mapM fix bs)
-        InfixMatch l a n ps rhs bs -> liftM4 (flip (InfixMatch l) n) (fix a) (mapM fix ps) (fix rhs) (mapM fix bs)
-      where fix x = applyFixities fixs x
-
-instance AppFixity Rhs where
-    applyFixities fixs rhs = case rhs of
-        UnGuardedRhs l e      -> liftM (UnGuardedRhs l) $ fix e
-        GuardedRhss l grhss   -> liftM (GuardedRhss l) $ mapM fix grhss
-      where fix x = applyFixities fixs x
-
-instance AppFixity GuardedRhs where
-    applyFixities fixs (GuardedRhs l stmts e) = liftM2 (GuardedRhs l) (mapM fix stmts) $ fix e
-      where fix x = applyFixities fixs x
-
-instance AppFixity PatField where
-    applyFixities fixs (PFieldPat l n p) = liftM (PFieldPat l n) $ applyFixities fixs p
-    applyFixities _ pf = return pf
-
-instance AppFixity RPat where
-    applyFixities fixs rp' = case rp' of
-        RPOp l rp op          -> liftM (flip (RPOp l) op) $ fix rp
-        RPEither l a b        -> liftM2 (RPEither l) (fix a) (fix b)
-        RPSeq l rps           -> liftM (RPSeq l) $ mapM fix rps
-        RPGuard l p stmts     -> liftM2 (RPGuard l) (fix p) $ mapM fix stmts
-        RPCAs l n rp          -> liftM (RPCAs l n) $ fix rp
-        RPAs l n rp           -> liftM (RPAs l n) $ fix rp
-        RPParen l rp          -> liftM (RPParen l) $ fix rp
-        RPPat l p             -> liftM (RPPat l) $ fix p
-      where fix x = applyFixities fixs x
-
-instance AppFixity PXAttr where
-    applyFixities fixs (PXAttr l n p) = liftM (PXAttr l n) $ applyFixities fixs p
-
-instance AppFixity Stmt where
-    applyFixities fixs stmt = case stmt of
-        Generator l p e       -> liftM2 (Generator l) (fix p) (fix e)
-        Qualifier l e         -> liftM (Qualifier l) $ fix e
-        LetStmt l bs          -> liftM (LetStmt l) $ fix bs    -- special behavior
-        RecStmt l stmts       -> liftM (RecStmt l) $ mapM fix stmts
-      where fix x = applyFixities fixs x
-
-instance AppFixity Binds where
-    applyFixities fixs bs = case bs of
-        BDecls l decls        -> liftM (BDecls l) $ appFixDecls Nothing fixs decls  -- special behavior
-        IPBinds l ips         -> liftM (IPBinds l) $ mapM fix ips
-      where fix x = applyFixities fixs x
-
-
-instance AppFixity IPBind where
-    applyFixities fixs (IPBind l n e) = liftM (IPBind l n) $ applyFixities fixs e
-
-instance AppFixity FieldUpdate where
-    applyFixities fixs (FieldUpdate l n e) = liftM (FieldUpdate l n) $ applyFixities fixs e
-    applyFixities _ fup = return fup
-
-instance AppFixity Alt where
-    applyFixities fixs (Alt l p galts bs) = liftM3 (Alt l) (fix p) (fix galts) (mapM fix bs)
-      where fix x = applyFixities fixs x
-
-instance AppFixity QualStmt where
-    applyFixities fixs qstmt = case qstmt of
-        QualStmt     l s      -> liftM (QualStmt l) $ fix s
-        ThenTrans    l e      -> liftM (ThenTrans l) $ fix e
-        ThenBy       l e1 e2  -> liftM2 (ThenBy l) (fix e1) (fix e2)
-        GroupBy      l e      -> liftM (GroupBy l) (fix e)
-        GroupUsing   l e      -> liftM (GroupUsing l) (fix e)
-        GroupByUsing l e1 e2  -> liftM2 (GroupByUsing l) (fix e1) (fix e2)
-      where fix x = applyFixities fixs x
-
-instance AppFixity Bracket where
-    applyFixities fixs br = case br of
-        ExpBracket l e    -> liftM (ExpBracket l) $ fix e
-        PatBracket l p    -> liftM (PatBracket l) $ fix p
-        DeclBracket l ds  -> liftM (DeclBracket l) $ mapM fix ds
-        _                 -> return br
-      where fix x = applyFixities fixs x
-
-instance AppFixity Splice where
-    applyFixities fixs (ParenSplice l e) = liftM (ParenSplice l) $ applyFixities fixs e
-    applyFixities _ s = return s
-
-instance AppFixity XAttr where
-    applyFixities fixs (XAttr l n e) = liftM (XAttr l n) $ applyFixities fixs e
-
-
--- the boring boilerplate stuff for expressions too
--- Recursively fixes the "leaves" of the infix chains,
--- without yet touching the chain itself. We assume all chains are
--- left-associate to begin with.
-leafFix :: Monad m => [Fixity] -> Exp SrcSpanInfo -> m (Exp SrcSpanInfo)
-leafFix fixs e' = case e' of
-    InfixApp l e1 op e2       -> liftM2 (flip (InfixApp l) op) (leafFix fixs e1) (fix e2)
-    App l e1 e2               -> liftM2 (App l) (fix e1) (fix e2)
-    NegApp l e                -> liftM (NegApp l) $ fix e
-    Lambda l pats e           -> liftM2 (Lambda l) (mapM fix pats) $ fix e
-    Let l bs e                -> liftM2 (Let l) (fix bs) $ fix e
-    If l e a b                -> liftM3 (If l) (fix e) (fix a) (fix b)
-    MultiIf l alts            -> liftM (MultiIf l) (mapM fix alts)
-    Case l e alts             -> liftM2 (Case l) (fix e) $ mapM fix alts
-    Do l stmts                -> liftM (Do l) $ mapM fix stmts
-    MDo l stmts               -> liftM (MDo l) $ mapM fix stmts
-    Tuple l bx exps           -> liftM (Tuple l bx) $ mapM fix exps
-    List l exps               -> liftM (List l) $ mapM fix  exps
-    Paren l e                 -> liftM (Paren l) $ fix e
-    LeftSection l e op        -> liftM (flip (LeftSection l) op) (fix e)
-    RightSection l op e       -> liftM (RightSection l op) $ fix e
-    RecConstr l n fups        -> liftM (RecConstr l n) $ mapM fix fups
-    RecUpdate l e fups        -> liftM2 (RecUpdate l) (fix e) $ mapM fix fups
-    EnumFrom l e              -> liftM (EnumFrom l) $ fix e
-    EnumFromTo l e1 e2        -> liftM2 (EnumFromTo l) (fix e1) (fix e2)
-    EnumFromThen l e1 e2      -> liftM2 (EnumFromThen l) (fix e1) (fix e2)
-    EnumFromThenTo l e1 e2 e3 -> liftM3 (EnumFromThenTo l) (fix e1) (fix e2) (fix e3)
-    ListComp l e quals        -> liftM2 (ListComp l) (fix e) $ mapM fix quals
-    ParComp  l e qualss       -> liftM2 (ParComp l) (fix e) $ mapM (mapM fix) qualss
-    ExpTypeSig l e t          -> liftM (flip (ExpTypeSig l) t) (fix e)
-    BracketExp l b            -> liftM (BracketExp l) $ fix b
-    SpliceExp l s             -> liftM (SpliceExp l) $ fix s
-    XTag l n ats mexp cs      -> liftM3 (XTag l n) (mapM fix ats) (mapM fix mexp) (mapM fix cs)
-    XETag l n ats mexp        -> liftM2 (XETag l n) (mapM fix ats) (mapM fix mexp)
-    XExpTag l e               -> liftM (XExpTag l) $ fix e
-    XChildTag l cs            -> liftM (XChildTag l) $ mapM fix cs
-    Proc l p e                -> liftM2 (Proc l) (fix p) (fix e)
-    LeftArrApp l e1 e2        -> liftM2 (LeftArrApp l) (fix e1) (fix e2)
-    RightArrApp l e1 e2       -> liftM2 (RightArrApp l) (fix e1) (fix e2)
-    LeftArrHighApp l e1 e2    -> liftM2 (LeftArrHighApp l) (fix e1) (fix e2)
-    RightArrHighApp l e1 e2   -> liftM2 (RightArrHighApp l) (fix e1) (fix e2)
-    CorePragma l s e          -> liftM (CorePragma l s) (fix e)
-    SCCPragma l s e           -> liftM (SCCPragma l s) (fix e)
-    GenPragma l s ab cd e     -> liftM (GenPragma l s ab cd) (fix e)
-    LCase l alts              -> liftM (LCase l) $ mapM fix alts
-
-    _                         -> return e'
-  where
-    fix x = applyFixities fixs x
-
-leafFixP :: Monad m => [Fixity] -> Pat SrcSpanInfo -> m (Pat SrcSpanInfo)
-leafFixP fixs p' = case p' of
-        PInfixApp l p1 op p2    -> liftM2 (flip (PInfixApp l) op) (leafFixP fixs p1) (fix p2)
-        PApp l n ps             -> liftM (PApp l n) $ mapM fix ps
-        PTuple l bx ps          -> liftM (PTuple l bx) $ mapM fix ps
-        PList l ps              -> liftM (PList l) $ mapM fix ps
-        PParen l p              -> liftM (PParen l) $ fix p
-        PRec l n pfs            -> liftM (PRec l n) $ mapM fix pfs
-        PAsPat l n p            -> liftM (PAsPat l n) $ fix p
-        PIrrPat l p             -> liftM (PIrrPat l) $ fix p
-        PatTypeSig l p t        -> liftM (flip (PatTypeSig l) t) (fix p)
-        PViewPat l e p          -> liftM2 (PViewPat l) (fix e) (fix p)
-        PRPat l rps             -> liftM (PRPat l) $ mapM fix rps
-        PXTag l n ats mp ps     -> liftM3 (PXTag l n) (mapM fix ats) (mapM fix mp) (mapM fix ps)
-        PXETag l n ats mp       -> liftM2 (PXETag l n) (mapM fix ats) (mapM fix mp)
-        PXPatTag l p            -> liftM (PXPatTag l) $ fix p
-        PXRPats l rps           -> liftM (PXRPats l) $ mapM fix rps
-        PBangPat l p            -> liftM (PBangPat l) $ fix p
-        _                       -> return p'
-      where fix x = applyFixities fixs x
diff --git a/src/Language/Haskell/Exts/Annotated/Simplify.hs b/src/Language/Haskell/Exts/Annotated/Simplify.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated/Simplify.hs
+++ /dev/null
@@ -1,591 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.Simplify
--- Copyright   :  (c) Niklas Broberg 2009
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  experimental
--- Portability :  portable
---
--- This module contains code for translating from the annotated
--- complex AST in Language.Haskell.Exts.Annotated.Syntax
--- to the simpler, sparsely annotated AST in Language.Haskell.Exts.Syntax.
---
--- A function @sXYZ@ translates an annotated AST node of type @XYZ l@ into
--- a simple AST node of type @XYZ@. I would have prefered to use a MPTC
--- with an fd/type family to get a single exported function name, but
--- I wish to stay Haskell 2010 compliant. Let's hope for Haskell 2011.
---
------------------------------------------------------------------------------
-module Language.Haskell.Exts.Annotated.Simplify where
-
-import Language.Haskell.Exts.Annotated.Syntax
-import qualified Language.Haskell.Exts.Syntax as S
-
-import Language.Haskell.Exts.SrcLoc hiding (loc)
-
-import Data.Maybe (fromMaybe)
-
--- | Translate an annotated AST node representing a Haskell module, into
---   a simpler version that retains (almost) only abstract information.
---   In particular, XML and hybrid XML pages enabled by the XmlSyntax extension
---   are translated into standard Haskell modules with a @page@ function.
-sModule :: SrcInfo loc => Module loc -> S.Module
-sModule md = case md of
-    Module l mmh oss ids ds ->
-        let (mn, mwt, mes) = sModuleHead mmh
-         in S.Module (getPointLoc l) mn (map sModulePragma oss) mwt mes (map sImportDecl ids) (map sDecl ds)
-    XmlPage l mn oss xn attrs mat es   ->
-        let loc = getPointLoc l
-         in S.Module loc (sModuleName mn) (map sModulePragma oss)
-                      Nothing
-                      (Just [S.EVar S.NoNamespace $ S.UnQual $ S.Ident "page"])
-                        []
-                        [pageFun loc $ S.XTag loc (sXName xn) (map sXAttr attrs) (fmap sExp mat) (map sExp es)]
-    XmlHybrid l mmh oss ids ds xn attrs mat es  ->
-        let loc1 = getPointLoc l
-            loc2 = getPointLoc (ann xn)
-            (mn, mwt, mes) = sModuleHead mmh
-         in S.Module loc1 mn (map sModulePragma oss) mwt mes (map sImportDecl ids)
-                (map sDecl ds ++ [pageFun loc2 $ S.XTag loc2 (sXName xn) (map sXAttr attrs) (fmap sExp mat) (map sExp es)])
-  where pageFun :: SrcLoc -> S.Exp -> S.Decl
-        pageFun loc e = S.PatBind loc namePat rhs (S.BDecls [])
-            where namePat = S.PVar $ S.Ident "page"
-                  rhs = S.UnGuardedRhs e
-
-
--- | Translate an annotated AST node representing a Haskell declaration
---   into a simpler version. Note that in the simpler version, all declaration
---   nodes are still annotated by 'SrcLoc's.
-sDecl :: SrcInfo loc => Decl loc -> S.Decl
-sDecl decl = case decl of
-     TypeDecl     l dh t        ->
-        let (n, tvs) = sDeclHead dh
-         in S.TypeDecl (getPointLoc l) n tvs (sType t)
-     TypeFamDecl  l dh mk       ->
-        let (n, tvs) = sDeclHead dh
-         in S.TypeFamDecl (getPointLoc l) n tvs (fmap sKind mk)
-     ClosedTypeFamDecl  l dh mk eqs ->
-        let (n, tvs) = sDeclHead dh
-         in S.ClosedTypeFamDecl (getPointLoc l) n tvs (fmap sKind mk) (map sTypeEqn eqs)
-     DataDecl     l dn mctxt dh constrs mder    ->
-        let (n, tvs) = sDeclHead dh
-         in S.DataDecl (getPointLoc l) (sDataOrNew dn) (maybe [] sContext mctxt) n tvs (map sQualConDecl constrs) (maybe [] sDeriving mder)
-     GDataDecl    l dn mctxt dh mk gds mder     ->
-        let (n, tvs) = sDeclHead dh
-         in S.GDataDecl (getPointLoc l) (sDataOrNew dn) (maybe [] sContext mctxt) n tvs (fmap sKind mk) (map sGadtDecl gds) (maybe [] sDeriving mder)
-     DataFamDecl  l mctxt dh mk ->
-        let (n, tvs) = sDeclHead dh
-         in S.DataFamDecl (getPointLoc l) (maybe [] sContext mctxt) n tvs (fmap sKind mk)
-     TypeInsDecl  l t1 t2       -> S.TypeInsDecl (getPointLoc l) (sType t1) (sType t2)
-     DataInsDecl  l dn t constrs mder           ->
-        S.DataInsDecl (getPointLoc l) (sDataOrNew dn) (sType t) (map sQualConDecl constrs) (maybe [] sDeriving mder)
-     GDataInsDecl l dn t mk gds mder            ->
-        S.GDataInsDecl (getPointLoc l) (sDataOrNew dn) (sType t) (fmap sKind mk) (map sGadtDecl gds) (maybe [] sDeriving mder)
-     ClassDecl    l mctxt dh fds mcds           ->
-        let (n, tvs) = sDeclHead dh
-         in S.ClassDecl (getPointLoc l) (maybe [] sContext mctxt) n tvs (map sFunDep fds) (maybe [] (map sClassDecl) mcds)
-     InstDecl     l olp ih mids               ->
-        let (tvs, cxt, (qn, ts)) = sInstRule ih
-         in S.InstDecl (getPointLoc l) (fmap sOverlap olp) tvs cxt qn ts (maybe [] (map sInstDecl) mids)
-     DerivDecl    l olp ih    ->
-        let (tvs, cxt, (qn, ts)) = sInstRule ih
-         in S.DerivDecl (getPointLoc l) (fmap sOverlap olp) tvs cxt qn ts
-     InfixDecl    l ass prec ops    -> S.InfixDecl (getPointLoc l) (sAssoc ass) (fromMaybe 9 prec) (map sOp ops)
-     DefaultDecl  l ts          -> S.DefaultDecl (getPointLoc l) (map sType ts)
-     SpliceDecl   l sp          -> S.SpliceDecl (getPointLoc l) (sExp sp)
-     TypeSig      l ns t        -> S.TypeSig (getPointLoc l) (map sName ns) (sType t)
-     FunBind      _ ms          -> S.FunBind (map sMatch ms)
-     PatBind      l p rhs mbs    ->
-        S.PatBind (getPointLoc l) (sPat p) (sRhs rhs) (maybe (S.BDecls []) sBinds mbs)
-     ForImp       l cc msaf mstr n t    ->
-        S.ForImp (getPointLoc l) (sCallConv cc) (maybe (S.PlaySafe False) sSafety msaf) (fromMaybe "" mstr) (sName n) (sType t)
-     ForExp       l cc      mstr n t    ->
-        S.ForExp (getPointLoc l) (sCallConv cc) (fromMaybe "" mstr) (sName n) (sType t)
-     RulePragmaDecl   l rs      -> S.RulePragmaDecl (getPointLoc l) (map sRule rs)
-     DeprPragmaDecl   l nsstrs  -> S.DeprPragmaDecl (getPointLoc l) (map (\(ns, str) -> (map sName ns, str)) nsstrs)
-     WarnPragmaDecl   l nsstrs  -> S.WarnPragmaDecl (getPointLoc l) (map (\(ns, str) -> (map sName ns, str)) nsstrs)
-     InlineSig        l b mact qn   -> S.InlineSig (getPointLoc l) b (maybe S.AlwaysActive sActivation mact) (sQName qn)
-     InlineConlikeSig l   mact qn   -> S.InlineConlikeSig (getPointLoc l) (maybe S.AlwaysActive sActivation mact) (sQName qn)
-     SpecSig          l   mact qn ts   -> S.SpecSig (getPointLoc l) (maybe S.AlwaysActive sActivation mact) (sQName qn) (map sType ts)
-     SpecInlineSig    l b mact qn ts    ->
-        S.SpecInlineSig (getPointLoc l) b (maybe S.AlwaysActive sActivation mact) (sQName qn) (map sType ts)
-     InstSig          l ih    ->
-        let (tvs, cxt, (qn, ts)) = sInstRule ih
-         in S.InstSig (getPointLoc l) tvs cxt qn ts
-     AnnPragma        l ann'        ->
-        S.AnnPragma (getPointLoc l) (sAnnotation ann')
-     MinimalPragma    l b           ->
-        S.MinimalPragma (getPointLoc l) (fmap sBooleanFormula b)
-
-sTypeEqn :: SrcInfo l => TypeEqn l -> S.TypeEqn
-sTypeEqn (TypeEqn _ a b) = S.TypeEqn (sType a) (sType b)
-
-sAnnotation :: SrcInfo loc => Annotation loc -> S.Annotation
-sAnnotation ann' = case ann' of
-    Ann       _ n e   -> S.Ann     (sName n) (sExp e)
-    TypeAnn   _ n e   -> S.TypeAnn (sName n) (sExp e)
-    ModuleAnn _   e   -> S.ModuleAnn         (sExp e)
-
-sBooleanFormula :: SrcInfo loc => BooleanFormula loc -> S.BooleanFormula
-sBooleanFormula b' = case b' of
-    VarFormula _ n   -> S.VarFormula (sName n)
-    AndFormula _ ns  -> S.AndFormula $ map sBooleanFormula ns
-    OrFormula _  ns  -> S.OrFormula $ map sBooleanFormula ns
-    ParenFormula _ b -> S.ParenFormula (sBooleanFormula b)
-
-sModuleName :: ModuleName l -> S.ModuleName
-sModuleName (ModuleName _ str)  = S.ModuleName str
-
-sSpecialCon :: SpecialCon l -> S.SpecialCon
-sSpecialCon sc = case sc of
-    UnitCon _           -> S.UnitCon
-    ListCon _           -> S.ListCon
-    FunCon  _           -> S.FunCon
-    TupleCon _ b k      -> S.TupleCon b k
-    Cons _              -> S.Cons
-    UnboxedSingleCon _  -> S.UnboxedSingleCon
-
-sQName :: QName l -> S.QName
-sQName qn = case qn of
-    Qual    _ mn n  -> S.Qual (sModuleName mn) (sName n)
-    UnQual  _    n  -> S.UnQual (sName n)
-    Special _ sc    -> S.Special (sSpecialCon sc)
-
-sName :: Name l -> S.Name
-sName (Ident _ str) = S.Ident str
-sName (Symbol _ str) = S.Symbol str
-
-sIPName :: IPName l -> S.IPName
-sIPName (IPDup _ str) = S.IPDup str
-sIPName (IPLin _ str) = S.IPLin str
-
-sQOp :: QOp l -> S.QOp
-sQOp (QVarOp _ qn) = S.QVarOp (sQName qn)
-sQOp (QConOp _ qn) = S.QConOp (sQName qn)
-
-sOp :: Op l -> S.Op
-sOp (VarOp _ n) = S.VarOp (sName n)
-sOp (ConOp _ n) = S.ConOp (sName n)
-
-sCName :: CName l -> S.CName
-sCName (VarName _ n) = S.VarName (sName n)
-sCName (ConName _ n) = S.ConName (sName n)
-
-sModuleHead :: Maybe (ModuleHead l) -> (S.ModuleName, Maybe S.WarningText, Maybe [S.ExportSpec])
-sModuleHead mmh = case mmh of
-    Nothing -> (S.main_mod, Nothing, Just [S.EVar S.NoNamespace (S.UnQual S.main_name)])
-    Just (ModuleHead _ mn mwt mel) -> (sModuleName mn, fmap sWarningText mwt, fmap sExportSpecList mel)
-
-sExportSpecList :: ExportSpecList l -> [S.ExportSpec]
-sExportSpecList (ExportSpecList _ ess) = map sExportSpec ess
-
-sExportSpec :: ExportSpec l -> S.ExportSpec
-sExportSpec es = case es of
-    EVar _ n qn         -> S.EVar (sNamespace n) (sQName qn)
-    EAbs _ qn           -> S.EAbs (sQName qn)
-    EThingAll _ qn      -> S.EThingAll (sQName qn)
-    EThingWith _ qn cns -> S.EThingWith (sQName qn) (map sCName cns)
-    EModuleContents _ mn    -> S.EModuleContents (sModuleName mn)
-
-sImportDecl :: SrcInfo loc => ImportDecl loc -> S.ImportDecl
-sImportDecl (ImportDecl l mn qu src safe mpkg as misl) =
-    S.ImportDecl (getPointLoc l) (sModuleName mn) qu src safe mpkg (fmap sModuleName as) (fmap sImportSpecList misl)
-
-sImportSpecList :: ImportSpecList l -> (Bool, [S.ImportSpec])
-sImportSpecList (ImportSpecList _ b iss) = (b, map sImportSpec iss)
-
-sNamespace :: Namespace l -> S.Namespace
-sNamespace n = case n of
-                NoNamespace _   -> S.NoNamespace
-                TypeNamespace _ -> S.TypeNamespace
-
-sImportSpec :: ImportSpec l -> S.ImportSpec
-sImportSpec is = case is of
-    IVar _ ns n          -> S.IVar (sNamespace ns) (sName n)
-    IAbs _ n            -> S.IAbs (sName n)
-    IThingAll _ n       -> S.IThingAll (sName n)
-    IThingWith _ n cns  -> S.IThingWith (sName n) (map sCName cns)
-
-sAssoc :: Assoc l -> S.Assoc
-sAssoc a = case a of
-    AssocNone  _ -> S.AssocNone
-    AssocLeft  _ -> S.AssocLeft
-    AssocRight _ -> S.AssocRight
-
-sDeclHead :: DeclHead l -> (S.Name, [S.TyVarBind])
-sDeclHead = go []
-  where go ts dh' = case dh' of
-                        DHead _ n           -> (sName n, ts)
-                        DHInfix _ tva n     -> (sName n, sTyVarBind tva:ts)
-                        DHParen _ dh        -> (n, ts1 ++ ts)
-                          where (n, ts1) = sDeclHead dh
-                        DHApp _ dh t        -> go (sTyVarBind t:ts) dh
-
-sInstRule :: SrcInfo l => InstRule l -> ([S.TyVarBind], [S.Asst], (S.QName, [S.Type]))
-sInstRule ih' = case ih' of
-                    IRule _ mtvs mctxt qn   -> (tvs, cxt, sInstHead qn)
-                        where cxt = maybe [] sContext mctxt
-                              tvs = maybe [] (map sTyVarBind) mtvs
-                    IParen _ ir             -> sInstRule ir
-
-sInstHead :: SrcInfo l => InstHead l -> (S.QName, [S.Type])
-sInstHead = go []
-    where go ts' d' = case d' of
-                        IHCon _ qn         -> (sQName qn, ts')
-                        IHInfix _ ta qn    -> (sQName qn, sType ta:ts')
-                        IHParen _ ih       -> (n, ts1 ++ ts')
-                          where (n, ts1) = sInstHead ih
-                        IHApp _ ih t       -> go (sType t:ts') ih
-
-sDataOrNew :: DataOrNew l -> S.DataOrNew
-sDataOrNew (DataType _) = S.DataType
-sDataOrNew (NewType _) = S.NewType
-
-sDeriving :: SrcInfo l => Deriving l -> [(S.QName, [S.Type])]
-sDeriving (Deriving _ irs) = map (\ir -> let (_, _, ret) = sInstRule ir in ret) irs
-
-sBinds :: SrcInfo loc => Binds loc -> S.Binds
-sBinds bs = case bs of
-    BDecls  _ decls     -> S.BDecls (map sDecl decls)
-    IPBinds _ ipbds     -> S.IPBinds (map sIPBind ipbds)
-
-sIPBind :: SrcInfo loc => IPBind loc -> S.IPBind
-sIPBind (IPBind l ipn e) = S.IPBind (getPointLoc l) (sIPName ipn) (sExp e)
-
-sMatch :: SrcInfo loc => Match loc -> S.Match
-sMatch (Match l n ps rhs mwhere) =
-    S.Match (getPointLoc l) (sName n) (map sPat ps) Nothing (sRhs rhs) (maybe (S.BDecls []) sBinds mwhere)
-sMatch (InfixMatch l pa n pbs rhs mwhere) =
-    S.Match (getPointLoc l) (sName n) (map sPat (pa:pbs)) Nothing (sRhs rhs) (maybe (S.BDecls []) sBinds mwhere)
-
-sQualConDecl :: SrcInfo loc => QualConDecl loc -> S.QualConDecl
-sQualConDecl (QualConDecl l mtvs mctxt cd) =
-    S.QualConDecl (getPointLoc l) (maybe [] (map sTyVarBind) mtvs) (maybe [] sContext mctxt) (sConDecl cd)
-
-sConDecl :: SrcInfo l => ConDecl l -> S.ConDecl
-sConDecl cd = case cd of
-    ConDecl _ n bts     -> S.ConDecl (sName n) (map sType bts)
-    InfixConDecl _ bta n btb -> S.InfixConDecl (sType bta) (sName n) (sType btb)
-    RecDecl _ n fds -> S.RecDecl (sName n) (map sFieldDecl fds)
-
-sFieldDecl :: SrcInfo l => FieldDecl l -> ([S.Name], S.Type)
-sFieldDecl (FieldDecl _ ns bt) = (map sName ns, sType bt)
-
-sGadtDecl :: SrcInfo loc => GadtDecl loc -> S.GadtDecl
-sGadtDecl (GadtDecl l n mn t) = S.GadtDecl (getPointLoc l) (sName n) (maybe [] sRecFields mn) (sType t)
-
-sClassDecl :: SrcInfo loc => ClassDecl loc -> S.ClassDecl
-sClassDecl cd = case cd of
-    ClsDecl _ d  -> S.ClsDecl (sDecl d)
-    ClsDataFam l mctxt dh mk    ->
-        let (n, tvs) = sDeclHead dh
-         in S.ClsDataFam (getPointLoc l) (maybe [] sContext mctxt) n tvs (fmap sKind mk)
-    ClsTyFam l dh mk    ->
-        let (n, tvs) = sDeclHead dh
-         in S.ClsTyFam (getPointLoc l) n tvs (fmap sKind mk)
-    ClsTyDef l t1 t2    ->
-        S.ClsTyDef (getPointLoc l) (sType t1) (sType t2)
-    ClsDefSig l n t ->
-        S.ClsDefSig (getPointLoc l) (sName n) (sType t)
-
-sRecFields :: SrcInfo l => [FieldDecl l] -> [([S.Name], S.Type)]
-sRecFields = map sFieldDecl
-
-sInstDecl :: SrcInfo loc => InstDecl loc -> S.InstDecl
-sInstDecl id' = case id' of
-    InsDecl   _ d   -> S.InsDecl (sDecl d)
-    InsType   l t1 t2   -> S.InsType (getPointLoc l) (sType t1) (sType t2)
-    InsData   l dn t constrs mder   ->
-        S.InsData (getPointLoc l) (sDataOrNew dn) (sType t) (map sQualConDecl constrs) (maybe [] sDeriving mder)
-    InsGData  l dn t mk gds mder    ->
-        S.InsGData (getPointLoc l) (sDataOrNew dn) (sType t) (fmap sKind mk) (map sGadtDecl gds) (maybe [] sDeriving mder)
---    InsInline l b mact qn   -> S.InsInline (getPointLoc l) b (maybe S.AlwaysActive sActivation mact) (sQName qn)
-
-sBangType :: SrcInfo l => BangType l -> S.BangType
-sBangType bt = case bt of
-    BangedTy   _  -> S.BangedTy
-    UnpackedTy _  -> S.UnpackedTy
-
-sRhs :: SrcInfo loc => Rhs loc -> S.Rhs
-sRhs (UnGuardedRhs _ e) = S.UnGuardedRhs (sExp e)
-sRhs (GuardedRhss _ grhss) = S.GuardedRhss (map sGuardedRhs grhss)
-
-sGuardedRhs :: SrcInfo loc => GuardedRhs loc -> S.GuardedRhs
-sGuardedRhs (GuardedRhs l ss e) = S.GuardedRhs (getPointLoc l) (map sStmt ss) (sExp e)
-
-sType :: SrcInfo l => Type l -> S.Type
-sType t' = case t' of
-    TyForall _ mtvs mctxt t     -> S.TyForall (fmap (map sTyVarBind) mtvs) (maybe [] sContext mctxt) (sType t)
-    TyFun _ t1 t2               -> S.TyFun (sType t1) (sType t2)
-    TyTuple _ bx ts             -> S.TyTuple bx (map sType ts)
-    TyList _ t                  -> S.TyList (sType t)
-    TyParArray _ t              -> S.TyParArray (sType t)
-    TyApp _ t1 t2               -> S.TyApp (sType t1) (sType t2)
-    TyVar _ n                   -> S.TyVar (sName n)
-    TyCon _ qn                  -> S.TyCon (sQName qn)
-    TyParen _ t                 -> S.TyParen (sType t)
-    TyInfix _ ta qn tb          -> S.TyInfix (sType ta) (sQName qn) (sType tb)
-    TyKind _ t k                -> S.TyKind (sType t) (sKind k)
-    TyPromoted _ t              -> S.TyPromoted (sPromoted t)
-    TyEquals _ t1 t2            -> S.TyEquals (sType t1) (sType t2)
-    TySplice _ s                -> S.TySplice (sSplice s)
-    TyBang _ b t                -> S.TyBang (sBangType b) (sType t)
-
-sPromoted :: Promoted l -> S.Promoted
-sPromoted p = case p of
-    PromotedInteger _ n _ -> S.PromotedInteger n
-    PromotedString _ s _ -> S.PromotedString s
-    PromotedCon _ b qn -> S.PromotedCon b (sQName qn)
-    PromotedList _ b ps -> S.PromotedList b (map sPromoted ps)
-    PromotedTuple _ ps -> S.PromotedTuple (map sPromoted ps)
-    PromotedUnit _ -> S.PromotedUnit
-
-
-sTyVarBind :: TyVarBind l -> S.TyVarBind
-sTyVarBind (KindedVar _ n k) = S.KindedVar (sName n) (sKind k)
-sTyVarBind (UnkindedVar _ n) = S.UnkindedVar (sName n)
-
-sKind :: Kind l -> S.Kind
-sKind k' = case k' of
-    KindStar  _     -> S.KindStar
-    KindBang  _     -> S.KindBang
-    KindFn _ k1 k2  -> S.KindFn (sKind k1) (sKind k2)
-    KindParen _ k   -> S.KindParen (sKind k)
-    KindVar _ n     -> S.KindVar (sQName n)
-    KindApp _ k1 k2 -> S.KindApp (sKind k1) (sKind k2)
-    KindTuple _ ks  -> S.KindTuple (map sKind ks)
-    KindList  _ ks  -> S.KindList  (map sKind ks)
-
-sFunDep :: FunDep l -> S.FunDep
-sFunDep (FunDep _ as bs) = S.FunDep (map sName as) (map sName bs)
-
-sContext :: SrcInfo l => Context l -> S.Context
-sContext ctxt = case ctxt of
-    CxSingle _ asst     -> [sAsst asst]
-    CxTuple  _ assts    -> map sAsst assts
-    CxEmpty  _          -> []
-
-sAsst :: SrcInfo l => Asst l -> S.Asst
-sAsst asst = case asst of
-    ClassA _ qn ts      -> S.ClassA (sQName qn) (map sType ts)
-    VarA _ n            -> S.VarA (sName n)
-    InfixA _ ta qn tb   -> S.InfixA (sType ta) (sQName qn) (sType tb)
-    IParam _ ipn t      -> S.IParam (sIPName ipn) (sType t)
-    EqualP _ t1 t2      -> S.EqualP (sType t1) (sType t2)
-    ParenA _ a          -> S.ParenA (sAsst a)
-
-sLiteral :: Literal l -> S.Literal
-sLiteral lit = case lit of
-    Char       _ c _ -> S.Char c
-    String     _ s _ -> S.String s
-    Int        _ i _ -> S.Int i
-    Frac       _ r _ -> S.Frac r
-    PrimInt    _ i _ -> S.PrimInt i
-    PrimWord   _ i _ -> S.PrimWord i
-    PrimFloat  _ r _ -> S.PrimFloat r
-    PrimDouble _ r _ -> S.PrimDouble r
-    PrimChar   _ c _ -> S.PrimChar c
-    PrimString _ s _ -> S.PrimString s
-
-sSign :: Sign l -> S.Sign
-sSign sg = case sg of
-    Signless _ -> S.Signless
-    Negative _ -> S.Negative
-
-sExp :: SrcInfo loc => Exp loc -> S.Exp
-sExp e' = case e' of
-    Var _ qn            -> S.Var (sQName qn)
-    IPVar _ ipn         -> S.IPVar (sIPName ipn)
-    Con _ qn            -> S.Con (sQName qn)
-    Lit _ lit           -> S.Lit (sLiteral lit)
-    InfixApp _ e1 op e2 -> S.InfixApp (sExp e1) (sQOp op) (sExp e2)
-    App _ e1 e2         -> S.App (sExp e1) (sExp e2)
-    NegApp _ e          -> S.NegApp (sExp e)
-    Lambda l ps e       -> S.Lambda (getPointLoc l) (map sPat ps) (sExp e)
-    Let _ bs e          -> S.Let (sBinds bs) (sExp e)
-    If _ e1 e2 e3       -> S.If (sExp e1) (sExp e2) (sExp e3)
-    MultiIf _ alts      -> S.MultiIf (map sGuardedRhs alts)
-    Case _ e alts       -> S.Case (sExp e) (map sAlt alts)
-    Do _ ss             -> S.Do (map sStmt ss)
-    MDo _ ss            -> S.MDo (map sStmt ss)
-    Tuple _ bx es       -> S.Tuple bx (map sExp es)
-    TupleSection _ bx mes -> S.TupleSection bx (map (fmap sExp) mes)
-    List _ es           -> S.List (map sExp es)
-    ParArray _ es       -> S.ParArray (map sExp es)
-    Paren _ e           -> S.Paren (sExp e)
-    LeftSection _ e op  -> S.LeftSection (sExp e) (sQOp op)
-    RightSection _ op e -> S.RightSection (sQOp op) (sExp e)
-    RecConstr _ qn fups -> S.RecConstr (sQName qn) (map sFieldUpdate fups)
-    RecUpdate _ e fups  -> S.RecUpdate (sExp e) (map sFieldUpdate fups)
-    EnumFrom _ e        -> S.EnumFrom (sExp e)
-    EnumFromTo _ e1 e2  -> S.EnumFromTo (sExp e1) (sExp e2)
-    EnumFromThen _ e1 e2    -> S.EnumFromThen (sExp e1) (sExp e2)
-    EnumFromThenTo _ e1 e2 e3   -> S.EnumFromThenTo (sExp e1) (sExp e2) (sExp e3)
-    ParArrayFromTo _ e1 e2 -> S.ParArrayFromTo (sExp e1) (sExp e2)
-    ParArrayFromThenTo _ e1 e2 e3 -> S.ParArrayFromThenTo (sExp e1) (sExp e2) (sExp e3)
-    ListComp _ e qss    -> S.ListComp (sExp e) (map sQualStmt qss)
-    ParComp  _ e qsss   -> S.ParComp (sExp e) (map (map sQualStmt) qsss)
-    ParArrayComp  _ e qsss -> S.ParArrayComp (sExp e) (map (map sQualStmt) qsss)
-    ExpTypeSig l e t    -> S.ExpTypeSig (getPointLoc l) (sExp e) (sType t)
-    VarQuote _ qn       -> S.VarQuote (sQName qn)
-    TypQuote _ qn       -> S.TypQuote (sQName qn)
-    BracketExp _ br     -> S.BracketExp (sBracket br)
-    SpliceExp _ sp      -> S.SpliceExp (sSplice sp)
-    QuasiQuote _ nm qt  -> S.QuasiQuote nm qt
-    XTag l xn attrs mat es  -> S.XTag  (getPointLoc l) (sXName xn) (map sXAttr attrs) (fmap sExp mat) (map sExp es)
-    XETag l xn attrs mat    -> S.XETag (getPointLoc l) (sXName xn) (map sXAttr attrs) (fmap sExp mat)
-    XPcdata _ str       -> S.XPcdata str
-    XExpTag _ e         -> S.XExpTag (sExp e)
-    XChildTag l es      -> S.XChildTag (getPointLoc l) (map sExp es)
-    CorePragma _ str e  -> S.CorePragma str (sExp e)
-    SCCPragma  _ str e  -> S.SCCPragma  str (sExp e)
-    GenPragma  _ str i12 i34 e  -> S.GenPragma str i12 i34 (sExp e)
-    Proc            l p  e  -> S.Proc (getPointLoc l) (sPat p) (sExp e)
-    LeftArrApp      _ e1 e2 -> S.LeftArrApp (sExp e1) (sExp e2)
-    RightArrApp     _ e1 e2 -> S.RightArrApp (sExp e1) (sExp e2)
-    LeftArrHighApp  _ e1 e2 -> S.LeftArrHighApp (sExp e1) (sExp e2)
-    RightArrHighApp _ e1 e2 -> S.RightArrHighApp (sExp e1) (sExp e2)
-    LCase _ alts -> S.LCase (map sAlt alts)
-
-
-sXName :: XName l -> S.XName
-sXName (XName _ str) = S.XName str
-sXName (XDomName _ dom str) = S.XDomName dom str
-
-sXAttr :: SrcInfo loc => XAttr loc -> S.XAttr
-sXAttr (XAttr _ xn e) = S.XAttr (sXName xn) (sExp e)
-
-sBracket:: SrcInfo loc => Bracket loc -> S.Bracket
-sBracket br = case br of
-    ExpBracket _ e  -> S.ExpBracket (sExp e)
-    PatBracket _ p  -> S.PatBracket (sPat p)
-    TypeBracket _ t -> S.TypeBracket (sType t)
-    DeclBracket _ ds -> S.DeclBracket (map sDecl ds)
-
-sSplice :: SrcInfo loc => Splice loc -> S.Splice
-sSplice (IdSplice _ str) = S.IdSplice str
-sSplice (ParenSplice _ e) = S.ParenSplice (sExp e)
-
-sSafety :: Safety l -> S.Safety
-sSafety (PlayRisky _) = S.PlayRisky
-sSafety (PlaySafe _ b) = S.PlaySafe b
-sSafety (PlayInterruptible _) = S.PlayInterruptible
-
-sCallConv :: CallConv l -> S.CallConv
-sCallConv (StdCall   _) = S.StdCall
-sCallConv (CCall     _) = S.CCall
-sCallConv (CPlusPlus _) = S.CPlusPlus
-sCallConv (DotNet    _) = S.DotNet
-sCallConv (Jvm       _) = S.Jvm
-sCallConv (Js        _) = S.Js
-sCallConv (CApi      _) = S.CApi
-
-sModulePragma :: SrcInfo loc => ModulePragma loc -> S.ModulePragma
-sModulePragma pr = case pr of
-    LanguagePragma   l ns   -> S.LanguagePragma (getPointLoc l) (map sName ns)
-    OptionsPragma    l mt str -> S.OptionsPragma (getPointLoc l) mt str
-    AnnModulePragma  l ann' -> S.AnnModulePragma (getPointLoc l) (sAnnotation ann')
-
-sOverlap :: SrcInfo loc => Overlap loc -> S.Overlap
-sOverlap o' = case o' of
-    NoOverlap _   -> S.NoOverlap
-    Overlap _     -> S.Overlap
-    Incoherent _  -> S.Incoherent
-
-sActivation :: Activation l -> S.Activation
-sActivation act = case act of
-    ActiveFrom   _ k    -> S.ActiveFrom k
-    ActiveUntil  _ k    -> S.ActiveUntil k
-
-sRule :: SrcInfo loc => Rule loc -> S.Rule
-sRule (Rule _ str mact mrvs e1 e2) =
-    S.Rule str (maybe S.AlwaysActive sActivation mact) (fmap (map sRuleVar) mrvs) (sExp e1) (sExp e2)
-
-sRuleVar :: SrcInfo l => RuleVar l -> S.RuleVar
-sRuleVar (RuleVar _ n) = S.RuleVar (sName n)
-sRuleVar (TypedRuleVar _ n t) = S.TypedRuleVar (sName n) (sType t)
-
-sWarningText :: WarningText l -> S.WarningText
-sWarningText (DeprText _ str) = S.DeprText str
-sWarningText (WarnText _ str) = S.WarnText str
-
-sPat :: SrcInfo loc => Pat loc -> S.Pat
-sPat pat = case pat of
-    PVar _ n            -> S.PVar (sName n)
-    PLit _ sg lit       -> S.PLit (sSign sg) (sLiteral lit)
-    PNPlusK _ n k       -> S.PNPlusK (sName n) k
-    PInfixApp _ pa qn pb -> S.PInfixApp (sPat pa) (sQName qn) (sPat pb)
-    PApp _ qn ps        -> S.PApp (sQName qn) (map sPat ps)
-    PTuple _ bx ps      -> S.PTuple bx (map sPat ps)
-    PList _ ps          -> S.PList (map sPat ps)
-    PParen _ p          -> S.PParen (sPat p)
-    PRec _ qn pfs       -> S.PRec (sQName qn) (map sPatField pfs)
-    PAsPat _ n p        -> S.PAsPat (sName n) (sPat p)
-    PWildCard _         -> S.PWildCard
-    PIrrPat _ p         -> S.PIrrPat (sPat p)
-    PatTypeSig l p t    -> S.PatTypeSig (getPointLoc l) (sPat p) (sType t)
-    PViewPat _ e p      -> S.PViewPat (sExp e) (sPat p)
-    PRPat _ rps         -> S.PRPat (map sRPat rps)
-    PXTag l xn attrs mat ps -> S.PXTag (getPointLoc l) (sXName xn) (map sPXAttr attrs) (fmap sPat mat) (map sPat ps)
-    PXETag l xn attrs mat   -> S.PXETag (getPointLoc l) (sXName xn) (map sPXAttr attrs) (fmap sPat mat)
-    PXPcdata _ str      -> S.PXPcdata str
-    PXPatTag _ p        -> S.PXPatTag (sPat p)
-    PXRPats  _ rps      -> S.PXRPats (map sRPat rps)
-    PQuasiQuote _ nm qt -> S.PQuasiQuote nm qt
-    PBangPat _ p        -> S.PBangPat (sPat p)
-
-sPXAttr :: SrcInfo loc => PXAttr loc -> S.PXAttr
-sPXAttr (PXAttr _ xn p) = S.PXAttr (sXName xn) (sPat p)
-
-sRPatOp :: RPatOp l -> S.RPatOp
-sRPatOp rpop = case rpop of
-    RPStar  _ -> S.RPStar
-    RPStarG _ -> S.RPStarG
-    RPPlus  _ -> S.RPPlus
-    RPPlusG _ -> S.RPPlusG
-    RPOpt   _ -> S.RPOpt
-    RPOptG  _ -> S.RPOptG
-
-sRPat :: SrcInfo loc => RPat loc -> S.RPat
-sRPat rp' = case rp' of
-    RPOp _ rp rop       -> S.RPOp (sRPat rp) (sRPatOp rop)
-    RPEither _ rp1 rp2  -> S.RPEither (sRPat rp1) (sRPat rp2)
-    RPSeq _ rps         -> S.RPSeq (map sRPat rps)
-    RPGuard _ p ss      -> S.RPGuard (sPat p) (map sStmt ss)
-    RPCAs _ n rp        -> S.RPCAs (sName n) (sRPat rp)
-    RPAs _ n rp         -> S.RPAs (sName n) (sRPat rp)
-    RPParen _ rp        -> S.RPParen (sRPat rp)
-    RPPat _ p           -> S.RPPat (sPat p)
-
-sPatField :: SrcInfo loc => PatField loc -> S.PatField
-sPatField pf = case pf of
-    PFieldPat _ qn p    -> S.PFieldPat (sQName qn) (sPat p)
-    PFieldPun _ qn      -> S.PFieldPun (sQName qn)
-    PFieldWildcard _    -> S.PFieldWildcard
-
-sStmt :: SrcInfo loc => Stmt loc -> S.Stmt
-sStmt stmt = case stmt of
-    Generator l p e     -> S.Generator (getPointLoc l) (sPat p) (sExp e)
-    Qualifier _ e       -> S.Qualifier (sExp e)
-    LetStmt _ bs        -> S.LetStmt (sBinds bs)
-    RecStmt _ ss        -> S.RecStmt (map sStmt ss)
-
-sQualStmt :: SrcInfo loc => QualStmt loc -> S.QualStmt
-sQualStmt qs = case qs of
-    QualStmt     _ stmt     -> S.QualStmt (sStmt stmt)
-    ThenTrans    _ e        -> S.ThenTrans (sExp e)
-    ThenBy       _ e1 e2    -> S.ThenBy (sExp e1) (sExp e2)
-    GroupBy      _ e        -> S.GroupBy (sExp e)
-    GroupUsing   _ e        -> S.GroupUsing (sExp e)
-    GroupByUsing _ e1 e2    -> S.GroupByUsing (sExp e1) (sExp e2)
-
-sFieldUpdate :: SrcInfo loc => FieldUpdate loc -> S.FieldUpdate
-sFieldUpdate fu = case fu of
-    FieldUpdate _ qn e      -> S.FieldUpdate (sQName qn) (sExp e)
-    FieldPun _ qn           -> S.FieldPun (sQName qn)
-    FieldWildcard _         -> S.FieldWildcard
-
-sAlt :: SrcInfo loc => Alt loc -> S.Alt
-sAlt (Alt l p galts mbs) = S.Alt (getPointLoc l) (sPat p) (sRhs galts) (maybe (S.BDecls []) sBinds mbs)
diff --git a/src/Language/Haskell/Exts/Annotated/Syntax.hs b/src/Language/Haskell/Exts/Annotated/Syntax.hs
deleted file mode 100644
--- a/src/Language/Haskell/Exts/Annotated/Syntax.hs
+++ /dev/null
@@ -1,1784 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable, DeriveFoldable, DeriveTraversable, DeriveFunctor, DeriveGeneric #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Annotated.Syntax
--- Copyright   :  (c) Niklas Broberg 2004-2009,
---                (c) The GHC Team, 1997-2000
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- A suite of datatypes describing the (semi-concrete) abstract syntax of Haskell 98
--- <http://www.haskell.org/onlinereport/> plus registered extensions, including:
---
---   * multi-parameter type classes with functional dependencies (MultiParamTypeClasses, FunctionalDependencies)
---
---   * parameters of type class assertions are unrestricted (FlexibleContexts)
---
---   * 'forall' types as universal and existential quantification (RankNTypes, ExistentialQuantification, etc)
---
---   * pattern guards (PatternGuards)
---
---   * implicit parameters (ImplicitParameters)
---
---   * generalised algebraic data types (GADTs)
---
---   * template haskell (TemplateHaskell)
---
---   * empty data type declarations (EmptyDataDecls)
---
---   * unboxed tuples (UnboxedTuples)
---
---   * regular patterns (RegularPatterns)
---
---   * HSP-style XML expressions and patterns (XmlSyntax)
---
--- All nodes in the syntax tree are annotated with something of a user-definable data type.
--- When parsing, this annotation will contain information about the source location that the
--- particular node comes from.
---
------------------------------------------------------------------------------
-
-module Language.Haskell.Exts.Annotated.Syntax (
-    -- * Modules
-    Module(..), ModuleHead(..), WarningText(..), ExportSpecList(..), ExportSpec(..),
-    ImportDecl(..), ImportSpecList(..), ImportSpec(..), Assoc(..), Namespace(..),
-    -- * Declarations
-    Decl(..), DeclHead(..), InstRule(..), InstHead(..), Binds(..), IPBind(..),
-    -- ** Type classes and instances
-    ClassDecl(..), InstDecl(..), Deriving(..),
-    -- ** Data type declarations
-    DataOrNew(..), ConDecl(..), FieldDecl(..), QualConDecl(..), GadtDecl(..), BangType(..),
-    -- ** Function bindings
-    Match(..), Rhs(..), GuardedRhs(..),
-    -- * Class Assertions and Contexts
-    Context(..), FunDep(..), Asst(..),
-    -- * Types
-    Type(..), Boxed(..), Kind(..), TyVarBind(..), Promoted(..),
-    TypeEqn (..),
-    -- * Expressions
-    Exp(..), Stmt(..), QualStmt(..), FieldUpdate(..),
-    Alt(..), XAttr(..),
-    -- * Patterns
-    Pat(..), PatField(..), PXAttr(..), RPat(..), RPatOp(..),
-    -- * Literals
-    Literal(..), Sign(..),
-    -- * Variables, Constructors and Operators
-    ModuleName(..), QName(..), Name(..), QOp(..), Op(..),
-    SpecialCon(..), CName(..), IPName(..), XName(..),
-
-    -- * Template Haskell
-    Bracket(..), Splice(..),
-
-    -- * FFI
-    Safety(..), CallConv(..),
-
-    -- * Pragmas
-    ModulePragma(..), Tool(..), Overlap(..),
-    Rule(..), RuleVar(..), Activation(..),
-    Annotation(..), BooleanFormula(..),
-
-    -- * Builtin names
-
-    -- ** Modules
-    prelude_mod, main_mod,
-    -- ** Main function of a program
-    main_name,
-    -- ** Constructors
-    unit_con_name, tuple_con_name, list_cons_name, unboxed_singleton_con_name,
-    unit_con, tuple_con, unboxed_singleton_con,
-    -- ** Special identifiers
-    as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name,
-    export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
-    stdcall_name, ccall_name, cplusplus_name, dotnet_name, jvm_name, js_name,
-    capi_name, forall_name, family_name,
-    -- ** Type constructors
-    unit_tycon_name, fun_tycon_name, list_tycon_name, tuple_tycon_name, unboxed_singleton_tycon_name,
-    unit_tycon, fun_tycon, list_tycon, tuple_tycon, unboxed_singleton_tycon,
-
-    -- * Source coordinates
-    -- SrcLoc(..),
-
-    -- * Annotated trees
-    Annotated(..), (=~=),
-  ) where
-
-import Prelude hiding (id)
-
-import Data.Data
-import GHC.Generics (Generic)
-import Data.Foldable (Foldable)
-import Data.Traversable (Traversable)
-
--- | The name of a Haskell module.
-data ModuleName l = ModuleName l String
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Constructors with special syntax.
--- These names are never qualified, and always refer to builtin type or
--- data constructors.
-data SpecialCon l
-    = UnitCon l             -- ^ unit type and data constructor @()@
-    | ListCon l             -- ^ list type constructor @[]@
-    | FunCon  l             -- ^ function type constructor @->@
-    | TupleCon l Boxed Int  -- ^ /n/-ary tuple type and data
-                            --   constructors @(,)@ etc, possibly boxed @(\#,\#)@
-    | Cons l                -- ^ list data constructor @(:)@
-    | UnboxedSingleCon l    -- ^ unboxed singleton tuple constructor @(\# \#)@
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | This type is used to represent qualified variables, and also
--- qualified constructors.
-data QName l
-    = Qual    l (ModuleName l) (Name l) -- ^ name qualified with a module name
-    | UnQual  l                (Name l) -- ^ unqualified local name
-    | Special l (SpecialCon l)          -- ^ built-in constructor with special syntax
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | This type is used to represent variables, and also constructors.
-data Name l
-    = Ident  l String   -- ^ /varid/ or /conid/.
-    | Symbol l String   -- ^ /varsym/ or /consym/
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An implicit parameter name.
-data IPName l
-    = IPDup l String -- ^ ?/ident/, non-linear implicit parameter
-    | IPLin l String -- ^ %/ident/, linear implicit parameter
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Possibly qualified infix operators (/qop/), appearing in expressions.
-data QOp l
-    = QVarOp l (QName l) -- ^ variable operator (/qvarop/)
-    | QConOp l (QName l) -- ^ constructor operator (/qconop/)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Operators appearing in @infix@ declarations are never qualified.
-data Op l
-    = VarOp l (Name l)    -- ^ variable operator (/varop/)
-    | ConOp l (Name l)    -- ^ constructor operator (/conop/)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A name (/cname/) of a component of a class or data type in an @import@
--- or export specification.
-data CName l
-    = VarName l (Name l) -- ^ name of a method or field
-    | ConName l (Name l) -- ^ name of a data constructor
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A complete Haskell source module.
-data Module l
-    = Module l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l]
-    -- ^ an ordinary Haskell module
-    | XmlPage l (ModuleName l) [ModulePragma l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
-    -- ^ a module consisting of a single XML document. The ModuleName never appears in the source
-    --   but is needed for semantic purposes, it will be the same as the file name.
-    | XmlHybrid l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l]
-                (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
-    -- ^ a hybrid module combining an XML document with an ordinary module
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The head of a module, including the name and export specification.
-data ModuleHead l = ModuleHead l (ModuleName l) (Maybe (WarningText l)) (Maybe (ExportSpecList l))
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An explicit export specification.
-data ExportSpecList l
-    = ExportSpecList l [ExportSpec l]
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An item in a module's export specification.
-data ExportSpec l
-     = EVar l (Namespace l) (QName l)   -- ^ variable.
-     | EAbs l (QName l)                 -- ^ @T@:
-                                        --   a class or datatype exported abstractly,
-                                        --   or a type synonym.
-     | EThingAll l (QName l)            -- ^ @T(..)@:
-                                        --   a class exported with all of its methods, or
-                                        --   a datatype exported with all of its constructors.
-     | EThingWith l (QName l) [CName l] -- ^ @T(C_1,...,C_n)@:
-                                        --   a class exported with some of its methods, or
-                                        --   a datatype exported with some of its constructors.
-     | EModuleContents l (ModuleName l) -- ^ @module M@:
-                                        --   re-export a module.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Namespaces for imports/exports.
-data Namespace l = NoNamespace l | TypeNamespace l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An import declaration.
-data ImportDecl l = ImportDecl
-    { importAnn :: l                   -- ^ annotation, used by parser for position of the @import@ keyword.
-    , importModule :: ModuleName l     -- ^ name of the module imported.
-    , importQualified :: Bool          -- ^ imported @qualified@?
-    , importSrc :: Bool                -- ^ imported with @{-\# SOURCE \#-}@?
-    , importSafe :: Bool               -- ^ Import @safe@?
-    , importPkg :: Maybe String        -- ^ imported with explicit package name
-    , importAs :: Maybe (ModuleName l) -- ^ optional alias name in an @as@ clause.
-    , importSpecs :: Maybe (ImportSpecList l)
-            -- ^ optional list of import specifications.
-    }
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An explicit import specification list.
-data ImportSpecList l
-    = ImportSpecList l Bool [ImportSpec l]
-            -- A list of import specifications.
-            -- The 'Bool' is 'True' if the names are excluded
-            -- by @hiding@.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An import specification, representing a single explicit item imported
---   (or hidden) from a module.
-data ImportSpec l
-     = IVar l (Namespace l) (Name l)    -- ^ variable
-     | IAbs l (Name l)                  -- ^ @T@:
-                                        --   the name of a class, datatype or type synonym.
-     | IThingAll l (Name l)             -- ^ @T(..)@:
-                                        --   a class imported with all of its methods, or
-                                        --   a datatype imported with all of its constructors.
-     | IThingWith l (Name l) [CName l]  -- ^ @T(C_1,...,C_n)@:
-                                        --   a class imported with some of its methods, or
-                                        --   a datatype imported with some of its constructors.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Associativity of an operator.
-data Assoc l
-     = AssocNone  l -- ^ non-associative operator (declared with @infix@)
-     | AssocLeft  l -- ^ left-associative operator (declared with @infixl@).
-     | AssocRight l -- ^ right-associative operator (declared with @infixr@)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A top-level declaration.
-data Decl l
-     = TypeDecl     l (DeclHead l) (Type l)
-     -- ^ A type declaration
-     | TypeFamDecl  l (DeclHead l) (Maybe (Kind l))
-     -- ^ A type family declaration
-     | ClosedTypeFamDecl  l (DeclHead l) (Maybe (Kind l))  [TypeEqn l]
-     -- ^ A closed type family declaration
-     | DataDecl     l (DataOrNew l) (Maybe (Context l)) (DeclHead l)                  [QualConDecl l] (Maybe (Deriving l))
-     -- ^ A data OR newtype declaration
-     | GDataDecl    l (DataOrNew l) (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) [GadtDecl l]    (Maybe (Deriving l))
-     -- ^ A data OR newtype declaration, GADT style
-     | DataFamDecl  l {-data-}      (Maybe (Context l)) (DeclHead l) (Maybe (Kind l))
-     -- ^ A data family declaration
-     | TypeInsDecl  l (Type l) (Type l)
-     -- ^ A type family instance declaration
-     | DataInsDecl  l (DataOrNew l) (Type l)                  [QualConDecl l] (Maybe (Deriving l))
-     -- ^ A data family instance declaration
-     | GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l]    (Maybe (Deriving l))
-     -- ^ A data family instance declaration, GADT style
-     | ClassDecl    l (Maybe (Context l)) (DeclHead l) [FunDep l] (Maybe [ClassDecl l])
-     -- ^ A declaration of a type class
-     | InstDecl     l (Maybe (Overlap l)) (InstRule l) (Maybe [InstDecl l])
-     -- ^ An declaration of a type class instance
-     | DerivDecl    l (Maybe (Overlap l)) (InstRule l)
-     -- ^ A standalone deriving declaration
-     | InfixDecl    l (Assoc l) (Maybe Int) [Op l]
-     -- ^ A declaration of operator fixity
-     | DefaultDecl  l [Type l]
-     -- ^ A declaration of default types
-     | SpliceDecl   l (Exp l)
-     -- ^ A Template Haskell splicing declaration
-     | TypeSig      l [Name l] (Type l)
-     -- ^ A type signature declaration
-     | FunBind      l [Match l]
-     -- ^ A set of function binding clauses
-     | PatBind      l (Pat l) (Rhs l) {-where-} (Maybe (Binds l))
-     -- ^ A pattern binding
-     | ForImp       l (CallConv l) (Maybe (Safety l)) (Maybe String) (Name l) (Type l)
-     -- ^ A foreign import declaration
-     | ForExp       l (CallConv l)                    (Maybe String) (Name l) (Type l)
-     -- ^ A foreign export declaration
-     | RulePragmaDecl   l [Rule l]
-     -- ^ A RULES pragma
-     | DeprPragmaDecl   l [([Name l], String)]
-     -- ^ A DEPRECATED pragma
-     | WarnPragmaDecl   l [([Name l], String)]
-     -- ^ A WARNING pragma
-     | InlineSig        l Bool (Maybe (Activation l)) (QName l)
-     -- ^ An INLINE pragma
-     | InlineConlikeSig l      (Maybe (Activation l)) (QName l)
-     -- ^ An INLINE CONLIKE pragma
-     | SpecSig          l      (Maybe (Activation l)) (QName l) [Type l]
-     -- ^ A SPECIALISE pragma
-     | SpecInlineSig    l Bool (Maybe (Activation l)) (QName l) [Type l]
-     -- ^ A SPECIALISE INLINE pragma
-     | InstSig          l      (InstRule l)
-     -- ^ A SPECIALISE instance pragma
-     | AnnPragma        l (Annotation l)
-     -- ^ An ANN pragma
-     | MinimalPragma    l (Maybe (BooleanFormula l))
-     -- ^ A MINIMAL pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A type equation as found in closed type families.
-data TypeEqn l = TypeEqn l (Type l) (Type l) deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An annotation through an ANN pragma.
-data Annotation l
-    = Ann       l (Name l)  (Exp l)
-    -- ^ An annotation for a declared name.
-    | TypeAnn   l (Name l)  (Exp l)
-    -- ^ An annotation for a declared type.
-    | ModuleAnn l           (Exp l)
-    -- ^ An annotation for the defining module.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A boolean formula for MINIMAL pragmas.
-data BooleanFormula l
-    = VarFormula l (Name l)              -- ^ A variable.
-    | AndFormula l [BooleanFormula l]    -- ^ And boolean formulas.
-    | OrFormula l [BooleanFormula l]     -- ^ Or boolean formulas.
-    | ParenFormula l (BooleanFormula l)  -- ^ Parenthesized boolean formulas.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A flag stating whether a declaration is a data or newtype declaration.
-data DataOrNew l = DataType l | NewType l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The head of a type or class declaration, which consists of the type
--- or class name applied to some type variables
---
--- @class C a b@ is represented as
---
--- >DHApp
--- >   ()
--- >   (DHApp
--- >      () (DHead () (Ident () "C")) (UnkindedVar () (Ident () "a")))
--- >   (UnkindedVar () (Ident () "b"))
---
--- (where the annotation type @l@ is instantiated with @()@)
---
--- @class (a :< b) c@ is represented as
---
--- >DHApp
--- >   ()
--- >   (DHParen
--- >      ()
--- >      (DHApp
--- >         ()
--- >         (DHInfix () (UnkindedVar () (Ident () "a")) (Symbol () ":<"))
--- >         (UnkindedVar () (Ident () "b"))))
--- >   (UnkindedVar () (Ident () "c"))
-data DeclHead l
-    = DHead l (Name l) -- ^ type or class name
-    | DHInfix l (TyVarBind l) (Name l) -- ^ infix application of the type/class name to the left operand
-    | DHParen l (DeclHead l) -- ^ parenthesized declaration head
-    | DHApp   l (DeclHead l) (TyVarBind l) -- ^ application to one more type variable
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The instance declaration rule, which is, roughly, the part of the instance declaration before the @where@ keyword.
---
--- Example: @instance Ord a => Ord (Maybe a)@ is represented as
---
--- >IRule
--- >   ()
--- >   Nothing
--- >   (Just
--- >      (CxSingle
--- >         ()
--- >         (ClassA
--- >            () (UnQual () (Ident () "Ord")) [ TyVar () (Ident () "a") ])))
--- >   (IHApp
--- >      ()
--- >      (IHCon () (UnQual () (Ident () "Ord")))
--- >      (TyParen
--- >         ()
--- >         (TyApp
--- >            ()
--- >            (TyCon () (UnQual () (Ident () "Maybe")))
--- >            (TyVar () (Ident () "a")))))
---
--- An optional explicit forall after @instance@ is supported:
--- @instance forall a . Ord a => Ord (Maybe a) where@ becomes
---
--- >IRule
--- >   ()
--- >   (Just [ UnkindedVar () (Ident () "a") ])
--- >   ...
-data InstRule l
-    = IRule l (Maybe [TyVarBind l]) (Maybe (Context l)) (InstHead l)
-    | IParen l (InstRule l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- See bugs #7 and #31 for more details and use cases for the rationale
--- of the split. DeclOrInstHead should be used by DeclHead as the name implies.
-
--- | The instance head. The split between rule/head allow us to represent
--- @instance (Bounded a => Bounded [a]) where@ faithfully.
---
--- The structure of 'InstHead' follows one of 'DeclHead'.
---
--- For example, @instance C (Maybe a) Int where@ is represented as
---
--- >IHApp
--- >   ()
--- >   (IHApp
--- >      ()
--- >      (IHCon () (UnQual () (Ident () "C")))
--- >      (TyParen
--- >         ()
--- >         (TyApp
--- >            ()
--- >            (TyCon () (UnQual () (Ident () "Maybe")))
--- >            (TyVar () (Ident () "a")))))
--- >   (TyCon () (UnQual () (Ident () "Int")))))
-data InstHead l
-    = IHCon l (QName l) -- ^ type or class name
-    | IHInfix l (Type l) (QName l) -- ^ infix application of the type/class name to the left operand
-    | IHParen l (InstHead l) -- ^ parenthesized instance head
-    | IHApp   l (InstHead l) (Type l) -- ^ application to one more type
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A deriving clause following a data type declaration.
-data Deriving l = Deriving l [InstRule l]
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A binding group inside a @let@ or @where@ clause.
-data Binds l
-    = BDecls  l [Decl l]     -- ^ An ordinary binding group
-    | IPBinds l [IPBind l]   -- ^ A binding group for implicit parameters
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A binding of an implicit parameter.
-data IPBind l = IPBind l (IPName l) (Exp l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Clauses of a function binding.
-data Match l
-     = Match l      (Name l) [Pat l]         (Rhs l) {-where-} (Maybe (Binds l))
-        -- ^ A clause defined with prefix notation, i.e. the function name
-        --  followed by its argument patterns, the right-hand side and an
-        --  optional where clause.
-     | InfixMatch l (Pat l) (Name l) [Pat l] (Rhs l) {-where-} (Maybe (Binds l))
-        -- ^ A clause defined with infix notation, i.e. first its first argument
-        --  pattern, then the function name, then its following argument(s),
-        --  the right-hand side and an optional where clause.
-        --  Note that there can be more than two arguments to a function declared
-        --  infix, hence the list of pattern arguments.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A single constructor declaration within a data type declaration,
---   which may have an existential quantification binding.
-data QualConDecl l
-    = QualConDecl l
-        {-forall-} (Maybe [TyVarBind l]) {- . -} (Maybe (Context l))
-        {- => -} (ConDecl l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Declaration of an ordinary data constructor.
-data ConDecl l
-     = ConDecl l (Name l) [Type l]
-                -- ^ ordinary data constructor
-     | InfixConDecl l (Type l) (Name l) (Type l)
-                -- ^ infix data constructor
-     | RecDecl l (Name l) [FieldDecl l]
-                -- ^ record constructor
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Declaration of a (list of) named field(s).
-data FieldDecl l = FieldDecl l [Name l] (Type l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
-
--- | A single constructor declaration in a GADT data type declaration.
---
--- If the GADT is declared using the record syntax, e.g.
---
--- >data Ty where
--- >  TCon :: { field1 :: Int, field2 :: Bool } -> Ty
---
--- then the fields are stored as a list of 'FieldDecl's, and the final type
--- (@Ty@ in the above example) is stored in the last 'Type' field.
---
--- If the GADT is declared using the ordinary syntax, e.g.
---
--- >data Ty where
--- >  TCon :: Int -> Bool -> Ty
---
--- then @'Maybe' ['FieldDecl' l]@ is 'Nothing', and the whole constructor's
--- type (such as @Int -> Bool -> Ty@) is stored in the last 'Type' field.
-data GadtDecl l
-    = GadtDecl l (Name l) (Maybe [FieldDecl l]) (Type l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Declarations inside a class declaration.
-data ClassDecl l
-    = ClsDecl    l (Decl l)
-            -- ^ ordinary declaration
-    | ClsDataFam l (Maybe (Context l)) (DeclHead l) (Maybe (Kind l))
-            -- ^ declaration of an associated data type
-    | ClsTyFam   l                     (DeclHead l) (Maybe (Kind l))
-            -- ^ declaration of an associated type synonym
-    | ClsTyDef   l (Type l) (Type l)
-            -- ^ default choice for an associated type synonym
-    | ClsDefSig  l (Name l) (Type l)
-            -- ^ default signature
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Declarations inside an instance declaration.
-data InstDecl l
-    = InsDecl   l (Decl l)
-            -- ^ ordinary declaration
-    | InsType   l (Type l) (Type l)
-            -- ^ an associated type definition
-    | InsData   l (DataOrNew l) (Type l) [QualConDecl l] (Maybe (Deriving l))
-            -- ^ an associated data type implementation
-    | InsGData  l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] (Maybe (Deriving l))
-            -- ^ an associated data type implemented using GADT style
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The type of a constructor argument or field, optionally including
---   a strictness annotation.
-data BangType l
-     = BangedTy   l -- ^ strict component, marked with \"@!@\"
-     | UnpackedTy l -- ^ unboxed component, marked with an UNPACK pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The right hand side of a function binding, pattern binding, or a case
---   alternative.
-data Rhs l
-     = UnGuardedRhs l (Exp l) -- ^ unguarded right hand side (/exp/)
-     | GuardedRhss  l [GuardedRhs l]
-                -- ^ guarded right hand side (/gdrhs/)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A guarded right hand side @|@ /stmts/ @=@ /exp/, or @|@ /stmts/ @->@ /exp/
---   for case alternatives.
---   The guard is a series of statements when using pattern guards,
---   otherwise it will be a single qualifier expression.
-data GuardedRhs l
-     = GuardedRhs l [Stmt l] (Exp l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A type qualified with a context.
---   An unqualified type has an empty context.
-data Type l
-     = TyForall l
-        (Maybe [TyVarBind l])
-        (Maybe (Context l))
-        (Type l)                                -- ^ qualified type
-     | TyFun   l (Type l) (Type l)              -- ^ function type
-     | TyTuple l Boxed [Type l]                 -- ^ tuple type, possibly boxed
-     | TyList  l (Type l)                       -- ^ list syntax, e.g. [a], as opposed to [] a
-     | TyParArray  l (Type l)                   -- ^ parallel array syntax, e.g. [:a:]
-     | TyApp   l (Type l) (Type l)              -- ^ application of a type constructor
-     | TyVar   l (Name l)                       -- ^ type variable
-     | TyCon   l (QName l)                      -- ^ named type or type constructor
-     | TyParen l (Type l)                       -- ^ type surrounded by parentheses
-     | TyInfix l (Type l) (QName l) (Type l)    -- ^ infix type constructor
-     | TyKind  l (Type l) (Kind l)              -- ^ type with explicit kind signature
-     | TyPromoted l (Promoted l)                -- ^ @'K@, a promoted data type (-XDataKinds).
-     | TyEquals l (Type l) (Type l)             -- ^ type equality predicate enabled by ConstraintKinds
-     | TySplice l (Splice l)                    -- ^ template haskell splice type
-     | TyBang l (BangType l) (Type l)           -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Bools here are True if there was a leading quote which may be
--- left out. For example @'[k1,k2]@ means the same thing as @[k1,k2]@.
-data Promoted l
-        = PromotedInteger l Integer String -- ^ parsed value and raw string
-        | PromotedString l String String -- ^ parsed value and raw string
-        | PromotedCon l Bool (QName l)
-        | PromotedList l Bool [Promoted l]
-        | PromotedTuple l [Promoted l]
-        | PromotedUnit l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Flag denoting whether a tuple is boxed or unboxed.
-data Boxed = Boxed | Unboxed
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A type variable declaration, optionally with an explicit kind annotation.
-data TyVarBind l
-    = KindedVar   l (Name l) (Kind l)  -- ^ variable binding with kind annotation
-    | UnkindedVar l (Name l)           -- ^ ordinary variable binding
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An explicit kind annotation.
-data Kind l
-    = KindStar  l                    -- ^ @*@, the kind of types
-    | KindBang  l                    -- ^ @!@, the kind of unboxed types
-    | KindFn    l (Kind l) (Kind l)  -- ^ @->@, the kind of a type constructor
-    | KindParen l (Kind l)           -- ^ a parenthesised kind
-    | KindVar   l (QName l)          -- ^ @k@, a kind variable (-XPolyKinds)
-    | KindApp   l (Kind l) (Kind l)  -- ^ @k1 k2@
-    | KindTuple l [Kind l]           -- ^ @'(k1,k2,k3)@, a promoted tuple
-    | KindList  l [Kind l]           -- ^ @'[k1,k2,k3]@, a promoted list literal
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
-
--- | A functional dependency, given on the form
---   l1 l2 ... ln -> r2 r3 .. rn
-data FunDep l
-    = FunDep l [Name l] [Name l]
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A context is a set of assertions
-data Context l
-    = CxSingle l (Asst l)
-    | CxTuple  l [Asst l]
-    | CxEmpty  l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Class assertions.
---   In Haskell 98, the argument would be a /tyvar/, but this definition
---   allows multiple parameters, and allows them to be /type/s.
---   Also extended with support for implicit parameters and equality constraints.
-data Asst l
-        = ClassA l (QName l) [Type l]           -- ^ ordinary class assertion
-        | VarA l (Name l)                       -- ^ constraint kind assertion, @Dict :: cxt => Dict cxt@
-        | InfixA l (Type l) (QName l) (Type l)  -- ^ class assertion where the class name is given infix
-        | IParam l (IPName l) (Type l)          -- ^ implicit parameter assertion
-        | EqualP l (Type l) (Type l)            -- ^ type equality constraint
-        | ParenA l (Asst l)                     -- ^ parenthesised class assertion
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | /literal/
--- Values of this type hold the abstract value of the literal, along with the
--- precise string representation used.  For example, @10@, @0o12@ and @0xa@
--- have the same value representation, but each carry a different string representation.
-data Literal l
-    = Char       l Char     String     -- ^ character literal
-    | String     l String   String     -- ^ string literal
-    | Int        l Integer  String     -- ^ integer literal
-    | Frac       l Rational String     -- ^ floating point literal
-    | PrimInt    l Integer  String     -- ^ unboxed integer literal
-    | PrimWord   l Integer  String     -- ^ unboxed word literal
-    | PrimFloat  l Rational String     -- ^ unboxed float literal
-    | PrimDouble l Rational String     -- ^ unboxed double literal
-    | PrimChar   l Char     String     -- ^ unboxed character literal
-    | PrimString l String   String     -- ^ unboxed string literal
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An indication whether a literal pattern has been negated or not.
-data Sign l
-    = Signless l
-    | Negative l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Haskell expressions.
-data Exp l
-    = Var l (QName l)                       -- ^ variable
-    | IPVar l (IPName l)                    -- ^ implicit parameter variable
-    | Con l (QName l)                       -- ^ data constructor
-    | Lit l (Literal l)                     -- ^ literal constant
-    | InfixApp l (Exp l) (QOp l) (Exp l)    -- ^ infix application
-    | App l (Exp l) (Exp l)                 -- ^ ordinary application
-    | NegApp l (Exp l)                      -- ^ negation expression @-/exp/@ (unary minus)
-    | Lambda l [Pat l] (Exp l)              -- ^ lambda expression
-    | Let l (Binds l) (Exp l)               -- ^ local declarations with @let@ ... @in@ ...
-    | If l (Exp l) (Exp l) (Exp l)          -- ^ @if@ /exp/ @then@ /exp/ @else@ /exp/
-    | MultiIf l [GuardedRhs l]              -- ^ @if@ @|@ /stmts/ @->@ /exp/ ...
-    | Case l (Exp l) [Alt l]                -- ^ @case@ /exp/ @of@ /alts/
-    | Do l [Stmt l]                         -- ^ @do@-expression:
-                                            --   the last statement in the list
-                                            --   should be an expression.
-    | MDo l [Stmt l]                        -- ^ @mdo@-expression
-    | Tuple l Boxed [Exp l]                 -- ^ tuple expression
-    | TupleSection l Boxed [Maybe (Exp l)]  -- ^ tuple section expression, e.g. @(,,3)@
-    | List l [Exp l]                        -- ^ list expression
-    | ParArray l [Exp l]                    -- ^ parallel array expression
-    | Paren l (Exp l)                       -- ^ parenthesised expression
-    | LeftSection l (Exp l) (QOp l)         -- ^ left section @(@/exp/ /qop/@)@
-    | RightSection l (QOp l) (Exp l)        -- ^ right section @(@/qop/ /exp/@)@
-    | RecConstr l (QName l) [FieldUpdate l] -- ^ record construction expression
-    | RecUpdate l (Exp l)   [FieldUpdate l] -- ^ record update expression
-    | EnumFrom l (Exp l)                    -- ^ unbounded arithmetic sequence,
-                                            --   incrementing by 1: @[from ..]@
-    | EnumFromTo l (Exp l) (Exp l)          -- ^ bounded arithmetic sequence,
-                                            --   incrementing by 1 @[from .. to]@
-    | EnumFromThen l (Exp l) (Exp l)        -- ^ unbounded arithmetic sequence,
-                                            --   with first two elements given @[from, then ..]@
-    | EnumFromThenTo l (Exp l) (Exp l) (Exp l)
-                                            -- ^ bounded arithmetic sequence,
-                                            --   with first two elements given @[from, then .. to]@
-    | ParArrayFromTo l (Exp l) (Exp l)      -- ^ Parallel array bounded arithmetic sequence,
-                                            --   incrementing by 1 @[:from .. to:]@
-    | ParArrayFromThenTo l (Exp l) (Exp l) (Exp l)
-                                            -- ^ bounded arithmetic sequence,
-                                            --   with first two elements given @[:from, then .. to:]@
-    | ListComp l (Exp l) [QualStmt l]       -- ^ ordinary list comprehension
-    | ParComp  l (Exp l) [[QualStmt l]]     -- ^ parallel list comprehension
-    | ParArrayComp  l (Exp l) [[QualStmt l]] -- ^ parallel array comprehension
-    | ExpTypeSig l (Exp l) (Type l)         -- ^ expression with explicit type signature
-
-    | VarQuote l (QName l)                  -- ^ @'x@ for template haskell reifying of expressions
-    | TypQuote l (QName l)                  -- ^ @''T@ for template haskell reifying of types
-    | BracketExp l (Bracket l)              -- ^ template haskell bracket expression
-    | SpliceExp l (Splice l)                -- ^ template haskell splice expression
-    | QuasiQuote l String String            -- ^ quasi-quotaion: @[$/name/| /string/ |]@
-
--- Hsx
-    | XTag l (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
-                                            -- ^ xml element, with attributes and children
-    | XETag l (XName l) [XAttr l] (Maybe (Exp l))
-                                            -- ^ empty xml element, with attributes
-    | XPcdata l String                      -- ^ PCDATA child element
-    | XExpTag l (Exp l)                     -- ^ escaped haskell expression inside xml
-    | XChildTag l [Exp l]                   -- ^ children of an xml element
-
-
--- Pragmas
-    | CorePragma l      String (Exp l)      -- ^ CORE pragma
-    | SCCPragma  l      String (Exp l)      -- ^ SCC pragma
-    | GenPragma  l      String (Int, Int) (Int, Int) (Exp l)
-                                            -- ^ GENERATED pragma
-
--- Arrows
-    | Proc            l (Pat l) (Exp l)     -- ^ arrows proc: @proc@ /pat/ @->@ /exp/
-    | LeftArrApp      l (Exp l) (Exp l)     -- ^ arrow application (from left): /exp/ @-<@ /exp/
-    | RightArrApp     l (Exp l) (Exp l)     -- ^ arrow application (from right): /exp/ @>-@ /exp/
-    | LeftArrHighApp  l (Exp l) (Exp l)     -- ^ higher-order arrow application (from left): /exp/ @-<<@ /exp/
-    | RightArrHighApp l (Exp l) (Exp l)     -- ^ higher-order arrow application (from right): /exp/ @>>-@ /exp/
-
--- LambdaCase
-    | LCase l [Alt l]                       -- ^ @\case@ /alts/
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The name of an xml element or attribute,
---   possibly qualified with a namespace.
-data XName l
-    = XName l String              -- <name ...
-    | XDomName l String String    -- <dom:name ...
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An xml attribute, which is a name-expression pair.
-data XAttr l = XAttr l (XName l) (Exp l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A template haskell bracket expression.
-data Bracket l
-    = ExpBracket l (Exp l)        -- ^ expression bracket: @[| ... |]@
-    | PatBracket l (Pat l)        -- ^ pattern bracket: @[p| ... |]@
-    | TypeBracket l (Type l)      -- ^ type bracket: @[t| ... |]@
-    | DeclBracket l [Decl l]      -- ^ declaration bracket: @[d| ... |]@
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A template haskell splice expression
-data Splice l
-    = IdSplice l String           -- ^ variable splice: @$var@
-    | ParenSplice l (Exp l)       -- ^ parenthesised expression splice: @$(/exp/)@
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The safety of a foreign function call.
-data Safety l
-    = PlayRisky l         -- ^ unsafe
-    | PlaySafe l Bool     -- ^ safe ('False') or threadsafe ('True')
-    | PlayInterruptible l -- ^ interruptible
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The calling convention of a foreign function call.
-data CallConv l
-    = StdCall l
-    | CCall l
-    | CPlusPlus l
-    | DotNet l
-    | Jvm l
-    | Js l
-    | CApi l
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A top level options pragma, preceding the module header.
-data ModulePragma l
-    = LanguagePragma   l [Name l]  -- ^ LANGUAGE pragma
-    | OptionsPragma    l (Maybe Tool) String
-                        -- ^ OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
-    | AnnModulePragma  l (Annotation l)
-                        -- ^ ANN pragma with module scope
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Recognised tools for OPTIONS pragmas.
-data Tool = GHC | HUGS | NHC98 | YHC | HADDOCK | UnknownTool String
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Recognised overlaps for overlap pragmas.
-data Overlap l
-    = NoOverlap l   -- ^ NO_OVERLAP pragma
-    | Overlap l     -- ^ OVERLAP pragma
-    | Incoherent l  -- ^ INCOHERENT pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Activation clause of a RULES pragma.
-data Activation l
-    = ActiveFrom   l Int
-    | ActiveUntil  l Int
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | The body of a RULES pragma.
-data Rule l
-    = Rule l String (Maybe (Activation l)) (Maybe [RuleVar l]) (Exp l) (Exp l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Variables used in a RULES pragma, optionally annotated with types
-data RuleVar l
-    = RuleVar l (Name l)
-    | TypedRuleVar l (Name l) (Type l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | Warning text to optionally use in the module header of e.g.
---   a deprecated module.
-data WarningText l
-    = DeprText l String
-    | WarnText l String
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
-
--- | A pattern, to be matched against a value.
-data Pat l
-    = PVar l (Name l)                       -- ^ variable
-    | PLit l (Sign l) (Literal l)           -- ^ literal constant
-    | PNPlusK l (Name l) Integer            -- ^ n+k pattern
-    | PInfixApp l (Pat l) (QName l) (Pat l) -- ^ pattern with an infix data constructor
-    | PApp l (QName l) [Pat l]              -- ^ data constructor and argument patterns
-    | PTuple l Boxed [Pat l]                -- ^ tuple pattern
-    | PList l [Pat l]                       -- ^ list pattern
-    | PParen l (Pat l)                      -- ^ parenthesized pattern
-    | PRec l (QName l) [PatField l]         -- ^ labelled pattern, record style
-    | PAsPat l (Name l) (Pat l)             -- ^ @\@@-pattern
-    | PWildCard l                           -- ^ wildcard pattern: @_@
-    | PIrrPat l (Pat l)                     -- ^ irrefutable pattern: @~/pat/@
-    | PatTypeSig l (Pat l) (Type l)         -- ^ pattern with type signature
-    | PViewPat l (Exp l) (Pat l)            -- ^ view patterns of the form @(/exp/ -> /pat/)@
-    | PRPat l [RPat l]                      -- ^ regular list pattern
-    | PXTag l (XName l) [PXAttr l] (Maybe (Pat l)) [Pat l]
-                                            -- ^ XML element pattern
-    | PXETag l (XName l) [PXAttr l] (Maybe (Pat l))
-                                            -- ^ XML singleton element pattern
-    | PXPcdata l String                     -- ^ XML PCDATA pattern
-    | PXPatTag l (Pat l)                    -- ^ XML embedded pattern
-    | PXRPats  l [RPat l]                   -- ^ XML regular list pattern
-    | PQuasiQuote l String String           -- ^ quasi quote pattern: @[$/name/| /string/ |]@
-    | PBangPat l (Pat l)                    -- ^ strict (bang) pattern: @f !x = ...@
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An XML attribute in a pattern.
-data PXAttr l = PXAttr l (XName l) (Pat l)
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A regular pattern operator.
-data RPatOp l
-    = RPStar  l  -- ^ @*@ = 0 or more
-    | RPStarG l  -- ^ @*!@ = 0 or more, greedy
-    | RPPlus  l  -- ^ @+@ = 1 or more
-    | RPPlusG l  -- ^ @+!@ = 1 or more, greedy
-    | RPOpt   l  -- ^ @?@ = 0 or 1
-    | RPOptG  l  -- ^ @?!@ = 0 or 1, greedy
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An entity in a regular pattern.
-data RPat l
-    = RPOp l (RPat l) (RPatOp l)   -- ^ operator pattern, e.g. pat*
-    | RPEither l (RPat l) (RPat l) -- ^ choice pattern, e.g. (1 | 2)
-    | RPSeq l [RPat l]             -- ^ sequence pattern, e.g. (| 1, 2, 3 |)
-    | RPGuard l (Pat l) [Stmt l]   -- ^ guarded pattern, e.g. (| p | p < 3 |)
-    | RPCAs l (Name l) (RPat l)    -- ^ non-linear variable binding, e.g. (foo\@:(1 | 2))*
-    | RPAs l (Name l) (RPat l)     -- ^ linear variable binding, e.g. foo\@(1 | 2)
-    | RPParen l (RPat l)           -- ^ parenthesised pattern, e.g. (2*)
-    | RPPat l (Pat l)              -- ^ an ordinary pattern
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An /fpat/ in a labeled record pattern.
-data PatField l
-    = PFieldPat l (QName l) (Pat l)     -- ^ ordinary label-pattern pair
-    | PFieldPun l (QName l)             -- ^ record field pun
-    | PFieldWildcard l                  -- ^ record field wildcard
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A statement, representing both a /stmt/ in a @do@-expression,
---   an ordinary /qual/ in a list comprehension, as well as a /stmt/
---   in a pattern guard.
-data Stmt l
-    = Generator l (Pat l) (Exp l)
-                            -- ^ a generator: /pat/ @<-@ /exp/
-    | Qualifier l (Exp l)   -- ^ an /exp/ by itself: in a @do@-expression,
-                            --   an action whose result is discarded;
-                            --   in a list comprehension and pattern guard,
-                            --   a guard expression
-    | LetStmt l (Binds l)   -- ^ local bindings
-    | RecStmt l [Stmt l]    -- ^ a recursive binding group for arrows
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | A general /transqual/ in a list comprehension,
---   which could potentially be a transform of the kind
---   enabled by TransformListComp.
-data QualStmt l
-    = QualStmt     l (Stmt l)         -- ^ an ordinary statement
-    | ThenTrans    l (Exp l)          -- ^ @then@ /exp/
-    | ThenBy       l (Exp l) (Exp l)  -- ^ @then@ /exp/ @by@ /exp/
-    | GroupBy      l (Exp l)          -- ^ @then@ @group@ @by@ /exp/
-    | GroupUsing   l (Exp l)          -- ^ @then@ @group@ @using@ /exp/
-    | GroupByUsing l (Exp l) (Exp l)  -- ^ @then@ @group@ @by@ /exp/ @using@ /exp/
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An /fbind/ in a labeled construction or update expression.
-data FieldUpdate l
-    = FieldUpdate l (QName l) (Exp l)    -- ^ ordinary label-expresion pair
-    | FieldPun l (QName l)               -- ^ record field pun
-    | FieldWildcard l                    -- ^ record field wildcard
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
--- | An /alt/ alternative in a @case@ expression.
-data Alt l
-    = Alt l (Pat l) (Rhs l) (Maybe (Binds l))
-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
-
------------------------------------------------------------------------------
--- Builtin names.
-
-prelude_mod, main_mod :: l -> ModuleName l
-prelude_mod l = ModuleName l "Prelude"
-main_mod    l = ModuleName l "Main"
-
-main_name :: l -> Name l
-main_name l = Ident l "main"
-
-unit_con_name :: l -> QName l
-unit_con_name l = Special l (UnitCon l)
-
-tuple_con_name :: l -> Boxed -> Int -> QName l
-tuple_con_name l b i = Special l (TupleCon l b (i+1))
-
-list_cons_name :: l -> QName l
-list_cons_name l = Special l (Cons l)
-
-unboxed_singleton_con_name :: l -> QName l
-unboxed_singleton_con_name l = Special l (UnboxedSingleCon l)
-
-unit_con :: l -> Exp l
-unit_con l = Con l $ unit_con_name l
-
-tuple_con :: l -> Boxed -> Int -> Exp l
-tuple_con l b i = Con l (tuple_con_name l b i)
-
-unboxed_singleton_con :: l -> Exp l
-unboxed_singleton_con l = Con l (unboxed_singleton_con_name l)
-
-as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name :: l -> Name l
-as_name        l = Ident  l "as"
-qualified_name l = Ident  l "qualified"
-hiding_name    l = Ident  l "hiding"
-minus_name     l = Symbol l "-"
-bang_name      l = Symbol l "!"
-dot_name       l = Symbol l "."
-star_name      l = Symbol l "*"
-
-export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
-  stdcall_name, ccall_name, cplusplus_name, dotnet_name,
-  jvm_name, js_name, capi_name, forall_name, family_name :: l -> Name l
-export_name     l = Ident l "export"
-safe_name       l = Ident l "safe"
-unsafe_name     l = Ident l "unsafe"
-interruptible_name l = Ident l "interruptible"
-threadsafe_name l = Ident l "threadsafe"
-stdcall_name    l = Ident l "stdcall"
-ccall_name      l = Ident l "ccall"
-cplusplus_name  l = Ident l "cplusplus"
-dotnet_name     l = Ident l "dotnet"
-jvm_name        l = Ident l "jvm"
-js_name         l = Ident l "js"
-capi_name       l = Ident l "capi"
-forall_name     l = Ident l "forall"
-family_name     l = Ident l "family"
-
-unit_tycon_name, fun_tycon_name, list_tycon_name, unboxed_singleton_tycon_name :: l -> QName l
-unit_tycon_name l = unit_con_name l
-fun_tycon_name  l = Special l (FunCon l)
-list_tycon_name l = Special l (ListCon l)
-unboxed_singleton_tycon_name l = Special l (UnboxedSingleCon l)
-
-tuple_tycon_name :: l -> Boxed -> Int -> QName l
-tuple_tycon_name l b i = tuple_con_name l b i
-
-unit_tycon, fun_tycon, list_tycon, unboxed_singleton_tycon :: l -> Type l
-unit_tycon l = TyCon l $ unit_tycon_name l
-fun_tycon  l = TyCon l $ fun_tycon_name  l
-list_tycon l = TyCon l $ list_tycon_name l
-unboxed_singleton_tycon l = TyCon l $ unboxed_singleton_tycon_name l
-
-tuple_tycon :: l -> Boxed -> Int -> Type l
-tuple_tycon l b i = TyCon l (tuple_tycon_name l b i)
-
------------------------------------------------------------------------------
--- AST traversal, boiler-plate style
-
--- | Test if two AST elements are equal modulo annotations.
-(=~=) :: (Annotated a, Eq (a ())) => a l1 -> a l2 -> Bool
-a =~= b = fmap (const ()) a == fmap (const ()) b
-
------------------------------------------------------------------------------
--- Reading annotations
-
--- | AST nodes are annotated, and this class allows manipulation of the annotations.
-class Functor ast => Annotated ast where
-    -- | Retrieve the annotation of an AST node.
-    ann :: ast l -> l
-    -- | Change the annotation of an AST node. Note that only the annotation of
-    --   the node itself is affected, and not the annotations of any child nodes.
-    --   if all nodes in the AST tree are to be affected, use 'fmap'.
-    amap :: (l -> l) -> ast l -> ast l
-
-instance Annotated ModuleName where
-    ann (ModuleName l _) = l
-    amap f (ModuleName l n) = ModuleName (f l) n
-
-instance Annotated SpecialCon where
-    ann sc = case sc of
-        UnitCon l   -> l
-        ListCon l   -> l
-        FunCon  l   -> l
-        TupleCon l _ _  -> l
-        Cons l      -> l
-        UnboxedSingleCon l  -> l
-    amap = fmap
-
-instance Annotated QName where
-    ann qn = case qn of
-        Qual    l _ _  -> l
-        UnQual  l   _  -> l
-        Special l _    -> l
-    amap f qn = case qn of
-        Qual    l mn n  -> Qual    (f l) mn n
-        UnQual  l    n  -> UnQual  (f l)    n
-        Special l sc    -> Special (f l) sc
-
-instance Annotated Name where
-    ann (Ident  l _) = l
-    ann (Symbol l _) = l
-    amap = fmap
-
-instance Annotated IPName where
-    ann (IPDup l _) = l
-    ann (IPLin l _) = l
-    amap = fmap
-
-instance Annotated QOp where
-    ann (QVarOp l _) = l
-    ann (QConOp l _) = l
-    amap f (QVarOp l qn) = QVarOp (f l) qn
-    amap f (QConOp l qn) = QConOp (f l) qn
-
-instance Annotated Op where
-    ann (VarOp l _) = l
-    ann (ConOp l _) = l
-    amap f (VarOp l n) = VarOp (f l) n
-    amap f (ConOp l n) = ConOp (f l) n
-
-instance Annotated CName where
-    ann (VarName l _) = l
-    ann (ConName l _) = l
-    amap f (VarName l n) = VarName (f l) n
-    amap f (ConName l n) = ConName (f l) n
-
-instance Annotated Module where
-    ann (Module l _ _ _ _)            = l
-    ann (XmlPage l _ _ _ _ _ _)       = l
-    ann (XmlHybrid l _ _ _ _ _ _ _ _) = l
-
-    amap f (Module l mmh ops iss dcls) =
-        Module (f l) mmh ops iss dcls
-    amap f (XmlPage l mn os xn xas me es) =
-        XmlPage (f l) mn os xn xas me es
-    amap f (XmlHybrid l mmh ops iss dcls xn xas me es) =
-        XmlHybrid (f l) mmh ops iss dcls xn xas me es
-
-instance Annotated ModuleHead where
-    ann (ModuleHead l _ _ _)         = l
-    amap f (ModuleHead l n mwt mesl) = ModuleHead (f l) n mwt mesl
-
-instance Annotated ExportSpecList where
-    ann (ExportSpecList l _)      = l
-    amap f (ExportSpecList l ess) = ExportSpecList (f l) ess
-
-instance Annotated ExportSpec where
-    ann es = case es of
-        EVar l _ _          -> l
-        EAbs l _            -> l
-        EThingAll l _       -> l
-        EThingWith l _ _    -> l
-        EModuleContents l _ -> l
-    amap f es = case es of
-        EVar l t qn     -> EVar (f l) t qn
-        EAbs l qn       -> EAbs (f l) qn
-        EThingAll l qn  -> EThingAll (f l) qn
-        EThingWith l qn cns -> EThingWith (f l) qn cns
-        EModuleContents l mn    -> EModuleContents (f l) mn
-
-instance Annotated Namespace where
-    ann es = case es of
-        NoNamespace l   -> l
-        TypeNamespace l -> l
-    amap f es = case es of
-        NoNamespace l   -> NoNamespace (f l)
-        TypeNamespace l -> TypeNamespace (f l)
-
-instance Annotated ImportDecl where
-    ann (ImportDecl l _ _ _ _ _ _ _) = l
-    amap f (ImportDecl l mn qual src safe pkg mmn mis) =
-        ImportDecl (f l) mn qual src safe pkg mmn mis
-
-instance Annotated ImportSpecList where
-    ann (ImportSpecList l _ _)      = l
-    amap f (ImportSpecList l b iss) = ImportSpecList (f l) b iss
-
-instance Annotated ImportSpec where
-    ann is = case is of
-        IVar l _ _       -> l
-        IAbs l _         -> l
-        IThingAll l _    -> l
-        IThingWith l _ _ -> l
-    amap f is = case is of
-        IVar l t n      -> IVar (f l) t n
-        IAbs l n        -> IAbs (f l) n
-        IThingAll l n   -> IThingAll (f l) n
-        IThingWith l n cns  -> IThingWith (f l) n cns
-
-instance Annotated Assoc where
-    ann (AssocNone  l) = l
-    ann (AssocLeft  l) = l
-    ann (AssocRight l) = l
-    amap = fmap
-
-instance Annotated Deriving where
-    ann (Deriving l _)      = l
-    amap f (Deriving l ihs) = Deriving (f l) ihs
-
-instance Annotated TypeEqn where
-    ann (TypeEqn l _ _) = l
-    amap f (TypeEqn l a b) = TypeEqn (f l) a b
-
-instance Annotated Decl where
-    ann decl = case decl of
-        TypeDecl     l _ _              -> l
-        TypeFamDecl  l _ _              -> l
-        ClosedTypeFamDecl  l _ _ _      -> l
-        DataDecl     l _ _ _ _ _        -> l
-        GDataDecl    l _ _ _ _ _ _      -> l
-        DataFamDecl  l    _ _ _         -> l
-        TypeInsDecl  l _  _             -> l
-        DataInsDecl  l _ _ _ _          -> l
-        GDataInsDecl l _ _ _ _ _        -> l
-        ClassDecl    l _ _ _ _          -> l
-        InstDecl     l _ _ _            -> l
-        DerivDecl    l _ _              -> l
-        InfixDecl    l _ _ _            -> l
-        DefaultDecl  l _                -> l
-        SpliceDecl   l _                -> l
-        TypeSig      l _ _              -> l
-        FunBind      l _                -> l
-        PatBind      l _ _ _            -> l
-        ForImp       l _ _ _ _ _        -> l
-        ForExp       l _ _ _ _          -> l
-        RulePragmaDecl   l _            -> l
-        DeprPragmaDecl   l _            -> l
-        WarnPragmaDecl   l _            -> l
-        InlineSig        l _ _ _        -> l
-        InlineConlikeSig l   _ _        -> l
-        SpecSig          l   _ _ _      -> l
-        SpecInlineSig    l _ _ _ _      -> l
-        InstSig          l _            -> l
-        AnnPragma        l _            -> l
-        MinimalPragma    l _            -> l
-    amap f decl = case decl of
-        TypeDecl     l dh t      -> TypeDecl    (f l) dh t
-        TypeFamDecl  l dh mk     -> TypeFamDecl (f l) dh mk
-        ClosedTypeFamDecl  l dh mk eqns  -> ClosedTypeFamDecl (f l) dh mk eqns
-        DataDecl     l dn mcx dh cds ders ->
-            DataDecl (f l) dn mcx dh cds ders
-        GDataDecl    l dn mcx dh mk gds ders ->
-            GDataDecl (f l) dn mcx dh mk gds ders
-        DataFamDecl  l mcx dh mk         -> DataFamDecl (f l) mcx dh mk
-        TypeInsDecl  l t1 t2             -> TypeInsDecl (f l) t1 t2
-        DataInsDecl  l dn t cds ders     -> DataInsDecl (f l) dn t cds ders
-        GDataInsDecl l dn t mk gds ders  -> GDataInsDecl (f l) dn t mk gds ders
-        ClassDecl    l mcx dh fds cds    -> ClassDecl (f l) mcx dh fds cds
-        InstDecl     l mo ih ids         -> InstDecl (f l) mo ih ids
-        DerivDecl    l mo ih             -> DerivDecl (f l) mo ih
-        InfixDecl    l a k ops           -> InfixDecl (f l) a k ops
-        DefaultDecl  l ts                -> DefaultDecl (f l) ts
-        SpliceDecl   l sp                -> SpliceDecl (f l) sp
-        TypeSig      l ns t              -> TypeSig (f l) ns t
-        FunBind      l ms                -> FunBind (f l) ms
-        PatBind      l p rhs bs          -> PatBind (f l) p rhs bs
-        ForImp       l cc msf s n t      -> ForImp (f l) cc msf s n t
-        ForExp       l cc     s n t      -> ForExp (f l) cc     s n t
-        RulePragmaDecl   l rs            -> RulePragmaDecl (f l) rs
-        DeprPragmaDecl   l nss           -> DeprPragmaDecl (f l) nss
-        WarnPragmaDecl   l nss           -> WarnPragmaDecl (f l) nss
-        InlineSig        l b act qn      -> InlineSig (f l) b act qn
-        InlineConlikeSig l   act qn      -> InlineConlikeSig (f l) act qn
-        SpecSig          l   act qn ts   -> SpecSig       (f l)   act qn ts
-        SpecInlineSig    l b act qn ts   -> SpecInlineSig (f l) b act qn ts
-        InstSig          l ih            -> InstSig (f l) ih
-        AnnPragma        l ann'          -> AnnPragma (f l) ann'
-        MinimalPragma    l b             -> MinimalPragma (f l) b
-
-instance Annotated Annotation where
-    ann (Ann     l _ _) = l
-    ann (TypeAnn l _ _) = l
-    ann (ModuleAnn l _) = l
-    amap f (Ann     l n e) = Ann     (f l) n e
-    amap f (TypeAnn l n e) = TypeAnn (f l) n e
-    amap f (ModuleAnn l e) = ModuleAnn (f l) e
-
-instance Annotated BooleanFormula where
-    ann (VarFormula l _)   = l
-    ann (AndFormula l _)   = l
-    ann (OrFormula l _)    = l
-    ann (ParenFormula l _) = l
-    amap f (VarFormula l n)   = VarFormula (f l) n
-    amap f (AndFormula l bs)  = AndFormula (f l) bs
-    amap f (OrFormula l bs)   = OrFormula (f l) bs
-    amap f (ParenFormula l b) = ParenFormula (f l) b
-
-instance Annotated DataOrNew where
-    ann (DataType l) = l
-    ann (NewType  l) = l
-    amap = fmap
-
-instance Annotated DeclHead where
-    ann (DHead l _)              = l
-    ann (DHInfix l _ _)          = l
-    ann (DHParen l _)            = l
-    ann (DHApp l _ _)            = l
-    amap f (DHead l n)           = DHead (f l) n
-    amap f (DHInfix l tva n)     = DHInfix (f l) tva n
-    amap f (DHParen l dh)        = DHParen (f l) dh
-    amap f (DHApp l dh t)        = DHApp (f l) dh t
-
-instance Annotated InstRule where
-    ann (IRule l _ _ _)         = l
-    ann (IParen l _)            = l
-    amap f (IRule l mtv cxt qn) = IRule (f l) mtv cxt qn
-    amap f (IParen l ih)        = IParen (f l) ih
-
-instance Annotated InstHead where
-    ann (IHCon l _)              = l
-    ann (IHInfix l _ _)          = l
-    ann (IHParen l _)            = l
-    ann (IHApp l _ _)            = l
-    amap f (IHCon l n)           = IHCon (f l) n
-    amap f (IHInfix l tva n)     = IHInfix (f l) tva n
-    amap f (IHParen l dh)        = IHParen (f l) dh
-    amap f (IHApp l dh t)        = IHApp (f l) dh t
-
-instance Annotated Binds where
-    ann (BDecls  l _) = l
-    ann (IPBinds l _) = l
-    amap f (BDecls  l decls) = BDecls (f l) decls
-    amap f (IPBinds l ibs)   = IPBinds (f l) ibs
-
-instance Annotated IPBind where
-    ann (IPBind l _ _) = l
-    amap f (IPBind l ipn e) = IPBind (f l) ipn e
-
-instance Annotated Match where
-    ann (Match l _ _ _ _)        = l
-    ann (InfixMatch l _ _ _ _ _) = l
-    amap f (Match l n ps rhs bs) = Match (f l) n ps rhs bs
-    amap f (InfixMatch l a n b rhs bs) = InfixMatch (f l) a n b rhs bs
-
-instance Annotated QualConDecl where
-    ann (QualConDecl l _ _ _) = l
-    amap f (QualConDecl l tvs cx cd) = QualConDecl (f l) tvs cx cd
-
-instance Annotated ConDecl where
-    ann (ConDecl l _ _)        = l
-    ann (InfixConDecl l _ _ _) = l
-    ann (RecDecl l _ _)        = l
-    amap f (ConDecl l n bts) = ConDecl (f l) n bts
-    amap f (InfixConDecl l ta n tb) = InfixConDecl (f l) ta n tb
-    amap f (RecDecl l n fds) = RecDecl (f l) n fds
-
-instance Annotated FieldDecl where
-    ann (FieldDecl l _ _) = l
-    amap f (FieldDecl l ns t) = FieldDecl (f l) ns t
-
-instance Annotated GadtDecl where
-    ann (GadtDecl l _  _ _) = l
-    amap f (GadtDecl l n t1 t2) = GadtDecl (f l) n t1 t2
-
-instance Annotated ClassDecl where
-    ann (ClsDecl    l _)      = l
-    ann (ClsDataFam l _ _ _)  = l
-    ann (ClsTyFam   l    _ _) = l
-    ann (ClsTyDef   l _ _)    = l
-    ann (ClsDefSig  l _ _)    = l
-    amap f (ClsDecl    l d) = ClsDecl (f l) d
-    amap f (ClsDataFam l mcx dh mk) = ClsDataFam (f l) mcx dh mk
-    amap f (ClsTyFam   l     dh mk) = ClsTyFam   (f l)     dh mk
-    amap f (ClsTyDef   l t1 t2) = ClsTyDef (f l) t1 t2
-    amap f (ClsDefSig  l n t) = ClsDefSig (f l) n t
-
-instance Annotated InstDecl where
-    ann id = case id of
-        InsDecl   l _            -> l
-        InsType   l _ _          -> l
-        InsData   l _ _  _ _     -> l
-        InsGData  l _ _ _ _ _    -> l
---        InsInline l _ _ _    -> l
-    amap f id = case id of
-        InsDecl   l d           -> InsDecl (f l) d
-        InsType   l t1 t2       -> InsType (f l) t1 t2
-        InsData   l dn t    cds ders -> InsData  (f l) dn t    cds ders
-        InsGData  l dn t mk gds ders -> InsGData (f l) dn t mk gds ders
---        InsInline l b act qn    -> InsInline (f l) b act qn
-
-instance Annotated BangType where
-     ann (BangedTy   l)    = l
-     ann (UnpackedTy l)    = l
-     amap f (BangedTy   l) = BangedTy (f l)
-     amap f (UnpackedTy l) = UnpackedTy (f l)
-
-instance Annotated Rhs where
-     ann (UnGuardedRhs l _) = l
-     ann (GuardedRhss  l _) = l
-     amap f (UnGuardedRhs l e)     = UnGuardedRhs (f l) e
-     amap f (GuardedRhss  l grhss) = GuardedRhss  (f l) grhss
-
-instance Annotated GuardedRhs where
-     ann (GuardedRhs l _ _) = l
-     amap f (GuardedRhs l ss e) = GuardedRhs (f l) ss e
-
-instance Annotated Type where
-    ann t = case t of
-      TyForall l _ _ _              -> l
-      TyFun   l _ _                 -> l
-      TyTuple l _ _                 -> l
-      TyList  l _                   -> l
-      TyParArray  l _               -> l
-      TyApp   l _ _                 -> l
-      TyVar   l _                   -> l
-      TyCon   l _                   -> l
-      TyParen l _                   -> l
-      TyInfix l _ _ _               -> l
-      TyKind  l _ _                 -> l
-      TyPromoted l   _              -> l
-      TyEquals l _ _                -> l
-      TySplice l _                  -> l
-      TyBang l _ _                  -> l
-    amap f t1 = case t1 of
-      TyForall l mtvs mcx t         -> TyForall (f l) mtvs mcx t
-      TyFun   l t1' t2              -> TyFun (f l) t1' t2
-      TyTuple l b ts                -> TyTuple (f l) b ts
-      TyList  l t                   -> TyList (f l) t
-      TyParArray  l t               -> TyParArray (f l) t
-      TyApp   l t1' t2              -> TyApp (f l) t1' t2
-      TyVar   l n                   -> TyVar (f l) n
-      TyCon   l qn                  -> TyCon (f l) qn
-      TyParen l t                   -> TyParen (f l) t
-      TyInfix l ta qn tb            -> TyInfix (f l) ta qn tb
-      TyKind  l t k                 -> TyKind (f l) t k
-      TyPromoted l   p              -> TyPromoted (f l)   p
-      TyEquals l a b                -> TyEquals (f l) a b
-      TySplice l s                  -> TySplice (f l) s
-      TyBang l b t                  -> TyBang (f l) b t
-
-instance Annotated TyVarBind where
-    ann (KindedVar   l _ _) = l
-    ann (UnkindedVar l _)   = l
-    amap f (KindedVar   l n k) = KindedVar   (f l) n k
-    amap f (UnkindedVar l n)   = UnkindedVar (f l) n
-
-instance Annotated Kind where
-    ann (KindStar l) = l
-    ann (KindBang l) = l
-    ann (KindFn   l _ _) = l
-    ann (KindParen l _)  = l
-    ann (KindVar l _)    = l
-    ann (KindApp l _ _)  = l
-    ann (KindTuple l _)  = l
-    ann (KindList  l _)  = l
-    amap f (KindStar l) = KindStar (f l)
-    amap f (KindBang l) = KindBang (f l)
-    amap f (KindFn   l k1 k2) = KindFn (f l) k1 k2
-    amap f (KindParen l k) = KindParen (f l) k
-    amap f (KindVar l n) = KindVar (f l) n
-    amap f (KindApp l k1 k2) = KindApp (f l) k1 k2
-    amap f (KindTuple l ks) = KindTuple (f l) ks
-    amap f (KindList  l ks) = KindList  (f l) ks
-
-instance Annotated FunDep where
-    ann (FunDep l _ _) = l
-    amap f (FunDep l ns1 ns2) = FunDep (f l) ns1 ns2
-
-instance Annotated Context where
-    ann (CxSingle l _) = l
-    ann (CxTuple  l _) = l
-    ann (CxEmpty  l)   = l
-    amap f (CxSingle l asst ) = CxSingle (f l) asst
-    amap f (CxTuple  l assts) = CxTuple  (f l) assts
-    amap f (CxEmpty l) = CxEmpty (f l)
-
-instance Annotated Asst where
-    ann asst = case asst of
-        ClassA l _ _     -> l
-        VarA l _         -> l
-        InfixA l _ _ _   -> l
-        IParam l _ _     -> l
-        EqualP l _ _     -> l
-        ParenA l _       -> l
-    amap f asst = case asst of
-        ClassA l qn ts      -> ClassA (f l) qn ts
-        VarA   l n          -> VarA   (f l) n
-        InfixA l ta qn tb   -> InfixA (f l) ta qn tb
-        IParam l ipn t      -> IParam (f l) ipn t
-        EqualP l t1 t2      -> EqualP (f l) t1 t2
-        ParenA l a          -> ParenA (f l) a
-
-instance Annotated Literal where
-    ann lit = case lit of
-        Char    l _    _  -> l
-        String  l _    _  -> l
-        Int     l _    _  -> l
-        Frac    l _    _  -> l
-        PrimInt    l _ _  -> l
-        PrimWord   l _ _  -> l
-        PrimFloat  l _ _  -> l
-        PrimDouble l _ _  -> l
-        PrimChar   l _ _  -> l
-        PrimString l _ _  -> l
-    amap = fmap
-
-instance Annotated Sign where
-    ann sg = case sg of
-        Signless l -> l
-        Negative l -> l
-    amap = fmap
-
-instance Annotated Exp where
-    ann e = case e of
-        Var l _                -> l
-        IPVar l _              -> l
-        Con l _                -> l
-        Lit l _                -> l
-        InfixApp l _ _ _       -> l
-        App l _ _              -> l
-        NegApp l _             -> l
-        Lambda l _ _           -> l
-        Let l _ _              -> l
-        If l _ _ _             -> l
-        MultiIf l _            -> l
-        Case l _ _             -> l
-        Do l _                 -> l
-        MDo l _                -> l
-        Tuple l _ _            -> l
-        TupleSection l _ _     -> l
-        List l _               -> l
-        ParArray l _           -> l
-        Paren l _              -> l
-        LeftSection l _ _      -> l
-        RightSection l _ _     -> l
-        RecConstr l _ _        -> l
-        RecUpdate l _ _        -> l
-        EnumFrom l _           -> l
-        EnumFromTo l _ _       -> l
-        EnumFromThen l _ _     -> l
-        EnumFromThenTo l _ _ _ -> l
-        ParArrayFromTo l _ _   -> l
-        ParArrayFromThenTo l _ _ _ -> l
-        ListComp l _ _         -> l
-        ParComp  l _ _         -> l
-        ParArrayComp  l _ _    -> l
-        ExpTypeSig l _ _       -> l
-        VarQuote l _           -> l
-        TypQuote l _           -> l
-        BracketExp l _         -> l
-        SpliceExp l _          -> l
-        QuasiQuote l _ _       -> l
-
-        XTag  l _ _ _ _        -> l
-        XETag l _ _ _          -> l
-        XPcdata l _            -> l
-        XExpTag l _            -> l
-        XChildTag l _          -> l
-
-        CorePragma l _ _       -> l
-        SCCPragma  l _ _       -> l
-        GenPragma  l _ _ _ _   -> l
-
-        Proc            l _ _  -> l
-        LeftArrApp      l _ _  -> l
-        RightArrApp     l _ _  -> l
-        LeftArrHighApp  l _ _  -> l
-        RightArrHighApp l _ _  -> l
-
-        LCase l _              -> l
-
-    amap f e1 = case e1 of
-        Var l qn        -> Var (f l) qn
-        IPVar l ipn     -> IPVar (f l) ipn
-        Con l qn        -> Con (f l) qn
-        Lit l lit       -> Lit (f l) lit
-        InfixApp l e1' qop e2    -> InfixApp (f l) e1' qop e2
-        App l e1' e2    -> App (f l) e1' e2
-        NegApp l e      -> NegApp (f l) e
-        Lambda l ps e   -> Lambda (f l) ps e
-        Let l bs e      -> Let (f l) bs e
-        If l ec et ee   -> If (f l) ec et ee
-        Case l e alts   -> Case (f l) e alts
-        Do l ss         -> Do (f l) ss
-        MDo l ss        -> MDo (f l) ss
-        Tuple l bx es   -> Tuple (f l) bx es
-        TupleSection l bx mes -> TupleSection (f l) bx mes
-        List l es       -> List (f l) es
-        ParArray l es   -> ParArray (f l) es
-        Paren l e       -> Paren (f l) e
-        LeftSection l e qop     -> LeftSection (f l) e qop
-        RightSection l qop e    -> RightSection (f l) qop e
-        RecConstr l qn fups     -> RecConstr (f l) qn fups
-        RecUpdate l e  fups     -> RecUpdate (f l) e  fups
-        EnumFrom l e            -> EnumFrom (f l) e
-        EnumFromTo l ef et      -> EnumFromTo (f l) ef et
-        EnumFromThen l ef et    -> EnumFromThen (f l) ef et
-        EnumFromThenTo l ef eth eto -> EnumFromThenTo (f l) ef eth eto
-        ParArrayFromTo l ef et  -> ParArrayFromTo (f l) ef et
-        ParArrayFromThenTo l ef eth eto -> ParArrayFromThenTo (f l) ef eth eto
-        ListComp l e qss        -> ListComp (f l) e qss
-        ParComp  l e qsss       -> ParComp  (f l) e qsss
-        ParArrayComp  l e qsss  -> ParArrayComp  (f l) e qsss
-        ExpTypeSig l e t        -> ExpTypeSig (f l) e t
-        VarQuote l qn           -> VarQuote (f l) qn
-        TypQuote l qn           -> TypQuote (f l) qn
-        BracketExp l br         -> BracketExp (f l) br
-        SpliceExp l sp          -> SpliceExp (f l) sp
-        QuasiQuote l sn se      -> QuasiQuote (f l) sn se
-
-        XTag  l xn xas me es     -> XTag  (f l) xn xas me es
-        XETag l xn xas me        -> XETag (f l) xn xas me
-        XPcdata l s              -> XPcdata (f l) s
-        XExpTag l e              -> XExpTag (f l) e
-        XChildTag l es           -> XChildTag (f l) es
-
-        CorePragma l s e   -> CorePragma (f l) s e
-        SCCPragma  l s e   -> SCCPragma (f l) s e
-        GenPragma  l s n12 n34 e -> GenPragma (f l) s n12 n34 e
-
-        Proc            l p e  -> Proc (f l) p e
-        LeftArrApp      l e1' e2 -> LeftArrApp      (f l) e1' e2
-        RightArrApp     l e1' e2 -> RightArrApp     (f l) e1' e2
-        LeftArrHighApp  l e1' e2 -> LeftArrHighApp  (f l) e1' e2
-        RightArrHighApp l e1' e2 -> RightArrHighApp (f l) e1' e2
-
-        LCase l alts -> LCase (f l) alts
-        MultiIf l alts -> MultiIf (f l) alts
-
-
-instance Annotated XName where
-    ann (XName l _)      = l
-    ann (XDomName l _ _) = l
-    amap = fmap
-
-instance Annotated XAttr where
-    ann (XAttr l _ _) = l
-    amap f (XAttr l xn e) = XAttr (f l) xn e
-
-instance Annotated Bracket where
-    ann (ExpBracket l _)  = l
-    ann (PatBracket l _)  = l
-    ann (TypeBracket l _) = l
-    ann (DeclBracket l _) = l
-    amap f (ExpBracket l e) = ExpBracket (f l) e
-    amap f (PatBracket l p) = PatBracket (f l) p
-    amap f (TypeBracket l t) = TypeBracket (f l) t
-    amap f (DeclBracket l ds) = DeclBracket (f l) ds
-
-instance Annotated Splice where
-    ann (IdSplice l _)    = l
-    ann (ParenSplice l _) = l
-    amap f (IdSplice l s) = IdSplice (f l) s
-    amap f (ParenSplice l e) = ParenSplice (f l) e
-
-instance Annotated Safety where
-    ann (PlayRisky l) = l
-    ann (PlaySafe l _) = l
-    ann (PlayInterruptible l) = l
-    amap = fmap
-
-instance Annotated CallConv where
-    ann (StdCall l) = l
-    ann (CCall l) = l
-    ann (CPlusPlus l) = l
-    ann (DotNet l) = l
-    ann (Jvm l) = l
-    ann (Js l) = l
-    ann (CApi l) = l
-    amap = fmap
-
-instance Annotated ModulePragma where
-    ann (LanguagePragma   l _)   = l
-    ann (OptionsPragma    l _ _) = l
-    ann (AnnModulePragma  l _)   = l
-    amap f (LanguagePragma   l ns) = LanguagePragma (f l) ns
-    amap f (AnnModulePragma  l a) = AnnModulePragma (f l) a
-    amap f p = fmap f p
-
-instance Annotated Overlap where
-    ann (NoOverlap l)  = l
-    ann (Overlap l)    = l
-    ann (Incoherent l) = l
-    amap = fmap
-
-instance Annotated Activation where
-    ann (ActiveFrom   l _) = l
-    ann (ActiveUntil  l _) = l
-    amap = fmap
-
-instance Annotated Rule where
-    ann (Rule l _ _ _ _ _) = l
-    amap f (Rule l s act mrvs e1 e2) = Rule (f l) s act mrvs e1 e2
-
-instance Annotated RuleVar where
-    ann (RuleVar l _)        = l
-    ann (TypedRuleVar l _ _) = l
-    amap f (RuleVar l n) = RuleVar (f l) n
-    amap f (TypedRuleVar l n t) = TypedRuleVar (f l) n t
-
-instance Annotated WarningText where
-    ann (DeprText l _) = l
-    ann (WarnText l _) = l
-    amap = fmap
-
-instance Annotated Pat where
-    ann p = case p of
-      PVar l _          -> l
-      PLit l _ _        -> l
-      PNPlusK l _ _     -> l
-      PInfixApp l _ _ _ -> l
-      PApp l _ _        -> l
-      PTuple l _ _      -> l
-      PList l _         -> l
-      PParen l _        -> l
-      PRec l _ _        -> l
-      PAsPat l _ _      -> l
-      PWildCard l       -> l
-      PIrrPat l _       -> l
-      PatTypeSig l _ _  -> l
-      PViewPat l _ _    -> l
-      PRPat l _         -> l
-      PXTag l _ _ _ _   -> l
-      PXETag l _ _ _    -> l
-      PXPcdata l _      -> l
-      PXPatTag l _      -> l
-      PXRPats  l _      -> l
-      PQuasiQuote l _ _ -> l
-      PBangPat l _      -> l
-    amap f p1 = case p1 of
-      PVar l n          -> PVar (f l) n
-      PLit l sg lit     -> PLit (f l) sg lit
-      PNPlusK l n k     -> PNPlusK (f l) n k
-      PInfixApp l pa qn pb  -> PInfixApp (f l) pa qn pb
-      PApp l qn ps      -> PApp (f l) qn ps
-      PTuple l bx ps    -> PTuple (f l) bx ps
-      PList l ps        -> PList (f l) ps
-      PParen l p        -> PParen (f l) p
-      PRec l qn pfs     -> PRec (f l) qn pfs
-      PAsPat l n p      -> PAsPat (f l) n p
-      PWildCard l       -> PWildCard (f l)
-      PIrrPat l p       -> PIrrPat (f l) p
-      PatTypeSig l p t  -> PatTypeSig (f l) p t
-      PViewPat l e p    -> PViewPat (f l) e p
-      PRPat l rps       -> PRPat (f l) rps
-      PXTag l xn pxas mp ps -> PXTag  (f l) xn pxas mp ps
-      PXETag l xn pxas mp   -> PXETag (f l) xn pxas mp
-      PXPcdata l s      -> PXPcdata (f l) s
-      PXPatTag l p      -> PXPatTag (f l) p
-      PXRPats  l rps    -> PXRPats  (f l) rps
-      PQuasiQuote l sn st   -> PQuasiQuote (f l) sn st
-      PBangPat l p          -> PBangPat (f l) p
-
-instance Annotated PXAttr where
-    ann (PXAttr l _ _) = l
-    amap f (PXAttr l xn p) = PXAttr (f l) xn p
-
-instance Annotated RPatOp where
-    ann (RPStar  l) = l
-    ann (RPStarG l) = l
-    ann (RPPlus  l) = l
-    ann (RPPlusG l) = l
-    ann (RPOpt   l) = l
-    ann (RPOptG  l) = l
-    amap = fmap
-
-instance Annotated RPat where
-    ann rp = case rp of
-      RPOp l _ _            -> l
-      RPEither l _ _        -> l
-      RPSeq l _             -> l
-      RPGuard l _ _         -> l
-      RPCAs l _ _           -> l
-      RPAs l _ _            -> l
-      RPParen l _           -> l
-      RPPat l _             -> l
-    amap f rp1 = case rp1 of
-      RPOp l rp rop         -> RPOp (f l) rp rop
-      RPEither l rp1' rp2   -> RPEither (f l) rp1' rp2
-      RPSeq l rps           -> RPSeq (f l) rps
-      RPGuard l p ss        -> RPGuard (f l) p ss
-      RPCAs l n rp          -> RPCAs (f l) n rp
-      RPAs l n rp           -> RPAs (f l) n rp
-      RPParen l rp          -> RPParen (f l) rp
-      RPPat l p             -> RPPat (f l) p
-
-instance Annotated PatField where
-    ann (PFieldPat l _ _)  = l
-    ann (PFieldPun l _)    = l
-    ann (PFieldWildcard l) = l
-    amap f (PFieldPat l qn p) = PFieldPat (f l) qn p
-    amap f (PFieldPun l n) = PFieldPun (f l) n
-    amap f (PFieldWildcard l) = PFieldWildcard (f l)
-
-instance Annotated Stmt where
-    ann (Generator l _ _) = l
-    ann (Qualifier l _)   = l
-    ann (LetStmt l _)     = l
-    ann (RecStmt l _)     = l
-    amap f (Generator l p e) = Generator (f l) p e
-    amap f (Qualifier l e)   = Qualifier (f l) e
-    amap f (LetStmt l bs)    = LetStmt (f l) bs
-    amap f (RecStmt l ss)    = RecStmt (f l) ss
-
-instance Annotated QualStmt where
-    ann (QualStmt     l _)   = l
-    ann (ThenTrans    l _)   = l
-    ann (ThenBy       l _ _) = l
-    ann (GroupBy      l _)   = l
-    ann (GroupUsing   l _)   = l
-    ann (GroupByUsing l _ _) = l
-    amap f (QualStmt     l s) = QualStmt (f l) s
-    amap f (ThenTrans    l e) = ThenTrans (f l) e
-    amap f (ThenBy       l e1 e2) = ThenBy (f l) e1 e2
-    amap f (GroupBy      l e) = GroupBy (f l) e
-    amap f (GroupUsing   l e) = GroupUsing (f l) e
-    amap f (GroupByUsing l e1 e2) = GroupByUsing (f l) e1 e2
-
-instance Annotated FieldUpdate where
-    ann (FieldUpdate l _ _)  = l
-    ann (FieldPun l _)       = l
-    ann (FieldWildcard l)    = l
-    amap f (FieldUpdate l qn e) = FieldUpdate (f l) qn e
-    amap f (FieldPun l n)       = FieldPun (f l) n
-    amap f (FieldWildcard l)    = FieldWildcard (f l)
-
-instance Annotated Alt where
-    ann (Alt l _ _ _) = l
-    amap f (Alt l p gs bs) = Alt (f l) p gs bs
-
-instance Annotated Promoted where
-    ann (PromotedInteger l _ _) = l
-    ann (PromotedString l _ _)  = l
-    ann (PromotedCon l _ _)     = l
-    ann (PromotedList l _ _)    = l
-    ann (PromotedTuple l _)     = l
-    ann (PromotedUnit l)        = l
-    amap f (PromotedInteger l int raw) = PromotedInteger (f l) int raw
-    amap f (PromotedString l str raw) = PromotedString (f l) str raw
-    amap f (PromotedCon l b qn)   = PromotedCon (f l) b qn
-    amap f (PromotedList l b ps)  = PromotedList  (f l) b ps
-    amap f (PromotedTuple l ps) = PromotedTuple (f l) ps
-    amap f (PromotedUnit l)     = PromotedUnit (f l)
diff --git a/src/Language/Haskell/Exts/Build.hs b/src/Language/Haskell/Exts/Build.hs
--- a/src/Language/Haskell/Exts/Build.hs
+++ b/src/Language/Haskell/Exts/Build.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE Safe #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.Build
@@ -20,54 +22,54 @@
 module Language.Haskell.Exts.Build (
 
     -- * Syntax building functions
-    name,       -- :: String -> Name
-    sym,        -- :: String -> Name
-    var,        -- :: Name -> Exp
-    op,         -- :: Name -> QOp
-    qvar,       -- :: Module -> Name -> Exp
-    pvar,       -- :: Name -> Pat
-    app,        -- :: Exp -> Exp -> Exp
-    infixApp,   -- :: Exp -> QOp -> Exp -> Exp
-    appFun,     -- :: Exp -> [Exp] -> Exp
-    pApp,       -- :: Name -> [Pat] -> Pat
-    tuple,      -- :: [Exp] -> Exp
-    pTuple,     -- :: [Pat] -> Pat
-    varTuple,   -- :: [Name] -> Exp
-    pvarTuple,  -- :: [Name] -> Pat
-    function,   -- :: String -> Exp
-    strE,       -- :: String -> Exp
-    charE,      -- :: Char -> Exp
-    intE,       -- :: Integer -> Exp
-    strP,       -- :: String -> Pat
-    charP,      -- :: Char -> Pat
-    intP,       -- :: Integer -> Pat
-    doE,        -- :: [Stmt] -> Exp
-    lamE,       -- :: SrcLoc -> [Pat] -> Exp -> Exp
-    letE,       -- :: [Decl] -> Exp -> Exp
-    caseE,      -- :: Exp -> [Alt] -> Exp
-    alt,        -- :: SrcLoc -> Pat -> Exp -> Alt
-    altGW,      -- :: SrcLoc -> Pat -> [Stmt] -> Exp -> Binds -> Alt
-    listE,      -- :: [Exp] -> Exp
-    eList,      -- :: Exp
-    peList,     -- :: Pat
-    paren,      -- :: Exp -> Exp
-    pParen,     -- :: Pat -> Pat
-    qualStmt,   -- :: Exp -> Stmt
-    genStmt,    -- :: SrcLoc -> Pat -> Exp -> Stmt
+    name,       -- :: String -> Name ()
+    sym,        -- :: String -> Name ()
+    var,        -- :: Name () -> Exp ()
+    op,         -- :: Name () -> QOp
+    qvar,       -- :: Module -> Name () -> Exp ()
+    pvar,       -- :: Name () -> Pat ()
+    app,        -- :: Exp () -> Exp () -> Exp ()
+    infixApp,   -- :: Exp () -> QOp -> Exp () -> Exp ()
+    appFun,     -- :: Exp () -> [Exp] -> Exp ()
+    pApp,       -- :: Name () -> [Pat] -> Pat ()
+    tuple,      -- :: [Exp] -> Exp ()
+    pTuple,     -- :: [Pat] -> Pat ()
+    varTuple,   -- :: [Name] -> Exp ()
+    pvarTuple,  -- :: [Name] -> Pat ()
+    function,   -- :: String -> Exp ()
+    strE,       -- :: String -> Exp ()
+    charE,      -- :: Char -> Exp ()
+    intE,       -- :: Integer -> Exp ()
+    strP,       -- :: String -> Pat ()
+    charP,      -- :: Char -> Pat ()
+    intP,       -- :: Integer -> Pat ()
+    doE,        -- :: [Stmt] -> Exp ()
+    lamE,       -- :: SrcLoc -> [Pat] -> Exp () -> Exp ()
+    letE,       -- :: [Decl] -> Exp () -> Exp ()
+    caseE,      -- :: Exp () -> [Alt] -> Exp ()
+    alt,        -- :: SrcLoc -> Pat () -> Exp () -> Alt
+    altGW,      -- :: SrcLoc -> Pat () -> [Stmt] -> Exp () -> Binds -> Alt
+    listE,      -- :: [Exp] -> Exp ()
+    eList,      -- :: Exp ()
+    peList,     -- :: Pat ()
+    paren,      -- :: Exp () -> Exp ()
+    pParen,     -- :: Pat () -> Pat ()
+    qualStmt,   -- :: Exp () -> Stmt
+    genStmt,    -- :: SrcLoc -> Pat () -> Exp () -> Stmt
     letStmt,    -- :: [Decl] -> Stmt
     binds,      -- :: [Decl] -> Binds
     noBinds,    -- :: Binds
-    wildcard,   -- :: Pat
+    wildcard,   -- :: Pat ()
     genNames,   -- :: String -> Int -> [Name]
 
     -- * More advanced building
-    sfun,           -- :: SrcLoc -> Name -> [Name] -> Rhs -> Binds -> Decl
-    simpleFun,      -- :: SrcLoc -> Name -> Name -> Exp -> Decl
-    patBind,        -- :: SrcLoc -> Pat -> Exp -> Decl
-    patBindWhere,   -- :: SrcLoc -> Pat -> Exp -> [Decl] -> Decl
-    nameBind,       -- :: SrcLoc -> Name -> Exp -> Decl
-    metaFunction,   -- :: String -> [Exp] -> Exp
-    metaConPat      -- :: String -> [Pat] -> Pat
+    sfun,           -- :: SrcLoc -> Name () -> [Name] -> Rhs -> Binds -> Decl ()
+    simpleFun,      -- :: SrcLoc -> Name () -> Name () -> Exp () -> Decl ()
+    patBind,        -- :: SrcLoc -> Pat () -> Exp () -> Decl ()
+    patBindWhere,   -- :: SrcLoc -> Pat () -> Exp () -> [Decl] -> Decl ()
+    nameBind,       -- :: SrcLoc -> Name () -> Exp () -> Decl ()
+    metaFunction,   -- :: String -> [Exp] -> Exp ()
+    metaConPat      -- :: String -> [Pat] -> Pat ()
   ) where
 
 import Language.Haskell.Exts.Syntax
@@ -77,214 +79,216 @@
 
 -- | An identifier with the given string as its name.
 --   The string should be a valid Haskell identifier.
-name :: String -> Name
-name = Ident
+name :: String -> Name ()
+name = Ident ()
 
 -- | A symbol identifier. The string should be a valid
 --   Haskell symbol identifier.
-sym :: String -> Name
-sym = Symbol
+sym :: String -> Name ()
+sym = Symbol ()
 
 -- | A local variable as expression.
-var :: Name -> Exp
-var = Var . UnQual
+var :: Name () -> Exp ()
+var = Var () . UnQual ()
 
 -- | Use the given identifier as an operator.
-op :: Name -> QOp
-op = QVarOp . UnQual
+op :: Name () -> QOp ()
+op = QVarOp () . UnQual ()
 
 -- | A qualified variable as expression.
-qvar :: ModuleName -> Name -> Exp
-qvar m n = Var $ Qual m n
+qvar :: ModuleName () -> Name () -> Exp ()
+qvar m n = Var () $ Qual () m n
 
 -- | A pattern variable.
-pvar :: Name -> Pat
-pvar = PVar
+pvar :: Name () -> Pat ()
+pvar = PVar ()
 
 -- | Application of expressions by juxtaposition.
-app :: Exp -> Exp -> Exp
-app = App
+app :: Exp () -> Exp () -> Exp ()
+app = App ()
 
 -- | Apply an operator infix.
-infixApp :: Exp -> QOp -> Exp -> Exp
-infixApp = InfixApp
+infixApp :: Exp () -> QOp () -> Exp () -> Exp ()
+infixApp = InfixApp ()
 
 -- | Apply a function to a list of arguments.
-appFun :: Exp -> [Exp] -> Exp
+appFun :: Exp () -> [Exp ()] -> Exp ()
 appFun f [] = f
 appFun f (a:as) = appFun (app f a) as
 
 -- | A constructor pattern, with argument patterns.
-pApp :: Name -> [Pat] -> Pat
-pApp n ps = PApp (UnQual n) ps
+pApp :: Name () -> [Pat ()] -> Pat ()
+pApp n ps = PApp () (UnQual () n) ps
 
 -- | A tuple expression.
-tuple :: [Exp] -> Exp
-tuple = Tuple Boxed
+tuple :: [Exp ()] -> Exp ()
+tuple = Tuple () Boxed
 
 -- | A tuple pattern.
-pTuple :: [Pat] -> Pat
-pTuple = PTuple Boxed
+pTuple :: [Pat ()] -> Pat ()
+pTuple = PTuple () Boxed
 
 -- | A tuple expression consisting of variables only.
-varTuple :: [Name] -> Exp
+varTuple :: [Name ()] -> Exp ()
 varTuple ns = tuple $ map var ns
 
 -- | A tuple pattern consisting of variables only.
-pvarTuple :: [Name] -> Pat
+pvarTuple :: [Name ()] -> Pat ()
 pvarTuple ns = pTuple $ map pvar ns
 
 -- | A function with a given name.
-function :: String -> Exp
-function = var . Ident
+function :: String -> Exp ()
+function = var . Ident ()
 
 -- | A literal string expression.
-strE :: String -> Exp
-strE = Lit . String
+strE :: String -> Exp ()
+strE s = Lit () (String () s s)
 
 -- | A literal character expression.
-charE :: Char -> Exp
-charE = Lit . Char
+charE :: Char -> Exp ()
+charE c = Lit () (Char () c [c])
 
 -- | A literal integer expression.
-intE :: Integer -> Exp
-intE = Lit . Int
+intE :: Integer -> Exp ()
+intE n = Lit () (Int () n (show n))
 
 -- | A literal string pattern.
-strP :: String -> Pat
-strP = PLit Signless . String
+strP :: String -> Pat ()
+strP s = PLit () (Signless ()) (String () s s)
 
 -- | A literal character pattern.
-charP :: Char -> Pat
-charP = PLit Signless . Char
+charP :: Char -> Pat ()
+charP x = PLit () (Signless ()) (Char () x [x])
 
 -- | A literal integer pattern.
-intP :: Integer -> Pat
-intP x = PLit (if x >= 0 then Signless else Negative) . Int . abs $ x
+intP :: Integer -> Pat ()
+intP x = PLit ()
+          (if x >= 0 then Signless () else Negative ())
+          (Int () (abs x) (show x))
 
 -- | A do block formed by the given statements.
 --   The last statement in the list should be
 --   a 'Qualifier' expression.
-doE :: [Stmt] -> Exp
-doE = Do
+doE :: [Stmt ()] -> Exp ()
+doE = Do ()
 
 -- | Lambda abstraction, given a list of argument
 --   patterns and an expression body.
-lamE :: SrcLoc -> [Pat] -> Exp -> Exp
-lamE = Lambda
+lamE :: [Pat ()] -> Exp () -> Exp ()
+lamE = Lambda ()
 
 -- | A @let@ ... @in@ block.
-letE :: [Decl] -> Exp -> Exp
-letE ds e = Let (binds ds) e
+letE :: [Decl ()] -> Exp () -> Exp ()
+letE ds e = Let () (binds ds) e
 
 -- | A @case@ expression.
-caseE :: Exp -> [Alt] -> Exp
-caseE = Case
+caseE :: Exp () -> [Alt ()] -> Exp ()
+caseE = Case ()
 
 -- | An unguarded alternative in a @case@ expression.
-alt :: SrcLoc -> Pat -> Exp -> Alt
-alt s p e = Alt s p (unGAlt e) noBinds
+alt :: Pat () -> Exp () -> Alt ()
+alt p e = Alt () p (unGAlt e) noBinds
 
 -- | An alternative with a single guard in a @case@ expression.
-altGW :: SrcLoc -> Pat -> [Stmt] -> Exp -> Binds -> Alt
-altGW s p gs e w = Alt s p (gAlt s gs e) w
+altGW :: Pat () -> [Stmt ()] -> Exp () -> Binds () -> Alt ()
+altGW p gs e w = Alt () p (gAlt gs e) (Just w)
 
 -- | An unguarded righthand side of a @case@ alternative.
-unGAlt :: Exp -> Rhs
-unGAlt = UnGuardedRhs
+unGAlt :: Exp () -> Rhs ()
+unGAlt = UnGuardedRhs ()
 
 -- | An list of guarded righthand sides for a @case@ alternative.
-gAlts :: SrcLoc -> [([Stmt],Exp)] -> Rhs
-gAlts s as = GuardedRhss $ map (\(gs,e) -> GuardedRhs s gs e) as
+gAlts :: [([Stmt ()],Exp ())] -> Rhs ()
+gAlts as = GuardedRhss () $ map (\(gs,e) -> GuardedRhs () gs e) as
 
 -- | A single guarded righthand side for a @case@ alternative.
-gAlt :: SrcLoc -> [Stmt] -> Exp -> Rhs
-gAlt s gs e = gAlts s [(gs,e)]
+gAlt :: [Stmt ()] -> Exp () -> Rhs ()
+gAlt gs e = gAlts [(gs,e)]
 
 -- | A list expression.
-listE :: [Exp] -> Exp
-listE = List
+listE :: [Exp ()] -> Exp ()
+listE = List ()
 
 -- | The empty list expression.
-eList :: Exp
-eList = List []
+eList :: Exp ()
+eList = List () []
 
 -- | The empty list pattern.
-peList :: Pat
-peList = PList []
+peList :: Pat ()
+peList = PList () []
 
 -- | Put parentheses around an expression.
-paren :: Exp -> Exp
-paren = Paren
+paren :: Exp () -> Exp ()
+paren = Paren ()
 
 -- | Put parentheses around a pattern.
-pParen :: Pat -> Pat
-pParen = PParen
+pParen :: Pat () -> Pat ()
+pParen = PParen ()
 
 -- | A qualifier expression statement.
-qualStmt :: Exp -> Stmt
-qualStmt = Qualifier
+qualStmt :: Exp () -> Stmt ()
+qualStmt = Qualifier ()
 
 -- | A generator statement: /pat/ @<-@ /exp/
-genStmt :: SrcLoc -> Pat -> Exp -> Stmt
-genStmt = Generator
+genStmt :: Pat () -> Exp () -> Stmt ()
+genStmt = Generator ()
 
 -- | A @let@ binding group as a statement.
-letStmt :: [Decl] -> Stmt
-letStmt ds = LetStmt $ binds ds
+letStmt :: [Decl ()] -> Stmt ()
+letStmt ds = LetStmt () $ binds ds
 
 -- | Hoist a set of declarations to a binding group.
-binds :: [Decl] -> Binds
-binds = BDecls
+binds :: [Decl ()] -> Binds ()
+binds = BDecls ()
 
 -- | An empty binding group.
-noBinds :: Binds
-noBinds = binds []
+noBinds :: Maybe (Binds ())
+noBinds = Nothing
 
 -- | The wildcard pattern: @_@
-wildcard :: Pat
-wildcard = PWildCard
+wildcard :: Pat ()
+wildcard = PWildCard ()
 
 -- | Generate k names by appending numbers 1 through k to a given string.
-genNames :: String -> Int -> [Name]
-genNames s k = [ Ident $ s ++ show i | i <- [1..k] ]
+genNames :: String -> Int -> [Name ()]
+genNames s k = [ Ident () $ s ++ show i | i <- [1..k] ]
 
 -------------------------------------------------------------------------------
 -- Some more specialised help functions
 
 -- | A function with a single clause
-sfun :: SrcLoc -> Name -> [Name] -> Rhs -> Binds -> Decl
-sfun s f pvs rhs bs = FunBind [Match s f (map pvar pvs) Nothing rhs bs]
+sfun :: Name () -> [Name ()] -> (Rhs ()) -> Maybe (Binds ()) -> Decl ()
+sfun f pvs rhs bs = FunBind () [Match () f (map pvar pvs) rhs bs]
 
 -- | A function with a single clause, a single argument, no guards
 -- and no where declarations
-simpleFun :: SrcLoc -> Name -> Name -> Exp -> Decl
-simpleFun s f a e = let rhs = UnGuardedRhs e
-             in sfun s f [a] rhs noBinds
+simpleFun :: Name () -> Name () -> Exp () -> Decl ()
+simpleFun f a e = let rhs = UnGuardedRhs () e
+             in sfun f [a] rhs noBinds
 
 -- | A pattern bind where the pattern is a variable, and where
 -- there are no guards and no 'where' clause.
-patBind :: SrcLoc -> Pat -> Exp -> Decl
-patBind s p e = let rhs = UnGuardedRhs e
-         in PatBind s p rhs noBinds
+patBind :: Pat () -> Exp () -> Decl ()
+patBind p e = let rhs = UnGuardedRhs () e
+         in PatBind () p rhs noBinds
 
 -- | A pattern bind where the pattern is a variable, and where
 -- there are no guards, but with a 'where' clause.
-patBindWhere :: SrcLoc -> Pat -> Exp -> [Decl] -> Decl
-patBindWhere s p e ds = let rhs = UnGuardedRhs e
-             in PatBind s p rhs (binds ds)
+patBindWhere :: Pat () -> Exp () -> [Decl ()] -> Decl ()
+patBindWhere p e ds = let rhs = UnGuardedRhs () e
+             in PatBind () p rhs (if null ds then Nothing else Just (binds ds))
 
 -- | Bind an identifier to an expression.
-nameBind :: SrcLoc -> Name -> Exp -> Decl
-nameBind s n e = patBind s (pvar n) e
+nameBind :: Name () -> Exp () -> Decl ()
+nameBind n e = patBind (pvar n) e
 
 -- | Apply function of a given name to a list of arguments.
-metaFunction :: String -> [Exp] -> Exp
+metaFunction :: String -> [Exp ()] -> Exp ()
 metaFunction s' es' = mf s' (reverse es')
   where mf s []     = var $ name s
         mf s (e:es) = app (mf s es) e
 
 -- | Apply a constructor of a given name to a list of pattern
 --   arguments, forming a constructor pattern.
-metaConPat :: String -> [Pat] -> Pat
+metaConPat :: String -> [Pat ()] -> Pat ()
 metaConPat s ps = pApp (name s) ps
diff --git a/src/Language/Haskell/Exts/Comments.hs b/src/Language/Haskell/Exts/Comments.hs
--- a/src/Language/Haskell/Exts/Comments.hs
+++ b/src/Language/Haskell/Exts/Comments.hs
@@ -1,9 +1,54 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-module Language.Haskell.Exts.Comments where
+{-# LANGUAGE DeriveDataTypeable, Safe #-}
 
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Language.Haskell.Exts.Comments
+-- Copyright   :  (c) JP Moresmau 2015
+-- License     :  BSD-style (see the file LICENSE.txt)
+--
+-- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
+-- Stability   :  experimental
+-- Portability :  portable
+--
+-- This module processes comments along with an annotated AST,
+-- to be able to associate Haddock comments with the actual item
+-- they refer to.
+--
+-- Example:
+--
+-- @
+-- let
+--  parse1Result :: ParseResult (Module SrcSpanInfo,[Comment])
+--  parse1Result =
+--    parseFileContentsWithComments
+--     (defaultParseMode { parseFilename = file })
+--      contents
+--  withC :: ParseResult (Module (SrcSpanInfo,[Comment]))
+--  withC = case parse1Result of
+--            ParseOk res         -> ParseOk $ associateHaddock res
+--            ParseFailed sloc msg -> ParseFailed sloc msg
+-- @
+--
+-- In this code sample, parse1Result is what you get when you parse a file:
+-- a 'Module' annotated wth 'SrcSpanInfo', and a list of comments
+-- After passing the result to 'associateHaddock', you get a 'Module'
+-- annotated with both a 'SrcSpanInfo' and the list of 'Comment' related to the
+-- specific AST node.
+--
+-----------------------------------------------------------------------------
+module Language.Haskell.Exts.Comments
+    ( associateHaddock
+    , Comment(..), UnknownPragma(..)
+    ) where
+
+import Language.Haskell.Exts.Syntax
 import Language.Haskell.Exts.SrcLoc
+
+import Data.Char (isSpace)
+import Data.Traversable
 import Data.Data
 
+
 -- | A Haskell comment. The 'Bool' is 'True' if the comment is multi-line, i.e. @{- -}@.
 data Comment = Comment Bool SrcSpan String
   deriving (Eq,Show,Typeable,Data)
@@ -11,3 +56,134 @@
 -- | An unknown pragma.
 data UnknownPragma = UnknownPragma SrcSpan String
   deriving (Eq,Show,Typeable,Data)
+
+
+-- | Associates an AST with Source Span Information
+-- with relevant Haddock comments
+associateHaddock
+  ::(Annotated ast,Traversable ast)
+  => (ast SrcSpanInfo,[Comment])
+  -> ast (SrcSpanInfo,[Comment])
+associateHaddock (ast,[]) = fmap (\src->(src,[])) ast
+associateHaddock (ast,comments) =
+  let
+    (ca,assocs1) = mapAccumL associate1 (newAccumulator comments) ast
+  in snd $ mapAccumL merge (lastPost ca) assocs1
+
+
+-- | Merge existing association with post comment associations
+merge
+  :: [(SrcSpanInfo,[Comment])]
+  -> (SrcSpanInfo,[Comment])
+  -> ([(SrcSpanInfo,[Comment])], (SrcSpanInfo,[Comment]))
+merge [] ret = ([],ret)
+merge (x:xs) (src,cmts) =
+  if fst x == src
+    then (xs,(src,cmts ++ snd x))
+    else (x:xs,(src,cmts))
+
+
+-- | Ensure that if file ends with comment we process it
+lastPost :: CommentAccumulator -> [(SrcSpanInfo, [Comment])]
+lastPost (CommentAccumulator (Post cmt : rest) past assocs) =
+  let (toMerge, _) = span isNone rest
+      psrc = matchPreviousSrc past
+  in (assocs ++ [(psrc, cmt : map hcComment toMerge)])
+lastPost (CommentAccumulator _ _ assocs) = assocs
+
+
+-- | Accumulate comments mappings, either directly with the source
+-- or in another association list for later processing
+associate1
+  :: CommentAccumulator
+  -> SrcSpanInfo
+  -> (CommentAccumulator,(SrcSpanInfo,[Comment]))
+associate1 ca@(CommentAccumulator [] _ _) src = (ca,(src,[]))
+associate1 (CommentAccumulator (hc@(Pre cmt):rest) _ assocs) src =
+  if isBefore hc src
+    then
+      let (toMerge,next) = getToMerge src rest
+          newAssoc = (src,cmt : map hcComment toMerge)
+      in (CommentAccumulator next [] assocs,newAssoc)
+    else (CommentAccumulator (hc:rest) [] assocs,(src,[]))
+associate1 (CommentAccumulator (hc@(Post cmt):rest) past assocs) src =
+  if isBefore hc src
+    then
+      let (toMerge,next) = getToMerge src rest
+          newAssocs =
+            if null past
+              then assocs
+              else assocs++[(matchPreviousSrc past,cmt : map hcComment toMerge)]
+      in associate1 (CommentAccumulator next [] newAssocs) src
+    else (CommentAccumulator (hc:rest) (src:past) assocs,(src,[]))
+associate1 (CommentAccumulator (_:rest) past assocs) src =
+  (CommentAccumulator rest (src:past) assocs,(src,[]))
+
+
+-- | The comment accumulator
+data CommentAccumulator = CommentAccumulator
+  [HaddockComment]          -- The Haddock comments to process
+  [SrcSpanInfo]             -- The past src infos to resolve post comments
+  [(SrcSpanInfo,[Comment])] -- The additional associations between src and comments
+
+
+-- | Create a new accumulator
+newAccumulator :: [Comment] -> CommentAccumulator
+newAccumulator comments = CommentAccumulator (commentsToHaddock comments) [] []
+
+-- | Get comments to merge
+getToMerge
+  :: SrcSpanInfo                         -- ^ Stop before src
+  -> [HaddockComment]                    -- ^ All remaining comments
+  -> ([HaddockComment],[HaddockComment]) -- ^ Comments to merge, left overs
+getToMerge src = span (\hc-> isNone hc && isBefore hc src)
+
+
+-- | Get the biggest src that ends where the first one does
+matchPreviousSrc :: [SrcSpanInfo] -> SrcSpanInfo
+matchPreviousSrc [] =
+  error "Language.Haskell.Exts.Annotated.Comments.matchPreviousSrc: empty list"
+matchPreviousSrc srcs =
+  let end = srcSpanEnd $ srcInfoSpan $ head srcs
+  in last $ filter ((end ==) . srcSpanEnd . srcInfoSpan) srcs
+
+-- | Is a Haddock comment before a given location
+isBefore :: HaddockComment -> SrcSpanInfo -> Bool
+isBefore hc src=
+  let
+    (Comment _ csrc _) = hcComment hc
+  in csrc < srcInfoSpan src
+
+-- | Represents a Haddock Comment
+data HaddockComment =
+  -- | Comment before declaration
+  Pre
+   {
+     hcComment::Comment
+   }
+  -- | Comment after declaration
+  | Post  {
+     hcComment::Comment
+    }
+  -- | Non Haddock comment
+  | None  {
+     hcComment::Comment
+    }
+
+-- | Is a comment not haddock?
+isNone :: HaddockComment -> Bool
+isNone (None _) = True
+isNone _ = False
+
+
+-- | Comments to Haddock Comments
+commentsToHaddock :: [Comment] -> [HaddockComment]
+commentsToHaddock = map commentToHaddock
+
+-- | Comment to Haddock Comment
+commentToHaddock :: Comment -> HaddockComment
+commentToHaddock c@(Comment _ _ txt) =
+  case dropWhile isSpace txt of
+    ('|':_) -> Pre c
+    ('^':_) -> Post c
+    _       -> None c
diff --git a/src/Language/Haskell/Exts/ExactPrint.hs b/src/Language/Haskell/Exts/ExactPrint.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Haskell/Exts/ExactPrint.hs
@@ -0,0 +1,2219 @@
+{-# LANGUAGE CPP, DeriveFunctor, Safe #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Language.Haskell.Exts.Annotated.ExactPrint
+-- Copyright   :  (c) Niklas Broberg 2009
+-- License     :  BSD-style (see the file LICENSE.txt)
+--
+-- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Exact-printer for Haskell abstract syntax. The input is a (semi-concrete)
+-- abstract syntax tree, annotated with exact source information to enable
+-- printing the tree exactly as it was parsed.
+--
+-----------------------------------------------------------------------------
+module Language.Haskell.Exts.ExactPrint
+        ( exactPrint
+        , ExactP
+        ) where
+
+import Language.Haskell.Exts.Syntax
+import Language.Haskell.Exts.SrcLoc
+import Language.Haskell.Exts.Comments
+
+import Control.Monad (when, liftM, ap, unless)
+import qualified Control.Monad.Fail as Fail
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative (Applicative(..))
+#endif
+import Control.Arrow ((***), (&&&))
+import Prelude hiding (exp)
+import Data.List (intersperse)
+
+------------------------------------------------------
+-- The EP monad and basic combinators
+
+type Pos = (Int,Int)
+
+pos :: (SrcInfo loc) => loc -> Pos
+pos ss = (startLine ss, startColumn ss)
+
+newtype EP x = EP (Pos -> [Comment] -> (x, Pos, [Comment], ShowS))
+
+instance Functor EP where
+  fmap = liftM
+
+instance Applicative EP where
+  pure x = EP $ \l cs -> (x, l, cs, id)
+  (<*>) = ap
+
+instance Monad EP where
+
+  EP m >>= k = EP $ \l0 c0 -> let
+        (a, l1, c1, s1) = m l0 c0
+        EP f = k a
+        (b, l2, c2, s2) = f l1 c1
+    in (b, l2, c2, s1 . s2)
+
+instance Fail.MonadFail EP where
+  fail = error
+
+runEP :: EP () -> [Comment] -> String
+runEP (EP f) cs = let (_,_,_,s) = f (1,1) cs in s ""
+
+getPos :: EP Pos
+getPos = EP (\l cs -> (l,l,cs,id))
+
+setPos :: Pos -> EP ()
+setPos l = EP (\_ cs -> ((),l,cs,id))
+
+printString :: String -> EP ()
+printString str =
+  EP (\(l,c) cs -> let (l', c') = foldl go (l, c) str
+                       go (cl, _) '\n' = (cl + 1, 1)
+                       go (cl, cc) _    = (cl, cc + 1)
+                   in ((), (l', c'), cs, showString str))
+
+
+getComment :: EP (Maybe Comment)
+getComment = EP $ \l cs ->
+    let x = case cs of
+             c:_ -> Just c
+             _   -> Nothing
+     in (x, l, cs, id)
+
+dropComment :: EP ()
+dropComment = EP $ \l cs ->
+    let cs' = case cs of
+               (_:cs1) -> cs1
+               _       -> cs
+     in ((), l, cs', id)
+
+newLine :: EP ()
+newLine = do
+    (l,_) <- getPos
+    printString "\n"
+    setPos (l+1,1)
+
+padUntil :: Pos -> EP ()
+padUntil (l,c) = do
+    (l1,c1) <- getPos
+    case  {- trace (show ((l,c), (l1,c1))) -} () of
+     _ {-()-} | l1 >= l && c1 <= c -> printString $ replicate (c - c1) ' '
+              | l1 < l             -> newLine >> padUntil (l,c)
+              | otherwise          -> return ()
+
+
+mPrintComments :: Pos -> EP ()
+mPrintComments p = do
+    mc <- getComment
+    case mc of
+     Nothing -> return ()
+     Just (Comment multi s str) ->
+        when (pos s < p) $ do
+            dropComment
+            padUntil (pos s)
+            printComment multi str
+            setPos (srcSpanEndLine s, srcSpanEndColumn s)
+            mPrintComments p
+
+printComment :: Bool -> String -> EP ()
+printComment b str
+    | b         = printString $ "{-" ++ str ++ "-}"
+    | otherwise = printString $ "--" ++ str
+
+printWhitespace :: Pos -> EP ()
+printWhitespace p = mPrintComments p >> padUntil p
+
+printStringAt :: Pos -> String -> EP ()
+printStringAt p str = printWhitespace p >> printString str
+
+errorEP :: String -> EP a
+errorEP = fail
+
+------------------------------------------------------------------------------
+-- Printing of source elements
+
+-- | Print an AST exactly as specified by the annotations on the nodes in the tree.
+exactPrint :: (ExactP ast) => ast SrcSpanInfo -> [Comment] -> String
+exactPrint ast = runEP (exactPC ast)
+
+exactPC :: (ExactP ast) => ast SrcSpanInfo -> EP ()
+exactPC ast = let p = pos (ann ast) in mPrintComments p >> padUntil p >> exactP ast
+
+printSeq :: [(Pos, EP ())] -> EP ()
+printSeq [] = return ()
+printSeq ((p,pr):xs) = printWhitespace p >> pr >> printSeq xs
+
+printStrs :: SrcInfo loc => [(loc, String)] -> EP ()
+printStrs = printSeq . map (pos *** printString)
+
+printPoints :: SrcSpanInfo -> [String] -> EP ()
+printPoints l = printStrs . zip (srcInfoPoints l)
+
+printInterleaved, printInterleaved' :: (ExactP ast, SrcInfo loc) => [(loc, String)] -> [ast SrcSpanInfo] -> EP ()
+printInterleaved sistrs asts = printSeq $
+    interleave (map (pos *** printString ) sistrs)
+               (map (pos . ann &&& exactP) asts)
+
+printInterleaved' sistrs (a:asts) = exactPC a >> printInterleaved sistrs asts
+printInterleaved' _ _ = internalError "printInterleaved'"
+
+printStreams :: [(Pos, EP ())] -> [(Pos, EP ())] -> EP ()
+printStreams [] ys = printSeq ys
+printStreams xs [] = printSeq xs
+printStreams (x@(p1,ep1):xs) (y@(p2,ep2):ys)
+    | p1 <= p2 = printWhitespace p1 >> ep1 >> printStreams xs (y:ys)
+    | otherwise = printWhitespace p2 >> ep2 >> printStreams (x:xs) ys
+
+
+interleave :: [a] -> [a] -> [a]
+interleave [] ys = ys
+interleave xs [] = xs
+interleave (x:xs) (y:ys) = x:y: interleave xs ys
+
+maybeEP :: (a -> EP ()) -> Maybe a -> EP ()
+maybeEP = maybe (return ())
+
+bracketList :: (ExactP ast) => (String, String, String) -> [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
+bracketList (a,b,c) poss asts = printInterleaved (pList poss (a,b,c)) asts
+
+pList :: [a] -> (b, b, b) -> [(a, b)]
+pList (p:ps) (a,b,c) = (p,a) : pList' ps (b,c)
+pList _ _ = internalError "pList"
+pList' :: [a] -> (b, b) -> [(a, b)]
+pList' [] _ = []
+pList' [p] (_,c) = [(p,c)]
+pList' (p:ps) (b,c) = (p, b) : pList' ps (b,c)
+
+parenList, squareList, squareColonList, curlyList, parenHashList,
+  unboxedSumTypeList :: (ExactP ast) => [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
+parenList = bracketList ("(",",",")")
+squareList = bracketList ("[",",","]")
+squareColonList = bracketList ("[:",",",":]")
+curlyList = bracketList ("{",",","}")
+parenHashList = bracketList ("(#",",","#)")
+unboxedSumTypeList = bracketList ("(#", "|", "#)")
+
+layoutList :: (ExactP ast) => [SrcSpan] -> [ast SrcSpanInfo] -> EP ()
+layoutList poss asts = printStreams
+        (map (pos *** printString) $ lList poss)
+        (map (pos . ann &&& exactP) asts)
+
+lList :: [SrcSpan] -> [(SrcSpan, String)]
+lList (p:ps) = (if isNullSpan p then (p,"") else (p,"{")) : lList' ps
+lList _ = internalError "lList"
+lList' :: [SrcSpan] -> [(SrcSpan, String)]
+lList' [] = []
+lList' [p] = [if isNullSpan p then (p,"") else (p,"}")]
+lList' (p:ps) = (if isNullSpan p then (p,"") else (p,";")) : lList' ps
+
+printSemi :: SrcSpan -> EP ()
+printSemi p = do
+  printWhitespace (pos p)
+  unless (isNullSpan p) $ printString ";"
+
+
+--------------------------------------------------
+-- Exact printing
+
+class Annotated ast => ExactP ast where
+  exactP :: ast SrcSpanInfo -> EP ()
+
+instance ExactP Literal where
+  exactP lit = case lit of
+    Char       _ _ rw -> printString ('\'':rw ++ "\'")
+    String     _ _ rw -> printString ('\"':rw ++ "\"")
+    Int        _ _ rw -> printString rw
+    Frac       _ _ rw -> printString rw
+    PrimInt    _ _ rw -> printString (rw ++ "#" )
+    PrimWord   _ _ rw -> printString (rw ++ "##")
+    PrimFloat  _ _ rw -> printString (rw ++ "#" )
+    PrimDouble _ _ rw -> printString (rw ++ "##")
+    PrimChar   _ _ rw -> printString ('\'':rw ++ "\'#" )
+    PrimString _ _ rw -> printString ('\"':rw ++ "\"#" )
+
+instance ExactP Sign where
+  exactP sg = case sg of
+    Signless _ -> return ()
+    Negative l -> printStringAt (pos l) "-"
+
+instance ExactP ModuleName where
+  exactP (ModuleName _ str) = printString str
+
+instance ExactP SpecialCon where
+  exactP sc = case sc of
+    UnitCon l   -> printPoints l ["(",")"]
+    ListCon l   -> printPoints l ["[","]"]
+    FunCon  l   -> case srcInfoPoints l of
+                    [_,b,_] -> printStringAt (pos b) "->"
+                    _ -> errorEP "ExactP: SpecialCon is given wrong number of srcInfoPoints"
+    TupleCon l b n -> printPoints l $
+        case b of
+         Unboxed -> "(#": replicate (n-1) "," ++ ["#)"]
+         _       -> "(" : replicate (n-1) "," ++ [")"]
+    Cons _      -> printString ":"
+    UnboxedSingleCon l -> printPoints l ["(#","#)"]
+    ExprHole l -> printStringAt (pos l) "_"
+
+isSymbolName :: Name l -> Bool
+isSymbolName (Symbol _ _) = True
+isSymbolName _            = False
+
+isSymbolQName :: QName l -> Bool
+isSymbolQName (UnQual _ n)         = isSymbolName n
+isSymbolQName (Qual _ _ n)         = isSymbolName n
+isSymbolQName (Special _ Cons{})   = True
+isSymbolQName (Special _ FunCon{}) = True
+isSymbolQName _                    = False
+
+instance ExactP QName where
+  exactP qn
+    | isSymbolQName qn =
+        case srcInfoPoints (ann qn) of
+         [_,b,c] -> do
+            printString "("
+            printWhitespace (pos b)
+            epQName qn
+            printStringAt (pos c) ")"
+         _ -> errorEP "ExactP: QName is given wrong number of srcInfoPoints"
+    | otherwise = epQName qn
+
+epQName :: QName SrcSpanInfo -> EP ()
+epQName qn = case qn of
+    Qual    _ mn n  -> exactP mn >> printString "." >> exactP n
+    UnQual  _    n  -> exactP n
+    Special _ sc    -> exactP sc
+
+epInfixQName :: QName SrcSpanInfo -> EP ()
+epInfixQName qn
+    | isSymbolQName qn = printWhitespace (pos (ann qn)) >> epQName qn
+    | otherwise =
+        case srcInfoPoints (ann qn) of
+         [a,b,c] -> do
+            printStringAt (pos a) "`"
+            printWhitespace (pos b)
+            epQName qn
+            printStringAt (pos c) "`"
+         _ -> errorEP "ExactP: QName (epInfixName) is given wrong number of srcInfoPoints"
+
+instance ExactP Name where
+  exactP n = case n of
+    Ident  _ str    -> printString str
+    Symbol l str    ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "("
+            printWhitespace (pos b)
+            printString str
+            printStringAt (pos c) ")"
+         [] -> printString str
+         _ -> errorEP "ExactP: Name is given wrong number of srcInfoPoints"
+
+epInfixName :: Name SrcSpanInfo -> EP ()
+epInfixName n
+    | isSymbolName n = printWhitespace (pos (ann n)) >> exactP n
+    | otherwise =
+        case srcInfoPoints (ann n) of
+         [a,b,c] -> do
+            printStringAt (pos a) "`"
+            printWhitespace (pos b)
+            exactP n
+            printStringAt (pos c) "`"
+         _ -> errorEP "ExactP: Name (epInfixName) is given wrong number of srcInfoPoints"
+
+instance ExactP IPName where
+  exactP ipn = case ipn of
+    IPDup _ str -> printString $ '?':str
+    IPLin _ str -> printString $ '%':str
+
+instance ExactP QOp where
+  exactP qop = case qop of
+    QVarOp _ qn -> epInfixQName qn
+    QConOp _ qn -> epInfixQName qn
+
+instance ExactP Op where
+  exactP op = case op of
+    VarOp _ n -> epInfixName n
+    ConOp _ n -> epInfixName n
+
+
+
+instance ExactP CName where
+  exactP cn = case cn of
+    VarName _ n -> exactP n
+    ConName _ n -> exactP n
+
+instance ExactP Namespace where
+  exactP ns = case ns of
+     NoNamespace _   -> return ()
+     TypeNamespace l -> printStringAt (pos l) "type"
+     PatternNamespace l -> printStringAt (pos l) "pattern"
+
+instance ExactP ExportSpec where
+  exactP espec = case espec of
+     EVar _ qn    -> exactPC qn
+     EAbs _ ns qn -> exactP ns >> exactPC qn
+     EThingWith l wc qn cns    ->
+         let names = case wc of
+                        NoWildcard {} -> cns
+                        EWildcard wcl n  ->
+                          let (before,after) = splitAt n cns
+                              wildcardName = VarName wcl (Ident wcl "..")
+                          in before ++ [wildcardName] ++ after
+             k = length (srcInfoPoints l)
+         in exactP qn >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) names
+     EModuleContents _ mn -> printString "module" >> exactPC mn
+
+instance ExactP ExportSpecList where
+  exactP (ExportSpecList l ess) =
+    let k = length (srcInfoPoints l)
+     in printInterleaved (zip (srcInfoPoints l) $ "(": replicate (k-2) "," ++ [")"]) ess
+
+instance ExactP ImportSpecList where
+  exactP (ImportSpecList l hid ispecs) = do
+    let pts = srcInfoPoints l
+    pts1 <- if hid then do
+             let (x:pts') = pts
+             printStringAt (pos x) "hiding"
+             return pts'
+            else return pts
+    let k = length pts1
+    printInterleaved (zip pts1 $ "(": replicate (k-2) "," ++ [")"]) ispecs
+
+instance ExactP ImportSpec where
+  exactP ispec = case ispec of
+    IVar _ qn       -> exactPC qn
+    IAbs _ ns n     -> exactP ns >> exactPC n
+    IThingAll l n   -> exactP n >> printPoints l ["(","..",")"]
+    IThingWith l n cns    ->
+        let k = length (srcInfoPoints l)
+         in exactP n >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) cns
+
+instance ExactP ImportDecl where
+  exactP (ImportDecl l mn qf src safe mpkg mas mispecs) = do
+    printString "import"
+    case srcInfoPoints l of
+     (_:pts) -> do
+        pts1 <- if src then
+                 case pts of
+                  x:y:pts' -> do
+                     printStringAt (pos x) "{-# SOURCE"
+                     printStringAt (pos y) "#-}"
+                     return pts'
+                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+                else return pts
+        pts2 <- if safe then
+                 case pts1 of
+                  x:pts' -> do
+                     printStringAt (pos x) "safe"
+                     return pts'
+                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+                else return pts1
+
+        -- Try to determine if qualified is post-positioned only if we have enough points
+        let isPostQual = (qf && not (null pts2)) && safeIsPostQualified pts2
+
+        pts3 <- if qf && not isPostQual then
+                  case pts2 of
+                   x:pts' -> do
+                     printStringAt (pos x) "qualified"
+                     return pts'
+                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+                else return pts2
+
+        pts4 <- case mpkg of
+                Just pkg ->
+                  case pts3 of
+                   x:pts' -> do
+                      printStringAt (pos x) $ show pkg
+                      return pts'
+                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+                _ -> return pts3
+
+        exactPC mn
+
+        -- Only try post-qualified if we determined it's actually post-qualified
+        pts5 <- if qf && isPostQual then
+                 case pts4 of
+                  x:pts' -> do
+                     printStringAt (pos x) "qualified"
+                     return pts'
+                  _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+                else return pts4
+
+        _ <- case mas of
+               Just as ->
+                 case pts5 of
+                   x:pts' -> do
+                     printStringAt (pos x) "as"
+                     exactPC as
+                     return pts'
+                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+               _ -> return pts5
+
+        case mispecs of
+         Nothing -> return ()
+         Just ispecs -> exactPC ispecs
+     _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"
+    where safeIsPostQualified pts =
+            case pts of
+              (p:_) ->
+                let modSpan = srcInfoSpan (ann mn)
+                    -- Only consider it post-qualified if we have valid spans to compare
+                in ((isValidSpan modSpan && isValidSpan p) &&
+                    (srcSpanEnd modSpan <= srcSpanStart p))
+              _ -> False
+            where
+              isValidSpan s =
+                srcSpanStartLine s > 0 && srcSpanEndLine s > 0 &&
+                srcSpanStartColumn s >= 0 && srcSpanEndColumn s >= 0
+
+instance ExactP Module where
+  exactP mdl = case mdl of
+    Module l mmh oss ids decls -> do
+        let (oPts, pts) = splitAt (max (length oss + 1) 2) (srcInfoPoints l)
+        layoutList oPts oss
+        maybeEP exactPC mmh
+        printStreams (map (pos *** printString) $ lList pts)
+                     (map (pos . ann &&& exactPC) ids ++ map (pos . ann &&& exactPC) (sepFunBinds decls))
+    XmlPage l _mn oss xn attrs mat es  -> do
+        let (oPts, pPts) = splitAt (max (length oss + 1) 2) $ srcInfoPoints l
+        case pPts of
+         [a,b,c,d,e] -> do
+            layoutList oPts oss
+            printStringAt (pos a) "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC es
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         _ -> errorEP "ExactP: Module: XmlPage is given wrong number of srcInfoPoints"
+    XmlHybrid l mmh oss ids decls xn attrs mat es -> do
+        let (oPts, pts) = splitAt (max (length oss + 1) 2) (srcInfoPoints l)
+        layoutList oPts oss
+        maybeEP exactPC mmh
+        let (dPts, pPts) = splitAt (length pts - 5) pts
+        case pPts of
+         [a,b,c,d,e] -> do
+            printStreams (map (\(p,s) -> (pos p, printString s)) $ lList dPts)
+                         (map (\i -> (pos $ ann i, exactPC i)) ids ++ map (\d' -> (pos $ ann d', exactPC d')) (sepFunBinds decls))
+
+            printStringAt (pos a) "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC es
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         _ -> errorEP "ExactP: Module: XmlHybrid is given wrong number of srcInfoPoints"
+
+instance ExactP ModuleHead where
+  exactP (ModuleHead l mn mwt mess) =
+    case srcInfoPoints l of
+     [a,b] -> do
+        printStringAt (pos a) "module"
+        exactPC mn
+        maybeEP exactPC mwt
+        maybeEP exactPC mess
+        printStringAt (pos b) "where"
+     _ -> errorEP "ExactP: ModuleHead is given wrong number of srcInfoPoints"
+
+instance ExactP ModulePragma where
+  exactP op = case op of
+    LanguagePragma   l ns       ->
+        let pts = srcInfoPoints l
+            k = length ns - 1 -- number of commas
+            m = length pts - k - 2 -- number of virtual semis, likely 0
+         in printInterleaved (zip pts ("{-# LANGUAGE":replicate k "," ++ replicate m "" ++ ["#-}"])) ns
+    OptionsPragma    l mt str   ->
+        let k = length (srcInfoPoints l)
+            -- We strip out a leading space in the lexer unless the pragma
+            -- starts with a newline.
+            addSpace xs@('\n':_) = xs
+            addSpace xs = ' ':xs
+            opstr = "{-# OPTIONS" ++ case mt of { Just t -> "_" ++ show t ; _ -> "" } ++ addSpace str
+         in printPoints l $ opstr : replicate (k-2) "" ++ ["#-}"]
+    AnnModulePragma  l ann'      ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "{-# ANN"
+            exactPC ann'
+            printStringAt (pos b) "#-}"
+         _ -> errorEP "ExactP: ModulePragma: AnnPragma is given wrong number of srcInfoPoints"
+
+instance ExactP WarningText where
+    exactP (DeprText l str) = printPoints l ["{-# DEPRECATED", str, "#-}"]
+    exactP (WarnText l str) = printPoints l ["{-# WARNING",    str, "#-}"]
+
+instance ExactP Assoc where
+  exactP a = case a of
+    AssocNone  _ -> printString "infix"
+    AssocLeft  _ -> printString "infixl"
+    AssocRight _ -> printString "infixr"
+
+instance ExactP DataOrNew where
+  exactP (DataType _) = printString "data"
+  exactP (NewType  _) = printString "newtype"
+
+instance ExactP TypeEqn where
+  exactP (TypeEqn l t1 t2) =
+    case srcInfoPoints l of
+      [a] -> do
+         exactPC t1
+         printStringAt (pos a) "="
+         exactPC t2
+      _ -> errorEP "ExactP: TypeEqn is given wrong number of srcInfoPoints"
+
+instance ExactP InjectivityInfo where
+  exactP (InjectivityInfo l to from) =
+    case srcInfoPoints l of
+      a:b:_ -> do
+        printStringAt (pos a) "|"
+        exactPC to
+        printStringAt (pos b) "->"
+        mapM_ exactPC from
+      _ -> errorEP "ExactP: InjectivityInfo given wrong number of srcInfoPoints"
+
+instance ExactP ResultSig where
+  exactP (KindSig l k) =
+    case srcInfoPoints l of
+      a:_ -> do
+        printStringAt (pos a) "::"
+        exactPC k
+      _ -> errorEP "ExactP: ResultSig given wrong number of srcInfoPoints"
+  exactP (TyVarSig l tv) =
+    case srcInfoPoints l of
+      a:_ -> do
+        printStringAt (pos a) "="
+        exactPC tv
+      _ -> errorEP "ExactP: ResultSig given wrong number of srcInfoPoints"
+
+
+instance ExactP Decl where
+  exactP decl = case decl of
+    TypeDecl     l dh t      ->
+        case srcInfoPoints l of
+         [a,b] -> do
+            printStringAt (pos a) "type"
+            exactPC dh
+            printStringAt (pos b) "="
+            exactPC t
+         _ -> errorEP "ExactP: Decl: TypeDecl is given wrong number of srcInfoPoints"
+    TypeFamDecl  l dh mk mi   ->
+        case srcInfoPoints l of
+         a:b:_ -> do
+            printStringAt (pos a) "type"
+            printStringAt (pos b) "family"
+            exactPC dh
+            maybeEP exactPC mk
+            maybeEP exactPC mi
+         _ -> errorEP "ExactP: Decl: TypeFamDecl is given wrong number of srcInfoPoints"
+    ClosedTypeFamDecl  l dh mk mi eqns ->
+        case srcInfoPoints l of
+         a:b:c:_ -> do
+            printStringAt (pos a) "type"
+            printStringAt (pos b) "family"
+            exactPC dh
+            maybeEP exactPC mk
+            maybeEP exactPC mi
+            printStringAt (pos c) "where"
+            mapM_ exactP eqns
+         _ -> errorEP "ExactP: Decl: ClosedTypeFamDecl is given wrong number of srcInfoPoints"
+    DataDecl     l dn mctxt dh constrs mder -> do
+        exactP dn
+        maybeEP exactPC mctxt
+        exactPC dh
+        -- the next line works for empty data types since the srcInfoPoints will be empty then
+        printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs
+        mapM_ exactPC mder
+    GDataDecl    l dn mctxt dh mk gds mder -> do
+        let pts = srcInfoPoints l
+        exactP dn
+        maybeEP exactPC mctxt
+        exactPC dh
+        pts1 <- case mk of
+                Nothing -> return pts
+                Just kd -> case pts of
+                            p:pts' -> do
+                               printStringAt (pos p) "::"
+                               exactPC kd
+                               return pts'
+                            _ -> errorEP "ExactP: Decl: GDataDecl is given too few srcInfoPoints"
+        case pts1 of
+         x:pts' -> do
+            printStringAt (pos x) "where"
+            layoutList pts' gds
+            mapM_ exactPC mder
+         _ -> errorEP "ExactP: Decl: GDataDecl is given too few srcInfoPoints"
+    DataFamDecl  l mctxt dh mk -> do
+        printString "data"
+        maybeEP exactPC mctxt
+        exactPC dh
+        maybeEP (\kd -> printStringAt (pos (head (srcInfoPoints l))) "::" >> exactPC kd) mk
+    TypeInsDecl  l t1 t2 ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "type"
+            printStringAt (pos b) "instance"
+            exactPC t1
+            printStringAt (pos c) "="
+            exactPC t2
+         _ -> errorEP "ExactP: Decl: TypeInsDecl is given wrong number of srcInfoPoints"
+    DataInsDecl  l dn t constrs mder    ->
+        case srcInfoPoints l of
+         p:pts -> do
+            exactP dn
+            printStringAt (pos p) "instance"
+            exactPC t
+            printInterleaved (zip pts ("=": repeat "|")) constrs
+            mapM_ exactPC mder
+         _ -> errorEP "ExactP: Decl: DataInsDecl is given too few srcInfoPoints"
+    GDataInsDecl l dn t mk gds mder     ->
+        case srcInfoPoints l of
+         p:pts -> do
+            exactP dn
+            printStringAt (pos p) "instance"
+            exactPC t
+            pts1 <- case mk of
+                    Nothing -> return pts
+                    Just kd -> case pts of
+                                p':pts' -> do
+                                    printStringAt (pos p') "::"
+                                    exactPC kd
+                                    return pts'
+                                _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
+            case pts1 of
+             x:pts' -> do
+                printStringAt (pos x) "where"
+                layoutList pts' gds
+                mapM_ exactPC mder
+             _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
+         _ -> errorEP "ExactP: Decl: GDataInsDecl is given too few srcInfoPoints"
+    ClassDecl    l mctxt dh fds mcds    ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "class"
+            maybeEP exactPC mctxt
+            exactPC dh
+            _ <- case fds of
+                    [] -> return pts
+                    _  -> do
+                      let (pts1, pts2) = splitAt (length fds) pts
+                      printInterleaved (zip pts1 ("|":repeat ",")) fds
+                      return pts2
+            maybeEP (\cds ->
+                case pts of
+                 p:pts' -> do
+                    printStringAt (pos p) "where"
+                    layoutList pts' $ sepClassFunBinds cds
+                 _ -> errorEP "ExactP: Decl: ClassDecl is given too few srcInfoPoints"
+                ) mcds
+         _ -> errorEP "ExactP: Decl: ClassDecl is given too few srcInfoPoints"
+    InstDecl     l movlp ih mids        ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "instance"
+            maybeEP exactPC movlp
+            exactPC ih
+            maybeEP (\ids -> do
+                let (p:pts') = pts
+                printStringAt (pos p) "where"
+                layoutList pts' $ sepInstFunBinds ids
+                ) mids
+         _ -> errorEP "ExactP: Decl: InstDecl is given too few srcInfoPoints"
+    DerivDecl    l mds movlp ih             ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "deriving"
+            maybeEP exactPC mds
+            printStringAt (pos b) "instance"
+            maybeEP exactPC movlp
+            exactPC ih
+         _ -> errorEP "ExactP: Decl: DerivDecl is given wrong number of srcInfoPoints"
+    InfixDecl    l assoc mprec ops      -> do
+        let pts = srcInfoPoints l
+        exactP assoc
+        pts1 <- case mprec of
+                Nothing -> return pts
+                Just prec ->
+                    case pts of
+                     p:pts' -> do
+                        printStringAt (pos p) (show prec)
+                        return pts'
+                     _ -> errorEP "ExactP: Decl: InfixDecl is given too few srcInfoPoints"
+        printInterleaved' (zip pts1 (repeat ",")) ops
+    DefaultDecl  l ts   ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "default"
+            printInterleaved (zip (init pts) ("(":repeat ",")) ts
+            printStringAt (pos (last pts)) ")"
+         _ -> errorEP "ExactP: Decl: DefaultDecl is given too few srcInfoPoints"
+    SpliceDecl   _ spl  -> exactP spl
+    TSpliceDecl  _ spl  -> exactP spl
+    TypeSig      l ns t -> do
+        let pts = srcInfoPoints l
+        printInterleaved' (zip pts (replicate (length pts - 1) "," ++ ["::"])) ns
+        exactPC t
+    PatSynSig l ns dh c1 _ c2 t -> do
+        let (pat:pts) = srcInfoPoints l
+        printStringAt (pos pat) "pattern"
+        printInterleaved' (zip pts (replicate (length ns - 1) "," ++ ["::"])) ns
+        case dh of
+          Nothing -> return ()
+          Just tvs ->
+            -- (length ns - 1) commas + 1 for "::"
+            case drop (length ns) pts of
+              (a:b:_) -> do
+                    printStringAt (pos a) "forall"
+                    mapM_ exactPC tvs
+                    printStringAt (pos b) "."
+              _ -> errorEP ("ExactP: Decl: PatSynSig: Forall: is given too few srcInfoPoints" ++ show pts ++ show (drop (length ns + 1) pts))
+        maybeEP exactPC c1
+        maybeEP exactPC c2
+        exactPC t
+    FunBind      _ ms   -> mapM_ exactPC ms
+    PatBind      l p rhs mbs -> do
+        let pts = srcInfoPoints l
+        exactP p
+        exactPC rhs
+        maybeEP (\bs -> printStringAt (pos (head pts)) "where" >> exactPC bs) mbs
+    PatSyn l lhs rhs dir ->
+      case srcInfoPoints l of
+        [pat,sepPos] -> do
+          let sep = case dir of
+                      ImplicitBidirectional     -> "="
+                      ExplicitBidirectional _ _ -> "<-"
+                      Unidirectional            -> "<-"
+          printStringAt (pos pat) "pattern"
+          exactPC lhs
+          printStringAt (pos sepPos) sep
+          exactPC rhs
+          case dir of
+            ExplicitBidirectional bl ds -> do
+              case srcInfoPoints bl of
+                (w:pts) -> do
+                  printStringAt (pos w) "where"
+                  layoutList pts ds
+                _ -> errorEP "ExactP: Decl: PaySyn: ExplicitBidirectional is given too few srcInfoPoints"
+            _ -> return ()
+        _ -> errorEP "ExactP: Decl: PatSyn is given too few srcInfoPoints"
+    ForImp       l cc msf mstr n t   ->
+        case srcInfoPoints l of
+         _:b:pts -> do
+            printString "foreign"
+            printStringAt (pos b) "import"
+            exactPC cc
+            maybeEP exactPC msf
+            pts1 <- case mstr of
+                      Nothing -> return pts
+                      Just str -> case pts of
+                                   x:pts' -> do
+                                      printStringAt (pos x) (show str)
+                                      return pts'
+                                   _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
+            case pts1 of
+             y:_ -> do
+                exactPC n
+                printStringAt (pos y) "::"
+                exactPC t
+             _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
+         _ -> errorEP "ExactP: Decl: ForImp is given too few srcInfoPoints"
+    ForExp       l cc mstr n t      ->
+        case srcInfoPoints l of
+         _:b:pts -> do
+            printString "foreign"
+            printStringAt (pos b) "export"
+            exactPC cc
+            pts1 <- case mstr of
+                      Nothing -> return pts
+                      Just str -> case pts of
+                                   x:pts' -> do
+                                      printStringAt (pos x) (show str)
+                                      return pts'
+                                   _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
+            case pts1 of
+             y:_ -> do
+                exactPC n
+                printStringAt (pos y) "::"
+                exactPC t
+             _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
+         _ -> errorEP "ExactP: Decl: ForExp is given too few srcInfoPoints"
+    RulePragmaDecl   l rs   ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "{-# RULES"
+            mapM_ exactPC rs
+            printStringAt (pos b) "#-}"
+         _ -> errorEP "ExactP: Decl: RulePragmaDecl is given too few srcInfoPoints"
+    DeprPragmaDecl   l nstrs ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "{-# DEPRECATED"
+            printWarndeprs (map pos (init pts)) nstrs
+            printStringAt (pos (last pts)) "#-}"
+         _ -> errorEP "ExactP: Decl: DeprPragmaDecl is given too few srcInfoPoints"
+    WarnPragmaDecl   l nstrs ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "{-# WARNING"
+            printWarndeprs (map pos (init pts)) nstrs
+            printStringAt (pos (last pts)) "#-}"
+         _ -> errorEP "ExactP: Decl: WarnPragmaDecl is given too few srcInfoPoints"
+    InlineSig        l inl mact qn    ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString $ if inl then "{-# INLINE" else "{-# NOINLINE"
+            maybeEP exactPC mact
+            exactPC qn
+            printStringAt (pos b) "#-}"
+         _ -> errorEP "ExactP: Decl: InlineSig is given wrong number of srcInfoPoints"
+    InlineConlikeSig l mact qn    ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "{-# INLINE CONLIKE"
+            maybeEP exactPC mact
+            exactPC qn
+            printStringAt (pos b) "#-}"
+         _ -> errorEP "ExactP: Decl: InlineConlikeSig is given wrong number of srcInfoPoints"
+    SpecSig          l mact qn ts ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "{-# SPECIALISE"
+            maybeEP exactPC mact
+            exactPC qn
+            printInterleaved (zip pts ("::" : replicate (length pts - 2) "," ++ ["#-}"])) ts
+         _ -> errorEP "ExactP: Decl: SpecSig is given too few srcInfoPoints"
+    SpecInlineSig    l b mact qn ts ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString $ "{-# SPECIALISE " ++ if b then "INLINE" else "NOINLINE"
+            maybeEP exactPC mact
+            exactPC qn
+            printInterleaved (zip pts ("::" : replicate (length pts - 2) "," ++ ["#-}"])) ts
+         _ -> errorEP "ExactP: Decl: SpecInlineSig is given too few srcInfoPoints"
+    InstSig          l ih     ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "{-# SPECIALISE"
+            printStringAt (pos b) "instance"
+            exactPC ih
+            printStringAt (pos c) "#-}"
+         _ -> errorEP "ExactP: Decl: InstSig is given wrong number of srcInfoPoints"
+    AnnPragma       l ann'       ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "{-# ANN"
+            exactPC ann'
+            printStringAt (pos b) "#-}"
+         _ -> errorEP "ExactP: Decl: AnnPragma is given wrong number of srcInfoPoints"
+    MinimalPragma       l b      ->
+        case srcInfoPoints l of
+         [_,b'] -> do
+            printString "{-# MINIMAL"
+            maybeEP exactPC b
+            printStringAt (pos b') "#-}"
+         _ -> errorEP "ExactP: Decl: MinimalPragma is given wrong number of srcInfoPoints"
+    RoleAnnotDecl l ty roles ->
+      case srcInfoPoints l of
+         (t:r:_) -> do
+            printStringAt (pos t)  "type"
+            printStringAt (pos r)  "role"
+            exactPC ty
+            mapM_ exactPC roles
+         _ -> errorEP "ExactP: Decl: RoleAnnotDecl is given wrong number of srcInfoPoints"
+    CompletePragma l cls opt_ts ->
+      case srcInfoPoints l of
+        (t:rs) -> do
+          let (cls_s, rs') = splitAt (length cls - 1) rs
+          printStringAt (pos t)"{-# COMPLETE"
+          printInterleaved' (zip cls_s (repeat ",")) cls
+          case (rs', opt_ts) of
+             ((opt_dcolon: end:_), Just tc) -> do
+                printStringAt (pos opt_dcolon) "::"
+                exactPC tc
+                printStringAt (pos end) "#-}"
+             ([end], Nothing) -> printStringAt (pos end) "#-}"
+             _ -> errorEP "ExactP: Decl: CompletePragma is given wrong number of srcInfoPoints"
+        _ -> errorEP "ExactP: Decl: CompletePragma is given wrong number of srcInfoPoints"
+
+
+instance ExactP Role where
+  exactP r =
+    case r of
+      RoleWildcard l     -> printStringAt (pos l) "_"
+      Representational l -> printStringAt (pos l) "representational"
+      Phantom l          -> printStringAt (pos l) "phantom"
+      Nominal l          -> printStringAt (pos l) "nominal"
+
+
+instance ExactP Annotation where
+    exactP ann' = case ann' of
+        Ann     _ n e   -> do
+            exactP n
+            exactPC e
+        TypeAnn _ n e   -> do
+            printString "type"
+            exactPC n
+            exactPC e
+        ModuleAnn _ e   -> do
+            printString "module"
+            exactPC e
+
+instance ExactP BooleanFormula where
+    exactP b' = case b' of
+        VarFormula _ n -> exactPC n
+        AndFormula l bs ->
+         let pts = srcInfoPoints l
+         in printStreams (zip (map pos pts) (repeat $ printString ",")) (map (pos . ann &&& exactPC) bs)
+        OrFormula l bs   ->
+         let pts = srcInfoPoints l
+         in printStreams (zip (map pos pts) (repeat $ printString "|")) (map (pos . ann &&& exactPC) bs)
+        ParenFormula l b   ->
+            case srcInfoPoints l of
+                [a'',b''] -> printStringAt (pos a'') "(" >> exactPC b >> printStringAt (pos b'') ")"
+                _ -> errorEP "ExactP: BooleanFormula: ParenFormula is given wrong number of srcInfoPoints"
+
+printWarndeprs :: [Pos] -> [([Name SrcSpanInfo], String)] -> EP ()
+printWarndeprs _ [] = return ()
+printWarndeprs ps' ((ns',str'):nsts') = printWd ps' ns' str' nsts'
+  where printWd :: [Pos] -> [Name SrcSpanInfo] -> String -> [([Name SrcSpanInfo], String)] -> EP ()
+        printWd (p:ps) []  str nsts = printStringAt p (show str) >> printWarndeprs ps nsts
+        printWd ps     [n] str nsts = exactPC n >> printWd ps [] str nsts
+        printWd (p:ps) (n:ns) str nsts = exactPC n >> printStringAt p "," >> printWd ps ns str nsts
+        printWd _ _ _ _ = internalError "printWd"
+
+
+sepFunBinds :: [Decl SrcSpanInfo] -> [Decl SrcSpanInfo]
+sepFunBinds [] = []
+sepFunBinds (FunBind _ ms:ds) = map (\m -> FunBind (ann m) [m]) ms ++ sepFunBinds ds
+sepFunBinds (d:ds) = d : sepFunBinds ds
+
+sepClassFunBinds :: [ClassDecl SrcSpanInfo] -> [ClassDecl SrcSpanInfo]
+sepClassFunBinds [] = []
+sepClassFunBinds (ClsDecl _ (FunBind _ ms):ds) = map (\m -> ClsDecl (ann m) $ FunBind (ann m) [m]) ms ++ sepClassFunBinds ds
+sepClassFunBinds (d:ds) = d : sepClassFunBinds ds
+
+sepInstFunBinds :: [InstDecl SrcSpanInfo] -> [InstDecl SrcSpanInfo]
+sepInstFunBinds [] = []
+sepInstFunBinds (InsDecl _ (FunBind _ ms):ds) = map (\m -> InsDecl (ann m) $ FunBind (ann m) [m]) ms ++ sepInstFunBinds ds
+sepInstFunBinds (d:ds) = d : sepInstFunBinds ds
+
+instance ExactP DeclHead where
+  exactP dh' = case dh' of
+    DHead _ n           -> exactP n
+    DHInfix _ tva n     -> exactP tva >> epInfixName n
+    DHParen l dh        ->
+        case srcInfoPoints l of
+         [_,b] -> printString "(" >> exactPC dh >> printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: DeclHead: DeclParen is given wrong number of srcInfoPoints"
+    DHApp   _ dh t      -> exactP dh >> exactPC t
+
+instance ExactP InstRule where
+  exactP ih' = case ih' of
+    IRule l mtvs mctxt qn    -> do
+        let pts = srcInfoPoints l
+        _ <- case mtvs of
+                Nothing -> return pts
+                Just tvs ->
+                    case pts of
+                     [a,b] -> do
+                        printStringAt (pos a) "forall"
+                        mapM_ exactPC tvs
+                        printStringAt (pos b) "."
+                        return pts
+                     _ -> errorEP "ExactP: InstRule: IRule is given too few srcInfoPoints"
+        maybeEP exactPC mctxt
+        exactPC qn
+    IParen l ih        ->
+        case srcInfoPoints l of
+         [a,b] -> printStringAt (pos a) "(" >> exactPC ih >> printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: InstRule: IParen is given wrong number of srcInfoPoints"
+
+instance ExactP InstHead where
+   exactP doih' = case doih' of
+    IHCon _ qn      -> exactPC qn
+    IHInfix _ ta qn -> exactPC ta >> epInfixQName qn
+    IHParen l doih  ->
+        case srcInfoPoints l of
+         [a,b] -> printStringAt (pos a) "(" >> exactPC doih >> printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: OrInstHead: IHParen is given wrong number of srcInfoPoints"
+    IHApp _ doih t  -> exactPC doih >> exactPC t
+
+instance ExactP TyVarBind where
+  exactP (KindedVar   l n k) =
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "("
+            exactPC n
+            printStringAt (pos b) "::"
+            exactPC k
+            printStringAt (pos c) ")"
+         _ -> errorEP "ExactP: TyVarBind: KindedVar is given wrong number of srcInfoPoints"
+  exactP (UnkindedVar l n) =
+        case srcInfoPoints l of
+                 [a,_,c] -> do
+                    printStringAt (pos a) "("
+                    exactPC n
+                    printStringAt (pos c) ")"
+                 [] -> exactPC n
+                 _ -> errorEP "ExactP: TyVarBind: UnkindedVar is given wrong number of srcInfoPoints"
+
+instance ExactP Type where
+  exactP t' = case t' of
+    TyForall l mtvs mctxt t -> do
+        let pts = srcInfoPoints l
+        _ <- case mtvs of
+                Nothing -> return pts
+                Just tvs ->
+                    case pts of
+                     _:b:pts' -> do
+                        printString "forall"
+                        mapM_ exactPC tvs
+                        printStringAt (pos b) "."
+                        return pts'
+                     _ -> errorEP "ExactP: Type: TyForall is given too few srcInfoPoints"
+        maybeEP exactPC mctxt
+        exactPC t
+    TyStar  _ -> printString "*"
+    TyFun   l t1 t2 ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP t1
+            printStringAt (pos a) "->"
+            exactPC t2
+         _ -> errorEP "ExactP: Type: TyFun is given wrong number of srcInfoPoints"
+    TyTuple l bx ts ->
+        case bx of
+          Boxed   -> parenList (srcInfoPoints l) ts
+          Unboxed -> parenHashList (srcInfoPoints l) ts
+    TyUnboxedSum l es ->
+      unboxedSumTypeList (srcInfoPoints l) es
+    TyList  l t     ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "["
+            exactPC t
+            printStringAt (pos b) "]"
+         _ -> errorEP "ExactP: Type: TyList is given wrong number of srcInfoPoints"
+    TyParArray l t     ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "[:"
+            exactPC t
+            printStringAt (pos b) ":]"
+         _ -> errorEP "ExactP: Type: TyParArray is given wrong number of srcInfoPoints"
+    TyApp   _ t1 t2 -> exactP t1 >> exactPC t2
+    TyVar   _ n     -> exactP n
+    TyCon   _ qn    -> exactP qn
+    TyParen l t     ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "("
+            exactPC t
+            printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: Type: TyParen is given wrong number of srcInfoPoints"
+    TyInfix _ t1 qn t2 -> exactP t1 >> exactP qn >> exactPC t2
+    TyKind  l t kd ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "("
+            exactPC t
+            printStringAt (pos b) "::"
+            exactPC kd
+            printStringAt (pos c) ")"
+         _ -> errorEP "ExactP: Type: TyKind is given wrong number of srcInfoPoints"
+    TyPromoted _ p -> exactPC p
+    TyEquals l t0 t1 -> case srcInfoPoints l of
+                          a:_ -> exactPC t0 >> printStringAt (pos a) "~" >> exactPC t1
+                          _   -> errorEP "ExactP: Type: TyEquals is given wrong number of srcInfoPoints"
+
+    TySplice _ sp  -> exactP sp
+    TyBang _ b u t -> exactPC u >> exactPC b >> exactPC t
+    TyWildCard _ mn      -> printString "_" >> maybeEP exactPC mn
+    TyQuasiQuote _ name qt    -> do
+        let qtLines = lines qt
+        printString $ "[" ++ name ++ "|"
+        sequence_ (intersperse newLine $ map printString qtLines)
+        printString "|]"
+
+instance ExactP MaybePromotedName where
+  exactP (PromotedName l qn)  = case srcInfoPoints l of
+    [a] -> printStringAt (pos a) "'" >> epInfixQName qn
+    _ -> errorEP "ExactP: MaybePromotedName: PromotedName given wrong number of args"
+  exactP (UnpromotedName _ qn) = epInfixQName qn
+
+instance ExactP Promoted where
+  exactP (PromotedInteger _ _ rw) = printString rw
+  exactP (PromotedString _ _ rw)  = printString ('\"':rw ++ "\"")
+  exactP (PromotedCon l True qn)  = case srcInfoPoints l of
+    [a] -> printStringAt (pos a) "'" >> epQName qn
+    _ -> errorEP "ExactP: Promoted: PromotedCon is given wrong number of srcInfoPoints"
+  exactP (PromotedCon _ False qn) = epQName qn
+  exactP (PromotedList l b pl) =
+    let o | b = "'[" | otherwise = "["
+        e = "]"
+        pts = srcInfoPoints l
+    in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) pl
+  exactP (PromotedTuple l pl) =
+    let o = "'("
+        e = ")"
+        pts = srcInfoPoints l
+    in printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) pl
+  exactP (PromotedUnit l) = case srcInfoPoints l of
+    [_,b] -> do
+        printString "("
+        printStringAt (pos b) ")"
+    _ -> errorEP "ExactP: Promoted: PromotedUnit is given wrong number of srcInfoPoints"
+
+
+instance ExactP Context where
+  exactP ctxt = do
+    printContext ctxt
+    printStringAt (pos . last . srcInfoPoints . ann $ ctxt) "=>"
+
+printContext :: Context SrcSpanInfo -> EP ()
+printContext ctxt = do
+    let l = ann ctxt
+        pts = init $ srcInfoPoints l
+    case ctxt of
+     CxSingle _ asst -> exactP asst
+     CxEmpty _ ->
+        case pts of
+         [a,b] -> do
+            printStringAt (pos a) "("
+            printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: Context: CxEmpty is given wrong number of srcInfoPoints"
+     CxTuple _ assts -> parenList pts assts
+
+
+instance ExactP Asst where
+  exactP asst = case asst of
+    TypeA _ t -> exactP t
+    IParam l ipn t    ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP ipn
+            printStringAt (pos a) "::"
+            exactPC t
+         _ -> errorEP "ExactP: Asst: IParam is given wrong number of srcInfoPoints"
+    ParenA l asst' ->
+        case take 2 $ srcInfoPoints l of
+         [a,b] -> do
+            printStringAt (pos a) "("
+            exactPC asst'
+            printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: Asst: ParenA is given wrong number of srcInfoPoints"
+
+instance ExactP Deriving where
+  exactP (Deriving l mds ihs) =
+    case srcInfoPoints l of
+     _:pts -> do
+        printString "deriving"
+        maybeEP exactPC mds
+        case pts of
+         [] -> exactPC $ head ihs
+         _  -> parenList pts ihs
+     _ -> errorEP "ExactP: Deriving is given too few srcInfoPoints"
+
+instance ExactP DerivStrategy where
+  exactP (DerivStock _) =
+    printString "stock"
+  exactP (DerivAnyclass _) =
+    printString "anyclass"
+  exactP (DerivNewtype _) =
+    printString "newtype"
+  exactP (DerivVia _ ty) = do
+    printString "via"
+    exactP ty
+
+instance ExactP ClassDecl where
+  exactP cdecl = case cdecl of
+    ClsDecl    _ d -> exactP d
+    ClsDataFam l mctxt dh mk ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "data"
+            maybeEP exactPC mctxt
+            exactPC dh
+            maybeEP (\kd -> printStringAt (pos (head pts)) "::" >> exactPC kd) mk
+         _ -> errorEP "ExactP: ClassDecl: ClsDataFam is given too few srcInfoPoints"
+    ClsTyFam   l dh mk mi ->
+        case srcInfoPoints l of
+         _:_ -> do
+            printString "type"
+            exactPC dh
+            maybeEP exactPC mk
+            maybeEP exactPC mi
+         _ -> errorEP "ExactP: ClassDecl: ClsTyFam is given too few srcInfoPoints"
+    ClsTyDef   l t1 ->
+        case srcInfoPoints l of
+         _:b:_ -> do -- 3 sourceInfoPoints implies parsed as "type instance"
+            printString "type"
+            printStringAt (pos b) "instance"
+            exactPC t1
+         _:_ -> do
+            printString "type"
+            exactPC t1
+         _ -> errorEP "ExactP: ClassDecl: ClsTyDef is given too few srcInfoPoints"
+    ClsDefSig  l n t    ->
+        case srcInfoPoints l of
+         _:b:_ -> do
+            printString "default"
+            exactPC n
+            printStringAt (pos b) "::"
+            exactPC t
+         _ -> errorEP "ExactP: ClassDecl: ClsDefSig is given too few srcInfoPoints"
+
+
+instance ExactP InstDecl where
+  exactP idecl = case idecl of
+    InsDecl   _ d -> exactP d
+    InsType   l t1 t2 ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "type"
+            exactPC t1
+            printStringAt (pos b) "="
+            exactPC t2
+         _ -> internalError "InstDecl -> InsType"
+    InsData   l dn t constrs mder -> do
+        exactP dn
+        exactPC t
+        printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs
+        mapM_ exactPC mder
+    InsGData  l dn t mk gds mder  -> do
+        let pts = srcInfoPoints l
+        exactP dn
+        exactPC t
+        pts1 <- case mk of
+                Nothing -> return pts
+                Just kd -> case pts of
+                            p:pts' -> do
+                                printStringAt (pos p) "::"
+                                exactPC kd
+                                return pts'
+                            _ -> errorEP "ExactP: InstDecl: InsGData is given too few srcInfoPoints"
+        case pts1 of
+         x:_ -> do
+            printStringAt (pos x) "where"
+            mapM_ exactPC gds
+            mapM_ exactPC mder
+         _ -> errorEP "ExactP: InstDecl: InsGData is given too few srcInfoPoints"
+--  InsInline l inl mact qn   -> do
+--        case srcInfoPoints l of
+--         [a,b] -> do
+--            printString $ if inl then "{-# INLINE" else "{-# NOINLINE"
+--            maybeEP exactPC mact
+--            exactPC qn
+--            printStringAt (pos b) "#-}"
+--         _ -> errorEP "ExactP: InstDecl: InsInline is given wrong number of srcInfoPoints"
+
+instance ExactP FunDep where
+  exactP (FunDep l nxs nys) =
+    case srcInfoPoints l of
+     [a] -> do
+        mapM_ exactPC nxs
+        printStringAt (pos a) "->"
+        mapM_ exactPC nys
+     _ -> errorEP "ExactP: FunDep is given wrong number of srcInfoPoints"
+
+instance ExactP QualConDecl where
+  exactP (QualConDecl l mtvs mctxt cd) = do
+        let pts = srcInfoPoints l
+        _ <- case mtvs of
+                Nothing -> return pts
+                Just tvs ->
+                    case pts of
+                     _:b:pts' -> do
+                        printString "forall"
+                        mapM_ exactPC tvs
+                        printStringAt (pos b) "."
+                        return pts'
+                     _ -> errorEP "ExactP: QualConDecl is given wrong number of srcInfoPoints"
+        maybeEP exactPC mctxt
+        exactPC cd
+
+instance ExactP ConDecl where
+  exactP cd = case cd of
+    ConDecl _ n bts -> exactP n >> mapM_ exactPC bts
+    InfixConDecl _ bta n btb -> exactP bta >> epInfixName n >> exactP btb
+    RecDecl l n fds -> exactP n >> curlyList (srcInfoPoints l) fds
+
+instance ExactP GadtDecl where
+  exactP (GadtDecl l n _mtvs mctxt ns' t) =
+    case ns' of
+        Nothing ->
+            case srcInfoPoints l of
+                [a] -> do
+                    exactP n
+                    printStringAt (pos a) "::"
+                    exactPC t
+                _ -> errorEP "ExactP: GadtDecl is given wrong number of srcInfoPoints"
+        Just ts ->
+            case srcInfoPoints l of
+                (a:b:c:d:rest) -> do
+                    exactPC n
+                    printStringAt (pos a) "::"
+                    maybeEP exactPC mctxt
+                    printStringAt (pos b) "{"
+                    printInterleaved' (zip rest (repeat ",")) ts
+                    printStringAt (pos c) "}"
+                    printStringAt (pos d) "->"
+                    exactPC t
+                _ -> errorEP "ExactP: GadtDecl is given wrong number of srcInfoPoints"
+
+instance ExactP BangType where
+  exactP bt = case bt of
+    BangedTy   l  -> printStringAt (pos l) "!"
+    LazyTy l -> printStringAt (pos l) "~"
+    _ -> return ()
+
+instance ExactP Unpackedness where
+  exactP bt = case bt of
+    Unpack l  ->
+      case srcInfoPoints l of
+       [a,b] -> do
+          printStringAt (pos a) "{-# UNPACK"
+          printStringAt (pos b) "#-}"
+       _ -> errorEP "ExactP: Unpackedness: Unpack is given wrong number of srcInfoPoints"
+    NoUnpack l  ->
+      case srcInfoPoints l of
+       [a,b] -> do
+          printStringAt (pos a) "{-# NOUNPACK"
+          printStringAt (pos b) "#-}"
+       _ -> errorEP "ExactP: Unpackedness: NoUnpack is given wrong number of srcInfoPoints"
+    NoUnpackPragma {} -> return ()
+
+instance ExactP Splice where
+  exactP (IdSplice _ str) = printString $ '$':str
+  exactP (TIdSplice _ str) = printString $ "$$" ++ str
+  exactP (ParenSplice l e) = printParen "ParenSplice" "$(" l e
+  exactP (TParenSplice l e) = printParen "TParenSplice" "$$(" l e
+
+printParen :: ExactP ast => String -> String -> SrcSpanInfo -> ast SrcSpanInfo -> EP ()
+printParen con paren l e =
+    case srcInfoPoints l of
+     [_,b] -> do
+        printString paren
+        exactPC e
+        printStringAt (pos b) ")"
+     _ -> errorEP $ "ExactP: Splice: " ++ con ++ " is given wrong number of srcInfoPoints"
+
+instance ExactP Exp where
+  exactP exp = case exp of
+    Var _ qn        -> exactP qn
+    OverloadedLabel _ qn -> printString ('#':qn)
+    IPVar _ ipn     -> exactP ipn
+    Con _ qn        -> exactP qn
+    Lit _ lit       -> exactP lit
+    InfixApp _ e1 op e2 -> exactP e1 >> exactPC op >> exactPC e2
+    App _ e1 e2     -> exactP e1 >> exactPC e2
+    NegApp _ e      -> printString "-" >> exactPC e
+    Lambda l ps e   ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "\\"
+            mapM_ exactPC ps
+            printStringAt (pos b) "->"
+            exactPC e
+         _ -> errorEP "ExactP: Exp: Lambda is given wrong number of srcInfoPoints"
+    Let l bs e      ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "let"
+            exactPC bs
+            printStringAt (pos b) "in"
+            exactPC e
+         _ -> errorEP "ExactP: Exp: Let is given wrong number of srcInfoPoints"
+    If l ec et ee   -> -- traceShow (srcInfoPoints l) $ do
+        -- First we need to sort out if there are any optional
+        -- semicolons hiding among the srcInfoPoints.
+        case srcInfoPoints l of
+         (_:b:c:rest) -> do
+            let (mpSemi1,pThen,rest2) =
+                           if snd (spanSize b) == 4 -- this is "then", not a semi
+                            then (Nothing, b, c:rest)
+                            else (Just b, c, rest)
+            case rest2 of
+              (c':rest3) -> do
+                let (mpSemi2,rest4) = if snd (spanSize c') == 4 -- this is "else", not a semi
+                                       then (Nothing, rest2)
+                                       else (Just c', rest3)
+                case rest4 of
+                  [pElse] -> do
+                    -- real work starts here:
+                    printString "if"
+                    exactPC ec
+                    maybeEP printSemi  mpSemi1
+                    printStringAt (pos pThen) "then"
+                    exactPC et
+                    maybeEP printSemi mpSemi2
+                    printStringAt (pos pElse) "else"
+                    exactPC ee
+                  [] -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
+                  _  -> errorEP "ExactP: Exp: If is given too many srcInfoPoints"
+              _ -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
+
+         _ -> errorEP "ExactP: Exp: If is given too few srcInfoPoints"
+    MultiIf l alts ->
+        case srcInfoPoints l of
+          _:pts -> do
+            printString "if"
+            layoutList pts (map GuardedAlt alts)
+          _ -> internalError "Exp -> MultiIf"
+    Case l e alts   ->
+        case srcInfoPoints l of
+         _:b:pts -> do
+            printString "case"
+            exactPC e
+            printStringAt (pos b) "of"
+            layoutList pts alts
+         _ -> errorEP "ExactP: Exp: Case is given too few srcInfoPoints"
+    Do l stmts      ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "do"
+            layoutList pts stmts
+         _ -> errorEP "ExactP: Exp: Do is given too few srcInfoPoints"
+    MDo l stmts     ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "mdo"
+            layoutList pts stmts
+         _ -> errorEP "ExactP: Exp: Mdo is given wrong number of srcInfoPoints"
+    Tuple l bx es   ->
+        case bx of
+          Boxed   -> parenList (srcInfoPoints l) es
+          Unboxed -> parenHashList (srcInfoPoints l) es
+    UnboxedSum l b a es -> do
+        unboxedSumEP l b a es
+    TupleSection l bx mexps -> do
+        let pts = srcInfoPoints l
+            (o, e) = case bx of Boxed -> ("(", ")"); Unboxed -> ("(#", "#)")
+        printSeq $ interleave (zip (map pos $ init pts) (map printString (o: repeat ",")) ++ [(pos $ last pts, printString e)])
+                              (map (maybe (0,0) (pos . ann) &&& maybeEP exactPC) mexps)
+    List l es               -> squareList (srcInfoPoints l) es
+    ParArray l es           -> squareColonList (srcInfoPoints l) es
+    Paren l p               -> parenList (srcInfoPoints l) [p]
+    LeftSection l e qop     ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "("
+            exactPC e
+            exactPC qop
+            printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: Exp: LeftSection is given wrong number of srcInfoPoints"
+    RightSection l qop e    ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "("
+            exactPC qop
+            exactPC e
+            printStringAt (pos b) ")"
+         _ -> errorEP "ExactP: Exp: RightSection is given wrong number of srcInfoPoints"
+    RecConstr l qn fups     -> do
+        let pts = srcInfoPoints l
+        exactP qn
+        curlyList pts fups
+    RecUpdate l e fups      -> do
+        let pts = srcInfoPoints l
+        exactP e
+        curlyList pts fups
+    EnumFrom l e            ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "["
+            exactPC e
+            printStringAt (pos b) ".."
+            printStringAt (pos c) "]"
+         _ -> errorEP "ExactP: Exp: EnumFrom is given wrong number of srcInfoPoints"
+    EnumFromTo l e1 e2      ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "["
+            exactPC e1
+            printStringAt (pos b) ".."
+            exactPC e2
+            printStringAt (pos c) "]"
+         _ -> errorEP "ExactP: Exp: EnumFromTo is given wrong number of srcInfoPoints"
+    EnumFromThen l e1 e2    ->
+        case srcInfoPoints l of
+         [_,b,c,d] -> do
+            printString "["
+            exactPC e1
+            printStringAt (pos b) ","
+            exactPC e2
+            printStringAt (pos c) ".."
+            printStringAt (pos d) "]"
+         _ -> errorEP "ExactP: Exp: EnumFromThen is given wrong number of srcInfoPoints"
+    EnumFromThenTo l e1 e2 e3   ->
+        case srcInfoPoints l of
+         [_,b,c,d] -> do
+            printString "["
+            exactPC e1
+            printStringAt (pos b) ","
+            exactPC e2
+            printStringAt (pos c) ".."
+            exactPC e3
+            printStringAt (pos d) "]"
+         _ -> errorEP "ExactP: Exp: EnumFromToThen is given wrong number of srcInfoPoints"
+    ParArrayFromTo l e1 e2      ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "[:"
+            exactPC e1
+            printStringAt (pos b) ".."
+            exactPC e2
+            printStringAt (pos c) ":]"
+         _ -> errorEP "ExactP: Exp: ParArrayFromTo is given wrong number of srcInfoPoints"
+    ParArrayFromThenTo l e1 e2 e3   ->
+        case srcInfoPoints l of
+         [_,b,c,d] -> do
+            printString "[:"
+            exactPC e1
+            printStringAt (pos b) ","
+            exactPC e2
+            printStringAt (pos c) ".."
+            exactPC e3
+            printStringAt (pos d) ":]"
+         _ -> errorEP "ExactP: Exp: ParArrayFromToThen is given wrong number of srcInfoPoints"
+    ListComp l e qss            ->
+        case srcInfoPoints l of
+         _:pts -> do
+            printString "["
+            exactPC e
+            bracketList ("|",",","]") pts qss
+         _ -> errorEP "ExactP: Exp: ListComp is given too few srcInfoPoints"
+    ParComp  l e qsss           ->
+        case srcInfoPoints l of
+         _:pts -> do
+            let (strs, qss) = unzip $ pairUp qsss
+            printString "["
+            exactPC e
+            printInterleaved (zip pts (strs ++ ["]"])) qss
+         _ -> errorEP "ExactP: Exp: ParComp is given wrong number of srcInfoPoints"
+      where pairUp [] = []
+            pairUp ((a:as):xs) = ("|", a) : zip (repeat ",") as ++ pairUp xs
+            pairUp _ = internalError "Exp -> ParComp -> pairUp"
+    ParArrayComp  l e qsss           ->
+        case srcInfoPoints l of
+         _:pts -> do
+            let (strs, qss) = unzip $ pairUp qsss
+            printString "[:"
+            exactPC e
+            printInterleaved (zip pts (strs ++ [":]"])) qss
+         _ -> errorEP "ExactP: Exp: ParArrayComp is given wrong number of srcInfoPoints"
+      where pairUp [] = []
+            pairUp ((a:as):xs) = ("|", a) : zip (repeat "|") as ++ pairUp xs
+            pairUp _ = internalError "Exp -> ParArrayComp -> pairUp"
+
+    ExpTypeSig l e t    ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e
+            printStringAt (pos a) "::"
+            exactPC t
+         _ -> errorEP "ExactP: Exp: ExpTypeSig is given wrong number of srcInfoPoints"
+    VarQuote _ qn   -> do
+      printString "'"
+      exactPC qn
+    TypQuote _ qn -> do
+      printString "''"
+      exactPC qn
+    BracketExp _ br -> exactP br
+    SpliceExp _ sp  -> exactP sp
+    QuasiQuote _ name qt    -> do
+        let qtLines = lines qt
+        printString $ "[" ++ name ++ "|"
+        sequence_ (intersperse newLine $ map printString qtLines)
+        printString "|]"
+    XTag l xn attrs mat es  ->
+        case srcInfoPoints l of
+         [_,b,c,d,e] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC es
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         -- TODO: Fugly hack/duplication, should be refactored
+         -- For the case when there's an optional semicolon
+         [_,b,semi,c,d,e] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC es
+            printSemi semi
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         _ -> errorEP "ExactP: Exp: XTag is given wrong number of srcInfoPoints"
+    XETag l xn attrs mat    ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) "/>"
+         _ -> errorEP "ExactP: Exp: XETag is given wrong number of srcInfoPoints"
+    XPcdata _ str   -> do
+        let strLines = lines str
+        sequence_ (intersperse newLine $ map printString strLines)
+    XExpTag l e     ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "<%"
+            exactPC e
+            printStringAt (pos b) "%>"
+         _ -> errorEP "ExactP: Exp: XExpTag is given wrong number of srcInfoPoints"
+    XChildTag l es  ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "<%>"
+            mapM_ exactPC es
+            printStringAt (pos b) "</"
+            printStringAt (pos c) "%>"
+         -- Ugly duplication for when there's an optional semi
+         [_,semi,b,c] -> do
+            printString "<%>"
+            mapM_ exactPC es
+            printSemi semi
+            printStringAt (pos b) "</"
+            printStringAt (pos c) "%>"
+         _ -> errorEP "ExactP: Exp: XChildTag is given wrong number of srcInfoPoints"
+    CorePragma l      str e         ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString $ "{-# CORE " ++ show str
+            printStringAt (pos b) "#-}"
+            exactPC e
+         _ -> errorEP "ExactP: Exp: CorePragma is given wrong number of srcInfoPoints"
+    SCCPragma  l      str e         ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString $ "{-# SCC " ++ show str
+            printStringAt (pos b) "#-}"
+            exactPC e
+         _ -> errorEP "ExactP: Exp: SCCPragma is given wrong number of srcInfoPoints"
+    GenPragma  l      str (i1,i2) (i3,i4) e -> do
+        printStrs $ zip (srcInfoPoints l) ["{-# GENERATED", show str, show i1, ":", show i2, "-", show i3, ":", show i4, "#-}"]
+        exactPC e
+    Proc            l p e   ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "proc"
+            exactPC p
+            printStringAt (pos b) "->"
+            exactPC e
+         _ -> errorEP "ExactP: Exp: Proc is given wrong number of srcInfoPoints"
+    LeftArrApp      l e1 e2 ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e1
+            printStringAt (pos a) "-<"
+            exactPC e2
+         _ -> errorEP "ExactP: Exp: LeftArrApp is given wrong number of srcInfoPoints"
+    RightArrApp     l e1 e2 ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e1
+            printStringAt (pos a) ">-"
+            exactPC e2
+         _ -> errorEP "ExactP: Exp: RightArrApp is given wrong number of srcInfoPoints"
+    LeftArrHighApp  l e1 e2 ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e1
+            printStringAt (pos a) "-<<"
+            exactPC e2
+         _ -> errorEP "ExactP: Exp: LeftArrHighApp is given wrong number of srcInfoPoints"
+    RightArrHighApp l e1 e2 ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e1
+            printStringAt (pos a) ">>-"
+            exactPC e2
+         _ -> errorEP "ExactP: Exp: RightArrHighApp is given wrong number of srcInfoPoints"
+
+    ArrOp l e -> case srcInfoPoints l of
+      [a, b] -> do
+        printStringAt (pos a) "(|"
+        exactPC e
+        printStringAt (pos b) "|)"
+      _ -> errorEP "ExactP: Exp: ArrOp is given wrong number of srcInfoPoints"
+
+    LCase l alts   ->
+        case srcInfoPoints l of
+         _:b:pts -> do
+            printString "\\"
+            printStringAt (pos b) "case"
+            layoutList pts alts
+         _ -> errorEP "ExactP: Exp: LCase is given wrong number of srcInfoPoints"
+    TypeApp _ ty -> printString "@" >> exactP ty
+
+unboxedSumEP :: ExactP e => SrcSpanInfo -> Int -> Int -> e SrcSpanInfo -> EP ()
+unboxedSumEP l b _a es = do
+        let (opt:pts) = srcInfoPoints l
+            (o, e) = ("(#", "#)")
+            bars = zip (map pos (init pts)) (map printString (repeat "|"))
+            open = (pos opt, printString o)
+            close = (pos (last pts), printString e)
+            fs = take b bars
+            as = drop b bars
+        printSeq $ open : fs ++ [((0, 0), exactPC es)] ++ as ++ [close]
+
+instance ExactP FieldUpdate where
+  exactP fup = case fup of
+    FieldUpdate l qn e  ->
+      case srcInfoPoints l of
+       [a] -> do
+          exactP qn
+          printStringAt (pos a) "="
+          exactPC e
+       _ -> errorEP "ExactP: FieldUpdate is given wrong number of srcInfoPoints"
+    FieldPun _ n    -> exactP n
+    FieldWildcard _ -> printString ".."
+
+instance ExactP Stmt where
+  exactP stmt = case stmt of
+    Generator l p e ->
+      case srcInfoPoints l of
+       [a] -> do
+          exactP p
+          printStringAt (pos a) "<-"
+          exactPC e
+       _ -> errorEP "ExactP: Stmt: Generator is given wrong number of srcInfoPoints"
+    Qualifier _ e -> exactP e
+    LetStmt _ bds   -> do
+      printString "let"
+      exactPC bds
+    RecStmt l ss    ->
+      case srcInfoPoints l of
+       _:pts -> do
+          printString "rec"
+          layoutList pts ss
+       _ -> errorEP "ExactP: Stmt: RecStmt is given too few srcInfoPoints"
+
+instance ExactP QualStmt where
+  exactP qstmt = case qstmt of
+    QualStmt     _ stmt -> exactP stmt
+    ThenTrans    _ e    -> printString "then" >> exactPC e
+    ThenBy      l e1 e2 ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "then"
+            exactPC e1
+            printStringAt (pos b) "by"
+            exactPC e2
+         _ -> errorEP "ExactP: QualStmt: ThenBy is given wrong number of srcInfoPoints"
+    GroupBy      l e        -> do
+        printStrs $ zip (srcInfoPoints l) ["then","group","by"]
+        exactPC e
+    GroupUsing   l e        -> do
+        printStrs $ zip (srcInfoPoints l) ["then","group","using"]
+        exactPC e
+    GroupByUsing l e1 e2    -> do
+        let pts = srcInfoPoints l
+        printStrs $ zip (init pts) ["then","group","by"]
+        exactPC e1
+        printStringAt (pos (last pts)) "using"
+        exactPC e2
+
+instance ExactP Bracket where
+  exactP br = case br of
+    ExpBracket l e  -> printBracket "ExpBracket" "[|" "|]" l e
+    TExpBracket l e -> printBracket "TExpBracket" "[||" "||]" l e
+    PatBracket l p  -> printBracket "PatBracket" "[p|" "|]" l p
+    TypeBracket l t -> printBracket "TypeBracket" "[t|" "|]" l t
+    DeclBracket l ds ->
+        case srcInfoPoints l of
+         pts@(_:_) -> do
+            printString "[d|"
+            layoutList (init pts) (sepFunBinds ds)
+            printStringAt (pos (last pts)) "|]"
+         _ -> errorEP "ExactP: Bracket: DeclBracket is given too few srcInfoPoints"
+
+printBracket :: ExactP ast => String -> String -> String -> SrcSpanInfo -> ast SrcSpanInfo -> EP ()
+printBracket con oBracket cBracket l c =
+  case srcInfoPoints l of
+    [_,b] -> do
+      printString oBracket
+      exactPC c
+      printStringAt (pos b) cBracket
+    _ -> errorEP $ "ExactP: Bracket: " ++ con ++ " is given wrong number of srcInfoPoints"
+
+instance ExactP XAttr where
+  exactP (XAttr l xn e) =
+    case srcInfoPoints l of
+     [a] -> do
+        exactP xn
+        printStringAt (pos a) "="
+        exactPC e
+     _ -> errorEP "ExactP: XAttr is given wrong number of srcInfoPoints"
+
+instance ExactP Alt where
+  exactP (Alt l p galts mbs) = do
+    exactP p
+    exactPC (GuardedAlts galts)
+    maybeEP (\bs -> printStringAt (pos (head (srcInfoPoints l))) "where" >> exactPC bs) mbs
+
+instance ExactP Match where
+  exactP (Match l n ps rhs mbinds) = do
+    let pts = srcInfoPoints l
+        len = length pts
+        pars = len `div` 2
+        (oPars,cParsWh) = splitAt pars pts
+        (cPars,_) = splitAt pars cParsWh    -- _§ is either singleton or empty
+    printStrs (zip oPars (repeat "("))
+    exactPC n
+    printStreams (zip (map pos cPars) (repeat $ printString ")")) (map (pos . ann &&& exactPC) ps)
+    exactPC rhs
+    maybeEP (\bds -> printStringAt (pos (head pts)) "where" >> exactPC bds) mbinds
+  exactP (InfixMatch l a n bs rhs mbinds) = do
+    let pts = srcInfoPoints l
+        len = length pts
+        pars = len `div` 2
+        (oPars,cParsWh) = splitAt pars pts
+        (cPars,whPt) = splitAt pars cParsWh    -- whPt is either singleton or empty
+    printStrs (zip oPars (repeat "("))
+    exactPC a
+    epInfixName n
+    printInterleaved' (zip cPars (repeat ")")) bs
+    exactPC rhs
+    maybeEP (\bds -> printStringAt (pos (head whPt)) "where" >> exactPC bds) mbinds
+
+instance ExactP Rhs where
+  exactP (UnGuardedRhs _ e) = printString "=" >> exactPC e
+  exactP (GuardedRhss  _ grhss) = mapM_ exactPC grhss
+
+instance ExactP GuardedRhs where
+  exactP (GuardedRhs l ss e) =
+    case srcInfoPoints l of
+     _:pts -> do
+        printString "|"
+        printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "=")]) ss
+        exactPC e
+     _ -> errorEP "ExactP: GuardedRhs is given wrong number of srcInfoPoints"
+
+newtype GuardedAlts l = GuardedAlts (Rhs l)
+    deriving (Functor, Show)
+instance Annotated GuardedAlts where
+    amap f (GuardedAlts v) = GuardedAlts (amap f v)
+    ann (GuardedAlts v) = ann v
+
+newtype GuardedAlt l = GuardedAlt (GuardedRhs l)
+    deriving (Functor, Show)
+instance Annotated GuardedAlt where
+    amap f (GuardedAlt v) = GuardedAlt (amap f v)
+    ann (GuardedAlt v) = ann v
+
+instance ExactP GuardedAlts where
+  exactP (GuardedAlts (UnGuardedRhs _ e)) = printString "->" >> exactPC e
+  exactP (GuardedAlts (GuardedRhss  _ grhss)) = mapM_ (exactPC . GuardedAlt) grhss
+
+instance ExactP GuardedAlt where
+  exactP (GuardedAlt (GuardedRhs l ss e)) =
+    case srcInfoPoints l of
+     _:pts -> do
+        printString "|"
+        printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "->")]) ss
+        exactPC e
+     _ -> errorEP "ExactP: GuardedAlt is given wrong number of srcInfoPoints"
+
+instance ExactP Pat where
+  exactP pat = case pat of
+    PVar l n    -> exactPC (fmap (const l) n)
+    PLit _ sg lit -> exactPC sg >> exactPC lit
+    PNPlusK l n k   ->
+        case srcInfoPoints l of
+         [a,b] -> do
+            exactP n
+            printStringAt (pos a) "+"
+            printStringAt (pos b) (show k)
+         _ -> errorEP "ExactP: Pat: PNPlusK is given wrong number of srcInfoPoints"
+    PInfixApp _ pa qn pb -> exactP pa >> epInfixQName qn >> exactPC pb
+    PApp _ qn ps    -> exactP qn >> mapM_ exactPC ps
+    PTuple l bx ps ->
+        case bx of
+          Boxed   -> parenList (srcInfoPoints l) ps
+          Unboxed -> parenHashList (srcInfoPoints l) ps
+    PUnboxedSum l before after e ->
+      unboxedSumEP l before after e
+    PList l ps  -> squareList (srcInfoPoints l) ps
+    PParen l p  -> parenList (srcInfoPoints l) [p]
+    PRec l qn pfs   -> exactP qn >> curlyList (srcInfoPoints l) pfs
+    PAsPat l n p    ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP n
+            printStringAt (pos a) "@"
+            exactPC p
+         _ -> errorEP "ExactP: Pat: PAsPat is given wrong number of srcInfoPoints"
+    PWildCard _ -> printString "_"
+    PIrrPat _ p -> printString "~" >> exactPC p
+    PatTypeSig l p t ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP p
+            printStringAt (pos a) "::"
+            exactPC t
+         _ -> errorEP "ExactP: Pat: PatTypeSig is given wrong number of srcInfoPoints"
+    PViewPat l e p ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP e
+            printStringAt (pos a) "->"
+            exactPC p
+         _ -> errorEP "ExactP: Pat: PViewPat is given wrong number of srcInfoPoints"
+    PRPat l rps -> squareList (srcInfoPoints l) rps
+    PXTag l xn attrs mat ps ->
+        case srcInfoPoints l of
+         [_,b,c,d,e] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC ps
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         -- Optional semi
+         [_,b,semi,c,d,e] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) ">"
+            mapM_ exactPC ps
+            printSemi semi
+            printStringAt (pos c) "</"
+            printWhitespace (pos d)
+            exactP xn
+            printStringAt (pos e) ">"
+         _ -> errorEP "ExactP: Pat: PXTag is given wrong number of srcInfoPoints"
+    PXETag l xn attrs mat ->
+        case srcInfoPoints l of
+         [_,b] -> do
+            printString "<"
+            exactPC xn
+            mapM_ exactPC attrs
+            maybeEP exactPC mat
+            printStringAt (pos b) "/>"
+         _ -> errorEP "ExactP: Pat: PXETag is given wrong number of srcInfoPoints"
+    PXPcdata _ str -> printString str
+    PXPatTag l p   ->
+        case srcInfoPoints l of
+         [_,_] -> do
+            printString "<%"
+            exactPC p
+            printString "%>"
+         _ -> errorEP "ExactP: Pat: PXPatTag is given wrong number of srcInfoPoints"
+    PXRPats  l rps  -> bracketList ("<[",",","]>") (srcInfoPoints l) rps
+    PSplice _ sp  -> exactP sp
+    PQuasiQuote _ name qt   -> printString $ "[$" ++ name ++ "|" ++ qt ++ "]"
+    PBangPat _ p    -> printString "!" >> exactPC p
+
+instance ExactP PatField where
+  exactP pf = case pf of
+    PFieldPat l qn p        ->
+        case srcInfoPoints l of
+         [a] -> do
+            exactP qn
+            printStringAt (pos a) "="
+            exactPC p
+         _ -> errorEP "ExactP: PatField: PFieldPat is given wrong number of srcInfoPoints"
+    PFieldPun _ n   -> exactP n
+    PFieldWildcard _ -> printString ".."
+
+instance ExactP RPat where
+  exactP rpat = case rpat of
+    RPOp _ rp op    -> exactP rp >> exactPC op
+    RPEither l r1 r2 ->
+      case srcInfoPoints l of
+       [a] -> do
+          exactP r1
+          printStringAt (pos a) "|"
+          exactPC r2
+       _ -> errorEP "ExactP: RPat: RPEither is given wrong number of srcInfoPoints"
+    RPSeq l rps -> bracketList ("(|",",","|)") (srcInfoPoints l) rps
+    RPGuard l p stmts   ->
+      case srcInfoPoints l of
+       _:pts -> do
+          printString "(|"
+          exactPC p
+          bracketList ("|",",","|)") pts stmts
+       _ -> errorEP "ExactP: RPat: RPGuard is given wrong number of srcInfoPoints"
+    RPCAs l n rp    ->
+      case srcInfoPoints l of
+       [a] -> do
+          exactP n
+          printStringAt (pos a) "@:"
+          exactPC rp
+       _ -> errorEP "ExactP: RPat: RPCAs is given wrong number of srcInfoPoints"
+    RPAs l n rp     ->
+      case srcInfoPoints l of
+       [a] -> do
+          exactP n
+          printStringAt (pos a) "@"
+          exactPC rp
+       _ -> errorEP "ExactP: RPat: RPAs is given wrong number of srcInfoPoints"
+    RPParen l rp    -> parenList (srcInfoPoints l) [rp]
+    RPPat _ p   -> exactP p
+
+instance ExactP RPatOp where
+  exactP rop = printString $ case rop of
+    RPStar  _  -> "*"
+    RPStarG _  -> "*!"
+    RPPlus  _  -> "+"
+    RPPlusG _  -> "+!"
+    RPOpt   _  -> "?"
+    RPOptG  _  -> "?!"
+
+instance ExactP PXAttr where
+  exactP (PXAttr l xn p) =
+    case srcInfoPoints l of
+     [a] -> do
+        exactP xn
+        printStringAt (pos a) "="
+        exactPC p
+     _ -> errorEP "ExactP: PXAttr is given wrong number of srcInfoPoints"
+
+instance ExactP XName where
+  exactP xn = case xn of
+    XName _ name -> printString name
+    XDomName l dom name ->
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString dom
+            printStringAt (pos b) ":"
+            printStringAt (pos c) name
+         _ -> errorEP "ExactP: XName: XDomName is given wrong number of srcInfoPoints"
+
+instance ExactP Binds where
+  exactP (BDecls  l ds)  = layoutList (srcInfoPoints l) (sepFunBinds ds)
+  exactP (IPBinds l ips) = layoutList (srcInfoPoints l) ips
+
+instance ExactP CallConv where
+  exactP (StdCall    _) = printString "stdcall"
+  exactP (CCall      _) = printString "ccall"
+  exactP (CPlusPlus  _) = printString "cplusplus"
+  exactP (DotNet     _) = printString "dotnet"
+  exactP (Jvm        _) = printString "jvm"
+  exactP (Js         _) = printString "js"
+  exactP (JavaScript _) = printString "javascript"
+  exactP (CApi       _) = printString "capi"
+
+instance ExactP Safety where
+  exactP (PlayRisky _) = printString "unsafe"
+  exactP (PlaySafe _ b) = printString $ if b then "threadsafe" else "safe"
+  exactP (PlayInterruptible _) = printString "interruptible"
+
+instance ExactP Rule where
+  exactP (Rule l str mact mrvs e1 e2) =
+    case srcInfoPoints l of
+     _:pts -> do
+        printString (show str)
+        maybeEP exactP mact
+        pts1 <- case mrvs of
+                Nothing -> return pts
+                Just rvs ->
+                    case pts of
+                     a':b:pts' -> do
+                        printStringAt (pos a') "forall"
+                        mapM_ exactPC rvs
+                        printStringAt (pos b) "."
+                        return pts'
+                     _ -> errorEP "ExactP: Rule is given too few srcInfoPoints"
+        case pts1 of
+         [x] -> do
+            exactPC e1
+            printStringAt (pos x) "="
+            exactPC e2
+         _ -> errorEP "ExactP: Rule is given wrong number of srcInfoPoints"
+     _ -> errorEP "ExactP: Rule is given too few srcInfoPoints"
+
+instance ExactP RuleVar where
+  exactP (TypedRuleVar l n t) =
+        case srcInfoPoints l of
+         [_,b,c] -> do
+            printString "("
+            exactPC n
+            printStringAt (pos b) "::"
+            exactPC t
+            printStringAt (pos c) ")"
+         _ -> errorEP "ExactP: RuleVar: TypedRuleVar is given wrong number of srcInfoPoints"
+  exactP (RuleVar _ n) = exactP n
+
+instance ExactP Overlap where
+  exactP (NoOverlap _) =
+    printString "{-# NO_OVERLAP #-}"
+  exactP (Overlap _) =
+    printString "{-# OVERLAP #-}"
+  exactP (Overlaps _) =
+    printString "{-# OVERLAPS #-}"
+  exactP (Overlapping _) =
+    printString "{-# OVERLAPPING #-}"
+  exactP (Overlappable _) =
+    printString "{-# OVERLAPPABLE #-}"
+  exactP (Incoherent _) =
+    printString "{-# INCOHERENT #-}"
+
+instance ExactP Activation where
+  exactP (ActiveFrom   l i) =
+    printPoints l ["[", show i, "]"]
+  exactP (ActiveUntil  l i) =
+    printPoints l ["[", "~", show i, "]"]
+
+instance ExactP FieldDecl where
+  exactP (FieldDecl l ns bt) = do
+    let pts = srcInfoPoints l
+    printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "::")]) ns
+    exactPC bt
+
+instance ExactP IPBind where
+  exactP (IPBind l ipn e) =
+    case srcInfoPoints l of
+     [a] -> do
+        exactP ipn
+        printStringAt (pos a) "="
+        exactPC e
+     _ -> errorEP "ExactP: IPBind is given wrong number of srcInfoPoints"
+
+-- Hopefully, this will never fire.
+-- If it does, hopefully by that time https://github.com/sol/rewrite-with-location
+-- will be implemented.
+-- If not, then removing all calls to internalError should give a better
+-- idea where the error comes from.
+-- So far, it's necessary to eliminate non-exhaustive patterns warnings.
+-- We don't want to turn them off, as we want unhandled AST nodes to be
+-- reported.
+internalError :: String -> a
+internalError loc' = error $ unlines
+    [ "haskell-src-exts: ExactPrint: internal error (non-exhaustive pattern)"
+    , "Location: " ++ loc'
+    , "This is either caused by supplying incorrect location information or by"
+    , "a bug in haskell-src-exts. If this happens on an unmodified AST obtained"
+    , "by the haskell-src-exts Parser it is a bug, please it report it at"
+    , "https://github.com/haskell-suite/haskell-src-exts"]
diff --git a/src/Language/Haskell/Exts/ExtScheme.hs b/src/Language/Haskell/Exts/ExtScheme.hs
--- a/src/Language/Haskell/Exts/ExtScheme.hs
+++ b/src/Language/Haskell/Exts/ExtScheme.hs
@@ -1,4 +1,6 @@
+{-# LANGUAGE Safe #-}
 {-# OPTIONS_HADDOCK hide #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.ExtScheme
diff --git a/src/Language/Haskell/Exts/Extension.hs b/src/Language/Haskell/Exts/Extension.hs
--- a/src/Language/Haskell/Exts/Extension.hs
+++ b/src/Language/Haskell/Exts/Extension.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE CPP, DeriveDataTypeable, Safe #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.Extension
@@ -31,7 +32,7 @@
     parseExtension, prettyExtension,
 
     -- * Extension groups
-    ghcDefault, glasgowExts, 
+    ghcDefault, glasgowExts,
     knownExtensions, deprecatedExtensions,
 
     -- * Semantics of extensions applied to languages
@@ -39,9 +40,13 @@
 
     ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative ((<$>), (<|>))
+#else
+import Control.Applicative ((<|>))
+#endif
 import Data.Array (Array, accumArray, bounds, Ix(inRange), (!))
-import Data.List (nub, delete)
+import Data.List (nub)
 import Data.Maybe (fromMaybe)
 import Data.Data
 
@@ -148,13 +153,12 @@
   -- | [GHC &#xa7; 7.6.3.5] Allow type signatures in instances.
   | InstanceSigs
 
-  -- | [GHC &#xa7; 7.3.8] Allows recursive bindings in @do@ blocks,
-  -- using the @rec@ keyword.
+  -- | [GHC &#xa7; 7.3.8] Deprecated in GHC.  Allows recursive
+  -- bindings in @do@ blocks, using the @rec@ keyword.
   | DoRec
 
-  -- | [GHC &#xa7; 7.3.8.2] Deprecated in GHC.  Allows recursive bindings
-  -- using @mdo@, a variant of @do@.  @DoRec@ provides a different,
-  -- preferred syntax.
+  -- | [GHC &#xa7; 7.3.8.2] Allows recursive bindings using @mdo@, a
+  -- variant of @do@, and @rec@.
   | RecursiveDo
 
   -- | [GHC &#xa7; 7.3.9] Provide syntax for writing list
@@ -265,11 +269,14 @@
   -- @deriving@ for any class with an instance for the underlying type.
   | GeneralizedNewtypeDeriving
 
+  -- | [GHC &#xa7; 9.6.10] Allow use of any typeclass in deriving clauses.
+  | DeriveAnyClass
+
   -- | [Hugs &#xa7; 7.1] Enable the \"Trex\" extensible records system.
   | ExtensibleRecords
 
   -- | [Hugs &#xa7; 7.2] Enable type synonyms which are transparent in
-  -- some definitions and opaque elsewhere, as a way of implementing 
+  -- some definitions and opaque elsewhere, as a way of implementing
   -- abstract datatypes.
   | RestrictedTypeSynonyms
 
@@ -368,8 +375,13 @@
   -- > import "network" Network.Socket
   | PackageImports
 
+  | ImportQualifiedPost
+
   | LambdaCase
 
+  -- | [GHC &#xa7; 7.3.20] Allow case expressions with no alternatives.
+  | EmptyCase
+
   -- | [GHC &#xa7; 7.8.6] Deprecated in GHC 6.12 and will be removed in
   -- GHC 7.  Allow a type variable to be instantiated at a
   -- polymorphic type.
@@ -460,6 +472,10 @@
   -- foreign function interface.
   | CApiFFI
 
+  -- | GHCJS FFI extension with convenient import patterns,
+  -- asynchronous FFI and a JSVal FFI type
+  | JavaScriptFFI
+
   -- | [GHC &#xa7; 7.3.27] Enable explicit namespaces in import/export.
   | ExplicitNamespaces
 
@@ -504,7 +520,48 @@
   -- Constraint can occur before the arrow.
   | ConstraintKinds
 
+  -- | [GHC &#xa7; 7.25.3] Allow role annotations.
+  | RoleAnnotations
+  -- | [GHC &#xa7; 7.3.8] Enable giving names to parametrized pattern
+  -- schemes
+  | PatternSynonyms
 
+  -- | [GHC &#xa7; 7.15] Allow partial specified type signatures.
+  -- Note that this extension does not affect parsing. It only affects whether the
+  -- program is able to be run with partial signatures.
+  | PartialTypeSignatures
+
+  -- | [GHC &#xa7; 7.15.1.2] This extension treats type variables which
+  -- start with an underscore as wildcards. For example, `foo :: _x` is
+  -- equivalent to `foo :: _`.
+  | NamedWildCards
+
+  | TypeApplications
+
+  | TypeFamilyDependencies
+
+  | OverloadedLabels
+
+  -- | Allow multiple @deriving@ clauses, each optionally qualified with a
+  -- /strategy/.
+  | DerivingStrategies
+
+  | UnboxedSums
+
+  | TypeInType
+
+  | Strict
+
+  | StrictData
+
+  -- | Enable deriving instances via types of the same runtime representation.
+  -- Implies 'DerivingStrategies'.
+  | DerivingVia
+
+  | QuantifiedConstraints
+
+  | BlockArguments
+
   deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable)
 
 -- | Certain extensions imply other extensions, and this function
@@ -513,12 +570,12 @@
 --   The returned value is the transitive closure of implied
 --   extensions.
 {-impliesExts :: [Extension] -> [Extension]
-impliesExts exts = 
+impliesExts exts =
     let posExts = [ ke | EnableExtension  ke <- exts ]
         negExts = [ ke | DisableExtension ke <- exts ]
 
         implExts = impliesKnownExts posExts
-     in 
+     in
 -}
 impliesExts :: [KnownExtension] -> [KnownExtension]
 impliesExts = go
@@ -538,9 +595,14 @@
                     LiberalTypeSynonyms -> [ExplicitForAll]
                     ExistentialQuantification -> [ExplicitForAll]
                     ImpredicativeTypes   -> [ExplicitForAll]
+                    PolyKinds           -> [KindSignatures]
+                    TypeFamilyDependencies -> [TypeFamilies]
+                    TypeInType          -> [PolyKinds, DataKinds, KindSignatures]
+                    TypeOperators       -> [ExplicitNamespaces]
                     -- Deprecations
                     RecordPuns          -> [NamedFieldPuns]
                     PatternSignatures   -> [ScopedTypeVariables]
+                    DerivingVia         -> [DerivingStrategies]
                     _                   -> []
 
 -- | The list of extensions enabled by
@@ -654,8 +716,8 @@
                 _ -> Nothing
 
 {-------------------------------------------
- -- Transform a 'Language', and possibly a modifying set of'Extension's, into a list 
- -- of 'KnownExtension's, to be interpreted as modifying the language you get 
+ -- Transform a 'Language', and possibly a modifying set of'Extension's, into a list
+ -- of 'KnownExtension's, to be interpreted as modifying the language you get
  -- when all known extensions are disabled.
  -- Extensions are interpreted in a right-biased fashion, so the last instance
  -- of an occurence of 'EnableExtension' or 'DisableExtension' for a given
@@ -669,21 +731,20 @@
                     Haskell2010 -> [DoAndIfThenElse
                                    , PatternGuards
                                    , ForeignFunctionInterface
-                                   , EmptyDataDecls 
+                                   , EmptyDataDecls
                                    ] ++ allLangDefault
                     HaskellAllDisabled -> []
-                    UnknownLanguage s -> 
+                    UnknownLanguage s ->
                         error $ "toExtensionList: Unknown language " ++ s
 {-
         addExts = [ ke | EnableExtension  ke <- exts ]
         remExts = [ ke | DisableExtension ke <- exts ]
      in impliesExts $ nub $ (langKes ++ addExts) \\ remExts
 -}
-  in impliesExts $ go langKes exts'
+  in impliesExts $ nub $ go langKes exts'
     where go :: [KnownExtension] -> [Extension] -> [KnownExtension]
           go acc [] = acc
-          go acc (DisableExtension x : exts) = go (nub (delete x acc)) exts
-          go acc (EnableExtension  x : exts) = go (nub (x : acc))      exts
+          go acc (DisableExtension x : exts) = go (filter (/= x) acc) exts
+          go acc (EnableExtension  x : exts) = go (x : acc)           exts
           -- We just throw away UnknownExtensions
           go acc (_ : exts) = go acc exts
-
diff --git a/src/Language/Haskell/Exts/Fixity.hs b/src/Language/Haskell/Exts/Fixity.hs
--- a/src/Language/Haskell/Exts/Fixity.hs
+++ b/src/Language/Haskell/Exts/Fixity.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE CPP, DeriveDataTypeable, Safe #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.Fixity
@@ -28,23 +29,29 @@
     --   /varid/ operators, and /varsym/ operators written as is.
     , infix_, infixl_, infixr_
     -- ** Collections of fixities
-    , preludeFixities, baseFixities, prefixMinusFixity
+    , preludeFixities, baseFixities
 
     -- * Applying fixities to an AST
     , AppFixity(..)
     ) where
 
 import Language.Haskell.Exts.Syntax
+import Language.Haskell.Exts.SrcLoc
 
-import Control.Monad (when, (<=<), liftM, liftM2, liftM3)
+import Control.Monad (when, (<=<), liftM, liftM2, liftM3, liftM4)
+import qualified Control.Monad.Fail as Fail
 import Data.Traversable (mapM)
-import Prelude hiding (mapM)
-import Data.Data hiding (Fixity)
 import Data.Maybe (fromMaybe)
+import Data.Typeable
+import Data.Data hiding (Fixity)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$))
+#endif
+import Prelude hiding (mapM)
 
 -- | Operator fixities are represented by their associativity
 --   (left, right or none) and their precedence (0-9).
-data Fixity = Fixity Assoc Int QName
+data Fixity = Fixity (Assoc ()) Int (QName ())
   deriving (Eq,Ord,Show,Typeable,Data)
 
 -- | All AST elements that may include expressions which in turn may
@@ -53,75 +60,81 @@
   -- | Tweak any expressions in the element to account for the
   --   fixities given. Assumes that all operator expressions are
   --   fully left associative chains to begin with.
-  applyFixities :: Monad m => [Fixity] -- ^ The fixities to account for.
-                    -> ast  -- ^ The element to tweak.
-                    -> m ast  -- ^ The same element, but with operator expressions updated, or a failure.
+  applyFixities :: Fail.MonadFail m => [Fixity]  -- ^ The fixities to account for.
+                    -> ast SrcSpanInfo           -- ^ The element to tweak.
+                    -> m (ast SrcSpanInfo)       -- ^ The same element, but with operator expressions updated, or a failure.
 
+assocNone, assocLeft, assocRight :: Assoc ()
+assocNone = AssocNone ()
+assocLeft = AssocLeft ()
+assocRight = AssocRight ()
 
 instance AppFixity Exp where
   applyFixities fixs' = infFix fixs' <=< leafFix fixs'
     where -- This is the real meat case. We can assume a left-associative list to begin with.
-          infFix fixs (InfixApp a op2 z) = do
+          infFix fixs (InfixApp l2 a op2 z) = do
               e <- infFix fixs a
               let fixup (a1,p1) (a2,p2) y pre = do
-                      when (p1 == p2 && (a1 /= a2 || a1 == AssocNone)) -- Ambiguous infix expression!
+                      when (p1 == p2 && (a1 /= a2 || a1 == assocNone)) -- Ambiguous infix expression!
                            $ fail "Ambiguous infix expression"
-                      if p1 > p2 || p1 == p2 && (a1 == AssocLeft || a2 == AssocNone) -- Already right order
-                       then return $ InfixApp e op2 z
-                       else liftM pre (infFix fixs $ InfixApp y op2 z)
+                      if p1 > p2 || p1 == p2 && (a1 == assocLeft || a2 == assocNone) -- Already right order
+                       then return $ InfixApp l2 e op2 z
+                       else liftM pre (infFix fixs $ InfixApp (ann y <++> ann z) y op2 z)
               case e of
-               InfixApp x op1 y -> fixup (askFixity fixs op1) (askFixity fixs op2) y (InfixApp x op1)
-               NegApp         y -> fixup prefixMinusFixity    (askFixity fixs op2) y  NegApp
-               _  -> return $ InfixApp e op2 z
+               InfixApp _ x op1 y -> fixup (askFixity fixs op1) (askFixity fixs op2) y (InfixApp l2 x op1)
+               NegApp   _       y -> fixup prefixMinusFixity    (askFixity fixs op2) y (NegApp l2)
+               _  -> return $ InfixApp l2 e op2 z
 
           infFix _ e = return e
 
+--ambOps l = ParseFailed (getPointLoc l) $ "Ambiguous infix expression"
+
 instance AppFixity Pat where
   applyFixities fixs' = infFix fixs' <=< leafFixP fixs'
-    where -- Same for patterns
-          infFix fixs (PInfixApp a op2 z) = do
+    where -- This is the real meat case. We can assume a left-associative list to begin with.
+          infFix fixs (PInfixApp l2 a op2 z) = do
               p <- infFix fixs a
               let fixup (a1,p1) (a2,p2) y pre = do
-                      when (p1 == p2 && (a1 /= a2 || a1 == AssocNone )) -- Ambiguous infix expression!
+                      when (p1 == p2 && (a1 /= a2 || a1 == assocNone )) -- Ambiguous infix expression!
                            $ fail "Ambiguous infix expression"
-                      if p1 > p2 || p1 == p2 && (a1 == AssocLeft || a2 == AssocNone) -- Already right order
-                       then return $ PInfixApp p op2 z
-                       else liftM pre (infFix fixs $ PInfixApp y op2 z)
+                      if p1 > p2 || p1 == p2 && (a1 == assocLeft || a2 == assocNone) -- Already right order
+                       then return $ PInfixApp l2 p op2 z
+                       else liftM pre (infFix fixs $ PInfixApp (ann y <++> ann z) y op2 z)
               case p of
-               PInfixApp x op1 y -> fixup (askFixityP fixs op1) (askFixityP fixs op2) y (PInfixApp x op1)
-               _  -> return $ PInfixApp p op2 z
+               PInfixApp _ x op1 y -> fixup (askFixityP fixs op1) (askFixityP fixs op2) y (PInfixApp l2 x op1)
+               _  -> return $ PInfixApp l2 p op2 z
 
           infFix _ p = return p
 
-
 -- Internal: lookup associativity and precedence of an operator
-askFixity :: [Fixity] -> QOp -> (Assoc, Int)
-askFixity xs k = askFix xs (f k) -- undefined -- \k -> askFixityP xs (f k) -- lookupWithDefault (AssocLeft, 9) (f k) mp
+askFixity :: [Fixity] -> QOp l -> (Assoc (), Int)
+askFixity xs k = askFix xs (f (() <$ k))
     where
-        f (QVarOp x) = g x
-        f (QConOp x) = g x
+        f (QVarOp _ x) = g x
+        f (QConOp _ x) = g x
 
-        g (Special Cons) = UnQual (Symbol ":")
-        g x              = x
+        g (Special _ (Cons _)) = UnQual () (Symbol () ":")
+        g x                  = x
 
 -- Same using patterns
-askFixityP :: [Fixity] -> QName -> (Assoc, Int)
-askFixityP xs qn = askFix xs (g qn)
+askFixityP :: [Fixity] -> QName l -> (Assoc (), Int)
+askFixityP xs qn = askFix xs (g (() <$ qn))
     where
-        g (Special Cons) = UnQual (Symbol ":")
-        g x              = x
-        
-askFix :: [Fixity] -> QName -> (Assoc, Int)
-askFix xs = \k -> lookupWithDefault (AssocLeft, 9) k mp
+        g (Special _ (Cons _)) = UnQual () (Symbol () ":")
+        g x                  = x
+
+askFix :: [Fixity] -> QName l -> (Assoc (), Int)
+askFix xs = \k -> lookupWithDefault (assocLeft, 9) (() <$ k) mp
     where
-        lookupWithDefault def k mp1 = fromMaybe def $ lookup k mp1
+        lookupWithDefault def k mp' = fromMaybe def $ lookup k mp'
 
         mp = [(x,(a,p)) | Fixity a p x <- xs]
 
 
+
 -- | Built-in fixity for prefix minus
-prefixMinusFixity :: (Assoc, Int)
-prefixMinusFixity = (AssocLeft, 6)
+prefixMinusFixity :: (Assoc (), Int)
+prefixMinusFixity = (AssocLeft (), 6)
 
 -- | All fixities defined in the Prelude.
 preludeFixities :: [Fixity]
@@ -129,10 +142,11 @@
     [infixr_ 9  ["."]
     ,infixl_ 9  ["!!"]
     ,infixr_ 8  ["^","^^","**"]
-    ,infixl_ 7  ["*","/","`quot`","`rem`","`div`","`mod`",":%","%"]
+    ,infixl_ 7  ["*","/","`quot`","`rem`","`div`","`mod`"]
     ,infixl_ 6  ["+","-"]
     ,infixr_ 5  [":","++"]
     ,infix_  4  ["==","/=","<","<=",">=",">","`elem`","`notElem`"]
+    ,infixl_ 4  ["<$>","<$","<*>","<*","*>"]
     ,infixr_ 3  ["&&"]
     ,infixr_ 2  ["||"]
     ,infixl_ 1  [">>",">>="]
@@ -148,239 +162,289 @@
 baseFixities :: [Fixity]
 baseFixities = preludeFixities ++ concat
     [infixl_ 9 ["!","//","!:"]
+    ,infixr_ 9 ["`Compose`"]
     ,infixl_ 8 ["`shift`","`rotate`","`shiftL`","`shiftR`","`rotateL`","`rotateR`"]
-    ,infixl_ 7 [".&."]
+    ,infixl_ 7 [".&.","%"]
+    ,infixr_ 6 ["<>"]
     ,infixl_ 6 ["`xor`"]
     ,infix_  6 [":+"]
     ,infixl_ 5 [".|."]
-    ,infixr_ 5 ["+:+","<++","<+>"] -- fixity conflict for +++ between ReadP and Arrow
+    ,infixr_ 5 ["+:+","<++","<+>","<|"] -- fixity conflict for +++ between ReadP and Arrow
     ,infix_  5 ["\\\\"]
-    ,infixl_ 4 ["<$>","<$","<*>","<*","*>","<**>"]
-    ,infix_  4 ["`elemP`","`notElemP`"]
+    ,infixl_ 4 ["<**>","$>","<$","<$!>"]
+    ,infix_  4 ["`elemP`","`notElemP`",":~:",":~~:"]
     ,infixl_ 3 ["<|>"]
     ,infixr_ 3 ["&&&","***"]
     ,infixr_ 2 ["+++","|||"]
     ,infixr_ 1 ["<=<",">=>",">>>","<<<","^<<","<<^","^>>",">>^"]
+    ,infixl_ 1 ["&"]
     ,infixl_ 0 ["`on`"]
     ,infixr_ 0 ["`par`","`pseq`"]
     ]
 
 infixr_, infixl_, infix_ :: Int -> [String] -> [Fixity]
-infixr_ = fixity AssocRight
-infixl_ = fixity AssocLeft
-infix_  = fixity AssocNone
+infixr_ = fixity  assocRight
+infixl_ = fixity  assocLeft
+infix_  = fixity  assocNone
 
 -- Internal: help function for the above definitions.
-fixity :: Assoc -> Int -> [String] -> [Fixity]
+fixity :: Assoc () -> Int -> [String] -> [Fixity]
 fixity a p = map (Fixity a p . op)
     where
-        op ('`':xs) = UnQual $ Ident $ init xs
-        op xs = UnQual $ Symbol xs
+        op ('`':xs) = UnQual () $ Ident () $ init xs
+        op xs = UnQual () $ Symbol () xs
 
 
 
 
 
 
+
+
 -------------------------------------------------------------------
 -- Boilerplate - yuck!! Everything below here is internal stuff
 
 instance AppFixity Module where
-    applyFixities fixs (Module loc n prs mwt ext imp decls) =
-        liftM (Module loc n prs mwt ext imp) $ appFixDecls fixs decls
+    applyFixities fixs (Module l mmh prs imp decls) =
+        liftM (Module l mmh prs imp) $ appFixDecls mmn fixs decls
+      where mmn = getMmn mmh
+            getMmn (Just (ModuleHead _ n _ _)) = Just n
+            getMmn _ = Nothing
+    applyFixities fixs (XmlPage l mn os xn xas mexp cs) =
+        liftM3 (XmlPage l mn os xn) (fix xas) (fix mexp) (fix cs)
+      where fix xs = mapM (applyFixities fixs) xs
+    applyFixities fixs (XmlHybrid l mmh prs imp decls xn xas mexp cs) =
+        liftM4 (flip (XmlHybrid l mmh prs imp) xn) (appFixDecls mmn fixs decls)
+                (fixe xas) (fixe mexp) (fixe cs)
+      where mmn = getMmn mmh
+            getMmn (Just (ModuleHead _ n _ _)) = Just n
+            getMmn _ = Nothing
+            fixe xs = let extraFixs = getFixities mmn decls
+                       in mapM (applyFixities (fixs++extraFixs)) xs
 
 instance AppFixity Decl where
     applyFixities fixs decl = case decl of
-        ClassDecl loc ctxt n vars deps cdecls   -> liftM (ClassDecl loc ctxt n vars deps) $ mapM fix cdecls
-        InstDecl loc olp tvs ctxt n ts idecls   -> liftM (InstDecl loc olp tvs ctxt n ts) $ mapM fix idecls
-        SpliceDecl loc spl      -> liftM (SpliceDecl loc) $ fix spl
-        FunBind matches         -> liftM FunBind $ mapM fix matches
-        PatBind loc p rhs bs    -> liftM3 (PatBind loc) (fix p) (fix rhs) (fix bs)
-        AnnPragma loc ann       -> liftM (AnnPragma loc) $ fix ann
+        ClassDecl l ctxt dh deps cdecls   -> liftM (ClassDecl l ctxt dh deps) $ mapM (mapM fix) cdecls
+        InstDecl  l olp ih idecls         -> liftM (InstDecl  l olp ih)  $ mapM (mapM fix) idecls
+        SpliceDecl l spl        -> liftM (SpliceDecl l) $ fix spl
+        FunBind l matches       -> liftM (FunBind l) $ mapM fix matches
+        PatBind l p rhs bs      ->
+         let extraFix x = applyFixities (fixs ++ maybe [] getBindFixities bs) x
+          in liftM3 (PatBind l) (extraFix p) (extraFix rhs) (mapM extraFix bs)
+        AnnPragma l ann'         -> liftM (AnnPragma l) $ fix ann'
+        PatSyn l p1 p2 dir -> liftM (PatSyn l p1 p2) (fix dir)
         _                       -> return decl
       where fix x = applyFixities fixs x
 
-appFixDecls :: Monad m => [Fixity] -> [Decl] -> m [Decl]
-appFixDecls fixs decls =
-    let extraFixs = getFixities decls
+instance AppFixity PatternSynDirection where
+  applyFixities fixs dir = case dir of
+    ExplicitBidirectional l ds -> liftM (ExplicitBidirectional l) (mapM fix ds)
+    _ -> return dir
+    where fix x = applyFixities fixs x
+
+appFixDecls :: Fail.MonadFail m => Maybe (ModuleName SrcSpanInfo) -> [Fixity] -> [Decl SrcSpanInfo] -> m [Decl SrcSpanInfo]
+appFixDecls mmdl fixs decls =
+    let extraFixs = getFixities mmdl decls
      in mapM (applyFixities (fixs++extraFixs)) decls
-  where getFixities = concatMap getFixity
-        getFixity (InfixDecl _ a p ops) = map (Fixity a p . g) ops
-        getFixity _ = []
-        g (VarOp x) = UnQual x
-        g (ConOp x) = UnQual x
 
+getFixities :: Maybe (ModuleName l) -> [Decl l] -> [Fixity]
+getFixities mmdl = concatMap (getFixity mmdl)
+
+getFixity :: Maybe (ModuleName l) -> Decl l -> [Fixity]
+getFixity mmdl d =
+  case d of
+    InfixDecl _ a mp ops  -> let p = fromMaybe 9 mp
+                              in map (Fixity (scrub a) p) (concatMap g (map scrub ops))
+    ClassDecl _ _ _ _ cds -> maybe [] (concatMap getClassFixity) cds
+    _ -> []
+  where g (VarOp _ x) = f x
+        g (ConOp _ x) = f x
+        f x = case mmdl of
+              Nothing -> [UnQual () x]
+              Just m  -> [Qual () (scrub m) x, UnQual () x]
+        getClassFixity (ClsDecl _ cd) = getFixity mmdl cd
+        getClassFixity _              = []
+
+scrub :: Functor f => f a -> f ()
+scrub f = () <$ f
+
+getBindFixities :: Binds l -> [Fixity]
+getBindFixities bs = case bs of
+                        BDecls _ ds -> getFixities Nothing ds
+                        _           -> []
+
 instance AppFixity Annotation where
-    applyFixities fixs ann = case ann of
-        Ann     n e   -> liftM (Ann n) $ fix e
-        TypeAnn n e   -> liftM (TypeAnn n) $ fix e
-        ModuleAnn e   -> liftM ModuleAnn $ fix e
+    applyFixities fixs ann' = case ann' of
+        Ann     l n e   -> liftM (Ann l n) $ fix e
+        TypeAnn l n e   -> liftM (TypeAnn l n) $ fix e
+        ModuleAnn l e   -> liftM (ModuleAnn l) $ fix e
       where fix x = applyFixities fixs x
 
 instance AppFixity ClassDecl where
-    applyFixities fixs (ClsDecl decl) = liftM ClsDecl $ applyFixities fixs decl
+    applyFixities fixs (ClsDecl l decl) = liftM (ClsDecl l) $ applyFixities fixs decl
     applyFixities _ cdecl = return cdecl
 
 instance AppFixity InstDecl where
-    applyFixities fixs (InsDecl decl) = liftM InsDecl $ applyFixities fixs decl
+    applyFixities fixs (InsDecl l decl) = liftM (InsDecl l) $ applyFixities fixs decl
     applyFixities _ idecl = return idecl
 
 instance AppFixity Match where
-    applyFixities fixs (Match loc n ps mt rhs bs) = liftM3 (flip (Match loc n) mt) (mapM fix ps) (fix rhs) (fix bs)
-      where fix x = applyFixities fixs x
+    applyFixities fixs match = case match of
+        Match l n ps rhs bs -> liftM3 (Match l n) (mapM (fix bs) ps) (fix bs rhs) (mapM (fix bs) bs)
+        InfixMatch l a n ps rhs bs -> liftM4 (flip (InfixMatch l) n) (fix bs a) (mapM (fix bs) ps) (fix bs rhs) (mapM (fix bs) bs)
+      where fix bs x = applyFixities fixs' x
+             where fixs' = fixs ++ maybe [] getBindFixities bs
 
 instance AppFixity Rhs where
     applyFixities fixs rhs = case rhs of
-        UnGuardedRhs e      -> liftM UnGuardedRhs $ fix e
-        GuardedRhss grhss   -> liftM GuardedRhss $ mapM fix grhss
+        UnGuardedRhs l e      -> liftM (UnGuardedRhs l) $ fix e
+        GuardedRhss l grhss   -> liftM (GuardedRhss l) $ mapM fix grhss
       where fix x = applyFixities fixs x
 
 instance AppFixity GuardedRhs where
-    applyFixities fixs (GuardedRhs loc stmts e) = liftM2 (GuardedRhs loc) (mapM fix stmts) $ fix e
+    applyFixities fixs (GuardedRhs l stmts e) = liftM2 (GuardedRhs l) (mapM fix stmts) $ fix e
       where fix x = applyFixities fixs x
 
 instance AppFixity PatField where
-    applyFixities fixs (PFieldPat n p) = liftM (PFieldPat n) $ applyFixities fixs p
+    applyFixities fixs (PFieldPat l n p) = liftM (PFieldPat l n) $ applyFixities fixs p
     applyFixities _ pf = return pf
 
 instance AppFixity RPat where
     applyFixities fixs rp' = case rp' of
-        RPOp rp op          -> liftM (flip RPOp op) (fix rp)
-        RPEither a b        -> liftM2 RPEither (fix a) (fix b)
-        RPSeq rps           -> liftM RPSeq $ mapM fix rps
-        RPGuard p stmts     -> liftM2 RPGuard (fix p) $ mapM fix stmts
-        RPCAs n rp          -> liftM (RPCAs n) $ fix rp
-        RPAs n rp           -> liftM (RPAs n) $ fix rp
-        RPParen rp          -> liftM RPParen $ fix rp
-        RPPat p             -> liftM RPPat $ fix p
+        RPOp l rp op          -> liftM (flip (RPOp l) op) $ fix rp
+        RPEither l a b        -> liftM2 (RPEither l) (fix a) (fix b)
+        RPSeq l rps           -> liftM (RPSeq l) $ mapM fix rps
+        RPGuard l p stmts     -> liftM2 (RPGuard l) (fix p) $ mapM fix stmts
+        RPCAs l n rp          -> liftM (RPCAs l n) $ fix rp
+        RPAs l n rp           -> liftM (RPAs l n) $ fix rp
+        RPParen l rp          -> liftM (RPParen l) $ fix rp
+        RPPat l p             -> liftM (RPPat l) $ fix p
       where fix x = applyFixities fixs x
 
 instance AppFixity PXAttr where
-    applyFixities fixs (PXAttr n p) = liftM (PXAttr n) $ applyFixities fixs p
+    applyFixities fixs (PXAttr l n p) = liftM (PXAttr l n) $ applyFixities fixs p
 
 instance AppFixity Stmt where
     applyFixities fixs stmt = case stmt of
-        Generator loc p e   -> liftM2 (Generator loc) (fix p) (fix e)
-        Qualifier e         -> liftM Qualifier $ fix e
-        LetStmt bs          -> liftM LetStmt $ fix bs    -- special behavior
-        RecStmt stmts       -> liftM RecStmt $ mapM fix stmts
+        Generator l p e       -> liftM2 (Generator l) (fix p) (fix e)
+        Qualifier l e         -> liftM (Qualifier l) $ fix e
+        LetStmt l bs          -> liftM (LetStmt l) $ fix bs    -- special behavior
+        RecStmt l stmts       -> liftM (RecStmt l) $ mapM fix stmts
       where fix x = applyFixities fixs x
 
 instance AppFixity Binds where
     applyFixities fixs bs = case bs of
-        BDecls decls        -> liftM BDecls $ appFixDecls fixs decls  -- special behavior
-        IPBinds ips         -> liftM IPBinds $ mapM fix ips
+        BDecls l decls        -> liftM (BDecls l) $ appFixDecls Nothing fixs decls  -- special behavior
+        IPBinds l ips         -> liftM (IPBinds l) $ mapM fix ips
       where fix x = applyFixities fixs x
 
 
 instance AppFixity IPBind where
-    applyFixities fixs (IPBind loc n e) = liftM (IPBind loc n) $ applyFixities fixs e
+    applyFixities fixs (IPBind l n e) = liftM (IPBind l n) $ applyFixities fixs e
 
 instance AppFixity FieldUpdate where
-    applyFixities fixs (FieldUpdate n e) = liftM (FieldUpdate n) $ applyFixities fixs e
+    applyFixities fixs (FieldUpdate l n e) = liftM (FieldUpdate l n) $ applyFixities fixs e
     applyFixities _ fup = return fup
 
 instance AppFixity Alt where
-    applyFixities fixs (Alt loc p galts bs) = liftM3 (Alt loc) (fix p) (fix galts) (fix bs)
+    applyFixities fixs (Alt l p galts bs) = liftM3 (Alt l) (fix p) (fix galts) (mapM fix bs)
       where fix x = applyFixities fixs x
 
 instance AppFixity QualStmt where
     applyFixities fixs qstmt = case qstmt of
-        QualStmt     s      -> liftM QualStmt $ fix s
-        ThenTrans    e      -> liftM ThenTrans $ fix e
-        ThenBy       e1 e2  -> liftM2 ThenBy (fix e1) (fix e2)
-        GroupBy      e      -> liftM GroupBy (fix e)
-        GroupUsing   e      -> liftM GroupUsing (fix e)
-        GroupByUsing e1 e2  -> liftM2 GroupByUsing (fix e1) (fix e2)
+        QualStmt     l s      -> liftM (QualStmt l) $ fix s
+        ThenTrans    l e      -> liftM (ThenTrans l) $ fix e
+        ThenBy       l e1 e2  -> liftM2 (ThenBy l) (fix e1) (fix e2)
+        GroupBy      l e      -> liftM (GroupBy l) (fix e)
+        GroupUsing   l e      -> liftM (GroupUsing l) (fix e)
+        GroupByUsing l e1 e2  -> liftM2 (GroupByUsing l) (fix e1) (fix e2)
       where fix x = applyFixities fixs x
 
 instance AppFixity Bracket where
     applyFixities fixs br = case br of
-        ExpBracket e    -> liftM ExpBracket $ fix e
-        PatBracket p    -> liftM PatBracket $ fix p
-        DeclBracket ds  -> liftM DeclBracket $ mapM fix ds
-        _               -> return br
+        ExpBracket l e    -> liftM (ExpBracket l) $ fix e
+        PatBracket l p    -> liftM (PatBracket l) $ fix p
+        DeclBracket l ds  -> liftM (DeclBracket l) $ mapM fix ds
+        _                 -> return br
       where fix x = applyFixities fixs x
 
 instance AppFixity Splice where
-    applyFixities fixs (ParenSplice e) = liftM ParenSplice $ applyFixities fixs e
+    applyFixities fixs (ParenSplice l e) = liftM (ParenSplice l) $ applyFixities fixs e
     applyFixities _ s = return s
 
 instance AppFixity XAttr where
-    applyFixities fixs (XAttr n e) = liftM (XAttr n) $ applyFixities fixs e
+    applyFixities fixs (XAttr l n e) = liftM (XAttr l n) $ applyFixities fixs e
 
 
 -- the boring boilerplate stuff for expressions too
 -- Recursively fixes the "leaves" of the infix chains,
 -- without yet touching the chain itself. We assume all chains are
 -- left-associate to begin with.
-leafFix :: Monad m => [Fixity] -> Exp -> m Exp
+leafFix :: Fail.MonadFail m => [Fixity] -> Exp SrcSpanInfo -> m (Exp SrcSpanInfo)
 leafFix fixs e' = case e' of
-    InfixApp e1 op e2       -> liftM2 (flip InfixApp op) (leafFix fixs e1) (fix e2)
-    App e1 e2               -> liftM2 App (fix e1) (fix e2)
-    NegApp e                -> liftM NegApp $ fix e
-    Lambda loc pats e       -> liftM2 (Lambda loc) (mapM fix pats) $ fix e
-    Let bs e                -> liftM2 Let (fix bs) $ fix e
-    If e a b                -> liftM3 If (fix e) (fix a) (fix b)
-    MultiIf alts            -> liftM MultiIf (mapM fix alts)
-    Case e alts             -> liftM2 Case (fix e) $ mapM fix alts
-    Do stmts                -> liftM Do $ mapM fix stmts
-    MDo stmts               -> liftM MDo $ mapM fix stmts
-    Tuple bx exps           -> liftM (Tuple bx) $ mapM fix exps
-    List exps               -> liftM List $ mapM fix  exps
-    ParArray exps           -> liftM ParArray $ mapM fix exps
-    Paren e                 -> liftM Paren $ fix e
-    LeftSection e op        -> liftM (flip LeftSection op) (fix e)
-    RightSection op e       -> liftM (RightSection op) $ fix e
-    RecConstr n fups        -> liftM (RecConstr n) $ mapM fix fups
-    RecUpdate e fups        -> liftM2 RecUpdate (fix e) $ mapM fix fups
-    EnumFrom e              -> liftM EnumFrom $ fix e
-    EnumFromTo e1 e2        -> liftM2 EnumFromTo (fix e1) (fix e2)
-    EnumFromThen e1 e2      -> liftM2 EnumFromThen (fix e1) (fix e2)
-    EnumFromThenTo e1 e2 e3 -> liftM3 EnumFromThenTo (fix e1) (fix e2) (fix e3)
-    ParArrayFromTo e1 e2     -> liftM2 ParArrayFromTo (fix e1) (fix e2)
-    ParArrayFromThenTo e1 e2 e3 -> liftM3 ParArrayFromThenTo (fix e1) (fix e2) (fix e3)
-    ListComp e quals        -> liftM2 ListComp (fix e) $ mapM fix quals
-    ParComp  e qualss       -> liftM2 ParComp (fix e) $ mapM (mapM fix) qualss
-    ParArrayComp  e qualss  -> liftM2 ParArrayComp (fix e) $ mapM (mapM fix) qualss
-    ExpTypeSig loc e t      -> liftM (flip (ExpTypeSig loc) t) (fix e)
-    BracketExp b            -> liftM BracketExp $ fix b
-    SpliceExp s             -> liftM SpliceExp $ fix s
-    XTag loc n ats mexp cs  -> liftM3 (XTag loc n) (mapM fix ats) (mapM fix mexp) (mapM fix cs)
-    XETag loc n ats mexp    -> liftM2 (XETag loc n) (mapM fix ats) (mapM fix mexp)
-    XExpTag e               -> liftM XExpTag $ fix e
-    XChildTag loc cs        -> liftM (XChildTag loc) $ mapM fix cs
-    Proc loc p e            -> liftM2 (Proc loc) (fix p) (fix e)
-    LeftArrApp e1 e2        -> liftM2 LeftArrApp (fix e1) (fix e2)
-    RightArrApp e1 e2       -> liftM2 RightArrApp (fix e1) (fix e2)
-    LeftArrHighApp e1 e2    -> liftM2 LeftArrHighApp (fix e1) (fix e2)
-    RightArrHighApp e1 e2   -> liftM2 RightArrHighApp (fix e1) (fix e2)
-    CorePragma s e          -> liftM (CorePragma s) (fix e)
-    SCCPragma s e           -> liftM (SCCPragma s) (fix e)
-    GenPragma s ab cd e     -> liftM (GenPragma s ab cd) (fix e)
-    LCase alts              -> liftM LCase $ mapM fix alts
+    InfixApp l e1 op e2       -> liftM2 (flip (InfixApp l) op) (leafFix fixs e1) (fix e2)
+    App l e1 e2               -> liftM2 (App l) (fix e1) (fix e2)
+    NegApp l e                -> liftM (NegApp l) $ fix e
+    Lambda l pats e           -> liftM2 (Lambda l) (mapM fix pats) $ fix e
+    Let l bs e                ->
+        let extraFix x = applyFixities (fixs ++ getBindFixities bs) x
+         in liftM2 (Let l) (extraFix bs) $ extraFix e
+    If l e a b                -> liftM3 (If l) (fix e) (fix a) (fix b)
+    MultiIf l alts            -> liftM (MultiIf l) (mapM fix alts)
+    Case l e alts             -> liftM2 (Case l) (fix e) $ mapM fix alts
+    Do l stmts                -> liftM (Do l) $ mapM fix stmts
+    MDo l stmts               -> liftM (MDo l) $ mapM fix stmts
+    Tuple l bx exps           -> liftM (Tuple l bx) $ mapM fix exps
+    List l exps               -> liftM (List l) $ mapM fix  exps
+    Paren l e                 -> liftM (Paren l) $ fix e
+    LeftSection l e op        -> liftM (flip (LeftSection l) op) (fix e)
+    RightSection l op e       -> liftM (RightSection l op) $ fix e
+    RecConstr l n fups        -> liftM (RecConstr l n) $ mapM fix fups
+    RecUpdate l e fups        -> liftM2 (RecUpdate l) (fix e) $ mapM fix fups
+    EnumFrom l e              -> liftM (EnumFrom l) $ fix e
+    EnumFromTo l e1 e2        -> liftM2 (EnumFromTo l) (fix e1) (fix e2)
+    EnumFromThen l e1 e2      -> liftM2 (EnumFromThen l) (fix e1) (fix e2)
+    EnumFromThenTo l e1 e2 e3 -> liftM3 (EnumFromThenTo l) (fix e1) (fix e2) (fix e3)
+    ListComp l e quals        -> liftM2 (ListComp l) (fix e) $ mapM fix quals
+    ParComp  l e qualss       -> liftM2 (ParComp l) (fix e) $ mapM (mapM fix) qualss
+    ExpTypeSig l e t          -> liftM (flip (ExpTypeSig l) t) (fix e)
+    BracketExp l b            -> liftM (BracketExp l) $ fix b
+    SpliceExp l s             -> liftM (SpliceExp l) $ fix s
+    XTag l n ats mexp cs      -> liftM3 (XTag l n) (mapM fix ats) (mapM fix mexp) (mapM fix cs)
+    XETag l n ats mexp        -> liftM2 (XETag l n) (mapM fix ats) (mapM fix mexp)
+    XExpTag l e               -> liftM (XExpTag l) $ fix e
+    XChildTag l cs            -> liftM (XChildTag l) $ mapM fix cs
+    Proc l p e                -> liftM2 (Proc l) (fix p) (fix e)
+    LeftArrApp l e1 e2        -> liftM2 (LeftArrApp l) (fix e1) (fix e2)
+    RightArrApp l e1 e2       -> liftM2 (RightArrApp l) (fix e1) (fix e2)
+    LeftArrHighApp l e1 e2    -> liftM2 (LeftArrHighApp l) (fix e1) (fix e2)
+    RightArrHighApp l e1 e2   -> liftM2 (RightArrHighApp l) (fix e1) (fix e2)
+    CorePragma l s e          -> liftM (CorePragma l s) (fix e)
+    SCCPragma l s e           -> liftM (SCCPragma l s) (fix e)
+    GenPragma l s ab cd e     -> liftM (GenPragma l s ab cd) (fix e)
+    LCase l alts              -> liftM (LCase l) $ mapM fix alts
 
-    _                       -> return e'
+    _                         -> return e'
   where
     fix x = applyFixities fixs x
 
-leafFixP :: Monad m => [Fixity] -> Pat -> m Pat
+leafFixP :: Fail.MonadFail m => [Fixity] -> Pat SrcSpanInfo -> m (Pat SrcSpanInfo)
 leafFixP fixs p' = case p' of
-        PInfixApp p1 op p2    -> liftM2 (flip PInfixApp op) (leafFixP fixs p1) (fix p2)
-        PApp n ps             -> liftM (PApp n) $ mapM fix ps
-        PTuple bx ps          -> liftM (PTuple bx) $ mapM fix ps
-        PList ps              -> liftM PList $ mapM fix ps
-        PParen p              -> liftM PParen $ fix p
-        PRec n pfs            -> liftM (PRec n) $ mapM fix pfs
-        PAsPat n p            -> liftM (PAsPat n) $ fix p
-        PIrrPat p             -> liftM PIrrPat $ fix p
-        PatTypeSig loc p t    -> liftM (flip (PatTypeSig loc) t) (fix p)
-        PViewPat e p          -> liftM2 PViewPat (fix e) (fix p)
-        PRPat rps             -> liftM PRPat $ mapM fix rps
-        PXTag loc n ats mp ps -> liftM3 (PXTag loc n) (mapM fix ats) (mapM fix mp) (mapM fix ps)
-        PXETag loc n ats mp   -> liftM2 (PXETag loc n) (mapM fix ats) (mapM fix mp)
-        PXPatTag p            -> liftM PXPatTag $ fix p
-        PXRPats rps           -> liftM PXRPats $ mapM fix rps
-        PBangPat p            -> liftM PBangPat $ fix p
-        _                     -> return p'
+        PInfixApp l p1 op p2    -> liftM2 (flip (PInfixApp l) op) (leafFixP fixs p1) (fix p2)
+        PApp l n ps             -> liftM (PApp l n) $ mapM fix ps
+        PTuple l bx ps          -> liftM (PTuple l bx) $ mapM fix ps
+        PList l ps              -> liftM (PList l) $ mapM fix ps
+        PParen l p              -> liftM (PParen l) $ fix p
+        PRec l n pfs            -> liftM (PRec l n) $ mapM fix pfs
+        PAsPat l n p            -> liftM (PAsPat l n) $ fix p
+        PIrrPat l p             -> liftM (PIrrPat l) $ fix p
+        PatTypeSig l p t        -> liftM (flip (PatTypeSig l) t) (fix p)
+        PViewPat l e p          -> liftM2 (PViewPat l) (fix e) (fix p)
+        PRPat l rps             -> liftM (PRPat l) $ mapM fix rps
+        PXTag l n ats mp ps     -> liftM3 (PXTag l n) (mapM fix ats) (mapM fix mp) (mapM fix ps)
+        PXETag l n ats mp       -> liftM2 (PXETag l n) (mapM fix ats) (mapM fix mp)
+        PXPatTag l p            -> liftM (PXPatTag l) $ fix p
+        PXRPats l rps           -> liftM (PXRPats l) $ mapM fix rps
+        PBangPat l p            -> liftM (PBangPat l) $ fix p
+        _                       -> return p'
       where fix x = applyFixities fixs x
diff --git a/src/Language/Haskell/Exts/InternalLexer.hs b/src/Language/Haskell/Exts/InternalLexer.hs
--- a/src/Language/Haskell/Exts/InternalLexer.hs
+++ b/src/Language/Haskell/Exts/InternalLexer.hs
@@ -1,4 +1,7 @@
+{-# LANGUAGE Safe #-}
+{-# LANGUAGE BangPatterns #-}
 {-# OPTIONS_HADDOCK hide #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.Annotated.InternalLexer
@@ -36,6 +39,7 @@
 
 data Token
         = VarId String
+        | LabelVarId String
         | QVarId (String,String)
         | IDupVarId (String)        -- duplicable implicit parameter
         | ILinVarId (String)        -- linear implicit parameter
@@ -88,24 +92,31 @@
         | LeftArrow
         | RightArrow
         | At
+        | TApp -- '@' but have to check for preceeding whitespace
         | Tilde
         | DoubleArrow
         | Minus
         | Exclamation
         | Star
-        | LeftArrowTail         -- >-
-        | RightArrowTail        -- -<
-        | LeftDblArrowTail      -- >>-
-        | RightDblArrowTail     -- -<<
+        | LeftArrowTail         -- -<
+        | RightArrowTail        -- >-
+        | LeftDblArrowTail      -- -<<
+        | RightDblArrowTail     -- >>-
+        | OpenArrowBracket      -- (|
+        | CloseArrowBracket     -- |)
 
 -- Template Haskell
         | THExpQuote            -- [| or [e|
+        | THTExpQuote           -- [|| or [e||
         | THPatQuote            -- [p|
         | THDecQuote            -- [d|
         | THTypQuote            -- [t|
         | THCloseQuote          -- |]
+        | THTCloseQuote         -- ||]
         | THIdEscape (String)   -- dollar x
         | THParenEscape         -- dollar (
+        | THTIdEscape String    -- dollar dollar x
+        | THTParenEscape        -- double dollar (
         | THVarQuote            -- 'x (but without the x)
         | THTyQuote             -- ''T (but without the T)
         | THQuasiQuote (String,String)  -- [$...|...]
@@ -142,6 +153,7 @@
         | GENERATED
         | CORE
         | UNPACK
+        | NOUNPACK
         | OPTIONS (Maybe String,String)
 --        | CFILES  String
 --        | INCLUDE String
@@ -150,7 +162,11 @@
         | MINIMAL
         | NO_OVERLAP
         | OVERLAP
+        | OVERLAPPING
+        | OVERLAPPABLE
+        | OVERLAPS
         | INCOHERENT
+        | COMPLETE
 
 -- Reserved Ids
 
@@ -181,11 +197,16 @@
         | KW_Of
         | KW_Proc       -- arrows
         | KW_Rec        -- arrows
+        | KW_Role
         | KW_Then
         | KW_Type
         | KW_Using      -- transform list comprehensions
         | KW_Where
         | KW_Qualified
+        | KW_Pattern
+        | KW_Stock
+        | KW_Anyclass
+        | KW_Via
 
                 -- FFI
         | KW_Foreign
@@ -200,6 +221,7 @@
         | KW_DotNet
         | KW_Jvm
         | KW_Js
+        | KW_JavaScript
         | KW_CApi
 
         | EOF
@@ -281,6 +303,11 @@
  ( "type",      (KW_Type,       Nothing) ),
  ( "using",     (KW_Using,      Just (Any [TransformListComp])) ),
  ( "where",     (KW_Where,      Nothing) ),
+ ( "role",      (KW_Role,       Just (Any [RoleAnnotations]))),
+ ( "pattern",   (KW_Pattern,    Just (Any [PatternSynonyms]))),
+ ( "stock",     (KW_Stock,      Just (Any [DerivingStrategies]))),
+ ( "anyclass",  (KW_Anyclass,   Just (Any [DerivingStrategies]))),
+ ( "via",       (KW_Via,        Just (Any [DerivingVia]))),
 
 -- FFI
  ( "foreign",   (KW_Foreign,    Just (Any [ForeignFunctionInterface])) )
@@ -305,6 +332,7 @@
  ( "dotnet",        (KW_DotNet,        Just (Any [ForeignFunctionInterface])) ),
  ( "jvm",           (KW_Jvm,           Just (Any [ForeignFunctionInterface])) ),
  ( "js",            (KW_Js,            Just (Any [ForeignFunctionInterface])) ),
+ ( "javascript",    (KW_JavaScript,    Just (Any [ForeignFunctionInterface])) ),
  ( "capi",          (KW_CApi,          Just (Any [CApiFFI])) )
  ]
 
@@ -324,23 +352,39 @@
  ( "generated",         GENERATED       ),
  ( "core",              CORE            ),
  ( "unpack",            UNPACK          ),
+ ( "nounpack",          NOUNPACK        ),
  ( "language",          LANGUAGE        ),
  ( "minimal",           MINIMAL         ),
  ( "no_overlap",        NO_OVERLAP      ),
  ( "overlap",           OVERLAP         ),
+ ( "overlaps",          OVERLAPS        ),
+ ( "overlapping",       OVERLAPPING     ),
+ ( "overlappable",      OVERLAPPABLE    ),
  ( "incoherent",        INCOHERENT      ),
+ ( "complete",          COMPLETE      ),
  ( "options",           OPTIONS undefined ) -- we'll tweak it before use - promise!
 -- ( "cfiles",            CFILES  undefined ), -- same here...
 -- ( "include",           INCLUDE undefined )  -- ...and here!
  ]
 
 isIdent, isHSymbol, isPragmaChar :: Char -> Bool
-isIdent   c = isAlpha c || isDigit c || c == '\'' || c == '_'
+isIdent   c = isAlphaNum c || c == '\'' || c == '_'
 
 isHSymbol c = c `elem` ":!#%&*./?@\\-" || ((isSymbol c || isPunctuation c) && not (c `elem` "(),;[]`{}_\"'"))
 
 isPragmaChar c = isAlphaNum c || c == '_'
 
+isIdentStart :: Char -> Bool
+isIdentStart c = isAlpha c && not (isUpper c) || c == '_'
+
+
+-- Used in the lexing of type applications
+-- Why is it like this? I don't know exactly but this is how it is in
+-- GHC's parser.
+-- Symbol `:` is added so that `@:` is lexed as `VarSym "@:"`. See Issue #326
+isOpSymbol :: Char -> Bool
+isOpSymbol c = c `elem` ":!#$%&*+./<=>?@\\^|-~"
+
 -- | Checks whether the character would be legal in some position of a qvar.
 --   Means that '..' and "AAA" will pass the test.
 isPossiblyQvar :: Char -> Bool
@@ -635,31 +679,39 @@
                         return (con (n, '0':c:str))
 
         -- implicit parameters
-        '?':c:_ | isLower c && ImplicitParams `elem` exts -> do
+        '?':c:_ | isIdentStart c && ImplicitParams `elem` exts -> do
                         discard 1
                         id <- lexWhile isIdent
                         return $ IDupVarId id
 
-        '%':c:_ | isLower c && ImplicitParams `elem` exts -> do
+        '%':c:_ | isIdentStart c && ImplicitParams `elem` exts -> do
                         discard 1
                         id <- lexWhile isIdent
                         return $ ILinVarId id
         -- end implicit parameters
 
         -- harp
---        '(':'|':c:_  | isHSymbol c -> discard 1 >> return LeftParen
         '(':'|':c:_ | RegularPatterns `elem` exts && not (isHSymbol c) ->
-                     do discard 2
-                        return RPGuardOpen
-        '|':')':_ | RegularPatterns `elem` exts ->
-                     do discard 2
-                        return RPGuardClose
+                        discard 2 >> return RPGuardOpen
+                    | Arrows `elem` exts && not (isHSymbol c) ->
+                        discard 2 >> return OpenArrowBracket
+        '|':')':_ | RegularPatterns `elem` exts -> discard 2 >> return RPGuardClose
+                  | Arrows `elem` exts -> discard 2 >> return CloseArrowBracket
         {- This is handled by the reserved_ops above.
         '@':':':_ | RegularPatterns `elem` exts ->
                      do discard 2
                         return RPCAt -}
 
+
         -- template haskell
+        '[':'|':'|':_ | TemplateHaskell `elem` exts -> do
+                discard 3
+                return THTExpQuote
+
+        '[':'e':'|':'|':_ | TemplateHaskell `elem` exts -> do
+                discard 4
+                return THTExpQuote
+
         '[':'|':_ | TemplateHaskell `elem` exts -> do
                 discard 2
                 return THExpQuote
@@ -676,25 +728,35 @@
                     | c == 't' && TemplateHaskell `elem` exts -> do
                         discard 3
                         return THTypQuote
-        '[':'$':c:_ | isLower c && QuasiQuotes `elem` exts ->
+        '[':'$':c:_ | isIdentStart c && QuasiQuotes `elem` exts ->
                         discard 2 >> lexQuasiQuote c
 
-        '[':c:s' | isLower c && QuasiQuotes `elem` exts && case dropWhile isIdent s' of { '|':_ -> True;_->False} ->
+        '[':c:s' | isIdentStart c && QuasiQuotes `elem` exts && case dropWhile isIdent s' of { '|':_ -> True;_->False} ->
                         discard 1 >> lexQuasiQuote c
                  | isUpper c && QuasiQuotes `elem` exts && case dropWhile isPossiblyQvar s' of { '|':_ -> True;_->False} ->
                         discard 1 >> lexQuasiQuote c
 
+        '|':'|':']':_ | TemplateHaskell `elem` exts -> do
+                        discard 3
+                        return THTCloseQuote
         '|':']':_ | TemplateHaskell `elem` exts -> do
                         discard 2
                         return THCloseQuote
 
-        '$':c:_ | isLower c && TemplateHaskell `elem` exts -> do
+        '$':c1:c2:_ | isIdentStart c1 && TemplateHaskell `elem` exts -> do
                         discard 1
                         id <- lexWhile isIdent
                         return $ THIdEscape id
-                | c == '(' && TemplateHaskell `elem` exts -> do
+                    | c1 == '(' && TemplateHaskell `elem` exts -> do
                         discard 2
                         return THParenEscape
+                    | c1 == '$' && isIdentStart c2 && TemplateHaskell `elem` exts -> do
+                        discard 2
+                        id <- lexWhile isIdent
+                        return $ THTIdEscape id
+                    | c1 == '$' && c2 == '(' && TemplateHaskell `elem` exts -> do
+                        discard 3
+                        return THTParenEscape
         -- end template haskell
 
         -- hsx
@@ -712,9 +774,9 @@
                         return XStdTagOpen
         -- end hsx
 
-        '(':'#':c:_ | UnboxedTuples `elem` exts && not (isHSymbol c) -> discard 2 >> return LeftHashParen
+        '(':'#':c:_ | unboxed exts && not (isHSymbol c) -> discard 2 >> return LeftHashParen
 
-        '#':')':_ | UnboxedTuples `elem` exts -> discard 2 >> return RightHashParen
+        '#':')':_   | unboxed exts -> discard 2 >> return RightHashParen
 
         -- pragmas
 
@@ -728,11 +790,28 @@
 
         ':':']':_ | ParallelArrays `elem` exts -> discard 2 >> return ParArrayRightSquare
 
+        -- Lexed seperately to deal with visible type applciation
+
+        '@':c:_ | TypeApplications `elem` exts
+                   -- Operator starting with an '@'
+                   && not (isOpSymbol c) -> do
+                                                lc <- getLastChar
+                                                if isIdent lc
+                                                  then discard 1 >> return At
+                                                  else discard 1 >> return TApp
+
+        '#':c:_ | OverloadedLabels `elem` exts
+                   && isIdentStart c -> do
+                                                  discard 1
+                                                  [ident] <- lexIdents
+                                                  return $ LabelVarId ident
+
+
         c:_ | isDigit c -> lexDecimalOrFloat
 
             | isUpper c -> lexConIdOrQual ""
 
-            | isLower c || c == '_' -> do
+            | isIdentStart c -> do
                     idents <- lexIdents
                     case idents of
                      [ident] -> case lookup ident (reserved_ids ++ special_varids) of
@@ -795,8 +874,8 @@
                         idents <- lexIdents
                         return $ ident : idents
                  '#':_ | MagicHash `elem` exts -> do
-                        discard 1
-                        return [ident ++ "#"]
+                        hashes <- lexWhile (== '#')
+                        return [ident ++ hashes]
                  _ -> return [ident]
 
             lexQuasiQuote :: Char -> Lex a Token
@@ -807,7 +886,7 @@
                 body <- lexQQBody
                 return $ THQuasiQuote (ident, body)
                   where lexQuoter
-                         | isLower c = lexWhile isIdent
+                         | isIdentStart c = lexWhile isIdent
                          | otherwise = do
                             qualThing <- lexConIdOrQual ""
                             case qualThing of
@@ -843,6 +922,9 @@
                           rest <- lexQQBody
                           return (str++rest)
 
+unboxed :: [KnownExtension] -> Bool
+unboxed exts = UnboxedSums `elem` exts || UnboxedTuples `elem` exts
+
 -- Underscores are used in some pragmas. Options pragmas are a special case
 -- with our representation: the thing after the underscore is a parameter.
 -- Strip off the parameters to option pragmas by hand here, everything else
@@ -884,17 +966,23 @@
              _ -> return SPECIALISE
 
      Just (OPTIONS opt) ->     -- see, I promised we'd mask out the 'undefined'
-            case fst opt of
-             Just opt' -> do
-                rest <- lexRawPragma
-                return $ OPTIONS (Just opt', rest)
-             Nothing -> do
-                            s <- getInput
-                            case s of
-                                x:_ | isSpace x -> do
-                                    rest <- lexRawPragma
-                                    return $ OPTIONS (Nothing, rest)
-                                _  -> fail "Malformed Options pragma"
+            -- We do not want to store necessary whitespace in the datatype
+            -- but if the pragma starts with a newline then we must keep
+            -- it to differentiate the two cases.
+            let dropIfSpace (' ':xs) = xs
+                dropIfSpace xs       = xs
+             in
+              case fst opt of
+                Just opt' -> do
+                  rest <- lexRawPragma
+                  return $ OPTIONS (Just opt', dropIfSpace rest)
+                Nothing -> do
+                  s <- getInput
+                  case s of
+                    x:_ | isSpace x -> do
+                      rest <- lexRawPragma
+                      return $ OPTIONS (Nothing, dropIfSpace rest)
+                    _  -> fail "Malformed Options pragma"
      Just RULES -> do -- Rules enable ScopedTypeVariables locally.
             addExtensionL ScopedTypeVariables
             return RULES
@@ -995,7 +1083,7 @@
         exts <- getExtensionsL
         case rest of
           '.':c:_
-             | isLower c || c == '_' -> do  -- qualified varid?
+             | isIdentStart c -> do  -- qualified varid?
                     discard 1
                     ident <- lexWhile isIdent
                     s <- getInput
@@ -1059,23 +1147,23 @@
 
 
 lexString :: Lex a Token
-lexString = loop ("","")
+lexString = loop [] []
     where
-    loop (s,raw) = do
+    loop !s !raw = do
         r <- getInput
         exts <- getExtensionsL
         case r of
             '\\':'&':_ -> do
                     discard 2
-                    loop (s, '&':'\\':raw)
+                    loop s ('&':'\\':raw)
             '\\':c:_ | isSpace c -> do
                         discard 1
                         wcs <- lexWhiteChars
                         matchChar '\\' "Illegal character in string gap"
-                        loop (s, '\\':reverse wcs ++ '\\':raw)
+                        loop s ('\\':revAppend wcs ('\\':raw))
                      | otherwise -> do
                         (ce, str) <- lexEscape
-                        loop (ce:s, reverse str ++ '\\':raw)
+                        loop (ce `seq` ce : s) (revAppend str ('\\':raw))
             '"':'#':_ | MagicHash `elem` exts -> do
                         discard 2
                         return (StringHash (reverse s, reverse raw))
@@ -1084,9 +1172,13 @@
                 return (StringTok (reverse s, reverse raw))
             c:_ | c /= '\n' -> do
                 discard 1
-                loop (c:s, c:raw)
+                loop (c:s) (c:raw)
             _ ->   fail "Improperly terminated string"
 
+    revAppend :: [a] -> [a] -> [a]
+    revAppend []     ys = ys
+    revAppend (x:xs) ys = revAppend xs (x:ys)
+
     lexWhiteChars :: Lex a String
     lexWhiteChars = do
         s <- getInput
@@ -1217,8 +1309,10 @@
 
 -- Stolen from Hugs's Prelude
 parseInteger :: Integer -> String -> Integer
-parseInteger radix ds =
-    foldl1 (\n d -> n * radix + d) (map (toInteger . digitToInt) ds)
+parseInteger radix = go 0
+  where
+    go !acc []     = acc
+    go !acc (d:ds) = go (acc * radix + toInteger (digitToInt d)) ds
 
 flagKW :: Token -> Lex a ()
 flagKW t =
@@ -1235,6 +1329,7 @@
 showToken :: Token -> String
 showToken t = case t of
   VarId s           -> s
+  LabelVarId s      -> '#':s
   QVarId (q,s)      -> q ++ '.':s
   IDupVarId s       -> '?':s
   ILinVarId s       -> '%':s
@@ -1281,22 +1376,29 @@
   LeftArrow         -> "<-"
   RightArrow        -> "->"
   At                -> "@"
+  TApp              -> "@"
   Tilde             -> "~"
   DoubleArrow       -> "=>"
   Minus             -> "-"
   Exclamation       -> "!"
   Star              -> "*"
-  LeftArrowTail     -> ">-"
-  RightArrowTail    -> "-<"
-  LeftDblArrowTail  -> ">>-"
-  RightDblArrowTail -> "-<<"
+  LeftArrowTail     -> "-<"
+  RightArrowTail    -> ">-"
+  LeftDblArrowTail  -> "-<<"
+  RightDblArrowTail -> ">>-"
+  OpenArrowBracket  -> "(|"
+  CloseArrowBracket -> "|)"
   THExpQuote        -> "[|"
+  THTExpQuote       -> "[||"
   THPatQuote        -> "[p|"
   THDecQuote        -> "[d|"
   THTypQuote        -> "[t|"
   THCloseQuote      -> "|]"
+  THTCloseQuote     -> "||]"
   THIdEscape s      -> '$':s
   THParenEscape     -> "$("
+  THTIdEscape s     -> "$$" ++ s
+  THTParenEscape    -> "$$("
   THVarQuote        -> "'"
   THTyQuote         -> "''"
   THQuasiQuote (n,q) -> "[$" ++ n ++ "|" ++ q ++ "]"
@@ -1325,6 +1427,7 @@
   GENERATED         -> "{-# GENERATED"
   CORE              -> "{-# CORE"
   UNPACK            -> "{-# UNPACK"
+  NOUNPACK          -> "{-# NOUNPACK"
   OPTIONS (mt,_)    -> "{-# OPTIONS" ++ maybe "" (':':) mt ++ " ..."
 --  CFILES  s         -> "{-# CFILES ..."
 --  INCLUDE s         -> "{-# INCLUDE ..."
@@ -1333,7 +1436,11 @@
   MINIMAL           -> "{-# MINIMAL"
   NO_OVERLAP        -> "{-# NO_OVERLAP"
   OVERLAP           -> "{-# OVERLAP"
+  OVERLAPPING       -> "{-# OVERLAPPING"
+  OVERLAPPABLE      -> "{-# OVERLAPPABLE"
+  OVERLAPS          -> "{-# OVERLAPS"
   INCOHERENT        -> "{-# INCOHERENT"
+  COMPLETE          -> "{-# COMPLETE"
   KW_As         -> "as"
   KW_By         -> "by"
   KW_Case       -> "case"
@@ -1379,6 +1486,12 @@
   KW_DotNet     -> "dotnet"
   KW_Jvm        -> "jvm"
   KW_Js         -> "js"
+  KW_JavaScript -> "javascript"
   KW_CApi       -> "capi"
+  KW_Role       -> "role"
+  KW_Pattern    -> "pattern"
+  KW_Stock      -> "stock"
+  KW_Anyclass   -> "anyclass"
+  KW_Via        -> "via"
 
   EOF           -> "EOF"
diff --git a/src/Language/Haskell/Exts/InternalParser.ly b/src/Language/Haskell/Exts/InternalParser.ly
--- a/src/Language/Haskell/Exts/InternalParser.ly
+++ b/src/Language/Haskell/Exts/InternalParser.ly
@@ -1,5 +1,7 @@
 > {
+> {-# LANGUAGE CPP #-}
 > {-# OPTIONS_HADDOCK hide #-}
+> 
 > -----------------------------------------------------------------------------
 > -- |
 > -- Module      :  Language.Haskell.Exts.Annotated.Parser
@@ -15,38 +17,34 @@
 > -----------------------------------------------------------------------------
 >
 > module Language.Haskell.Exts.InternalParser (
->               -- * General parsing
->               ParseMode(..), defaultParseMode, ParseResult(..), fromParseResult,
->               -- * Parsing of specific AST elements
->               -- ** Modules
->               parseModule, parseModuleWithMode, parseModuleWithComments,
->               -- ** Expressions
->               parseExp, parseExpWithMode, parseExpWithComments,
->               -- ** Statements
->               parseStmt, parseStmtWithMode, parseStmtWithComments,
->               -- ** Patterns
->               parsePat, parsePatWithMode, parsePatWithComments,
->               -- ** Declarations
->               parseDecl, parseDeclWithMode, parseDeclWithComments,
->               -- ** Types
->               parseType, parseTypeWithMode, parseTypeWithComments,
->               -- ** Multiple modules in one file
->               parseModules, parseModulesWithMode, parseModulesWithComments,
->               -- ** Option pragmas
->               getTopPragmas
+>               mparseModule,
+>               mparseExp,
+>               mparsePat,
+>               mparseDecl,
+>               mparseType,
+>               mparseStmt,
+>               mparseImportDecl,
+>               ngparseModulePragmas,
+>               ngparseModuleHeadAndImports,
+>               ngparsePragmasAndModuleHead,
+>               ngparsePragmasAndModuleName
 >               ) where
 >
-> import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Exp(..), Asst(..), XAttr(..), FieldUpdate(..) )
-> import Language.Haskell.Exts.Annotated.Syntax ( Type, Exp, Asst )
+> import Language.Haskell.Exts.Syntax hiding ( Type(..), Exp(..), Asst(..), XAttr(..), FieldUpdate(..) )
+> import Language.Haskell.Exts.Syntax ( Type, Exp, Asst )
 > import Language.Haskell.Exts.ParseMonad
 > import Language.Haskell.Exts.InternalLexer
 > import Language.Haskell.Exts.ParseUtils
-> import Language.Haskell.Exts.Annotated.Fixity
+> import Language.Haskell.Exts.Fixity
 > import Language.Haskell.Exts.SrcLoc
-> import Language.Haskell.Exts.Comments ( Comment )
 > import Language.Haskell.Exts.Extension
 
-> import Control.Monad ( liftM, (<=<) )
+> import Control.Monad ( liftM, (<=<), when )
+> import Control.Applicative ( (<$>) )
+> import Data.Maybe
+> #if MIN_VERSION_base(4,11,0)
+> import Prelude hiding ((<>))
+> #endif
 import Debug.Trace (trace)
 
 > }
@@ -97,18 +95,19 @@
         might be the start of the declaration with the activation being
         empty. Resolving with shift means the declaration cannot start with '['.
 
-1 for ambiguity in '{-# RULES "name" forall = ... #-}' 	[State 544]
-	since 'forall' is a valid variable name, we don't know whether
-	to treat a forall on the input as the beginning of a quantifier
-	or the beginning of the rule itself.  Resolving to shift means
-	it's always treated as a quantifier, hence the above is disallowed.
-	This saves explicitly defining a grammar for the rule lhs that
-	doesn't include 'forall'.
+1 for ambiguity in '{-# RULES "name" forall = ... #-}'  [State 544]
+        since 'forall' is a valid variable name, we don't know whether
+        to treat a forall on the input as the beginning of a quantifier
+        or the beginning of the rule itself.  Resolving to shift means
+        it's always treated as a quantifier, hence the above is disallowed.
+        This saves explicitly defining a grammar for the rule lhs that
+        doesn't include 'forall'.
 
 -----------------------------------------------------------------------------
 
 > %token
 >       VARID    { Loc _ (VarId _) }       -- 1
+>       LABELVARID { Loc _ (LabelVarId _) }
 >       QVARID   { Loc _ (QVarId _) }
 >       IDUPID   { Loc _ (IDupVarId _) }       -- duplicable implicit parameter ?x
 >       ILINID   { Loc _ (ILinVarId _) }       -- linear implicit parameter %x
@@ -118,7 +117,7 @@
 >       VARSYM   { Loc _ (VarSym _) }
 >       CONSYM   { Loc _ (ConSym _) }
 >       QVARSYM  { Loc _ (QVarSym _) } -- 10
->       QCONSYM  { Loc _ (QConSym _) }      
+>       QCONSYM  { Loc _ (QConSym _) }
 >       INT      { Loc _ (IntTok _) }
 >       RATIONAL { Loc _ (FloatTok _) }
 >       CHAR     { Loc _ (Character _) }
@@ -129,7 +128,7 @@
 >       PRIMFLOAT   { Loc _ (FloatTokHash _) }
 >       PRIMDOUBLE  { Loc _ (DoubleTokHash _) }
 >       PRIMCHAR    { Loc _ (CharacterHash _) } -- 20
->       PRIMSTRING  { Loc _ (StringHash _) }  
+>       PRIMSTRING  { Loc _ (StringHash _) }
 
 Symbols
 
@@ -155,17 +154,18 @@
 >       '..'    { Loc $$ DotDot }
 >       ':'     { Loc $$ Colon }
 >       '::'    { Loc $$ DoubleColon }      -- 40
->       '='     { Loc $$ Equals }           
+>       '='     { Loc $$ Equals }
 >       '\\'    { Loc $$ Backslash }
 >       '|'     { Loc $$ Bar }
 >       '<-'    { Loc $$ LeftArrow }
 >       '->'    { Loc $$ RightArrow }
 >       '@'     { Loc $$ At }
+>       TYPEAPP { Loc $$ TApp }
 >       '~'     { Loc $$ Tilde }
 >       '=>'    { Loc $$ DoubleArrow }
 >       '-'     { Loc $$ Minus }
 >       '!'     { Loc $$ Exclamation }  -- 50
->       '*'     { Loc $$ Star }           
+>       '*'     { Loc $$ Star }
 
 Arrows
 
@@ -173,22 +173,28 @@
 >       '>-'    { Loc $$ RightArrowTail }
 >       '-<<'   { Loc $$ LeftDblArrowTail }
 >       '>>-'   { Loc $$ RightDblArrowTail }
+>       '(|'    { Loc $$ OpenArrowBracket }
+>       '|)'    { Loc $$ CloseArrowBracket }
 
 Harp
 
->       '(|'    { Loc $$ RPGuardOpen }
->       '|)'    { Loc $$ RPGuardClose }
+>       '(/'    { Loc $$ RPGuardOpen }
+>       '/)'    { Loc $$ RPGuardClose }
 >       '@:'    { Loc $$ RPCAt }
 
 Template Haskell
 
 >       IDSPLICE        { Loc _ (THIdEscape _) }   -- $x
+>       TIDSPLICE       { Loc _ (THTIdEscape _) }  -- $$x
 >       '$('            { Loc $$ THParenEscape } -- 60
->       '[|'            { Loc $$ THExpQuote }     
+>       '$$('           { Loc $$ THTParenEscape }
+>       '[|'            { Loc $$ THExpQuote }
+>       '[||'           { Loc $$ THTExpQuote }
 >       '[p|'           { Loc $$ THPatQuote }
 >       '[t|'           { Loc $$ THTypQuote }
 >       '[d|'           { Loc $$ THDecQuote }
 >       '|]'            { Loc $$ THCloseQuote }
+>       '||]'           { Loc $$ THTCloseQuote }
 >       VARQUOTE        { Loc $$ THVarQuote }      -- 'x
 >       TYPQUOTE        { Loc $$ THTyQuote }       -- ''T
 >       QUASIQUOTE      { Loc _ (THQuasiQuote _) }
@@ -197,7 +203,7 @@
 
 >       PCDATA          { Loc _ (XPCDATA _) }
 >       '<'             { Loc $$ XStdTagOpen }   -- 70
->       '</'            { Loc $$ XCloseTagOpen }  
+>       '</'            { Loc $$ XCloseTagOpen }
 >       '<%'            { Loc $$ XCodeTagOpen }
 >       '<%>'           { Loc $$ XChildTagOpen }
 >       '>'             { Loc $$ XStdTagClose }
@@ -210,7 +216,7 @@
 
 >       'foreign'       { Loc $$ KW_Foreign }
 >       'export'        { Loc $$ KW_Export }    -- 80
->       'safe'          { Loc $$ KW_Safe }      
+>       'safe'          { Loc $$ KW_Safe }
 >       'unsafe'        { Loc $$ KW_Unsafe }
 >       'threadsafe'    { Loc $$ KW_Threadsafe }
 >       'interruptible' { Loc $$ KW_Interruptible }
@@ -220,7 +226,8 @@
 >       'dotnet'        { Loc $$ KW_DotNet }
 >       'jvm'           { Loc $$ KW_Jvm }
 >       'js'            { Loc $$ KW_Js }          -- 90
->       'capi'          { Loc $$ KW_CApi }      
+>       'javascript'    { Loc $$ KW_JavaScript }
+>       'capi'          { Loc $$ KW_CApi }
 
 Reserved Ids
 
@@ -256,6 +263,11 @@
 >       'using'         { Loc $$ KW_Using }    -- transform list comprehensions
 >       'where'         { Loc $$ KW_Where }
 >       'qualified'     { Loc $$ KW_Qualified }
+>       'role'          { Loc $$ KW_Role }
+>       'pattern'       { Loc $$ KW_Pattern }
+>       'stock'         { Loc $$ KW_Stock }    -- for DerivingStrategies extension
+>       'anyclass'      { Loc $$ KW_Anyclass } -- for DerivingStrategies extension
+>       'via'           { Loc $$ KW_Via }      -- for DerivingStrategies extension
 
 Pragmas
 
@@ -266,11 +278,12 @@
 >       '{-# SOURCE'            { Loc $$ SOURCE }
 >       '{-# RULES'             { Loc $$ RULES }
 >       '{-# CORE'              { Loc $$ CORE }         -- 130
->       '{-# SCC'               { Loc $$ SCC }       
+>       '{-# SCC'               { Loc $$ SCC }
 >       '{-# GENERATED'         { Loc $$ GENERATED }
 >       '{-# DEPRECATED'        { Loc $$ DEPRECATED }
 >       '{-# WARNING'           { Loc $$ WARNING }
 >       '{-# UNPACK'            { Loc $$ UNPACK }
+>       '{-# NOUNPACK'          { Loc $$ NOUNPACK }
 >       '{-# OPTIONS'           { Loc _ (OPTIONS _) }
        '{-# CFILES'            { Loc _ (CFILES  _) }
        '{-# INCLUDE'           { Loc _ (INCLUDE _) }
@@ -279,23 +292,33 @@
 >       '{-# MINIMAL'           { Loc $$ MINIMAL }
 >       '{-# NO_OVERLAP'        { Loc $$ NO_OVERLAP }
 >       '{-# OVERLAP'           { Loc $$ OVERLAP }
+>       '{-# OVERLAPS'          { Loc $$ OVERLAPS }
+>       '{-# OVERLAPPING'       { Loc $$ OVERLAPPING }
+>       '{-# OVERLAPPABLE'      { Loc $$ OVERLAPPABLE }
 >       '{-# INCOHERENT'        { Loc $$ INCOHERENT }
+>       '{-# COMPLETE'          { Loc $$ COMPLETE }
 >       '#-}'                   { Loc $$ PragmaEnd }      -- 139
 
+Utility
 
+>       NEVER                   { Loc $$@SrcSpan{srcSpanStartLine= -1} _ } -- never-matching terminal of type SrcSpan
+
 > %monad { P }
 > %lexer { lexer } { Loc _ EOF }
 > %error { parseError }
 > %name mparseModule page
 > %name mparseExp trueexp
 > %name mparsePat pat
-> %name mparseDecl topdecl
+> %name mparseDeclAux body
 > %name mparseType truectype
 > %name mparseStmt stmt
-> %name mparseModules modules
-> %partial mfindOptPragmas toppragmas
+> %name mparseImportDecl impdecl
+> %partial ngparseModulePragmas toppragmas
+> %partial ngparseModuleHeadAndImports moduletopimps
+> %partial ngparsePragmasAndModuleHead moduletophead
+> %partial ngparsePragmasAndModuleName moduletopname
 > %tokentype { Loc Token }
-> %expect 7
+> %expect 13
 > %%
 
 -----------------------------------------------------------------------------
@@ -334,7 +357,12 @@
 >           : open toppragmasaux close          { let (os,ss,ml) = $2 in (os,$1:ss++[$3],$1 <^^> $3) }
 
 > toppragmasaux :: { ([ModulePragma L],[S],Maybe L) }
->               : toppragma ';' toppragmasaux         { let (os,ss,ml) = $3 in ($1 : os, $2 : ss, Just $ ann $1 <++> nIS $2 <+?> ml) }
+>               : toppragma optsemis toppragmasaux      { let (os,ss,ml) = $3;
+>                                                              ss' = reverse $2 ++ ss;
+>                                                              l'  = case $2 of
+>                                                                     [] -> ann $1
+>                                                                     _  -> ann $1 <++> nIS (last $2);
+>                                                          in ($1 : os, ss', Just $ l'  <+?> ml) }
 >               | {- nothing -}                         { ([],[],Nothing) }
 
 > toppragma :: { ModulePragma L }
@@ -345,8 +373,8 @@
 
 
 > conids    :: { ([Name L],[S]) }
->          : conid ',' conids                  { ($1 : fst $3, $2 : snd $3) }
->          | conid                             { ([$1],[]) }
+>          : conids ',' conid                  { (fst $1 ++ [$3], snd $1 ++ [$2]) }
+>          | optsemis conid                    { ([$2],[]) }
 
 -----------------------------------------------------------------------------
 Module Header
@@ -367,8 +395,12 @@
 
 > body :: { ([ImportDecl L],[Decl L],[S],L) }
 >       : '{'  bodyaux '}'                      { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], $1 <^^> $3) }
->       | open bodyaux close                    { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], $1 <^^> $3) }
 
+Trailing optsemis in the next line is a workaround for #25. Having the optsemis
+here causes one more shift/reduce conflict.
+
+>       | open bodyaux close optsemis           { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], $1 <^^> $3) }
+
 > bodyaux :: { ([ImportDecl L],[Decl L],[S]) }
 >       : optsemis impdecls semis topdecls      { (reverse (fst $2), fst $4, reverse $1 ++ snd $2 ++ reverse $3 ++ snd $4) }
 >       | optsemis                topdecls      { ([], fst $2, reverse $1 ++ snd $2) }
@@ -402,15 +434,30 @@
 >       |  export                               { ([$1],[])  }
 
 > export :: { ExportSpec L }
->       :  qvar                                 { EVar (ann $1) (NoNamespace (ann $1)) $1 }
->       |  'type' qvar                          {% do { checkEnabled ExplicitNamespaces;
->                                                       return (EVar (nIS $1 <++> ann $2 <** [$1, srcInfoSpan (ann $2)]) (TypeNamespace (nIS $1 <** [$1])) $2) } }
->       |  qtyconorcls                          { EAbs (ann $1) $1 }
->       |  qtyconorcls '(' '..' ')'             { EThingAll  (ann $1 <++> nIS $4 <** [$2,$3,$4]) $1 }
->       |  qtyconorcls '(' ')'                  { EThingWith (ann $1 <++> nIS $3 <** [$2,$3])    $1 [] }
->       |  qtyconorcls '(' cnames ')'           { EThingWith (ann $1 <++> nIS $4 <** ($2:reverse (snd $3) ++ [$4])) $1 (reverse (fst $3)) }
+>       :  qvar                                 { EVar (ann $1) $1 }
+>       |  'type' qcname                          {% do { checkEnabled ExplicitNamespaces;
+>                                                       return (EAbs (nIS $1 <++> ann $2 <** [$1, srcInfoSpan (ann $2)]) (TypeNamespace (nIS $1 <** [$1])) $2) } }
+>       |  qtyconorcls                          { EAbs (ann $1) (NoNamespace (ann $1)) $1 }
+>       |  qtyconorcls '(' ')'                  { EThingWith (ann $1 <++> nIS $3 <** [$2,$3])    (NoWildcard noSrcSpan) $1 [] }
+>       |  qtyconorcls '(' export_names ')'     {% mkEThingWith (ann $1 <++> nIS $4 <** ($2:reverse (snd $3) ++ [$4])) $1 (reverse $ fst $3) }
 >       |  'module' modid                       { EModuleContents (nIS $1 <++> ann $2 <** [$1]) $2 }
+>       |  'pattern' qcon                       {%  do { checkEnabled PatternSynonyms;
+>                                                       return $ EAbs (nIS $1 <++> (ann $2) <** [$1])
+>                                                                  (PatternNamespace (nIS $1)) $2 }}
 
+> export_names :: { ([Either S (CName L)],[S]) }
+>       :  export_names ',' cname_w_wildcard          { ($3 : fst $1, $2 : snd $1) }
+>       |  cname_w_wildcard                     { ([$1],[])  }
+
+> cname_w_wildcard :: { Either S (CName L) }
+>       :  '..'                                 { Left $1 }
+>       |  cname                                { Right $1 }
+
+>
+> qcname :: { QName L }
+>        : qvar                                 { $1 }
+>        | qcon                                 { $1 }
+
 -----------------------------------------------------------------------------
 Import Declarations
 
@@ -419,10 +466,10 @@
 >       | impdecl                               { ([$1],[]) }
 
 > impdecl :: { ImportDecl L }
->       : 'import' optsrc optsafe optqualified maybepkg modid maybeas maybeimpspec
->                               { let { (mmn,ss,ml) = $7 ;
->                                       l = nIS $1 <++> ann $6 <+?> ml <+?> (fmap ann) $8 <** ($1:snd $2 ++ snd $3 ++ snd $4 ++ snd $5 ++ ss)}
->                                  in ImportDecl l $6 (fst $4) (fst $2) (fst $3) (fst $5) mmn $8 }
+>       : 'import' optsrc optsafe optqualified maybepkg modid optqualified_post maybeas maybeimpspec
+>                               { let { (mmn,ss,ml) = $8 ;
+>                                       l = nIS $1 <++> ann $6 <+?> ml <+?> (fmap ann) $9 <** ($1:snd $2 ++ snd $3 ++ snd $4 ++ snd $5 ++ snd $7 ++ ss)}
+>                                  in ImportDecl l $6 (fst $4 || fst $7) (fst $2) (fst $3) (fst $5) mmn $9 }
 
 > optsrc :: { (Bool,[S]) }
 >       : '{-# SOURCE' '#-}'                    { (True,[$1,$2]) }
@@ -437,6 +484,11 @@
 >       : 'qualified'                           { (True,[$1]) }
 >       | {- empty -}                           { (False, []) }
 
+> optqualified_post :: { (Bool,[S]) }
+>       : 'qualified'                           {% do { checkEnabled ImportQualifiedPost;
+>                                                       return (True,[$1]) } }
+>       | {- empty -}                           { (False, []) }
+
 Requires the PackageImports extension enabled.
 > maybepkg :: { (Maybe String,[S]) }
 >       : STRING                                {% do { checkEnabled PackageImports ;
@@ -469,16 +521,18 @@
 >       |  importspec                           { ([$1],[])  }
 
 > importspec :: { ImportSpec L }
->       :  var                                  { IVar (ann $1) (NoNamespace (ann $1)) $1 }
+>       :  var                                  { IVar (ann $1) $1 }
 >       |  'type' var                           {% do { checkEnabled ExplicitNamespaces;
->                                                       return (IVar (nIS $1 <++> ann $2 <** [$1, srcInfoSpan (ann $2)]) (TypeNamespace (nIS $1 <** [$1])) $2) } }
->       |  tyconorcls                           { IAbs (ann $1) $1 }
+>                                                       return (IAbs (nIS $1 <++> ann $2 <** [$1, srcInfoSpan (ann $2)]) (TypeNamespace (nIS $1 <** [$1])) $2) } }
+>       |  'pattern' con                        {% do { checkEnabled PatternSynonyms;
+>                                                       return (IAbs (nIS $1 <++> ann $2 <** [$1, srcInfoSpan (ann $2)]) (PatternNamespace (nIS $1 <** [$1])) $2) } }
+>       |  tyconorcls                           { IAbs (ann $1) (NoNamespace (ann $1)) $1 }
 >       |  tyconorcls '(' '..' ')'              { IThingAll  (ann $1 <++> nIS $4 <** [$2,$3,$4]) $1 }
 >       |  tyconorcls '(' ')'                   { IThingWith (ann $1 <++> nIS $3 <** [$2,$3])    $1 [] }
->       |  tyconorcls '(' cnames ')'            { IThingWith (ann $1 <++> nIS $4 <** ($2:reverse (snd $3) ++ [$4])) $1 (reverse (fst $3)) }
+>       |  tyconorcls '(' import_names ')'            { IThingWith (ann $1 <++> nIS $4 <** ($2:reverse (snd $3) ++ [$4])) $1 (reverse (fst $3)) }
 
-> cnames :: { ([CName L],[S]) }
->       :  cnames ',' cname                     { ($3 : fst $1, $2 : snd $1) }
+> import_names :: { ([CName L],[S]) }
+>       :  import_names ',' cname               { ($3 : fst $1, $2 : snd $1) }
 >       |  cname                                { ([$1],[])  }
 
 > cname :: { CName L }
@@ -505,6 +559,20 @@
 >       : ops ',' op                            { let (ops,ss,l) = $1 in ($3 : ops, $2 : ss, l <++> ann $3) }
 >       | op                                    { ([$1],[],ann $1) }
 
+
+> opt_injectivity_info :: { Maybe (InjectivityInfo L) }
+>        : {- empty -}                  { Nothing }
+>        | injectivity_info             { Just $1 }
+
+> injectivity_info :: { InjectivityInfo L }
+>        : '|' tyvarid '->' inj_varids
+>              { InjectivityInfo (nIS $1 <++> ann (last $4) <** [$1,$3]) $2 (reverse $4) }
+>
+>
+> inj_varids :: { [Name L] }
+>        : inj_varids tyvarid  { $2 : $1 }
+>        | tyvarid             { [$1]     }
+
 -----------------------------------------------------------------------------
 Top-Level Declarations
 
@@ -519,19 +587,20 @@
 >       | topdecl                       { ([$1],[]) }
 
 > topdecl :: { Decl L }
->       : 'type' dtype '=' truectype
+>       : role_annot                    {% checkEnabled RoleAnnotations >> return $1 }
+>       | 'type' dtype '=' truectype
 >                {% do { dh <- checkSimpleType $2;
 >                        let {l = nIS $1 <++> ann $4 <** [$1,$3]};
 >                        return (TypeDecl l dh $4) } }
 
 Requires the TypeFamilies extension enabled, but the lexer will handle
 that through the 'family' keyword.
->       | 'type' 'family' type optkind where_type_family
+>       | 'type' 'family' type opt_tyfam_kind_sig opt_injectivity_info where_type_family
 >                {% do { dh <- checkSimpleType $3;
->                        let {l = nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4) <** ($1:$2:snd $4)};
->                        case $5 of {
->                          Nothing    -> return (TypeFamDecl l dh (fst $4));
->                          Just (x,a) -> return (ClosedTypeFamDecl (l <** [a]) dh (fst $4) x); }}}
+>                        let {l = nIS $1 <++> ann $3 <** [$1,$2]};
+>                        case $6 of {
+>                          Nothing    -> return (TypeFamDecl l dh $4 $5);
+>                          Just (x,a) -> return (ClosedTypeFamDecl (l <** [a]) dh $4 $5 x); }}}
 
 Here there is no special keyword so we must do the check.
 >       | 'type' 'instance' truedtype '=' truectype
@@ -539,46 +608,48 @@
 >                        checkEnabled TypeFamilies ;
 >                        let {l = nIS $1 <++> ann $5 <** [$1,$2,$4]};
 >                        return (TypeInsDecl l $3 $5) } }
->       | data_or_newtype ctype constrs0 deriving
+>       | data_or_newtype ctype constrs0 maybe_derivings
 >                {% do { (cs,dh) <- checkDataHeader $2;
 >                        let { (qds,ss,minf) = $3;
->                              l = $1 <> $2 <+?> minf <+?> fmap ann $4 <** ss};
+>                              l = $1 <> $2 <+?> minf <+?> fmap ann (listToMaybe $4) <** ss};
 >                        checkDataOrNew $1 qds;
->                        return (DataDecl l $1 cs dh (reverse qds) $4) } }
+>                        return (DataDecl l $1 cs dh (reverse qds) (reverse $4)) } }
 
 Requires the GADTs extension enabled, handled in gadtlist.
->       | data_or_newtype ctype optkind gadtlist deriving
+>       | data_or_newtype ctype optkind gadtlist maybe_derivings
 >                {% do { (cs,dh) <- checkDataHeader $2;
 >                        let { (gs,ss,minf) = $4;
->                              l = ann $1 <+?> minf <+?> fmap ann $5 <** (snd $3 ++ ss)};
+>                              derivs' = reverse $5;
+>                              l = ann $1 <+?> minf <+?> fmap ann (listToMaybe $5) <** (snd $3 ++ ss)};
 >                        checkDataOrNewG $1 gs;
 >                        case (gs, fst $3) of
->                         ([], Nothing) -> return (DataDecl l $1 cs dh [] $5)
->                         _ -> checkEnabled GADTs >> return (GDataDecl l $1 cs dh (fst $3) (reverse gs) $5) } }
+>                         ([], Nothing) -> return (DataDecl l $1 cs dh [] derivs')
+>                         _ -> checkEnabled GADTs >> return (GDataDecl l $1 cs dh (fst $3) (reverse gs) derivs') } }
 
 Same as above, lexer will handle it through the 'family' keyword.
->       | 'data' 'family' ctype optkind
+>       | 'data' 'family' ctype opt_datafam_kind_sig
 >                {% do { (cs,dh) <- checkDataHeader $3;
->                        let {l = nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4) <** ($1:$2:snd $4)};
->                        return (DataFamDecl l cs dh (fst $4)) } }
+>                        let {l = nIS $1 <++> ann $3 <+?> (fmap ann) $4 <** [$1,$2]};
+>                        return (DataFamDecl l cs dh $4) } }
 
 Here we must check for TypeFamilies.
->       | data_or_newtype 'instance' truectype constrs0 deriving
+>       | data_or_newtype 'instance' truectype constrs0 maybe_derivings
 >                {% do { -- (cs,c,t) <- checkDataHeader $4;
 >                        checkEnabled TypeFamilies ;
 >                        let { (qds,ss,minf) = $4 ;
->                              l = $1 <> $3 <+?> minf <+?> fmap ann $5 <** $2:ss };
+>                              l = $1 <> $3 <+?> minf <+?> fmap ann (listToMaybe $5) <** $2:ss };
 >                        checkDataOrNew $1 qds;
->                        return (DataInsDecl l $1 $3 (reverse qds) $5) } }
+>                        return (DataInsDecl l $1 $3 (reverse qds) (reverse $5)) } }
 
 This style requires both TypeFamilies and GADTs, the latter is handled in gadtlist.
->       | data_or_newtype 'instance' truectype optkind gadtlist deriving
+>       | data_or_newtype 'instance' truectype optkind gadtlist maybe_derivings
 >                {% do { -- (cs,c,t) <- checkDataHeader $4;
 >                        checkEnabled TypeFamilies ;
 >                        let {(gs,ss,minf) = $5;
->                             l = ann $1 <+?> minf <+?> fmap ann $6 <** ($2:snd $4 ++ ss)};
+>                             derivs' = reverse $6;
+>                             l = ann $1 <+?> minf <+?> fmap ann (listToMaybe derivs') <** ($2:snd $4 ++ ss)};
 >                        checkDataOrNewG $1 gs;
->                        return (GDataInsDecl l $1 $3 (fst $4) (reverse gs) $6) } }
+>                        return (GDataInsDecl l $1 $3 (fst $4) (reverse gs) derivs') } }
 >       | 'class' ctype fds optcbody
 >                {% do { (cs,dh) <- checkClassHeader $2;
 >                        let {(fds,ss1,minf1) = $3;(mcs,ss2,minf2) = $4} ;
@@ -590,11 +661,11 @@
 >                        return (InstDecl (nIS $1 <++> ann $3 <+?> minf <** ($1:ss)) $2 ih mis) } }
 
 Requires the StandaloneDeriving extension enabled.
->       | 'deriving' 'instance' optoverlap ctype
+>       | 'deriving' deriv_standalone_strategy 'instance' optoverlap ctype
 >                {% do { checkEnabled StandaloneDeriving ;
->                        ih <- checkInstHeader $4;
->                        let {l = nIS $1 <++> ann $4 <** [$1,$2]};
->                        return (DerivDecl l $3 ih) } }
+>                        ih <- checkInstHeader $5;
+>                        let {l = nIS $1 <++> ann $5 <** [$1,$3]};
+>                        return (DerivDecl l $2 $4 ih) } }
 >       | 'default' '(' typelist ')'
 >                { DefaultDecl ($1 <^^> $4 <** ($1:$2 : snd $3 ++ [$4])) (fst $3) }
 
@@ -603,10 +674,11 @@
 CHANGE: Arbitrary top-level expressions are considered implicit splices
 >       | exp0             {% do
 >               checkToplevel $1
->               checkExpr $1 >>= \e -> return (SpliceDecl (ann e) e) 
+>               checkExpr $1 >>= \e -> return (SpliceDecl (ann e) e)
 >                  }
 
        | '$(' trueexp ')'  { let l = $1 <^^> $3 <** [$1,$3] in SpliceDecl l $ ParenSplice l $2 }
+       | '$$(' trueexp ')' { let l = $1 <^^> $3 <** [$1,$3] in TSpliceDecl l $ TParenSplice l $2 }
 
 These require the ForeignFunctionInterface extension, handled by the
 lexer through the 'foreign' (and 'export') keyword.
@@ -619,10 +691,57 @@
 >       | '{-# DEPRECATED' warndeprs  '#-}'     { DeprPragmaDecl ($1 <^^> $3 <** ($1:snd $2++[$3])) $ reverse (fst $2) }
 >       | '{-# WARNING'    warndeprs  '#-}'     { WarnPragmaDecl ($1 <^^> $3 <** ($1:snd $2++[$3])) $ reverse (fst $2) }
 >       | '{-# ANN'        annotation '#-}'     { AnnPragma      ($1 <^^> $3 <** [$1,$3]) $2 }
+>       | '{-# COMPLETE' con_list opt_tyconsig '#-}'
+>           { let com = maybe [] ((:[]) . fst) $3; ts = fmap snd $3 in
+> (CompletePragma ($1 <^^> $4 <** ([$1] ++ fst $2 ++ com ++ [$4])) (snd $2) ts) }
 >       | decl          { $1 }
 
+> -- Family result/return kind signatures
+>
+> opt_datafam_kind_sig :: { Maybe (ResultSig L) }
+>        :               { Nothing     }
+>        | '::' kind     { (Just $ KindSig (nIS $1 <++> ann $2 <** [$1]) $2) }
+>
+> opt_tyfam_kind_sig :: { Maybe (ResultSig L) }
+>        :              { Nothing       }
+>        | '::' kind    { (Just $ KindSig  (nIS $1 <++> ann $2 <** [$1]) $2) }
+>        | '='  ktyvar  { (Just $ TyVarSig (nIS $1 <++> ann $2 <** [$1]) $2) }
+>
+> opt_at_kind_inj_sig :: { (Maybe (ResultSig L), Maybe (InjectivityInfo L))}
+>        :            { (Nothing, Nothing) }
+>        | '::' kind  { (Just (KindSig (nIS $1 <++> ann $2 <** [$1]) $2), Nothing) }
+>        | '='  ktyvar injectivity_info
+>                { (Just (TyVarSig (nIS $1 <++> ann $2 <** [$1]) $2), Just $3) }
+
+> opt_at_kind_inj_sig2 :: { (Maybe (ResultSig L), Maybe (S, Type L), Maybe (InjectivityInfo L))}
+>        :            { (Nothing, Nothing, Nothing) }
+>        | '::' kind  { (Just (KindSig (nIS $1 <++> ann $2 <** [$1]) $2), Nothing, Nothing) }
+>        | '='  truectype opt_injectivity_info { (Nothing, Just ($1, $2), $3) }
+
+
+Role annotations
+
+> role_annot :: { Decl L }
+> role_annot : 'type' 'role' otycon roles
+>                {% mkRoleAnnotDecl $1 $2 $3 (reverse $4)  }
+
+-- Reversed!
+> roles :: { [(Maybe String, L)] }
+> roles : {- empty -}      { [] }
+>       | roles role       { $2 : $1 }
+
+> -- read it in as a varid for better error messages
+> role :: { (Maybe String, L) }
+> role : VARID             { let (VarId v) = unLoc $1 in (Just v, nIS $ loc $1) }
+>      | '_'               { (Nothing, nIS $1) }
+
+
+
 > optoverlap :: { Maybe (Overlap L) }
->  : '{-# OVERLAP'    '#-}'    { Just (Overlap (nIS $1)) }
+>  : '{-# OVERLAP'      '#-}'    { Just (Overlap (nIS $1)) }
+>  | '{-# OVERLAPS'     '#-}'    { Just (Overlaps (nIS $1)) }
+>  | '{-# OVERLAPPING'  '#-}'    { Just (Overlapping (nIS $1)) }
+>  | '{-# OVERLAPPABLE' '#-}'    { Just (Overlappable (nIS $1)) }
 >  | '{-# INCOHERENT' '#-}'    { Just (Incoherent (nIS $1)) }
 >  | '{-# NO_OVERLAP' '#-}'    { Just (NoOverlap (nIS $1))  }
 >  | {- empty -}               { Nothing }
@@ -640,9 +759,10 @@
 >         : ty_fam_inst_eqns ';' ty_fam_inst_eqn   { $1 ++ [$3] }
 >         | ty_fam_inst_eqns ';'                   { $1 }
 >         | ty_fam_inst_eqn                        { [$1] }
+>         |                                        { [] }
 
 > ty_fam_inst_eqn :: { TypeEqn L }
->         : truedtype '=' truectype
+>         : truectype '=' truectype
 >                 {% do { checkEnabled TypeFamilies ;
 >                         return (TypeEqn (ann $1 <++> ann $3 <** [$2]) $1 $3) } }
 
@@ -668,6 +788,8 @@
 >       : signdecl                      { $1 }
 >       | fixdecl                       { $1 }
 >       | valdef                        { $1 }
+>       | pat_syn                       { $1 }
+>       | pattern_synonym_sig           { $1 }
 
 > decllist :: { Binds L }
 >       : '{'  decls '}'                { BDecls ($1 <^^> $3 <** ($1:snd $2++[$3])) (fst $2) }
@@ -688,7 +810,7 @@
 > specinldecl :: { Decl L }
 >       : '{-# INLINE' activation qvar '#-}'             { let Loc l (INLINE s) = $1 in InlineSig (l <^^> $4 <** [l,$4]) s $2 $3 }
 >       | '{-# INLINE CONLIKE' activation qvar '#-}'     { InlineConlikeSig ($1 <^^> $4 <** [$1,$4]) $2 $3 }
->       | '{-# SPECIALISE' activation qvar '::' sigtypes '#-}'      
+>       | '{-# SPECIALISE' activation qvar '::' sigtypes '#-}'
 >             { SpecSig ($1 <^^> $6 <** ($1: $4 : snd $5 ++ [$6])) $2 $3 (fst $5) }
 >       | '{-# SPECIALISE INLINE' activation qvar '::' sigtypes '#-}'
 >             { let Loc l (SPECIALISE_INLINE s) = $1
@@ -754,13 +876,14 @@
 so no need to check for extensions.
 
 > callconv :: { CallConv L }
->          : 'stdcall'                  { StdCall   (nIS $1) }
->          | 'ccall'                    { CCall     (nIS $1) }
->          | 'cplusplus'                { CPlusPlus (nIS $1) }
->          | 'dotnet'                   { DotNet    (nIS $1) }
->          | 'jvm'                      { Jvm       (nIS $1) }
->          | 'js'                       { Js        (nIS $1) }
->          | 'capi'                     { CApi      (nIS $1) }
+>          : 'stdcall'                  { StdCall    (nIS $1) }
+>          | 'ccall'                    { CCall      (nIS $1) }
+>          | 'cplusplus'                { CPlusPlus  (nIS $1) }
+>          | 'dotnet'                   { DotNet     (nIS $1) }
+>          | 'jvm'                      { Jvm        (nIS $1) }
+>          | 'js'                       { Js         (nIS $1) }
+>          | 'javascript'               { JavaScript (nIS $1) }
+>          | 'capi'                     { CApi       (nIS $1) }
 
 
 > safety :: { Maybe (Safety L) }
@@ -836,82 +959,98 @@
 >       : dtype                         {% checkType $1 }
 
 > dtype :: { PType L }
->       : btype                         { $1 }
->       | btype qtyconop dtype          { TyInfix ($1 <> $3) $1 $2 $3 }
->       | btype qtyvarop dtype          { TyInfix ($1 <> $3) $1 $2 $3 } -- FIXME
->       | btype '->' ctype              { TyFun ($1 <> $3 <** [$2]) $1 $3 }
->       | btype '~' btype               {% do { checkEnabledOneOf [TypeFamilies, GADTs] ;
->                                               let {l = $1 <> $3 <** [$2]};
->                                               return $ TyPred l $ EqualP l $1 $3 } }
+>       : dtype_('*',NEVER)              { $1 }
 
+> dtype_(ostar,kstar) :: { PType L }
+>       : btype_(ostar,kstar)                                           { splitTilde $1 }
+>       | btype_(ostar,kstar) qtyconop dtype_(ostar,kstar)              { TyInfix ($1 <> $3) $1 $2 $3 }
+>       | btype_(ostar,kstar) qtyvarop_(ostar) dtype_(ostar,kstar)      { TyInfix ($1 <> $3) $1 (UnpromotedName (ann $2) $2) $3 } -- FIXME
+>       | btype_(ostar,kstar) '->' ctype_(ostar,kstar)                  { TyFun ($1 <> $3 <** [$2]) (splitTilde $1) $3 }
+       | btype_(ostar,kstar) '~' btype_(ostar,kstar)                    {% do { checkEnabledOneOf [TypeFamilies, GADTs] ;
+                                                                                let {l = $1 <> $3 <** [$2]};
+                                                                                return $ TyPred l $ EqualP l $1 $3 } }
+
 Implicit parameters can occur in normal types, as well as in contexts.
 
 > truetype :: { Type L }
 >       : type                          {% checkType $1 }
 
 > type :: { PType L }
->       : ivar '::' dtype               { let l = ($1 <> $3 <** [$2]) in TyPred l $ IParam l $1 $3 }
->       | dtype                         { $1 }
+>       : type_('*',NEVER)              { $1 }
 
+> type_(ostar,kstar) :: { PType L }
+>       : ivar '::' dtype_(ostar,kstar) { let l = ($1 <> $3 <** [$2]) in TyPred l $ IParam l $1 $3 }
+>       | dtype_(ostar,kstar)           { $1 }
+
 > truebtype :: { Type L }
->       : btype                         {% checkType $1 }
+>       : btype                         {% checkType (splitTilde $1) }
+> trueatype :: { Type L }
+>       : atype                         {% checkType $1 }
 
 > btype :: { PType L }
->       : btype atype                   { TyApp ($1 <> $2) $1 $2 }
->       | atype                         { $1 }
+>       : btype_('*',NEVER)             { $1 }
 
+> btype_(ostar,kstar) :: { PType L }
+>       : btype_(ostar,kstar) atype_(ostar,kstar) { TyApp ($1 <> $2) $1 $2 }
+>       | atype_(ostar,kstar)           { $1 }
+
 UnboxedTuples requires the extension, but that will be handled through
 the (# and #) lexemes. Kinds will be handled at the kind rule.
 
 > atype :: { PType L }
->       : gtycon                        { TyCon   (ann $1) $1 }
->       | tyvar                         { TyVar   (ann $1) $1 }
->       | strict_mark atype             { let (bangOrPack, locs) = $1
->                                           in let annot = if bangOrPack then (BangedTy (nIS (last locs) <** locs)) else UnpackedTy (nIS (head locs) <++> nIS (last locs) <** locs)
->                                            in bangType (nIS (head locs) <++> ann $2) annot $2 }
->       | '(' types ')'                 { TyTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) Boxed   (reverse (fst $2)) }
->       | '(#' types1 '#)'              { TyTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) Unboxed (reverse (fst $2)) }
->       | '[' type ']'                  { TyList  ($1 <^^> $3 <** [$1,$3]) $2 }
->       | '[:' type ':]'                { TyParArray  ($1 <^^> $3 <** [$1,$3]) $2 }
->       | '(' ctype ')'                 { TyParen ($1 <^^> $3 <** [$1,$3]) $2 }
->       | '(' ctype '::' kind ')'       { TyKind  ($1 <^^> $5 <** [$1,$3,$5]) $2 $4 }
+>       : atype_('*',NEVER)             { $1 }
+
+> atype_(ostar,kstar) :: { PType L }
+>       : kstar                         { TyStar  (nIS $1) }
+>       | gtycon_(ostar)                { TyCon   (ann $1) $1 }
+>       | tyvar                         {% checkTyVar $1 }
+>       | strict_mark atype             { let (mstrict, mupack) = $1
+>                                         in bangType mstrict mupack $2 }
+>       | '(' types_(ostar,kstar) ')'                   { TyTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) Boxed   (reverse (fst $2)) }
+>       | '(#' types_bars2(ostar,kstar) '#)'            { TyUnboxedSum ($1 <^^> $3 <** ($1: reverse ($3: snd $2))) (reverse (fst $2))  }
+>       | '(#' types1_(ostar,kstar) '#)'                { TyTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) Unboxed (reverse (fst $2)) }
+>       | '[' type_(ostar,kstar) ']'                    { TyList  ($1 <^^> $3 <** [$1,$3]) $2 }
+>       | '[:' type_(ostar,kstar) ':]'                  { TyParArray  ($1 <^^> $3 <** [$1,$3]) $2 }
+>       | '(' ctype_(ostar,kstar) ')'                   { TyParen ($1 <^^> $3 <** [$1,$3]) $2 }
+>       | '(' ctype_(ostar,kstar) '::' kind ')'         { TyKind  ($1 <^^> $5 <** [$1,$3,$5]) $2 $4 }
 >       | '$(' trueexp ')'              { let l = ($1 <^^> $3 <** [$1,$3]) in TySplice l $ ParenSplice l $2 }
+>       | '$$(' trueexp ')'             { let l = ($1 <^^> $3 <** [$1,$3]) in TySplice l $ TParenSplice l $2 }
 >       | IDSPLICE                      { let Loc l (THIdEscape s) = $1 in TySplice (nIS l) $ IdSplice (nIS l) s }
->       | ptype                         { % checkEnabled DataKinds >> return (TyPromoted (ann $1) $1) }
+>       | TIDSPLICE                     { let Loc l (THTIdEscape s) = $1 in TySplice (nIS l) $ TIdSplice (nIS l) s }
+>       | '_'                           { TyWildCard (nIS $1) Nothing }
+>       | QUASIQUOTE                    { let Loc l (THQuasiQuote (n,q)) = $1 in TyQuasiQuote (nIS l) n q }
+>       | ptype_(ostar,kstar)           { % checkEnabled DataKinds >> return (TyPromoted (ann $1) $1) }
 
-> ptype :: { Promoted L }
->       : VARQUOTE '[' ptypes1 ']'      { PromotedList  ($1 <^^> $4 <** ($1: reverse($4:snd $3))) True  (reverse (fst $3)) }
->       | VARQUOTE '['         ']'      { PromotedList  ($1 <^^> $3 <** [$1, $3])                 True  []                 }
->       |          '[' ptypes  ']'      { PromotedList  ($1 <^^> $3 <** ($1: reverse($3:snd $2))) False (reverse (fst $2)) }
->       | VARQUOTE '(' ptypes1 ')'      { PromotedTuple ($1 <^^> $4 <** ($1: reverse($4:snd $3)))       (reverse (fst $3)) }
->       | VARQUOTE '('         ')'      { PromotedUnit  ($1 <^^> $3 ) }
->       | VARQUOTE gconsym              { PromotedCon ((noInfoSpan $1 <++> ann $2) <** [$1]) True  $2 }
->       | VARQUOTE qtyconorcls          { PromotedCon ((noInfoSpan $1 <++> ann $2) <** [$1]) True  $2 }
+> ptype_(ostar,kstar) :: { Promoted L }
+>       : VARQUOTE gcon_nolist                  {% fmap (PromotedCon (nIS $1 <++> ann $2  <** [$1]) True) (pexprToQName $2) }
+>       | VARQUOTE '[' types1_(ostar,kstar) ']' {% PromotedList  ($1 <^^> $4 <** ($1:reverse($4:snd $3))) True . reverse <\$> mapM checkType (fst $3) }
+>       |          '[' types_(ostar,kstar)  ']' {% PromotedList  ($1 <^^> $3 <** ($1:reverse($3:snd $2))) False . reverse <\$> mapM checkType (fst $2) }
+>       | VARQUOTE '[' ']'              { PromotedList  ($1 <^^> $3 <** [$1, $3]) True [] }
+       | '[' ']'                       {% PromotedList  ($1 <^^> $2 <** [$1, $2]) False [] }
+>       | VARQUOTE '(' types1 ')'       {% PromotedTuple ($1 <^^> $4 <** ($1:reverse($4:snd $3))) . reverse <\$> mapM checkType (fst $3) }
 >       | INT                           { let Loc l (IntTok  (i,raw)) = $1 in PromotedInteger (nIS l) i raw }
 >       | STRING                        { let Loc l (StringTok (s,raw)) = $1 in PromotedString (nIS l) s raw }
 
-> strict_mark :: { (Bool, [S]) }
->        : '!'                           { (True, [$1]) }
->        | '{-# UNPACK' '#-}' '!'        { (False, [$1,$2,$3]) }
 
-Leading quotes can be left off of promoted types when they make up another promoted
-type...
-
-> ptype1 :: { Promoted L }
->       : ptype                         { $1 }
->       | qtyconorcls                   { PromotedCon (ann $1) False $1 }
-
+> strict_mark :: { (Maybe (L -> BangType L,S), Maybe (Unpackedness L)) }
+>        : strictness              { (Just $1, Nothing) }
+>        | unpackedness            { (Nothing, Just $1) }
+>        | unpackedness strictness { (Just $2, Just $1) }
 
-> ptypes :: { ([Promoted L],[S]) }
->        : ptypes1 ',' ptype1           { ($3 : fst $1, $2 : snd $1)  }
+> strictness :: { (L -> BangType L, S) }
+>        : '!'                           { (BangedTy, $1) }
+>        | '~'                           { (LazyTy, $1) }
 
-> ptypes1 :: { ([Promoted L],[S]) }
->       : ptype1                        { ([$1],[]) }
->       | ptypes1 ',' ptype1            { ($3 : fst $1, $2 : snd $1) }
+> unpackedness :: { Unpackedness L }
+>        : '{-# UNPACK' '#-}'           { (Unpack ((nIS $1 <++> nIS $2) <** [$1,$2])) }
+>        | '{-# NOUNPACK' '#-}'         { (NoUnpack ((nIS $1 <++> nIS $2) <** [$1,$2])) }
 
 
 > gtycon :: { QName L }
->       : otycon                        { $1 }
+>       : gtycon_('*')                     { $1 }
+
+> gtycon_(ostar) :: { QName L }
+>       : otycon_(ostar)                     { $1 }
 >       | '(' ')'                       { unit_tycon_name              ($1 <^^> $2 <** [$1,$2]) }
 >       | '(' '->' ')'                  { fun_tycon_name               ($1 <^^> $3 <** [$1,$2,$3]) }
 >       | '[' ']'                       { list_tycon_name              ($1 <^^> $2 <** [$1,$2]) }
@@ -920,14 +1059,18 @@
 >       | '(#' commas '#)'              { tuple_tycon_name             ($1 <^^> $3 <** ($1:reverse $2 ++ [$3])) Unboxed (length $2) }
 
 > otycon :: { QName L }
+>       : otycon_('*')                     { $1 }
+
+> otycon_(ostar) :: { QName L }
 >       : qconid                        { $1 }
 >       | '(' gconsym ')'               { updateQNameLoc ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
->       | '(' qvarsym ')'               { updateQNameLoc ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
+>       | '(' qvarsym_(ostar) ')'       { updateQNameLoc ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
 
 These are for infix types
 
-> qtyconop :: { QName L }
->       : qconop                        { $1 }
+> qtyconop :: { MaybePromotedName L }
+>       : qconop                        { UnpromotedName (ann $1) $1 }
+>       | VARQUOTE gconsym              { PromotedName (nIS $1 <++> ann $2 <** [$1]) $2 }
 
 
 (Slightly edited) Comment from GHC's hsparser.y:
@@ -947,25 +1090,38 @@
 >       : ctype                         {% checkType $1 }
 
 > ctype :: { PType L }
->       : 'forall' ktyvars '.' ctype    { mkTyForall (nIS $1 <++> ann $4 <** [$1,$3]) (Just (reverse (fst $2))) Nothing $4 }
->       | context ctype                 { mkTyForall ($1 <> $2) Nothing (Just $1) $2 }
->       | type                          { $1 }
+>       : ctype_('*',NEVER)             { $1 }
 
+> ctype_(ostar,kstar) :: { PType L }
+>       : 'forall' ktyvars '.' ctype_(ostar,kstar)      { mkTyForall (nIS $1 <++> ann $4 <** [$1,$3]) (Just (reverse (fst $2))) Nothing $4 }
+>       | context_(ostar,kstar) ctype_(ostar,kstar)     { mkTyForall ($1 <> $2) Nothing (Just $1) $2 }
+>       | type_(ostar,kstar)                            { $1 }
+
 Equality constraints require the TypeFamilies extension.
 
 > context :: { PContext L }
->       : btype '=>'                    {% checkPContext $ (amap (\l -> l <++> nIS $2 <** (srcInfoPoints l ++ [$2]))) $1 }
->       | btype '~' btype '=>'          {% do { checkEnabledOneOf [TypeFamilies, GADTs];
->                                               let {l = $1 <> $3 <** [$2,$4]};
->                                               checkPContext (TyPred l $ EqualP l $1 $3) } }
+>       : context_('*',NEVER)           { $1 }
 
+> context_(ostar,kstar) :: { PContext L }
+>       : btype_(ostar,kstar) '=>'      {% checkPContext $ (amap (\l -> l <++> nIS $2 <** (srcInfoPoints l ++ [$2]))) (splitTilde $1) }
+
 > types :: { ([PType L],[S]) }
->       : types1 ',' ctype              { ($3 : fst $1, $2 : snd $1)  }
+>       : types_('*',NEVER)             { $1 }
 
+> types_(ostar,kstar) :: { ([PType L],[S]) }
+>       : types1_(ostar,kstar) ',' ctype_(ostar,kstar)  { ($3 : fst $1, $2 : snd $1)  }
+
 > types1 :: { ([PType L],[S]) }
->       : ctype                         { ([$1],[]) }
->       | types1 ',' ctype              { ($3 : fst $1, $2 : snd $1) }
+>       : types1_('*',NEVER)            { $1 }
 
+> types1_(ostar,kstar) :: { ([PType L],[S]) }
+>       : ctype_(ostar,kstar)                           { ([$1],[]) }
+>       | types1_(ostar,kstar) ',' ctype_(ostar,kstar)  { ($3 : fst $1, $2 : snd $1) }
+
+> types_bars2(ostar,kstar) :: { ([PType L],[S]) }
+>   : ctype_(ostar,kstar) '|' ctype_(ostar,kstar)       { ([$3, $1], [$2]) }
+>   | types_bars2(ostar,kstar) '|' ctype_(ostar,kstar)  { ($3 : fst $1, $2 : snd $1) }
+
 > ktyvars :: { ([TyVarBind L],Maybe L) }
 >       : ktyvars ktyvar                { ($2 : fst $1, Just (snd $1 <?+> ann $2)) }
 >       | {- empty -}                   { ([],Nothing) }
@@ -1022,10 +1178,14 @@
 
 > gadtconstr :: { [GadtDecl L] }
 >       : qcon '::' truectype            {% do { c <- checkUnQual $1;
->                                                return [GadtDecl ($1 <> $3 <** [$2]) c Nothing $3] } }
+>                                                return [GadtDecl ($1 <> $3 <** [$2]) c Nothing Nothing Nothing $3] } }
+>       | qcon '::' context '{' fielddecls '}' '->' truectype
+>                                       {% do { c <- checkUnQual $1;
+>                                               ctxt <- checkContext (Just $3) ;
+>                                               return [GadtDecl ($1 <> $8 <** [$2,$4,$6,$7] ++ snd $5) c Nothing ctxt (Just (reverse $ fst $5)) $8] } }
 >       | qcon '::' '{' fielddecls '}' '->' truectype
 >                                       {% do { c <- checkUnQual $1;
->                                               return [GadtDecl ($1 <> $7 <** [$2,$3,$5,$6] ++ snd $4) c (Just (reverse $ fst $4)) $7] } }
+>                                               return [GadtDecl ($1 <> $7 <** [$2,$3,$5,$6] ++ snd $4) c Nothing Nothing (Just (reverse $ fst $4)) $7] } }
 
 To allow the empty case we need the EmptyDataDecls extension.
 > constrs0 :: { ([QualConDecl L],[S],Maybe L) }
@@ -1068,18 +1228,37 @@
 > fielddecl :: { FieldDecl L }
 >       : vars '::' truectype               { let (ns,ss,l) = $1 in FieldDecl (l <++> ann $3 <** (reverse ss ++ [$2])) (reverse ns) $3 }
 
-> deriving :: { Maybe (Deriving L) }
->       : {- empty -}                   { Nothing }
->       | 'deriving' qtycls1            { let l = nIS $1 <++> ann $2 <** [$1] in Just $ Deriving l [IRule (ann $2) Nothing Nothing $2] }
->       | 'deriving' '('          ')'   { Just $ Deriving ($1 <^^> $3 <** [$1,$2,$3]) [] }
->       | 'deriving' '(' dclasses ')'   { Just $ Deriving ($1 <^^> $4 <** $1:$2: reverse (snd $3) ++ [$4]) (reverse (fst $3)) }
+> maybe_derivings :: { [Deriving L] }
+>       : {- empty -}                   { [] }
+>       | derivings                     { $1 }
 
+> derivings :: { [Deriving L] }
+>       : derivings deriving            { $2 : $1 }
+>       | deriving                      { [$1] }
+
+> deriving :: { Deriving L }
+>       : 'deriving' deriv_clause_types
+>             { let (ihs, last_ss, sss) = $2
+>               in Deriving ($1 <^^> last_ss <** $1:sss) Nothing ihs }
+>       | 'deriving' deriv_strategy_no_via deriv_clause_types
+>             { let (ihs, last_ss, sss) = $3
+>               in Deriving ($1 <^^> last_ss <** $1:sss) (Just $2) ihs }
+>       | 'deriving' deriv_clause_types deriv_strategy_via
+>             { let (ihs, last_ss, sss) = $2
+>               in Deriving ($1 <^^> last_ss <** $1:sss) (Just $3) ihs }
+
 > dclasses :: { ([InstRule L],[S]) }
 >       : types1                        {% checkDeriving (fst $1) >>= \ds -> return (ds, snd $1) }
 
 > qtycls1 :: { InstHead L }
 >       : qconid                        { IHCon (ann $1) $1 }
 
+> deriv_clause_types :: { ([InstRule L], SrcSpan, [SrcSpan]) }
+>       : qtycls1                       { [IRule (ann $1) Nothing Nothing $1], srcInfoSpan (ann $1), [] }
+>       | '(' ')'                       { [], $2, [$1, $2] }
+>       | '(' dclasses ')'              { case fst $2 of
+>                                           [ts] -> ([IParen ($1 <^^> $3 <** [$1,$3]) ts], $3, [])
+>                                           tss  -> (reverse tss, $3, $1: reverse (snd $2) ++ [$3]) }
 
 -----------------------------------------------------------------------------
 Kinds
@@ -1088,39 +1267,15 @@
 >       : kind1                 {% checkEnabled KindSignatures >> return $1 }
 
 > kind1 :: { Kind L }
->       : akind                 { $1 }
->       | akind kind1           { KindApp ($1 <> $2) $1 $2 }
->       | akind '->' kind1      { KindFn ($1 <> $3 <** [$2]) $1 $3 }
-
-> akind :: { Kind L }
->       : '*'                   { KindStar  (nIS $1) }
->       | '!'                   { KindBang  (nIS $1) }
->       | '(' kind1 ')'         { KindParen ($1 <^^> $3 <** [$1,$3]) $2 }
->       | pkind                 {% checkKind $1 >> return $1 }
->       | qvarid                {% checkEnabled PolyKinds >> return (KindVar (ann $1) $1) }
-
-KindParen covers 1-tuples, KindVar l  while KindTuple is for pairs
-
-> pkind :: { Kind L }
->         : qtyconorcls         { KindVar (ann $1) $1 }
->         | '(' ')'             { let l = $1 <^^> $2 in KindVar l (unit_tycon_name l) }
->         | '(' kinds  ')'      { KindTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) (reverse (fst $2)) }
->         | '[' kinds1 ']'      { KindList  ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) (reverse (fst $2)) }
-
-
-repeat of what is done for types
-
-> kinds :: { ([Kind L],[S]) }
->       : kinds1 ',' akind              { ($3 : fst $1, $2 : snd $1)  }
-
-> kinds1 :: { ([Kind L],[S]) }
->       : akind                         { ([$1],[]) }
->       | kinds1 ',' akind              { ($3 : fst $1, $2 : snd $1) }
-
+>       : ctype_(NEVER,'*')     {% checkType $1 }
 
 > optkind :: { (Maybe (Kind L), [S]) }
 >       : {-empty-}             { (Nothing,[]) }
 >       | '::' kind             { (Just $2,[$1]) }
+
+> opt_tyconsig :: { Maybe ( S, QName L ) }
+>              : {- empty -}    { Nothing }
+>              | '::' gtycon    { Just ($1, $2) }
 -----------------------------------------------------------------------------
 Class declarations
 
@@ -1149,17 +1304,23 @@
 >       | atdecl                        {% checkEnabled TypeFamilies >> return $1 }
 >       | 'default' signdecl            {% checkEnabled DefaultSignatures >> checkDefSigDef $2 >>= \(n,t,l) -> return (ClsDefSig (nIS $1 <++> ann $2 <** [$1,l]) n t) }
 
+> opt_family   :: { [S] }
+>              : {- empty -}   { [] }
+>              | 'family'      { [$1] }
+
 > atdecl :: { ClassDecl L }
->       : 'type' type optkind
->             {% do { dh <- checkSimpleType $2;
->                     return (ClsTyFam  (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) dh (fst $3)) } }
->       | 'type' truedtype '=' truectype
->                     { ClsTyDef (nIS $1 <++> ann $4 <** [$1,$3]) $2 $4 }
->       | 'type' 'instance' truedtype '=' truectype
->                     { ClsTyDef (nIS $1 <++> ann $5 <** [$1,$2,$4]) $3 $5 }
->       | 'data' ctype optkind
->             {% do { (cs,dh) <- checkDataHeader $2;
->                     return (ClsDataFam (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) cs dh (fst $3)) } }
+>       : 'data' opt_family type opt_datafam_kind_sig
+>             {% do { (cs,dh) <- checkDataHeader $3;
+>                     return (ClsDataFam (nIS $1 <++> ann $3 <+?> (fmap ann) $4 <** [$1]) cs dh $4) } }
+>       | 'type' type opt_at_kind_inj_sig2
+>             {% mkAssocType $1 $2 $3 }
+>       | 'type' 'family' type opt_at_kind_inj_sig
+>             {% do { dh <- checkSimpleType $3;
+>                     return (ClsTyFam  (nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4)
+>                                                           <+?> (fmap ann) (snd $4)
+>                                                           <** [$1]) dh (fst $4) (snd $4)) } }
+>       | 'type' 'instance' ty_fam_inst_eqn
+>                     { ClsTyDef (nIS $1 <++> ann $3 <** [$1,$2]) $3 }
 
 -----------------------------------------------------------------------------
 Instance declarations
@@ -1192,16 +1353,16 @@
 >       : 'type' truedtype '=' truectype
 >                {% do { -- no checkSimpleType $4 since dtype may contain type patterns
 >                        return (InsType (nIS $1 <++> ann $4 <** [$1,$3]) $2 $4) } }
->       | data_or_newtype truectype constrs0 deriving
+>       | data_or_newtype truectype constrs0 maybe_derivings
 >                {% do { -- (cs,c,t) <- checkDataHeader $4;
 >                        let {(ds,ss,minf) = $3};
 >                        checkDataOrNew $1 ds;
->                        return (InsData ($1 <> $2 <+?> minf <+?> fmap ann $4 <** ss ) $1 $2 (reverse ds) $4) } }
->       | data_or_newtype truectype optkind gadtlist deriving
+>                        return (InsData ($1 <> $2 <+?> minf <+?> fmap ann (listToMaybe $4) <** ss ) $1 $2 (reverse ds) (reverse $4)) } }
+>       | data_or_newtype truectype optkind gadtlist maybe_derivings
 >                {% do { -- (cs,c,t) <- checkDataHeader $4;
 >                        let { (gs,ss,minf) = $4 } ;
 >                        checkDataOrNewG $1 gs;
->                        return $ InsGData (ann $1 <+?> minf <+?> fmap ann $5 <** (snd $3 ++ ss)) $1 $2 (fst $3) (reverse gs) $5 } }
+>                        return $ InsGData (ann $1 <+?> minf <+?> fmap ann (listToMaybe $5) <** (snd $3 ++ ss)) $1 $2 (fst $3) (reverse gs) (reverse $5) } }
 
 -----------------------------------------------------------------------------
 Value definitions
@@ -1279,6 +1440,11 @@
 >       | exp10b                        { $1 }
 
 > exp10a :: { PExp L }
+>       : expblocka                     { $1 }
+>       | fexp expblocka                {% checkEnabled BlockArguments >>
+>                                          return (App ($1 <> $2) $1 $2) }
+
+> expblocka :: { PExp L }
 >       : '\\' apats '->' exp             { Lambda (nIS $1 <++> ann $4 <** [$1,$3]) (reverse $2) $4 }
 A let may bind implicit parameters
 >       | 'let' binds 'in' exp            { Let    (nIS $1 <++> ann $4 <** [$1,$3])    $2 $4 }
@@ -1291,26 +1457,29 @@
 >       | exppragma                       { $1 }
 
 > optlayoutsemi :: { [S] }
-> 	: ';'				  {% checkEnabled DoAndIfThenElse >> return [$1] }
+>       : ';'				  {% checkEnabled DoAndIfThenElse >> return [$1] }
 >	| {- empty -}			  { [] }
 
 We won't come here unless XmlSyntax is already checked.
 > opthsxsemi :: { [S] }
-> 	: ';'				  { [$1] }
+>       : ';'				  { [$1] }
 >	| {- empty -}			  { [] }
 
 
 mdo blocks require the RecursiveDo extension enabled, but the lexer handles that.
 
 > exp10b :: { PExp L }
+>       : expblockb                     { $1 }
+>       | '-' fexp                      { NegApp (nIS $1 <++> ann $2 <** [$1]) $2 }
+>       | fexp                          { $1 }
+
+> expblockb :: { PExp L }
 >       : 'case' exp 'of' altslist      { let (als, inf, ss) = $4 in Case (nIS $1 <++> inf <** ($1:$3:ss)) $2 als }
 >       | '\\' 'case' altslist          {% do { checkEnabled LambdaCase ;
 >                                               let { (als, inf, ss) = $3 } ;
 >                                               return (LCase (nIS $1 <++> inf <** ($1:$2:ss)) als) } }
->       | '-' fexp                      { NegApp (nIS $1 <++> ann $2 <** [$1]) $2 }
 >       | 'do'  stmtlist                { let (sts, inf, ss) = $2 in Do   (nIS $1 <++> inf <** $1:ss) sts }
 >       | 'mdo' stmtlist                { let (sts, inf, ss) = $2 in MDo  (nIS $1 <++> inf <** $1:ss) sts }
->       | fexp                          { $1 }
 
 > exppragma :: { PExp L }
 >       : '{-# CORE' STRING '#-}' exp   { let Loc l (StringTok (s,_)) = $2 in CorePragma (nIS $1 <++> ann $4 <** [l,$3]) s $4 }
@@ -1327,6 +1496,8 @@
 
 > fexp :: { PExp L }
 >       : fexp aexp                     { App ($1 <> $2) $1 $2 }
+>       | fexp expblockb                {% checkEnabled BlockArguments >>
+>                                          return (App ($1 <> $2) $1 $2) }
 >       | aexp                          { $1 }
 
 > apats :: { [Pat L] }
@@ -1353,6 +1524,7 @@
 >       | qvar '@:' aexp                {% do { n <- checkUnQual $1;
 >                                               return (CAsRP ($1 <> $3 <** [$2]) n $3) } }
 >       | '~' aexp                      { IrrPat (nIS $1 <++> ann $2 <** [$1]) $2 }
+>       | TYPEAPP trueatype             { TypeApp (nIS $1 <++> ann $2 <** [$1]) $2 }
 >       | aexp1                         { $1 }
 
 Note: The first two alternatives of aexp1 are not necessarily record
@@ -1372,39 +1544,44 @@
 
 > aexp2 :: { PExp L }
 >       : ivar                          { IPVar (ann $1) $1 }
+>       | overloaded_label              { $1 }
 >       | qvar                          { Var (ann $1) $1 }
 >       | gcon                          { $1 }
 >       | literal                       { Lit (ann $1) $1 }
 >       | '(' texp ')'                  { Paren ($1 <^^> $3 <** [$1,$3]) $2 }
->       | '(' texp tsectend             { TupleSection ($1 <^^> head (snd $3) <** $1:reverse (snd $3)) Boxed (Just $2 : fst $3) }
->       | '(' commas texp ')'           { TupleSection ($1 <^^> $4 <** $1:reverse ($4:$2)) Boxed
->                                                       (replicate (length $2) Nothing ++ [Just $3]) }
->       | '(' commas texp tsectend      { TupleSection ($1 <^^> head (snd $4) <** $1:reverse (snd $4 ++ $2)) Boxed
->                                                       (replicate (length $2) Nothing ++ Just $3 : fst $4) }
->       | '(#' texp thashsectend        { TupleSection ($1 <^^> head (snd $3) <** $1:reverse (snd $3)) Unboxed (Just $2 : fst $3) }
+>       | '(' tup_exprs ')'             {% do { e <- mkSumOrTuple Boxed ($1 <^^> $3) (snd $2)
+>                                             ; return $ amap (\l -> l <** [$1] ++ fst $2 ++ [$3]) e } }
 >       | '(#' texp '#)'                { TupleSection ($1 <^^> $3 <** [$1,$3]) Unboxed [Just $2] }
->       | '(#' commas texp '#)'         { TupleSection ($1 <^^> $4 <** $1:reverse ($4:$2)) Unboxed
->                                                       (replicate (length $2) Nothing ++ [Just $3]) }
->       | '(#' commas texp thashsectend { TupleSection ($1 <^^> head (snd $4) <** $1:reverse (snd $4 ++ $2)) Unboxed
->                                                       (replicate (length $2) Nothing ++ Just $3 : fst $4) }
+>       | '(#' tup_exprs '#)'         {% do { e <- mkSumOrTuple Unboxed ($1 <^^> $3) (snd $2)
+>                                           ; return $ amap (\l -> l <** [$1] ++ fst $2 ++ [$3]) e } }
 >       | '[' list ']'                  { amap (\l -> l <** [$3]) $ $2 ($1 <^^> $3 <** [$1]) }
 >       | '[:' parr ':]'                { amap (\l -> l <** [$3]) $ $2 ($1 <^^> $3 <** [$1]) }
->       | '_'                           { WildCard (nIS $1) }
 >       | '(' erpats ')'                {% checkEnabled RegularPatterns >> return (Paren ($1 <^^> $3 <** [$1,$3]) $2) }
->       | '(|' sexps '|)'               { SeqRP ($1 <^^> $3 <** ($1:reverse (snd $2) ++ [$3])) $ reverse (fst $2) }
->       | '(|' exp '|' quals '|)'       { GuardRP ($1 <^^> $5 <** ($1:$3 : snd $4 ++ [$5])) $2 $ (reverse $ fst $4) }
+>       | '(|' exp '|)'                 { ArrOp ($1 <^^> $3 <** [$1,$3]) $2 }
+>       | '(/' sexps '/)'               { SeqRP ($1 <^^> $3 <** ($1:reverse (snd $2) ++ [$3])) $ reverse (fst $2) }
+>       | '(/' exp '|' quals '/)'       { GuardRP ($1 <^^> $5 <** ($1:$3 : snd $4 ++ [$5])) $2 $ (reverse $ fst $4) }
 >       | xml                           { $1 }
 
+
 Template Haskell - all this is enabled in the lexer.
 >       | IDSPLICE                      { let Loc l (THIdEscape s) = $1 in SpliceExp (nIS l) $ IdSplice (nIS l) s }
+>       | TIDSPLICE                     { let Loc l (THTIdEscape s) = $1 in SpliceExp (nIS l) $ TIdSplice (nIS l) s }
 >       | '$(' trueexp ')'              { let l = ($1 <^^> $3 <** [$1,$3]) in SpliceExp l $ ParenSplice l $2 }
+>       | '$$(' trueexp ')'             { let l = ($1 <^^> $3 <** [$1,$3]) in SpliceExp l $ TParenSplice l $2 }
 >       | '[|' trueexp '|]'             { let l = ($1 <^^> $3 <** [$1,$3]) in BracketExp l $ ExpBracket l $2 }
+>       | '[||' trueexp '||]'           { let l = ($1 <^^> $3 <** [$1,$3]) in BracketExp l $ TExpBracket l $2 }
 >       | '[p|' exp0 '|]'               {% do { p <- checkPattern $2;
 >                                               let {l = ($1 <^^> $3 <** [$1,$3]) };
 >                                               return $ BracketExp l $ PatBracket l p } }
 >       | '[t|' truectype '|]'              { let l = $1 <^^> $3 <** [$1,$3] in BracketExp l $ TypeBracket l $2 }
 >       | '[d|' open topdecls close '|]'    { let l = $1 <^^> $5 <** ($1:snd $3 ++ [$5])
 >                                             in BracketExp l $ DeclBracket ($1 <^^> $5 <** ($2:snd $3 ++ [$4,$5])) (fst $3) }
+>       | VARQUOTE '(' ')'              { let {l1 = $1 <^^> $3 <** [$1];
+>                                              l2 = $2 <^^> $3 <** [$2,$3];}
+>                                          in VarQuote l1 (unit_con_name l2) }
+>       | VARQUOTE '[' ']'              { let {l1 = $1 <^^> $3 <** [$1];
+>                                              l2 = $2 <^^> $3 <** [$2,$3];}
+>                                          in VarQuote l1 (list_con_name l2) }
 >       | VARQUOTE qvar                 { VarQuote (nIS $1 <++> ann $2 <** [$1]) $2 }
 >       | VARQUOTE qcon                 { VarQuote (nIS $1 <++> ann $2 <** [$1]) $2 }
 >       | TYPQUOTE tyvar                { TypQuote (nIS $1 <++> ann $2 <** [$1]) (UnQual (ann $2) $2) }
@@ -1412,26 +1589,38 @@
 >       | QUASIQUOTE                    { let Loc l (THQuasiQuote (n,q)) = $1 in QuasiQuote (nIS l) n q }
 End Template Haskell
 
+> tup_exprs :: { ([S], SumOrTuple L) }
+>       : texp commas_tup_tail          { (fst $2, STuple (Just $1 : snd $2)) }
+>       | texp bars                     { ($2, SSum 0 (length $2) $1) }
+>       | commas tup_tail               { ($1 ++ (fst $2), STuple ((map (const Nothing) $1) ++ snd $2)) }
+>       | bars texp bars0               { ($1 ++ $3, SSum (length $1) (length $3) $2) }
+
+> commas_tup_tail :: { ([S], [Maybe (PExp L)]) }
+>       : commas tup_tail               { (reverse $1 ++ fst $2, map (const Nothing) (tail $1) ++ snd $2) }
+
+> tup_tail :: { ([S], [Maybe (PExp L)]) }
+>           : texp commas_tup_tail { (fst $2, Just $1 : snd $2) }
+>           | texp                 { ([], [Just $1]) }
+>           | {- empty -}          { ([], [Nothing]) }
+
 > commas :: { [S] }
 >       : commas ','                    { $2 : $1 }
 >       | ','                           { [$1] }
 
+> bars :: { [S] }
+>   : bars '|'  { $2 : $1 }
+>   | '|'       { [$1] }
+
+> bars0 :: { [S] }
+>        : bars { $1 }
+>        |      { [] }
+
 > texp :: { PExp L }
 >       : exp                           { $1 }
 >       | qopm exp0                     { PreOp ($1 <> $2) $1 $2 }
->       | exp '->' exp                  {% do {checkEnabled ViewPatterns;
+>       | exp '->' pat                  {% do {checkEnabled ViewPatterns;
 >                                              return $ ViewPat ($1 <> $3 <** [$2]) $1 $3} }
 
-> tsectend :: { ([Maybe (PExp L)],[S]) }
->       : commas texp tsectend          { let (mes, ss) = $3 in (replicate (length $1 - 1) Nothing ++ Just $2 : mes, ss ++ $1) }
->       | commas texp ')'               { (replicate (length $1 - 1) Nothing ++ [Just $2], $3 : $1) }
->       | commas ')'                    { (replicate (length $1) Nothing, $2 : $1) }
-
-> thashsectend :: { ([Maybe (PExp L)],[S]) }
->       : commas texp thashsectend      { let (mes, ss) = $3 in (replicate (length $1 - 1) Nothing ++ Just $2 : mes, ss ++ $1) }
->       | commas texp '#)'              { (replicate (length $1 - 1) Nothing ++ [Just $2], $3 : $1) }
->       | commas '#)'                   { (replicate (length $1) Nothing, $2 : $1) }
-
 -----------------------------------------------------------------------------
 Harp Extensions
 
@@ -1448,7 +1637,7 @@
 Hsx Extensions - requires XmlSyntax, but the lexer handles all that.
 
 > xml :: { PExp L }
->       : '<' name attrs mattr '>' children opthsxsemi '</' name '>'        
+>       : '<' name attrs mattr '>' children opthsxsemi '</' name '>'
 >								 {% do { n <- checkEqNames $2 $9;
 >                                                                        let { cn = reverse $6;
 >                                                                              as = reverse $3;
@@ -1494,6 +1683,7 @@
 >       | 'dotnet'                      { Loc $1 "dotnet" }
 >       | 'jvm'                         { Loc $1 "jvm" }
 >       | 'js'                          { Loc $1 "js" }
+>       | 'javascript'                  { Loc $1 "javascript" }
 >       | 'capi'                        { Loc $1 "capi" }
 >       | 'as'                          { Loc $1 "as" }
 >       | 'by'                          { Loc $1 "by" }
@@ -1611,7 +1801,10 @@
 >       : '{'  alts '}'                 { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3])  }
 >       | open alts close               { let l' =  ann . last $ fst $2
 >                                          in (fst $2, nIS $1 <++> l', $1:snd $2 ++ [$3]) }
+>       | '{' '}'                       {% do { checkEnabled EmptyCase;
+>                                               return ([], $1 <^^> $2, [$1, $2]) } }
 
+
 > alts :: { ([Alt L],[S]) }
 >       : optsemis alts1 optsemis       { (reverse $ fst $2, $1 ++ snd $2 ++ $3) }
 
@@ -1629,7 +1822,7 @@
 > gdpats :: { ([GuardedRhs L],L) }
 >       : gdpats gdpat                  { ($2 : fst $1, snd $1 <++> ann $2) }
 >       | gdpat                         { ([$1], ann $1) }
- 
+
 A guard can be a pattern guard if PatternGuards is enabled, hence quals instead of exp0.
 > gdpat :: { GuardedRhs L }
 >       : '|' quals '->' trueexp {% do { checkPatternGuards (fst $2);
@@ -1714,13 +1907,24 @@
 Variables, Constructors and Operators.
 
 > gcon :: { PExp L }
+>       : sysdcon               { $1 }
+>       | qcon                  { Con (ann $1) $1 }
+
+> gcon_nolist :: { PExp L }
+>       : sysdcon_nolist        { $1 }
+>       | qcon                  { Con (ann $1) $1 }
+
+> sysdcon_nolist :: { PExp L }
 >       : '(' ')'               { p_unit_con              ($1 <^^> $2 <** [$1,$2]) }
->       | '[' ']'               { List                    ($1 <^^> $2 <** [$1,$2]) [] }
->       | '(' commas ')'        { p_tuple_con             ($1 <^^> $3 <** $1:reverse ($3:$2)) Boxed (length $2) }
 >       | '(#' '#)'             { p_unboxed_singleton_con ($1 <^^> $2 <** [$1,$2]) }
 >       | '(#' commas '#)'      { p_tuple_con             ($1 <^^> $3 <** $1:reverse ($3:$2)) Unboxed (length $2) }
->       | qcon                  { Con (ann $1) $1 }
+>       | '(' commas ')'        { p_tuple_con             ($1 <^^> $3 <** $1:reverse ($3:$2)) Boxed (length $2) }
 
+
+> sysdcon :: { PExp L }
+>       : '[' ']'               { List                    ($1 <^^> $2 <** [$1,$2]) [] }
+>       | sysdcon_nolist        { $1 }
+
 > var   :: { Name L }
 >       : varid                 { $1 }
 >       | '(' varsym ')'        { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }
@@ -1741,6 +1945,11 @@
 >       : conid                 { $1 }
 >       | '(' consym ')'        { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }
 
+> con_list :: { ([S], [Name L]) }
+>          : con                { ([], [$1]) }
+>          | con ',' con_list   { let (ss, cs) = $3
+>                                 in ($2 : ss, $1 :cs) }
+
 > qcon  :: { QName L }
 >       : qconid                { $1 }
 >       | '(' gconsym ')'       { updateQNameLoc ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
@@ -1781,6 +1990,10 @@
 >       : ':'                   { list_cons_name (nIS $1) }
 >       | qconsym               { $1 }
 
+> overloaded_label :: { PExp L }
+>       : LABELVARID            { let Loc l (LabelVarId v) = $1 in OverloadedLabel
+>                                                                      (nIS l) v }
+
 -----------------------------------------------------------------------------
 Identifiers and Symbols
 
@@ -1788,20 +2001,24 @@
 >       : varid                 { UnQual (ann $1) $1 }
 >       | QVARID                { let {Loc l (QVarId q) = $1; nis = nIS l}
 >                                  in Qual nis (ModuleName nis (fst q)) (Ident nis (snd q)) }
+>       | '_'                   { hole_name       (nIS $1) }
 
 > varid_no_safety :: { Name L }
 >       : VARID                 { let Loc l (VarId v) = $1 in Ident (nIS l) v }
->       | 'as'                  { as_name        (nIS $1) }
->       | 'qualified'           { qualified_name (nIS $1) }
->       | 'hiding'              { hiding_name    (nIS $1) }
->       | 'export'              { export_name    (nIS $1) }
->       | 'stdcall'             { stdcall_name   (nIS $1) }
->       | 'ccall'               { ccall_name     (nIS $1) }
->       | 'cplusplus'           { cplusplus_name (nIS $1) }
->       | 'dotnet'              { dotnet_name    (nIS $1) }
->       | 'jvm'                 { jvm_name       (nIS $1) }
->       | 'js'                  { js_name        (nIS $1) }
->       | 'capi'                { capi_name      (nIS $1) }
+>       | 'as'                  { as_name         (nIS $1) }
+>       | 'qualified'           { qualified_name  (nIS $1) }
+>       | 'hiding'              { hiding_name     (nIS $1) }
+>       | 'export'              { export_name     (nIS $1) }
+>       | 'stdcall'             { stdcall_name    (nIS $1) }
+>       | 'ccall'               { ccall_name      (nIS $1) }
+>       | 'cplusplus'           { cplusplus_name  (nIS $1) }
+>       | 'dotnet'              { dotnet_name     (nIS $1) }
+>       | 'jvm'                 { jvm_name        (nIS $1) }
+>       | 'js'                  { js_name         (nIS $1) }
+>       | 'javascript'          { javascript_name (nIS $1) }
+>       | 'capi'                { capi_name       (nIS $1) }
+>       | 'stock'               { stock_name      (nIS $1) }
+>       | 'anyclass'            { anyclass_name   (nIS $1) }
 
 > varid :: { Name L }
 >       : varid_no_safety       { $1 }
@@ -1809,8 +2026,9 @@
 >       | 'unsafe'              { unsafe_name     (nIS $1) }
 >       | 'interruptible'       { interruptible_name (nIS $1) }
 >       | 'threadsafe'          { threadsafe_name (nIS $1) }
->	| 'forall'		{ forall_name	  (nIS $1) }
->	| 'family'		{ family_name     (nIS $1) }
+>	      | 'forall'                          { forall_name	  (nIS $1) }
+>	      | 'family'                          { family_name     (nIS $1) }
+>       | 'role'                { role_name  (nIS $1) }
 
 
 Implicit parameter
@@ -1833,7 +2051,10 @@
 >       : CONSYM                { let Loc l (ConSym c) = $1 in Symbol (nIS l) c }
 
 > qvarsym :: { QName L }
->       : varsym                { UnQual (ann $1) $1 }
+>       : qvarsym_('*')         { $1 }
+
+> qvarsym_(ostar) :: { QName L }
+>       : varsym_(ostar)        { UnQual (ann $1) $1 }
 >       | qvarsym1              { $1 }
 
 > qvarsymm :: { QName L }
@@ -1841,17 +2062,20 @@
 >       | qvarsym1              { $1 }
 
 > varsym :: { Name L }
->       : VARSYM                { let Loc l (VarSym v) = $1 in Symbol (nIS l) v }
+>       : varsym_('*')          { $1 }
+
+> varsym_(ostar) :: { Name L }
+>       : varsymm_(ostar)       { $1 }
 >       | '-'                   { minus_name (nIS $1) }
->       | '!'                   { bang_name  (nIS $1) }
->       | '.'                   { dot_name   (nIS $1) }
->       | '*'                   { star_name  (nIS $1) }
 
-> varsymm :: { Name L } -- varsym not including '-'
+> varsymm :: { Name L }
+>       : varsymm_('*')         { $1 }
+
+> varsymm_(ostar) :: { Name L } -- varsym not including '-'
 >       : VARSYM                { let Loc l (VarSym v) = $1 in Symbol (nIS l) v }
 >       | '!'                   { bang_name (nIS $1) }
 >       | '.'                   { dot_name  (nIS $1) }
->       | '*'                   { star_name (nIS $1) }
+>       | ostar                 { star_name (nIS $1) }
 
 > qvarsym1 :: { QName L }
 >       : QVARSYM               { let {Loc l (QVarSym q) = $1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q)) }
@@ -1878,6 +2102,102 @@
 >       | error                 {% popContext >> getSrcLoc >>= \s -> return $ mkSrcSpan s s {- >>= \x -> trace (show x ++ show x) (return x) -} }
 
 -----------------------------------------------------------------------------
+Pattern Synonyms
+-- Pattern synonyms
+
+> pat_syn :: { Decl L }
+>       : pattern_synonym_decl          {% checkEnabled PatternSynonyms >> return $1 }
+
+-- Glasgow extension: pattern synonyms
+>  pattern_synonym_decl :: { Decl L }
+>       : 'pattern' pattern_synonym_lhs '=' pat
+>            { let l = nIS $1 <++> ann $4 <** [$1,$3]
+>              in PatSyn l $2 $4 ImplicitBidirectional
+>                  }
+>       | 'pattern' pattern_synonym_lhs '<-' pat
+>            {   let l = nIS $1 <++> ann $4 <** [$1,$3]
+>                in PatSyn l $2 $4 Unidirectional
+>            }
+>       | 'pattern' pattern_synonym_lhs '<-' pat where_decls
+>           {  let l = nIS $1 <++> ann $4 <** [$1, $3]
+>              in PatSyn l $2 $4 $5}
+
+>
+> pattern_synonym_lhs :: { Pat L }
+>       : con vars0  { let l = case $2 of
+>                                  [] -> ann $1
+>                                  (_:_) -> ann $1 <++> (ann $ last $2)
+>                         in PApp l (UnQual (ann $1) $1) $2 }
+>       | varid qconsym varid  { PInfixApp (ann $1 <++> ann $3) (PVar (ann $1) $1) $2 (PVar (ann $3) $3) }
+>       | con '{' commavars '}' {  let { (ss, ns) = $3 ;
+>                                        qnames = (map (\n -> UnQual (ann n) n) ns) }
+>                                  in PRec (ann $1 <++> nIS $4 <** ($2 : ss ++ [$4]))
+>                                          (UnQual (ann $1) $1) (map (\q -> PFieldPun (ann q) q) qnames) }
+>
+> vars0 :: { [Pat L] }
+>       :  {- empty -}        { [] }
+>       |  varid vars0        { PVar (ann $1) $1 : $2 }
+
+> commavars :: { ([S], [Name L]) }
+>       : varid                 { ([], [$1] ) }
+>       | varid ',' commavars   { let (ss, ns) = $3 in ($2 : ss, $1 : ns) }
+
+> where_decls :: { PatternSynDirection L }
+>       : 'where' '{' decls '}'       {%  checkExplicitPatSyn $1 $2 $3 $4 }
+>       | 'where' open decls close    {%  checkExplicitPatSyn $1 $2 $3 $4 }
+
+> pattern_synonym_sig :: { Decl L }
+>       : 'pattern' con_list '::' pstype
+>             {% do { checkEnabled PatternSynonyms ;
+>                     let {(qtvs, ps, prov, req_vars, req, ty) = $4} ;
+>                     let {sig = PatSynSig (nIS $1 <++> ann ty <** [$1] ++ fst $2 ++ [$3] ++ ps)  (snd $2) qtvs prov req_vars req ty} ;
+>                     return sig } }
+
+> pstype :: { (Maybe [TyVarBind L], [S], Maybe (Context L), Maybe [TyVarBind L]
+>                                       , Maybe (Context L), Type L )}
+>       :  'forall' ktyvars '.' pstype
+>             { let (qtvs, ps, prov, req_vars, req, ty) = $4
+>                in (Just (reverse (fst $2) ++ fromMaybe [] qtvs), ($1 : $3 : ps), prov, req_vars, req, ty) }
+>       | context context type
+>             {% do { c1 <- checkContext (Just $1) ;
+>                     c2 <- checkContext (Just $2) ;
+>                     t  <- checkType $3 ;
+>                     return $ (Nothing, [], c1, Nothing, c2, t) }}
+>       | context 'forall' ktyvars '.' context type
+>             {% do { c1 <- checkContext (Just $1) ;
+>                     c2 <- checkContext (Just $5) ;
+>                     t  <- checkType $6 ;
+>                     return $ (Nothing, [], c1, Just (reverse (fst $3)), c2, t) }}
+>       | context type
+>              {% do { c1 <- checkContext (Just $1);
+>                      t <- checkType $2;
+>                      return (Nothing, [], c1, Nothing, Nothing, t) } }
+>       | type
+>              {% checkType $1 >>= \t -> return (Nothing, [], Nothing, Nothing, Nothing, t) }
+
+-----------------------------------------------------------------------------
+Deriving strategies
+
+> deriv_strategy_no_via :: { DerivStrategy L }
+>       : 'stock'               {% do { checkEnabled DerivingStrategies
+>                                     ; return (DerivStock (nIS $1)) } }
+>       | 'anyclass'            {% do { checkEnabled DerivingStrategies
+>                                     ; checkEnabled DeriveAnyClass
+>                                     ; return (DerivAnyclass (nIS $1)) } }
+>       | 'newtype'             {% do { checkEnabled DerivingStrategies
+>                                     ; checkEnabled GeneralizedNewtypeDeriving
+>                                     ; return (DerivNewtype (nIS $1)) } }
+
+> deriv_strategy_via :: { DerivStrategy L }
+>       : 'via' truedtype       {% do { checkEnabled DerivingVia
+>                                     ; return (DerivVia (nIS $1) $2) } }
+
+> deriv_standalone_strategy :: { Maybe (DerivStrategy L) }
+>       : deriv_strategy_no_via { Just $1 }
+>       | deriv_strategy_via    { Just $1 }
+>       | {- empty -}           { Nothing }
+
+-----------------------------------------------------------------------------
 Miscellaneous (mostly renamings)
 
 > modid :: { ModuleName L }
@@ -1898,16 +2218,35 @@
 >       | 'safe'                { safe_name       (nIS $1) }
 >       | 'unsafe'              { unsafe_name     (nIS $1) }
 >       | 'threadsafe'          { threadsafe_name (nIS $1) }
-	| 'forall'		{ forall_name	  (nIS $1) }
-	| 'family'		{ family_name     (nIS $1) }
+        | 'forall'		{ forall_name	  (nIS $1) }
+        | 'family'		{ family_name     (nIS $1) }
 
-> qtyvarop :: { QName L }
-> qtyvarop : '`' tyvar '`'       { UnQual ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
->          | tyvarsym            { UnQual (ann $1) $1 }
+> qtyvarop_(ostar) :: { QName L }
+> qtyvarop_ : '`' tyvar '`'     { UnQual ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3]) $2 }
+>          | tyvarsym_(ostar)   { UnQual (ann $1) $1 }
 
-> tyvarsym :: { Name L }
+> tyvarsym_(ostar) :: { Name L }
 > tyvarsym : VARSYM              { let Loc l (VarSym x) = $1 in Symbol (nIS l) x }
+>          | '-'                 { Symbol (nIS $1) "-" }
+>          | ostar                   { Symbol (nIS $1) "*" }
 
+> impdeclsblock :: { ([ImportDecl L],[S],L) }
+>               : '{'  optsemis impdecls optsemis '}'         { let (ids, ss) = $3 in (ids, $1 : reverse $2 ++ ss ++ reverse $4 ++ [$5], $1 <^^> $5) }
+>               | open optsemis impdecls optsemis close       { let (ids, ss) = $3 in (ids, $1 : reverse $2 ++ ss ++ reverse $4 ++ [$5], $1 <^^> $5) }
+
+Exported as partial parsers:
+
+> moduletopname :: { (([ModulePragma L], [S], L), Maybe (ModuleName L)) }
+>               : toppragmas 'module' modid     { ($1, Just $3) }
+>               | toppragmas {- empty -}        { ($1, Nothing) }
+
+> moduletophead :: { (([ModulePragma L], [S], L), Maybe (ModuleHead L)) }
+>               : toppragmas optmodulehead      { ($1, $2) }
+
+> moduletopimps :: { (([ModulePragma L], [S], L), Maybe (ModuleHead L), Maybe ([ImportDecl L],[S],L)) }
+>               : toppragmas optmodulehead impdeclsblock      { ($1, $2, Just $3) }
+>               | toppragmas optmodulehead {- empty -}        { ($1, $2, Nothing) }
+
 -----------------------------------------------------------------------------
 
 > {
@@ -1926,112 +2265,11 @@
 > nIS = noInfoSpan
 > iS = infoSpan
 
-
-> -- | Parse of a string, which should contain a complete Haskell module.
-> parseModule :: String -> ParseResult (Module SrcSpanInfo)
-> parseModule = simpleParse mparseModule
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode.
-> parseModuleWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
-> parseModuleWithMode = modeParse mparseModule
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseModuleWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
-> parseModuleWithComments = commentParse mparseModule
-
-> -- | Parse of a string containing a Haskell expression.
-> parseExp :: String -> ParseResult (Exp SrcSpanInfo)
-> parseExp = simpleParse mparseExp
-
-> -- | Parse of a string containing a Haskell expression, using an explicit mode.
-> parseExpWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo)
-> parseExpWithMode = modeParse mparseExp
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseExpWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment])
-> parseExpWithComments = commentParse mparseExp
-
-> -- | Parse of a string containing a Haskell pattern.
-> parsePat :: String -> ParseResult (Pat SrcSpanInfo)
-> parsePat = simpleParse mparsePat
-
-> -- | Parse of a string containing a Haskell pattern, using an explicit mode.
-> parsePatWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo)
-> parsePatWithMode = modeParse mparsePat
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parsePatWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment])
-> parsePatWithComments = commentParse mparsePat
-
-> -- | Parse of a string containing a Haskell top-level declaration.
-> parseDecl :: String -> ParseResult (Decl SrcSpanInfo)
-> parseDecl = simpleParse mparseDecl
-
-> -- | Parse of a string containing a Haskell top-level declaration, using an explicit mode.
-> parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo)
-> parseDeclWithMode = modeParse mparseDecl
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment])
-> parseDeclWithComments = commentParse mparseDecl
-
-> -- | Parse of a string containing a Haskell type.
-> parseType :: String -> ParseResult (Type SrcSpanInfo)
-> parseType = runParser mparseType
-
-> -- | Parse of a string containing a Haskell type, using an explicit mode.
-> parseTypeWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo)
-> parseTypeWithMode mode = runParserWithMode mode mparseType
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseTypeWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment])
-> parseTypeWithComments mode str = runParserWithModeComments mode mparseType str
-
-> -- | Parse of a string containing a Haskell statement.
-> parseStmt :: String -> ParseResult (Stmt SrcSpanInfo)
-> parseStmt = simpleParse mparseStmt
-
-> -- | Parse of a string containing a Haskell type, using an explicit mode.
-> parseStmtWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo)
-> parseStmtWithMode = modeParse mparseStmt
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment])
-> parseStmtWithComments = commentParse mparseStmt
-
-
-> simpleParse :: AppFixity a => P (a L) -> String -> ParseResult (a L)
-> simpleParse p = applyFixities preludeFixities <=< runParser p
-
-> modeParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L)
-> modeParse p mode = applyFixities' (fixities mode) <=< runParserWithMode mode p
-
-> commentParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L, [Comment])
-> commentParse p mode str = do (ast, cs) <- runParserWithModeComments mode p str
->                              ast' <- applyFixities' (fixities mode) ast
->                              return (ast', cs)
-
-> -- | Partial parse of a string starting with a series of top-level option pragmas.
-> getTopPragmas :: String -> ParseResult [ModulePragma SrcSpanInfo]
-> getTopPragmas = runParser (mfindOptPragmas >>= \(ps,_,_) -> return ps)
-
-> -- | Parse of a string, which should contain a complete Haskell module.
-> parseModules :: String -> ParseResult [Module SrcSpanInfo]
-> parseModules = mapM (applyFixities preludeFixities) <=< runParser mparseModules
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode.
-> parseModulesWithMode :: ParseMode -> String -> ParseResult [Module SrcSpanInfo]
-> parseModulesWithMode mode = mapM (applyFixities' (fixities mode)) <=< runParserWithMode mode mparseModules
-
-> -- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-> parseModulesWithComments :: ParseMode -> String -> ParseResult ([Module SrcSpanInfo], [Comment])
-> parseModulesWithComments mode str = do (ast,cs) <- runParserWithModeComments mode mparseModules str
->                                        ast' <- mapM (applyFixities' (fixities mode)) ast
->                                        return (ast', cs)
->
-> applyFixities' :: (AppFixity a) => Maybe [Fixity] -> a L -> ParseResult (a L)
-> applyFixities' Nothing ast = return ast
-> applyFixities' (Just fixs) ast = applyFixities fixs ast
->
+> mparseDecl :: P (Decl SrcSpanInfo)
+> mparseDecl = do
+>     (is, ds, _, _) <- mparseDeclAux
+>     when (not $ null is) $
+>        fail $ "Expected single declaration, found import declaration"
+>     checkSingleDecl ds
 
 > }
diff --git a/src/Language/Haskell/Exts/Lexer.hs b/src/Language/Haskell/Exts/Lexer.hs
--- a/src/Language/Haskell/Exts/Lexer.hs
+++ b/src/Language/Haskell/Exts/Lexer.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE Safe #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.Lexer
@@ -13,7 +15,7 @@
 --
 -----------------------------------------------------------------------------
 
-module Language.Haskell.Exts.Lexer 
+module Language.Haskell.Exts.Lexer
     (
       lexTokenStream, lexTokenStreamWithMode,
 
diff --git a/src/Language/Haskell/Exts/ParseMonad.hs b/src/Language/Haskell/Exts/ParseMonad.hs
--- a/src/Language/Haskell/Exts/ParseMonad.hs
+++ b/src/Language/Haskell/Exts/ParseMonad.hs
@@ -1,7 +1,9 @@
+{-# LANGUAGE CPP, Safe #-}
 {-# OPTIONS_HADDOCK hide #-}
+
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Language.Haskell.Exts.Annotated.ParseMonad
+-- Module      :  Language.Haskell.Exts.ParseMonad
 -- Copyright   :  Niklas Broberg (c) 2004-2009,
 --                Original (c) The GHC Team, 1997-2000
 -- License     :  BSD-style (see the file libraries/base/LICENSE)
@@ -15,14 +17,17 @@
 -----------------------------------------------------------------------------
 
 module Language.Haskell.Exts.ParseMonad(
+        -- * Generic Parsing
+        Parseable(..),
         -- * Parsing
         P, ParseResult(..), atSrcLoc, LexContext(..),
         ParseMode(..), defaultParseMode, fromParseResult,
         runParserWithMode, runParserWithModeComments, runParser,
         getSrcLoc, pushCurrentContext, popContext,
-        getExtensions,
+        getExtensions, getIgnoreFunctionArity,
         -- * Lexing
-        Lex(runL), getInput, discard, lexNewline, lexTab, lexWhile, lexWhile_,
+        Lex(runL), getInput, discard, getLastChar, lexNewline,
+        lexTab, lexWhile, lexWhile_,
         alternative, checkBOL, setBOL, startToken, getOffside,
         pushContextL, popContextL, getExtensionsL, addExtensionL,
         saveExtensionsL, restoreExtensionsL, pushComment,
@@ -42,15 +47,40 @@
 import Data.List (intercalate)
 import Control.Applicative
 import Control.Monad (when, liftM, ap)
-import Data.Monoid
+import qualified Control.Monad.Fail as Fail
+import Data.Monoid hiding ((<>))
+#if !MIN_VERSION_base(4,13,0)
+import Data.Semigroup (Semigroup(..))
+#endif
+-- To avoid import warnings for Control.Applicative, Data.Monoid, and Data.Semigroup
+import Prelude
 
+-- | Class providing function for parsing at many different types.
+--
+--   Note that for convenience of implementation, the default methods have
+--   definitions equivalent to 'undefined'.  The minimal definition is all of
+--   the visible methods.
+class Parseable ast where
+  -- | Parse a string with default mode.
+  parse :: String -> ParseResult ast
+  parse = parseWithMode defaultParseMode
+  -- | Parse a string with an explicit 'ParseMode'.
+  parseWithMode :: ParseMode -> String -> ParseResult ast
+  parseWithMode mode = runParserWithMode mode . parser $ fixities mode
+  -- | Parse a string with an explicit 'ParseMode', returning all comments along
+  --   with the AST.
+  parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])
+  parseWithComments mode = runParserWithModeComments mode . parser $ fixities mode
+  -- | Internal parser, used to provide default definitions for the others.
+  parser :: Maybe [Fixity] -> P ast
+
 -- | The result of a parse.
 data ParseResult a
     = ParseOk a  -- ^ The parse succeeded, yielding a value.
     | ParseFailed SrcLoc String
                 -- ^ The parse failed at the specified
                 -- source location, with an error message.
-    deriving Show
+    deriving (Show, Ord, Eq)
 
 -- | Retrieve the result of a successful parse, throwing an
 --   error if the parse is actually not successful.
@@ -69,17 +99,21 @@
   ParseFailed loc msg <*> _ = ParseFailed loc msg
 
 instance Monad ParseResult where
-  return = ParseOk
-  fail = ParseFailed noLoc
+#if !MIN_VERSION_base(4,13,0)
+  fail = Fail.fail
+#endif
   ParseOk x           >>= f = f x
   ParseFailed loc msg >>= _ = ParseFailed loc msg
+instance Fail.MonadFail ParseResult where
+  fail = ParseFailed noLoc
 
-instance Monoid m => Monoid (ParseResult m) where
-  mempty = ParseOk mempty
-  ParseOk x `mappend` ParseOk y = ParseOk $ x `mappend` y
-  ParseOk _ `mappend` err       = err
-  err       `mappend` _         = err -- left-biased
+instance Semigroup m => Semigroup (ParseResult m) where
+ ParseOk x <> ParseOk y = ParseOk $ x <> y
+ ParseOk _ <> err       = err
+ err       <> _         = err -- left-biased
 
+instance ( Monoid m , Semigroup m) => Monoid (ParseResult m) where
+  mempty = ParseOk mempty
 
 -- internal version
 data ParseStatus a = Ok ParseState a | Failed SrcLoc String
@@ -123,7 +157,9 @@
         --   from LINE pragmas in source files
         ignoreLinePragmas :: Bool,
         -- | list of fixities to be aware of
-        fixities :: Maybe [Fixity]
+        fixities :: Maybe [Fixity],
+        -- | Checks whether functions have a consistent arity
+        ignoreFunctionArity :: Bool
         }
 
 -- | Default parameters for a parse.
@@ -138,7 +174,8 @@
         extensions = [],
         ignoreLanguagePragmas = False,
         ignoreLinePragmas = True,
-        fixities = Just preludeFixities
+        fixities = Just preludeFixities,
+        ignoreFunctionArity = False
         }
 
 -- Version of ParseMode used internally,
@@ -148,13 +185,14 @@
         iParseFilename :: String,
         iExtensions :: [KnownExtension],
         -- iIgnoreLanguagePragmas :: Bool,
-        iIgnoreLinePragmas :: Bool
+        iIgnoreLinePragmas :: Bool,
+        iIgnoreFunctionArity :: Bool
         -- iFixities :: Maybe [Fixity]
     }
 
 toInternalParseMode :: ParseMode -> InternalParseMode
-toInternalParseMode (ParseMode pf bLang exts _ilang iline _fx) =
-    IParseMode pf (impliesExts $ toExtensionList bLang exts) {-_ilang -} iline {- _fx -}
+toInternalParseMode (ParseMode pf bLang exts _ilang iline _fx farity) =
+    IParseMode pf (toExtensionList bLang exts) {-_ilang -} iline {- _fx -} farity
 
 
 -- | Monad for parsing
@@ -164,6 +202,7 @@
              -> Int                 -- current column
              -> Int                 -- current line
              -> SrcLoc              -- location of last token read
+             -> Char                -- Last token read used for lexing TypeApplication UGH
              -> ParseState          -- layout info.
              -> InternalParseMode   -- parse parameters
              -> ParseStatus a
@@ -179,14 +218,14 @@
         srcColumn = 1
     }
 -}
-runParserWithMode mode pm s = fmap fst $ runParserWithModeComments mode pm s
+runParserWithMode mode pm = fmap fst . runParserWithModeComments mode pm
 
 runParser :: P a -> String -> ParseResult a
 runParser = runParserWithMode defaultParseMode
 
 runParserWithModeComments :: ParseMode -> P a -> String -> ParseResult (a, [Comment])
-runParserWithModeComments mode (P m) s = 
-  case m s 0 1 start ([],[],[],(False,False),[]) (toInternalParseMode mode) of
+runParserWithModeComments mode = let mode2 = toInternalParseMode mode in \(P m) s ->
+  case m s 0 1 start '\n' ([],[],[],(False,False),[]) mode2 of
     Ok (_,_,_,_,cs) a -> ParseOk (a, reverse cs)
     Failed loc msg    -> ParseFailed loc msg
     where start = SrcLoc {
@@ -202,25 +241,29 @@
   fmap = liftM
 
 instance Applicative P where
-  pure = return
+  pure a = P $ \_i _x _y _l _ch s _m -> Ok s a
   (<*>) = ap
 
 instance Monad P where
-    return a = P $ \_i _x _y _l s _m -> Ok s a
-    P m >>= k = P $ \i x y l s mode ->
-        case m i x y l s mode of
+    P m >>= k = P $ \i x y l ch s mode ->
+        case m i x y l ch s mode of
             Failed loc msg -> Failed loc msg
-            Ok s' a -> runP (k a) i x y l s' mode
-    fail s = P $ \_r _col _line loc _stk _m -> Failed loc s
+            Ok s' a -> runP (k a) i x y l ch s' mode
+#if !MIN_VERSION_base(4,13,0)
+    fail   = Fail.fail
+#endif
 
+instance Fail.MonadFail P where
+    fail s = P $ \_r _col _line loc _ _stk _m -> Failed loc s
+
 atSrcLoc :: P a -> SrcLoc -> P a
-P m `atSrcLoc` loc = P $ \i x y _l -> m i x y loc
+P m `atSrcLoc` loc = P $ \i x y _l ch -> m i x y loc ch
 
 getSrcLoc :: P SrcLoc
-getSrcLoc = P $ \_i _x _y l s _m -> Ok s l
+getSrcLoc = P $ \_i _x _y l _ s _m -> Ok s l
 
 getModuleName :: P String
-getModuleName = P $ \_i _x _y _l s m ->
+getModuleName = P $ \_i _x _y _l _ch s m ->
     let fn = iParseFilename m
         mn = intercalate "." $ splitPath fn
 
@@ -251,15 +294,15 @@
     pushContext (Layout loc)
 
 currentIndent :: P Int
-currentIndent = P $ \_r _x _y _ stk _mode -> Ok stk (indentOfParseState stk)
+currentIndent = P $ \_r _x _y _ _ stk _mode -> Ok stk (indentOfParseState stk)
 
 pushContext :: LexContext -> P ()
 pushContext ctxt =
 --trace ("pushing lexical scope: " ++ show ctxt ++"\n") $
-    P $ \_i _x _y _l (s, exts, e, p, c) _m -> Ok (ctxt:s, exts, e, p, c) ()
+    P $ \_i _x _y _l _ (s, exts, e, p, c) _m -> Ok (ctxt:s, exts, e, p, c) ()
 
 popContext :: P ()
-popContext = P $ \_i _x _y loc stk _m ->
+popContext = P $ \_i _x _y loc _ stk _m ->
       case stk of
         (_:s, exts, e, p, c) -> --trace ("popping lexical scope, context now "++show s ++ "\n") $
                           Ok (s, exts, e, p, c) ()
@@ -280,19 +323,25 @@
 
 -- Extension-aware lexing/parsing
 getExtensions :: P [KnownExtension]
-getExtensions = P $ \_i _x _y _l s m ->
+getExtensions = P $ \_i _x _y _l _ s m ->
     Ok s $ iExtensions m
 
 pushCtxtFlag :: P ()
 pushCtxtFlag =
-    P $ \_i _x _y _l (s, exts, e, (d,c), cs) _m -> case c of
+    P $ \_i _x _y _l _ (s, exts, e, (d,c), cs) _m -> case c of
         False -> Ok (s, exts, e, (d,True), cs) ()
         _     -> error "Internal error: context flag already pushed"
 
 pullDoStatus :: P Bool
-pullDoStatus = P $ \_i _x _y _l (s, exts, e, (d,c), cs) _m -> Ok (s,exts,e,(False,c),cs) d
+pullDoStatus = P $ \_i _x _y _l _ (s, exts, e, (d,c), cs) _m -> Ok (s,exts,e,(False,c),cs) d
 
+getIgnoreFunctionArity :: P Bool
+getIgnoreFunctionArity = P $ \_i _x _y _l _ s m ->
+  Ok s $ iIgnoreFunctionArity m
 
+
+
+
 ----------------------------------------------------------------------------
 -- Monad for lexical analysis:
 -- a continuation-passing version of the parsing monad
@@ -303,13 +352,17 @@
     fmap = liftM
 
 instance Applicative (Lex r) where
-    pure = return
+    pure a = Lex $ \k -> k a
     (<*>) = ap
 
 instance Monad (Lex r) where
-    return a = Lex $ \k -> k a
     Lex v >>= f = Lex $ \k -> v (\a -> runL (f a) k)
     Lex v >> Lex w = Lex $ \k -> v (\_ -> w k)
+#if !MIN_VERSION_base(4,13,0)
+    fail   = Fail.fail
+#endif
+
+instance Fail.MonadFail (Lex r) where
     fail s = Lex $ \_ -> fail s
 
 -- Operations on this monad
@@ -320,15 +373,24 @@
 -- | Discard some input characters (these must not include tabs or newlines).
 
 discard :: Int -> Lex r ()
-discard n = Lex $ \cont -> P $ \r x -> runP (cont ()) (drop n r) (x+n)
+discard n = Lex $ \cont -> P $ \r x y loc ch
+                        -> let (newCh:rest)= if n > 0 then drop (n-1) r else (ch:r)
+                           in runP (cont ()) rest (x+n) y loc newCh
 
+-- | Get the last discarded character.
+-- This is only used for type application.
+
+getLastChar :: Lex r Char
+getLastChar = Lex $ \cont -> P $ \r x y loc ch -> runP (cont ch) r x y loc ch
+
+
 -- | Discard the next character, which must be a newline.
 
 lexNewline :: Lex a ()
-lexNewline = Lex $ \cont -> P $ \rs _x y loc ->
+lexNewline = Lex $ \cont -> P $ \rs _x y loc  ->
   case rs of
     (_:r) -> runP (cont ()) r 1 (y+1) loc
-    []    -> \_ _ -> Failed loc "Lexer: expected newline."
+    []    -> \_ _ _ -> Failed loc "Lexer: expected newline."
 
 -- | Discard the next character, which must be a tab.
 
@@ -344,9 +406,20 @@
 -- Consume and return the largest string of characters satisfying p
 
 lexWhile :: (Char -> Bool) -> Lex a String
-lexWhile p = Lex $ \cont -> P $ \r x ->
-    let (cs,rest) = span p r in
-    runP (cont cs) rest (x + length cs)
+lexWhile p = Lex $ \cont -> P $ \rss c l loc char ->
+  case rss of
+    [] -> runP (cont []) [] c l loc char
+    (r:rs) ->
+      let
+        l' = case r of
+              '\n' -> l + 1
+              _    -> l
+        c' = case r of
+              '\n' -> 1
+              _    -> c + 1
+       in if p r
+            then runP (runL ((r:) <$> lexWhile p) cont) rs c' l' loc r
+            else runP (cont []) (r:rs) c l loc char
 
 -- | lexWhile without the return value.
 lexWhile_ :: (Char -> Bool) -> Lex a ()
@@ -387,13 +460,13 @@
 -- Set the loc to the current position
 
 startToken :: Lex a ()
-startToken = Lex $ \cont -> P $ \s x y _ stk mode ->
+startToken = Lex $ \cont -> P $ \s x y _ c stk mode ->
     let loc = SrcLoc {
         srcFilename = iParseFilename mode,
         srcLine = y,
         srcColumn = x
     } in
-    runP (cont ()) s x y loc stk mode
+    runP (cont ()) s x y loc c stk mode
 
 -- Current status with respect to the offside (layout) rule:
 -- LT: we are to the left of the current indent (if any)
@@ -401,8 +474,8 @@
 -- GT: we are to the right of the current indent, or not subject to layout
 
 getOffside :: Lex a Ordering
-getOffside = Lex $ \cont -> P $ \r x y loc stk ->
-        runP (cont (compare x (indentOfParseState stk))) r x y loc stk
+getOffside = Lex $ \cont -> P $ \r x y loc ch stk ->
+        runP (cont (compare x (indentOfParseState stk))) r x y loc ch stk
 
 getSrcLocL :: Lex a SrcLoc
 getSrcLocL = Lex $ \cont -> P $ \i x y l ->
@@ -413,79 +486,79 @@
         runP (cont ()) i x y
 
 pushContextL :: LexContext -> Lex a ()
-pushContextL ctxt = Lex $ \cont -> P $ \r x y loc (stk, exts, e, pst, cs) ->
-        runP (cont ()) r x y loc (ctxt:stk, exts, e, pst, cs)
+pushContextL ctxt = Lex $ \cont -> P $ \r x y loc ch (stk, exts, e, pst, cs) ->
+        runP (cont ()) r x y loc ch (ctxt:stk, exts, e, pst, cs)
 
 popContextL :: String -> Lex a ()
-popContextL _ = Lex $ \cont -> P $ \r x y loc stk m -> case stk of
-        (_:ctxt, exts, e, pst, cs) -> runP (cont ()) r x y loc (ctxt, exts, e, pst, cs) m
+popContextL _ = Lex $ \cont -> P $ \r x y loc ch stk m -> case stk of
+        (_:ctxt, exts, e, pst, cs) -> runP (cont ()) r x y loc ch (ctxt, exts, e, pst, cs) m
         ([], _, _, _, _)           -> Failed loc "Unexpected }"
 
 pullCtxtFlag :: Lex a Bool
-pullCtxtFlag = Lex $ \cont -> P $ \r x y loc (ct, exts, e, (d,c), cs) ->
-        runP (cont c) r x y loc (ct, exts, e, (d,False), cs)
+pullCtxtFlag = Lex $ \cont -> P $ \r x y loc ch (ct, exts, e, (d,c), cs) ->
+        runP (cont c) r x y loc ch (ct, exts, e, (d,False), cs)
 
 
 flagDo :: Lex a ()
-flagDo = Lex $ \cont -> P $ \r x y loc (ct, exts, e, (_,c), cs) ->
-        runP (cont ()) r x y loc (ct, exts, e, (True,c), cs)
+flagDo = Lex $ \cont -> P $ \r x y loc ch (ct, exts, e, (_,c), cs) ->
+        runP (cont ()) r x y loc ch (ct, exts, e, (True,c), cs)
 
 
 -- Harp/Hsx
 
 getExtContext :: Lex a (Maybe ExtContext)
-getExtContext = Lex $ \cont -> P $ \r x y loc stk@(_, _, e, _, _) ->
+getExtContext = Lex $ \cont -> P $ \r x y loc ch stk@(_, _, e, _, _) ->
         let me = case e of
               [] -> Nothing
               (c:_) -> Just c
-        in runP (cont me) r x y loc stk
+        in runP (cont me) r x y loc ch stk
 
 pushExtContextL :: ExtContext -> Lex a ()
-pushExtContextL ec = Lex $ \cont -> P $ \r x y loc (s, exts, e, p, c) ->
-        runP (cont ()) r x y loc (s, exts, ec:e, p, c)
+pushExtContextL ec = Lex $ \cont -> P $ \r x y loc ch (s, exts, e, p, c) ->
+        runP (cont ()) r x y loc ch (s, exts, ec:e, p, c)
 
 popExtContextL :: String -> Lex a ()
-popExtContextL fn = Lex $ \cont -> P $ \r x y loc (s,exts,e,p,c) m -> case e of
-            (_:ec)   -> runP (cont ()) r x y loc (s,exts,ec,p,c) m
+popExtContextL fn = Lex $ \cont -> P $ \r x y loc ch (s,exts,e,p,c) m -> case e of
+            (_:ec)   -> runP (cont ()) r x y loc ch (s,exts,ec,p,c) m
             []       -> Failed loc ("Internal error: empty tag context in " ++ fn)
 
 
 -- Extension-aware lexing
 
 getExtensionsL :: Lex a [KnownExtension]
-getExtensionsL = Lex $ \cont -> P $ \r x y loc s m ->
-        runP (cont $ iExtensions m) r x y loc s m
+getExtensionsL = Lex $ \cont -> P $ \r x y loc ch s m ->
+        runP (cont $ iExtensions m) r x y loc ch s m
 
 -- | Add an extension to the current configuration.
 addExtensionL :: KnownExtension -> Lex a ()
-addExtensionL ext = Lex $ \cont -> P $ \r x y loc (s, oldExts, e, p, c) m ->
+addExtensionL ext = Lex $ \cont -> P $ \r x y loc ch (s, oldExts, e, p, c) m ->
         let newExts = impliesExts [ext] ++ iExtensions m
-        in runP (cont ()) r x y loc (s, oldExts, e, p, c) (m {iExtensions = newExts})
+        in runP (cont ()) r x y loc ch (s, oldExts, e, p, c) (m {iExtensions = newExts})
 
 -- | Save the current configuration of extensions.
 saveExtensionsL :: Lex a ()
-saveExtensionsL = Lex $ \cont -> P $ \r x y loc (s, oldExts, e, p, c) m ->
-        runP (cont ()) r x y loc (s, iExtensions m:oldExts, e, p, c) m
+saveExtensionsL = Lex $ \cont -> P $ \r x y loc ch (s, oldExts, e, p, c) m ->
+        runP (cont ()) r x y loc ch (s, iExtensions m:oldExts, e, p, c) m
 
 -- | Return to the previous saved extensions configuration.
 restoreExtensionsL :: Lex a ()
-restoreExtensionsL = Lex $ \cont -> P $ \r x y loc (s,exts,e,p,c) m -> case exts of
-            (_:prev) -> runP (cont ()) r x y loc (s,prev,e,p,c) m
+restoreExtensionsL = Lex $ \cont -> P $ \r x y loc ch (s,exts,e,p,c) m -> case exts of
+            (_:prev) -> runP (cont ()) r x y loc ch (s,prev,e,p,c) m
             _        -> Failed loc "Internal error: empty extension stack"
 
 -- LINE-aware lexing
 
 ignoreLinePragmasL :: Lex a Bool
-ignoreLinePragmasL = Lex $ \cont -> P $ \r x y loc s m ->
-        runP (cont $ iIgnoreLinePragmas m) r x y loc s m
+ignoreLinePragmasL = Lex $ \cont -> P $ \r x y loc c s m ->
+        runP (cont $ iIgnoreLinePragmas m) r x y loc c s m
 
 -- If we read a file name in a LINE pragma, we should update the state.
 setLineFilenameL :: String -> Lex a ()
-setLineFilenameL name = Lex $ \cont -> P $ \r x y loc s m ->
-        runP (cont ()) r x y loc s (m {iParseFilename = name})
-        
+setLineFilenameL name = Lex $ \cont -> P $ \r x y loc ch s m ->
+        runP (cont ()) r x y loc ch s (m {iParseFilename = name})
+
 -- Comments
 
 pushComment :: Comment -> Lex a ()
-pushComment c = Lex $ \cont -> P $ \r x y loc (s, exts, e, p, cs) ->
-        runP (cont ()) r x y loc (s, exts, e, p, c:cs)
+pushComment c = Lex $ \cont -> P $ \r x y loc ch (s, exts, e, p, cs) ->
+        runP (cont ()) r x y loc ch (s, exts, e, p, c:cs)
diff --git a/src/Language/Haskell/Exts/ParseSyntax.hs b/src/Language/Haskell/Exts/ParseSyntax.hs
--- a/src/Language/Haskell/Exts/ParseSyntax.hs
+++ b/src/Language/Haskell/Exts/ParseSyntax.hs
@@ -2,14 +2,15 @@
 {-# OPTIONS_HADDOCK hide #-}
 module Language.Haskell.Exts.ParseSyntax where
 
-import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )
-import qualified Language.Haskell.Exts.Annotated.Syntax as S ( Type(..), Promoted(..) )
+import Language.Haskell.Exts.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )
+import qualified Language.Haskell.Exts.Syntax as S ( Type(..), Promoted(..) )
 
 ---------------------------------------
 -- Expressions as we parse them (and patterns, and regular patterns)
 
 data PExp l
     = Var l (QName l)                       -- ^ variable
+    | OverloadedLabel l String              -- ^ overloaded label #foo
     | IPVar l (IPName l)                    -- ^ implicit parameter variable
     | Con l (QName l)                       -- ^ data constructor
     | Lit l (Literal l)                     -- ^ literal constant
@@ -25,12 +26,11 @@
                                             --   the last statement in the list
                                             --   should be an expression.
     | MDo l [Stmt l]                        -- ^ @mdo@-expression
---    | Tuple [PExp]                        -- ^ tuple expression
     | TupleSection l Boxed [Maybe (PExp l)] -- ^ tuple section expression, e.g. @(,,3)@
+    | UnboxedSum l Int Int (PExp l)         -- ^ Unboxed sum
     | List l [PExp l]                       -- ^ list expression
     | ParArray l [PExp l]                   -- ^ parallel array expression
     | Paren l (PExp l)                      -- ^ parenthesized expression
---     RightSection QOp PExp                -- ^ right section @(@/qop/ /exp/@)@
     | RecConstr l (QName l) [PFieldUpdate l]
                                             -- ^ record construction expression
     | RecUpdate l (PExp l) [PFieldUpdate l]
@@ -61,7 +61,7 @@
     | PreOp l (QOp l) (PExp l)              -- ^ pre-ops
 
 -- View patterns
-    | ViewPat l (PExp l) (PExp l)           -- ^ patterns only
+    | ViewPat l (PExp l) (Pat l)            -- ^ patterns only
 
 -- HaRP
     | SeqRP l [PExp l]                      -- ^ regular patterns only
@@ -101,9 +101,11 @@
     | RightArrApp     l (PExp l) (PExp l)   -- ^ e >- e
     | LeftArrHighApp  l (PExp l) (PExp l)   -- ^ e -<< e
     | RightArrHighApp l (PExp l) (PExp l)   -- ^ e >>- e
+    | ArrOp l (PExp l)                      -- ^ (| e |)
 
 -- LambdaCase
     | LCase l [Alt l]                       -- ^ @\case@ /alts/
+    | TypeApp l (S.Type l)
    deriving (Eq,Show,Functor)
 
 data PFieldUpdate l
@@ -118,6 +120,7 @@
 instance Annotated PExp where
     ann e = case e of
         Var l _                 -> l
+        OverloadedLabel l _     -> l
         IPVar l _               -> l
         Con l _                 -> l
         Lit l _                 -> l
@@ -131,6 +134,7 @@
         Do l _                  -> l
         MDo l _                 -> l
         TupleSection l _ _      -> l
+        UnboxedSum l _ _ _      -> l
         List l _                -> l
         ParArray l _            -> l
         Paren l _               -> l
@@ -180,12 +184,16 @@
         RightArrApp     l _ _   -> l
         LeftArrHighApp  l _ _   -> l
         RightArrHighApp l _ _   -> l
+        ArrOp           l _     -> l
 
         LCase l _               -> l
         MultiIf l _             -> l
+        TypeApp l _             -> l
 
+
     amap f e' = case e' of
         Var l qn                -> Var   (f l) qn
+        OverloadedLabel l qn    -> OverloadedLabel (f l) qn
         IPVar l ipn             -> IPVar (f l) ipn
         Con l qn                -> Con   (f l) qn
         Lit l lit               -> Lit   (f l) lit
@@ -199,6 +207,7 @@
         Do l ss                 -> Do (f l) ss
         MDo l ss                -> MDo (f l) ss
         TupleSection l bx mes   -> TupleSection (f l) bx mes
+        UnboxedSum l b a e     -> UnboxedSum (f l) b a e
         List l es               -> List (f l) es
         ParArray l es           -> ParArray (f l) es
         Paren l e               -> Paren (f l) e
@@ -248,9 +257,11 @@
         RightArrApp     l e1 e2 -> RightArrApp     (f l) e1 e2
         LeftArrHighApp  l e1 e2 -> LeftArrHighApp  (f l) e1 e2
         RightArrHighApp l e1 e2 -> RightArrHighApp (f l) e1 e2
+        ArrOp           l e     -> ArrOp           (f l) e
 
         LCase l alts -> LCase (f l) alts
         MultiIf l alts -> MultiIf (f l) alts
+        TypeApp l ty -> TypeApp (f l) ty
 
 instance Annotated PFieldUpdate where
     ann (FieldUpdate l _  _) = l
@@ -292,8 +303,10 @@
         (Maybe [TyVarBind l])
         (Maybe (PContext l))
         (PType l)
+     | TyStar  l                                -- ^ @*@, the type of types
      | TyFun   l (PType l) (PType l)            -- ^ function type
      | TyTuple l Boxed     [PType l]            -- ^ tuple type, possibly boxed
+     | TyUnboxedSum l [PType l]                 -- ^ unboxed sum
      | TyList  l (PType l)                      -- ^ list syntax, e.g. [a], as opposed to [] a
      | TyParArray l (PType l)                   -- ^ parallel array syntax, e.g. [:a:]
      | TyApp   l (PType l) (PType l)            -- ^ application of a type constructor
@@ -301,18 +314,23 @@
      | TyCon   l (QName l)                      -- ^ named type or type constructor
      | TyParen l (PType l)                      -- ^ type surrounded by parentheses
      | TyPred  l (PAsst l)                      -- ^ assertion of an implicit parameter
-     | TyInfix l (PType l) (QName l) (PType l)  -- ^ infix type constructor
+     | TyInfix l (PType l) (MaybePromotedName l) (PType l)  -- ^ infix type constructor
      | TyKind  l (PType l) (Kind l)             -- ^ type with explicit kind signature
      | TyPromoted l (S.Promoted l)              -- ^ promoted data type
+     | TyEquals l (PType l) (PType l)           -- ^ type equality constraint
      | TySplice l (Splice l)                    -- ^ template haskell splice type
-     | TyBang l (BangType l) (PType l)          -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.
+     | TyBang l (BangType l) (Unpackedness l) (PType l) -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.
+     | TyWildCard l (Maybe (Name l))            -- ^ Type wildcard
+     | TyQuasiQuote l String String             -- ^ @[qq| |]@
   deriving (Eq, Show, Functor)
 
 instance Annotated PType where
     ann t = case t of
       TyForall l _ _ _              -> l
+      TyStar  l                     -> l
       TyFun   l _ _                 -> l
       TyTuple l _ _                 -> l
+      TyUnboxedSum l _              -> l
       TyList  l _                   -> l
       TyParArray  l _               -> l
       TyApp   l _ _                 -> l
@@ -322,13 +340,18 @@
       TyInfix l _ _ _               -> l
       TyKind  l _ _                 -> l
       TyPromoted l   _              -> l
+      TyEquals l _ _                 -> l
       TyPred l _                    -> l
       TySplice l _                  -> l
-      TyBang  l _ _                 -> l
+      TyBang  l _ _ _                 -> l
+      TyWildCard  l _               -> l
+      TyQuasiQuote l _ _            -> l
     amap f t' = case t' of
       TyForall l mtvs mcx t         -> TyForall (f l) mtvs mcx t
+      TyStar  l                     -> TyStar (f l)
       TyFun   l t1 t2               -> TyFun (f l) t1 t2
       TyTuple l b ts                -> TyTuple (f l) b ts
+      TyUnboxedSum l ts             -> TyUnboxedSum (f l) ts
       TyList  l t                   -> TyList (f l) t
       TyParArray  l t               -> TyParArray (f l) t
       TyApp   l t1 t2               -> TyApp (f l) t1 t2
@@ -338,41 +361,25 @@
       TyInfix l ta qn tb            -> TyInfix (f l) ta qn tb
       TyKind  l t k                 -> TyKind (f l) t k
       TyPromoted l   p              -> TyPromoted (f l)   p
+      TyEquals l t1 t2              -> TyEquals (f l) t1 t2
       TyPred l asst                 -> TyPred (f l) asst
       TySplice l s                  -> TySplice (f l) s
-      TyBang  l b t                 -> TyBang (f l) b t
+      TyBang  l b u t                 -> TyBang (f l) b u t
+      TyWildCard l mn               -> TyWildCard (f l) mn
+      TyQuasiQuote l n s            -> TyQuasiQuote (f l) n s
 
 data PAsst l
-    = ClassA l (QName l) [PType l]
-    | VarA l (Name l)
-    | InfixA l (PType l) (QName l) (PType l)
+    = TypeA l (PType l)
     | IParam l (IPName l) (PType l)
-    | EqualP l (PType l)  (PType l)
     | ParenA l (PAsst l)
   deriving (Eq, Show, Functor)
 
 instance Annotated PAsst where
     ann asst = case asst of
-        ClassA l _ _        -> l
-        VarA l _            -> l
-        InfixA l _ _ _      -> l
+        TypeA l _           -> l
         IParam l _ _        -> l
-        EqualP l _ _        -> l
         ParenA l _          -> l
     amap f asst = case asst of
-        ClassA l qn ts      -> ClassA (f l) qn ts
-        VarA l n            -> VarA (f l) n
-        InfixA l ta qn tb   -> InfixA (f l) ta qn tb
+        TypeA l t           -> TypeA (f l) t
         IParam l ipn t      -> IParam (f l) ipn t
-        EqualP l t1 t2      -> EqualP (f l) t1 t2
         ParenA l a          -> ParenA (f l) a
-
-
-unit_tycon, fun_tycon, list_tycon, unboxed_singleton_tycon :: l -> PType l
-unit_tycon              l = TyCon l (unit_tycon_name l)
-fun_tycon               l = TyCon l (fun_tycon_name l)
-list_tycon              l = TyCon l (list_tycon_name l)
-unboxed_singleton_tycon l = TyCon l (unboxed_singleton_tycon_name l)
-
-tuple_tycon :: l -> Boxed -> Int -> PType l
-tuple_tycon l b i         = TyCon l (tuple_tycon_name l b i)
diff --git a/src/Language/Haskell/Exts/ParseUtils.hs b/src/Language/Haskell/Exts/ParseUtils.hs
--- a/src/Language/Haskell/Exts/ParseUtils.hs
+++ b/src/Language/Haskell/Exts/ParseUtils.hs
@@ -1,4 +1,6 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE PatternGuards #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Language.Haskell.Exts.ParseUtils
@@ -32,13 +34,16 @@
     , checkPattern          -- PExp -> P Pat
     , checkExpr             -- PExp -> P Exp
     , checkType             -- PType -> P Type
+    , checkTyVar            -- Name  -> P PType
     , bangType              -- L -> BangType -> Type -> Type
     , checkKind             -- Kind -> P ()
     , checkValDef           -- SrcLoc -> PExp -> Maybe Type -> Rhs -> Binds -> P Decl
+    , checkExplicitPatSyn   --
     , checkClassBody        -- [ClassDecl] -> P [ClassDecl]
     , checkInstBody         -- [InstDecl] -> P [InstDecl]
     , checkUnQual           -- QName -> P Name
     , checkQualOrUnQual     -- QName -> P QName
+    , checkSingleDecl       -- [Decl] -> P Decl
     , checkRevDecls         -- [Decl] -> P [Decl]
     , checkRevClsDecls      -- [ClassDecl] -> P [ClassDecl]
     , checkRevInstDecls     -- [InstDecl] -> P [InstDecl]
@@ -49,6 +54,10 @@
     , checkDefSigDef        -- Decl -> P Decl
     , getGConName           -- S.Exp -> P QName
     , mkTyForall            -- Maybe [TyVarBind] -> PContext -> PType -> PType
+    , mkRoleAnnotDecl       --
+    , mkAssocType
+    , mkEThingWith
+    , splitTilde
     -- HaRP
     , checkRPattern         -- PExp -> P RPat
     -- Hsx
@@ -62,15 +71,18 @@
     -- Helpers
     , updateQNameLoc        -- l -> QName l -> QName l
 
+    , SumOrTuple(..), mkSumOrTuple
+
     -- Parsed expressions and types
     , PExp(..), PFieldUpdate(..), ParseXAttr(..), PType(..), PContext, PAsst(..)
     , p_unit_con            -- PExp
     , p_tuple_con           -- Boxed -> Int -> PExp
     , p_unboxed_singleton_con   -- PExp
+    , pexprToQName
     ) where
 
-import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )
-import qualified Language.Haskell.Exts.Annotated.Syntax as S ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )
+import Language.Haskell.Exts.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )
+import qualified Language.Haskell.Exts.Syntax as S ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..), Role(..), PatternSynDirection(..))
 
 import Language.Haskell.Exts.ParseSyntax
 import Language.Haskell.Exts.ParseMonad
@@ -80,16 +92,23 @@
 import Language.Haskell.Exts.ExtScheme
 
 import Prelude hiding (mod)
-import Data.List (intercalate)
+import Data.List (intercalate, intersperse)
 import Data.Maybe (fromJust, fromMaybe)
+import Data.Either
 import Control.Monad (when,unless)
-import Control.Applicative (Applicative (..), (<$>))
 
---- import Debug.Trace (trace)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
 
 type L = SrcSpanInfo
 type S = SrcSpan
 
+pexprToQName :: PExp l -> P (QName l)
+pexprToQName (Con _ qn) = return qn
+pexprToQName (List l []) = return $ Special l (ListCon l)
+pexprToQName _ = fail "pexprToQName"
+
 splitTyConApp :: PType L -> P (Name L, [S.Type L])
 splitTyConApp t0 = do
             (n, pts) <- split t0 []
@@ -99,7 +118,7 @@
     split :: PType L -> [PType L] -> P (Name L, [PType L])
     split (TyApp _ t u) ts = split t (u:ts)
     split (TyCon _ (UnQual _ t)) ts = return (t,ts)
-    split (TyInfix l a op b) ts = split (TyCon l op) (a:b:ts)
+    split (TyInfix l a op b) ts = split (TyCon l (getMaybePromotedQName op)) (a:b:ts)
     split _ _ = fail "Illegal data/newtype declaration"
 
 -----------------------------------------------------------------------------
@@ -108,13 +127,28 @@
 checkEnabled :: (Show e, Enabled e) => e  -> P ()
 checkEnabled e = do
     exts <- getExtensions
-    unless (isEnabled e exts) $ fail $ show e ++ " is not enabled"
+    unless (isEnabled e exts) $ fail errorMsg
+ where errorMsg = unwords
+          [ show e
+          , "language extension is not enabled."
+          , "Please add {-# LANGUAGE " ++ show e ++  " #-}"
+          , "pragma at the top of your module."
+          ]
 
 checkEnabledOneOf :: (Show e, Enabled e) => [e] -> P ()
 checkEnabledOneOf es = do
     exts <- getExtensions
     unless (any (`isEnabled` exts) es) $
-        fail $ (foldr1 (\x s -> x ++ " or " ++ s) . map show $ es) ++ " is not enabled"
+        fail errorMsg
+  where errorMsg = unwords
+          [ "At least one of"
+          , joinOr id
+          , "language extensions needs to be enabled."
+          , "Please add:"
+          , joinOr (\s -> "{-# LANGUAGE " ++ s ++ " #-}")
+          , "language pragma at the top of your module."
+          ]
+        joinOr f = concat . intersperse " or "  . map (f . show) $ es
 
 checkPatternGuards :: [Stmt L] -> P ()
 checkPatternGuards [Qualifier _ _] = return ()
@@ -143,23 +177,9 @@
 checkPContext (TyParen l t) = do
     c <- checkAssertion t
     return $ CxSingle l (ParenA l c)
-checkPContext (TyPred _ p@(EqualP l _ _)) =
-  -- Depending on where EqualP is found, it may contain either 1 or 2 info
-  -- points.
-  --
-  -- If it's by itself, it contains two: one for the tilde, another for =>.
-  -- The => position is important to have in CxSingle, but for EqualP
-  -- itself it's not needed.
-  --
-  -- If it's parsed as an element of a tuple (a ~ b, ...), then it only
-  -- contains one info point. (But that case is handled in a different
-  -- branch.)
-  let
-    withInfoPoints f info = info {srcInfoPoints = f (srcInfoPoints info)}
-  in
-    return $
-      CxSingle (withInfoPoints (drop 1) l) $
-        amap (withInfoPoints $ take 1) p
+checkPContext t@(TyEquals tp _ _) = do
+  checkEnabledOneOf [TypeFamilies, GADTs]
+  return $ CxSingle tp $ TypeA tp t
 
 checkPContext t = do
     c <- checkAssertion t
@@ -174,31 +194,57 @@
 checkAssertion (TyParen l asst) = do
     asst' <- checkAssertion asst
     return $ ParenA l asst'
-checkAssertion (TyPred _ p@(IParam _ _ _)) = return p
+checkAssertion (TyPred _ p) = checkAAssertion p
 -- We cannot even get here unless TypeFamilies or GADTs is enabled.
 -- N.B.: this is called only when the equality assertion is part of a
 -- tuple
-checkAssertion (TyPred _ p@(EqualP _ _ _)) = return p
-checkAssertion t' = checkAssertion' id [] t'
+checkAssertion t' = do
+        t'' <- checkAssertion' id [] t'
+        return $ TypeA (ann t'') t''
     where   -- class assertions must have at least one argument
+            checkAssertion' _ _ t@(TyEquals _ _ _) = return t
             checkAssertion' fl ts (TyCon l c) = do
-                when (length ts /= 1) $ checkEnabled MultiParamTypeClasses
+                when (length ts < 1) $ checkEnabled FlexibleContexts
                 checkAndWarnTypeOperators c
-                return $ ClassA (fl l) c ts
+                return $ tyApps (fl l) (TyCon (fl l) c) ts
             checkAssertion' fl ts (TyApp l a t) =
                 -- no check on t at this stage
                 checkAssertion' (const (fl l)) (t:ts) a
             checkAssertion' fl _ (TyInfix l a op b) = do
                 -- infix operators require TypeOperators
-                checkAndWarnTypeOperators op
-                return $ InfixA (fl l) a op b
+                checkAndWarnTypeOperators (getMaybePromotedQName op)
+                return $ TyInfix (fl l) a op b
             checkAssertion' fl ts (TyParen l t) =
                 checkAssertion' (const (fl l)) ts t
-            checkAssertion' fl [] (TyVar l t) = do -- Dict :: cxt => Dict cxt
+            checkAssertion' fl ts (TyVar l t) = do -- Dict :: cxt => Dict cxt
                 checkEnabled ConstraintKinds
-                return $ VarA (fl l) t
-            checkAssertion' _ _ _ = fail "Illegal class assertion"
+                return $ tyApps (fl l) (TyVar (fl l) t) ts
+            checkAssertion' _ _ t@(TyWildCard _ _) = return t
+            checkAssertion' _ _ t = do
+                checkEnabled QuantifiedConstraints -- anything goes
+                return t
+            tyApps :: L -> PType L -> [PType L] -> PType L
+            tyApps _ c [] = c
+            tyApps l c (a:aa) = tyApps l (TyApp l c a) aa
 
+checkAAssertion :: PAsst L -> P (PAsst L)
+checkAAssertion (TypeA _ t) = checkAssertion t
+checkAAssertion (ParenA l a) = do
+    a' <- checkAAssertion a
+    return $ ParenA l a'
+checkAAssertion p = return p
+
+-- Check class/instance declaration for multiparams
+checkMultiParam :: PType L -> P ()
+checkMultiParam = checkMultiParam' []
+    where
+        checkMultiParam' ts (TyCon _ _) =
+            when (length ts /= 1) $ checkEnabled MultiParamTypeClasses
+        checkMultiParam' ts (TyApp _ a t) = checkMultiParam' (t:ts) a
+        checkMultiParam' _ (TyInfix _ _ _ _) = checkEnabled MultiParamTypeClasses
+        checkMultiParam' ts (TyParen _ t) = checkMultiParam' ts t
+        checkMultiParam' _ _ = return ()
+
 getSymbol :: QName L -> Maybe String
 getSymbol (UnQual _ (Symbol _ s)) = Just s
 getSymbol (Qual _ _ (Symbol _ s)) = Just s
@@ -219,8 +265,8 @@
 checkSContext :: Maybe (PContext L) -> P (Maybe (S.Context L))
 checkSContext (Just ctxt) = case ctxt of
     CxEmpty l -> return $ Just $ S.CxEmpty l
-    CxSingle l a -> checkAsst True a >>= return . Just . S.CxSingle l
-    CxTuple l as -> mapM (checkAsst True) as >>= return . Just . S.CxTuple l
+    CxSingle l a -> checkAsst a >>= return . Just . S.CxSingle l
+    CxTuple l as -> mapM checkAsst as >>= return . Just . S.CxTuple l
 checkSContext _ = return Nothing
 
 -- Checks ordinary contexts for sigtypes and data type
@@ -230,46 +276,23 @@
 checkContext :: Maybe (PContext L) -> P (Maybe (S.Context L))
 checkContext (Just ctxt) = case ctxt of
     CxEmpty l -> return $ Just $ S.CxEmpty l
-    CxSingle l a -> checkAsst False a >>= return . Just . S.CxSingle l
-    CxTuple l as -> mapM (checkAsst False) as >>= return . Just . S.CxTuple l
+    CxSingle l a -> checkAsst a >>= return . Just . S.CxSingle l
+    CxTuple l as -> mapM checkAsst as >>= return . Just . S.CxTuple l
 checkContext _ = return Nothing
 
-checkAsst :: Bool -> PAsst L -> P (S.Asst L)
-checkAsst isSimple asst =
+checkAsst :: PAsst L -> P (S.Asst L)
+checkAsst asst =
     case asst of
-      ClassA l qn pts -> do
-                ts <- mapM (checkAsstParam isSimple) pts
-                return $ S.ClassA l qn ts
-      VarA l n        -> return $ S.VarA l n
-      InfixA l a op b -> do
-                [a',b'] <- mapM (checkAsstParam isSimple) [a,b]
-                return $ S.InfixA l a' op b'
+      TypeA l pt -> do
+                t <- checkType pt
+                return $ S.TypeA l t
       IParam l ipn pt -> do
                 t <- checkType pt
                 return $ S.IParam l ipn t
-      EqualP l pa pb  -> do
-                a <- checkType pa
-                b <- checkType pb
-                return $ S.EqualP l a b
       ParenA l a      -> do
-                a' <- checkAsst isSimple a
+                a' <- checkAsst a
                 return $ S.ParenA l a'
 
-checkAsstParam :: Bool -> PType L -> P (S.Type L)
-checkAsstParam isSimple t = do
-        exts <- getExtensions
-        if FlexibleContexts `elem` exts
-         then checkType t
-         else case t of
-                TyVar l n     -> return $ S.TyVar l n
-                TyParen l t1  -> do t1' <- checkAsstParam isSimple t1
-                                    return $ S.TyParen l t1'
-                TyApp l pf pt | not isSimple    -> do
-                        f <- checkAsstParam isSimple pf
-                        t' <- checkType pt
-                        return $ S.TyApp l f t'
-                _       -> fail "Malformed context: FlexibleContexts is not enabled"
-
 -----------------------------------------------------------------------------
 -- Checking Headers
 
@@ -285,10 +308,12 @@
 
 checkClassHeader :: PType L -> P (Maybe (S.Context L), DeclHead L)
 checkClassHeader (TyForall _ Nothing cs t) = do
+    checkMultiParam t
     dh <- checkSimple "class" t
     cs' <- checkSContext cs
     return (cs',dh)
 checkClassHeader t = do
+    checkMultiParam t
     dh <- checkSimple "class" t
     return (Nothing,dh)
 
@@ -299,7 +324,9 @@
   tvb <- mkTyVarBind kw t
   h' <- checkSimple kw h
   return $ DHApp l h' tvb
-checkSimple kw (TyInfix l t1 c@(UnQual _ t) t2) = do
+checkSimple kw (TyInfix l t1 mq t2)
+  | c@(UnQual _ t) <- getMaybePromotedQName mq
+  = do
        checkAndWarnTypeOperators c
        tv1 <- mkTyVarBind kw t1
        tv2 <- mkTyVarBind kw t2
@@ -335,8 +362,9 @@
 checkInstHeader (TyParen l t) = checkInstHeader t >>= return . IParen l
 checkInstHeader (TyForall l mtvs cs t) = do
     cs' <- checkSContext cs
+    checkMultiParam t
     checkInsts (Just l) mtvs cs' t
-checkInstHeader t = checkInsts Nothing Nothing Nothing t
+checkInstHeader t = checkMultiParam t >> checkInsts Nothing Nothing Nothing t
 
 
 checkInsts :: Maybe L -> Maybe [TyVarBind L] -> Maybe (S.Context L) -> PType L -> P (InstRule L)
@@ -354,9 +382,9 @@
     checkAndWarnTypeOperators c
     return $ IHCon l c
 checkInstsGuts (TyInfix l a op b) = do
-    checkAndWarnTypeOperators op
+    checkAndWarnTypeOperators (getMaybePromotedQName op)
     [ta,tb] <- checkTypes [a,b]
-    return $ IHApp l (IHInfix l ta op) tb
+    return $ IHApp l (IHInfix l ta (getMaybePromotedQName op)) tb
 checkInstsGuts (TyParen l t) = checkInstsGuts t >>= return . IHParen l
 checkInstsGuts _ = fail "Illegal instance declaration"
 
@@ -373,7 +401,9 @@
 checkPattern e = checkPat e []
 
 checkPat :: PExp L -> [Pat L] -> P (Pat L)
-checkPat (Con l c) args = return (PApp l c args)
+checkPat (Con l c) args = do
+  let l' = foldl combSpanInfo l (map ann args)
+  return (PApp l' c args)
 checkPat (App _ f x) args = do
     x' <- checkPat x []
     checkPat f (x':args)
@@ -386,6 +416,7 @@
         checkPat l (ps++args)
 checkPat e' [] = case e' of
     Var _ (UnQual l x)   -> return (PVar l x)
+    Var _ (Special l (ExprHole _)) -> return (PWildCard l)
     Lit l lit            -> return (PLit l (Signless l2) lit)
             where l2 = noInfoSpan . srcInfoSpan $ l
     InfixApp loc l op r  ->
@@ -408,6 +439,8 @@
              then do ps <- mapM (\e -> checkPat e []) (map fromJust mes)
                      return (PTuple l bx ps)
              else fail "Illegal tuple section in pattern"
+    UnboxedSum l b a e ->
+      PUnboxedSum l b a <$> checkPattern e
 
     List l es      -> do
                   ps <- mapM checkRPattern es
@@ -438,8 +471,7 @@
                   return (PIrrPat l p)
     ViewPat l e p  -> do
                   e1 <- checkExpr e
-                  p1 <- checkPat p []
-                  return (PViewPat l e1 p1)
+                  return (PViewPat l e1 p)
     RecConstr l c fs   -> do
                   fs' <- mapM checkPatField fs
                   return (PRec l c fs')
@@ -480,7 +512,8 @@
             rps <- mapM checkRPattern es
             return (PXRPats l $ map fixRPOpPrec rps)
 
-    -- QuasiQuotation
+    -- Template Haskell
+    SpliceExp l e -> return $ PSplice l e
     QuasiQuote l n q -> return $ PQuasiQuote l n q
 
     -- BangPatterns
@@ -608,6 +641,7 @@
 checkExpr :: PExp L -> P (S.Exp L)
 checkExpr e' = case e' of
     Var l v               -> return $ S.Var l v
+    OverloadedLabel l v   -> return $ S.OverloadedLabel l v
     IPVar l v             -> return $ S.IPVar l v
     Con l c               -> return $ S.Con l c
     Lit l lit             -> return $ S.Lit l lit
@@ -630,6 +664,7 @@
                              else do checkEnabled TupleSections
                                      mes' <- mapM mCheckExpr mes
                                      return $ S.TupleSection l bx mes'
+    UnboxedSum l before after e -> S.UnboxedSum l before after <$> checkExpr e
 
 
     List l es         -> checkManyExprs es (S.List l)
@@ -702,10 +737,14 @@
     RightArrApp l e1 e2     -> check2Exprs e1 e2 (S.RightArrApp l)
     LeftArrHighApp l e1 e2  -> check2Exprs e1 e2 (S.LeftArrHighApp l)
     RightArrHighApp l e1 e2 -> check2Exprs e1 e2 (S.RightArrHighApp l)
+    ArrOp l e               -> S.ArrOp l <$> checkExpr e
 
     -- LamdaCase
     LCase l alts -> return $ S.LCase l alts
 
+    -- Hole
+    TypeApp l ty   -> return $ S.TypeApp l ty
+
     _             -> fail $ "Parse error in expression: " ++ prettyPrint e'
 
 checkAttr :: ParseXAttr L -> P (S.XAttr L)
@@ -801,10 +840,14 @@
         exts <- getExtensions
         if BangPatterns `elem` exts
          then let (b,bs) = splitBang r []
-               in isFunLhs l (BangPat loc b : bs ++ es)
+                  loc' = combSpanInfo loc (ann b)
+               in isFunLhs l (BangPat loc' b : bs ++ es)
          else return $ Just (op, l:r:es, False, []) -- It's actually a definition of the operator !
-    | otherwise = return $ Just (op, l:r:es, False, [])
-isFunLhs (App _ (Var _ (UnQual _ f)) e) es = return $ Just (f, e:es, True, [])
+    | otherwise =
+        let infos = srcInfoPoints loc
+            op'   = amap (\s -> s { srcInfoPoints = infos }) op
+        in (return $ Just (op', l:r:es, False, []))
+isFunLhs (App _ (Var l (UnQual _ f)) e) es = return $ Just (f, e:es, True, srcInfoPoints l)
 isFunLhs (App _ f e) es = isFunLhs f (e:es)
 isFunLhs (Var _ (UnQual _ f)) es@(_:_) = return $ Just (f, es, True, [])
 isFunLhs (Paren l f) es@(_:_) = do mlhs <- isFunLhs f es
@@ -822,6 +865,19 @@
 checkSigVar (Var _ (UnQual l n)) = return $ fmap (const l) n
 checkSigVar e = fail $ "Left-hand side of type signature is not a variable: " ++ prettyPrint e
 
+checkExplicitPatSyn :: S -> S -> ([Decl L], [S]) -> S -> P (PatternSynDirection L)
+checkExplicitPatSyn whereLoc openLoc (decls, semis) closeLoc =
+  let l = whereLoc <^^> closeLoc  <** ([whereLoc, openLoc] ++ semis ++ [closeLoc])
+  in  S.ExplicitBidirectional l  <$> mapM checkDecls decls
+  where
+    checkDecls :: Decl L -> P (Decl L)
+    checkDecls p@(PatBind _ pat _ _) =
+      case pat of
+        PApp _ _ _        -> return p
+        PInfixApp _ _ _ _ ->  return p
+        _ -> fail "Illegal pattern binding in PatternSynonym"
+    checkDecls _                 = fail "pattern synonym 'where' clause must contain a PatBind"
+
 -----------------------------------------------------------------------------
 -- In a class or instance body, a pattern binding must be of a variable.
 
@@ -899,6 +955,17 @@
 updateQNameLoc l (Special _ s) = Special l s
 
 -----------------------------------------------------------------------------
+-- For standalone top level Decl parser, check that we actually only
+-- parsed one Decl. This is needed since we parse matches of the same
+-- FunBind as multiple separate declarations, and merge them after.
+-- This should be called *after* checkRevDecls.
+
+checkSingleDecl :: [Decl L] -> P (Decl L)
+checkSingleDecl [d] = return d
+checkSingleDecl ds =
+    fail $ "Expected a single declaration, found " ++ show (length ds)
+
+
 -- Reverse a list of declarations, merging adjacent FunBinds of the
 -- same name and checking that their arities match.
 
@@ -911,11 +978,12 @@
         where
         arity = length ps
         mergeMatches ms' (FunBind _ ms@(Match loc name' ps' _ _:_):ds) l
-            | name' =~= name =
-            if length ps' /= arity
-            then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
+            | name' =~= name = do
+            ignoreArity <- getIgnoreFunctionArity
+            if length ps' == arity || ignoreArity
+              then mergeMatches (ms++ms') ds (loc <++> l)
+              else fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
                     `atSrcLoc` fromSrcInfo loc
-            else mergeMatches (ms++ms') ds (loc <++> l)
         mergeMatches ms' ds l = mergeFunBinds (FunBind l ms':revDs) ds
     mergeFunBinds revDs (FunBind l' ims1@(InfixMatch _ _ name _ _ _:_):ds1) =
         mergeInfix ims1 ds1 l'
@@ -935,11 +1003,12 @@
         where
         arity = length ps
         mergeMatches ms' (ClsDecl _ (FunBind _ ms@(Match loc name' ps' _ _:_)):ds) l
-            | name' =~= name =
-            if length ps' /= arity
-            then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
+            | name' =~= name = do
+            ignoreArity <- getIgnoreFunctionArity
+            if length ps' == arity || ignoreArity
+              then mergeMatches (ms++ms') ds (loc <++> l)
+              else fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
                     `atSrcLoc` fromSrcInfo loc
-            else mergeMatches (ms++ms') ds (loc <++> l)
         mergeMatches ms' ds l = mergeClsFunBinds (ClsDecl l (FunBind l ms'):revDs) ds
     mergeClsFunBinds revDs (ClsDecl l' (FunBind _ ims1@(InfixMatch _ _ name _ _ _:_)):ds1) =
         mergeInfix ims1 ds1 l'
@@ -960,11 +1029,12 @@
         where
         arity = length ps
         mergeMatches ms' (InsDecl _ (FunBind _ ms@(Match loc name' ps' _ _:_)):ds) l
-            | name' =~= name =
-            if length ps' /= arity
-            then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
+            | name' =~= name = do
+            ignoreArity <- getIgnoreFunctionArity
+            if length ps' == arity || ignoreArity
+              then mergeMatches (ms++ms') ds (loc <++> l)
+              else fail ("arity mismatch for '" ++ prettyPrint name ++ "'")
                     `atSrcLoc` fromSrcInfo loc
-            else mergeMatches (ms++ms') ds (loc <++> l)
         mergeMatches ms' ds l = mergeInstFunBinds (InsDecl l (FunBind l ms'):revDs) ds
     mergeInstFunBinds revDs (InsDecl l' (FunBind _ ims1@(InfixMatch _ _ name _ _ _:_)):ds1) =
         mergeInfix ims1 ds1 l'
@@ -999,9 +1069,16 @@
 -- Check actual types
 
 -- | Add a strictness/unpack annotation on a type.
-bangType :: L -> BangType L -> PType L -> PType L
-bangType = TyBang
+bangType :: Maybe (L -> BangType L, S) -> Maybe (Unpackedness L) -> PType L -> PType L
+bangType mstrict munpack ty =
+  case (mstrict,munpack) of
+    (Nothing, Just upack) -> TyBang (ann upack <++> ann ty) (NoStrictAnnot noSrcSpan) upack ty
+    (Just (strict, pos), _)  ->
+      TyBang (fmap ann munpack <?+> noInfoSpan pos <++> ann ty) (strict (noInfoSpan pos))
+        (fromMaybe (NoUnpackPragma noSrcSpan) munpack) ty
+    (Nothing, Nothing) -> ty
 
+
 checkType :: PType L -> P (S.Type L)
 checkType t = checkT t False
 
@@ -1015,8 +1092,10 @@
             checkEnabled ExplicitForAll
             ctxt <- checkContext cs
             check1Type pt (S.TyForall l tvs ctxt)
+    TyStar  l         -> return $ S.TyStar l
     TyFun   l at rt   -> check2Types at rt (S.TyFun l)
     TyTuple l b pts   -> checkTypes pts >>= return . S.TyTuple l b
+    TyUnboxedSum l es -> checkTypes es >>= return . S.TyUnboxedSum l
     TyList  l pt      -> check1Type pt (S.TyList l)
     TyParArray l pt   -> check1Type pt (S.TyParArray l)
     TyApp   l ft at   -> check2Types ft at (S.TyApp l)
@@ -1027,21 +1106,26 @@
     TyParen l pt      -> check1Type pt (S.TyParen l)
     -- Here we know that t will be used as an actual type (and not a data constructor)
     -- so we can check that TypeOperators are enabled.
-    TyInfix l at op bt -> checkAndWarnTypeOperators op >> check2Types at bt (flip (S.TyInfix l) op)
+    TyInfix l at op bt -> checkAndWarnTypeOperators (getMaybePromotedQName op)
+                           >> check2Types at bt (flip (S.TyInfix l) op)
     TyKind  l pt k    -> check1Type pt (flip (S.TyKind l) k)
 
-     -- TyPred can be a valid type if ConstraintKinds is enabled, unless it is an implicit parameter, which is not a valid type 
-    TyPred _ (ClassA l className cvars) -> mapM checkType cvars >>= \vars -> return (foldl1 (S.TyApp l) (S.TyCon l className:vars))
-    TyPred _ (InfixA l t0 op t1)        -> S.TyInfix l <$> checkType t0 <*> pure op <*> checkType t1 
-    TyPred _ (EqualP l t0    t1)        -> S.TyEquals l <$> checkType t0 <*> checkType t1 where 
-
     TyPromoted l p -> return $ S.TyPromoted l p -- ??
+    TyEquals l at bt   -> check2Types at bt (S.TyEquals l)
     TySplice l s        -> do
                               checkEnabled TemplateHaskell
                               return $ S.TySplice l s
-    TyBang l b t' -> check1Type t' (S.TyBang l b)
+    TyBang l b u t' -> check1Type t' (S.TyBang l b u)
+    TyWildCard l mn -> return $ S.TyWildCard l mn
+    TyQuasiQuote l n s -> do
+                              checkEnabled QuasiQuotes
+                              return $ S.TyQuasiQuote l n s
     _   -> fail $ "Parse error in type: " ++ prettyPrint t
 
+getMaybePromotedQName :: MaybePromotedName l -> QName l
+getMaybePromotedQName (PromotedName _ q) = q
+getMaybePromotedQName (UnpromotedName _ q) = q
+
 check1Type :: PType L -> (S.Type L -> S.Type L) -> P (S.Type L)
 check1Type pt f = checkT pt True >>= return . f
 
@@ -1051,16 +1135,31 @@
 checkTypes :: [PType L] -> P [S.Type L]
 checkTypes = mapM (flip checkT True)
 
+checkTyVar ::  Name L -> P (PType L)
+checkTyVar n = do
+  e <- getExtensions
+  return $
+    case n of
+      Ident il ('_':ident) | NamedWildCards `elem` e ->
+        TyWildCard il (Just (Ident (reduceSrcSpanInfo il) ident))
+      _ ->
+        TyVar (ann n) n
+  where
+    -- Reduces the length of the SrcSpanInfo by 1 so that it just covers the identifier.
+    reduceSrcSpanInfo spaninfo =
+      let ss = srcInfoSpan spaninfo
+          ss' = ss { srcSpanStartColumn = srcSpanStartColumn ss + 1 }
+      in  spaninfo { srcInfoSpan = ss' }
 ---------------------------------------
 -- Check kinds
 
 -- ConstraintKinds allow the kind "Constraint", but not "Nat", etc. Specifically
 -- test for that.
-checkKind :: Show l => Kind l -> P ()
+checkKind :: Kind l -> P ()
 checkKind k = case k of
-        KindVar _ q | constrKind q -> checkEnabledOneOf [ConstraintKinds, DataKinds]
+        S.TyVar _ q | constrKind q -> checkEnabledOneOf [ConstraintKinds, DataKinds]
             where constrKind name = case name of
-                    (UnQual _ (Ident _ n)) -> n == "Constraint"
+                    Ident _ n -> n == "Constraint"
                     _                      -> False
 
         _ -> checkEnabled DataKinds
@@ -1104,3 +1203,109 @@
     case (ctxt, ty) of
         (Nothing, TyForall _ Nothing ctxt2 ty2) -> TyForall l mtvs ctxt2 ty2
         _                                       -> TyForall l mtvs ctxt ty
+
+-- Make a role annotation
+
+mkRoleAnnotDecl ::  S -> S -> QName L -> [(Maybe String, L)] -> P (Decl L)
+mkRoleAnnotDecl l1 l2 tycon roles
+  = do roles' <- mapM parse_role roles
+       return (RoleAnnotDecl loc' tycon roles')
+  where
+    loc' =
+      case roles of
+        [] -> (l1 <^^> l2 <++> ann tycon) <** [l1, l2]
+        _  -> (l1 <^^> l2 <++> ann tycon <++> foldl1 (<++>) (map snd roles)) <** [l1, l2]
+    possible_roles = [ ("phantom", S.Phantom)
+                     , ("representational", S.Representational)
+                     , ("nominal", S.Nominal)]
+
+    parse_role (Nothing, loc_role) = return $ S.RoleWildcard loc_role
+    parse_role (Just role, loc_role)
+      = case lookup role possible_roles of
+          Just found_role -> return $ found_role loc_role
+          Nothing         ->
+            fail ("Illegal role name " ++ role)
+
+
+
+
+mkAssocType :: S -> PType L -> (Maybe (ResultSig L), Maybe (S, S.Type L), Maybe (InjectivityInfo L)) -> P (ClassDecl L)
+mkAssocType tyloc ty (mres, mty, minj)  =
+  case (mres,mty, minj) of
+    -- No additional information
+    (Nothing, Nothing, Nothing) -> do
+      dh <- checkSimpleType ty
+      return $ ClsTyFam (noInfoSpan tyloc <++> ann ty) dh Nothing Nothing
+    -- Type default
+    (_, Just (eqloc, rhsty), Nothing) -> do
+      ty' <- checkType ty
+      let tyeq = TypeEqn (ann ty <++> ann rhsty <** [eqloc]) ty' rhsty
+      return $ ClsTyDef (noInfoSpan tyloc <++> ann ty <** [tyloc]) tyeq
+    -- Declaration with kind sig
+    (Just ressig, _, _) -> do
+      dh <- checkSimpleType ty
+      return $ ClsTyFam (noInfoSpan tyloc <++> ann ressig <** [tyloc]) dh (Just ressig) Nothing
+    -- Decl with inj info
+    (Nothing, Just (eqloc, rhsty), Just injinfo) -> do
+      ressig <- checkKTyVar eqloc rhsty
+      dh <- checkSimpleType ty
+      return $ ClsTyFam (noInfoSpan tyloc <++> ann injinfo <** [tyloc]) dh (Just ressig) minj
+    _ -> error "mkAssocType"
+
+  where
+    checkKTyVar :: S -> S.Type L -> P (ResultSig L)
+    checkKTyVar eqloc rhsty =
+      case rhsty of
+       S.TyVar l n -> return $ TyVarSig (noInfoSpan eqloc <++> l <** [eqloc]) (UnkindedVar l n)
+       S.TyKind l (S.TyVar _ n) k -> return $ TyVarSig (noInfoSpan eqloc <++> l <** [eqloc]) (KindedVar l n k)
+       _ -> fail ("Result of type family must be a type variable")
+
+-- | Transform btype with strict_mark's into HsEqTy's
+-- (((~a) ~b) c) ~d ==> ((~a) ~ (b c)) ~ d
+splitTilde :: PType L -> PType L
+splitTilde t = go t
+  where go (TyApp loc t1 t2)
+          | TyBang _ (LazyTy eqloc) (NoUnpackPragma _) t2' <- t2
+          = TyEquals (loc <** [srcInfoSpan eqloc]) (go t1) t2'
+          | otherwise
+          = case go t1 of
+              TyEquals eqloc tl tr ->
+                TyEquals (eqloc <++> ann t2 <** srcInfoPoints eqloc) tl (TyApp (ann tr <++> ann t2) tr t2)
+              t' -> TyApp loc t' t2
+
+        go t' = t'
+
+-- Expects the arguments in the right order
+mkEThingWith :: L -> QName L -> [Either S (CName L)] -> P (ExportSpec L)
+mkEThingWith loc qn mcns = do
+  when (isWc wc && not (null cnames)) (checkEnabled PatternSynonyms)
+  return $ EThingWith loc wc qn cnames
+  where
+    isWc (NoWildcard {}) = False
+    isWc _ = True
+
+    wc :: EWildcard L
+    wc = maybe (NoWildcard noSrcSpan)
+               (\(n,Left s) -> EWildcard (noInfoSpan s) n)
+               (findWithIndex 0 checkLeft mcns)
+
+    checkLeft :: Either a b -> Bool
+    checkLeft (Left _) = True
+    checkLeft _ = False
+
+    cnames = rights mcns
+
+    findWithIndex :: Int -> (a -> Bool) -> [a] -> Maybe (Int, a)
+    findWithIndex _ _ [] = Nothing
+    findWithIndex n p (x:xs)
+      | p x = Just (n, x)
+      | otherwise = findWithIndex (n + 1) p xs
+
+data SumOrTuple l = SSum Int Int (PExp l)
+                  | STuple [Maybe (PExp l)]
+
+mkSumOrTuple :: Boxed -> L -> SumOrTuple L -> P (PExp L)
+mkSumOrTuple Unboxed s (SSum before after e) = return (UnboxedSum s before after e)
+mkSumOrTuple boxity s (STuple ms) =
+    return $ TupleSection s boxity ms
+mkSumOrTuple Boxed _s (SSum {}) = fail "Boxed sums are not implemented"
diff --git a/src/Language/Haskell/Exts/Parser.hs b/src/Language/Haskell/Exts/Parser.hs
--- a/src/Language/Haskell/Exts/Parser.hs
+++ b/src/Language/Haskell/Exts/Parser.hs
@@ -1,191 +1,259 @@
+{-# LANGUAGE CPP, DeriveDataTypeable, FlexibleInstances, DeriveFunctor #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Language.Haskell.Exts.Parser
--- Copyright   :  (c) The GHC Team, 1997-2000
---                (c) Niklas Broberg, 2004-2012
+-- Module      :  Language.Haskell.Exts.Annotated.Parser
+-- Copyright   :  (c) Niklas Broberg 2004-2009
+--                (c) Michael Sloan 2013
 -- License     :  BSD-style (see the file LICENSE.txt)
 --
--- Maintainer  :  Niklas Broberg, niklas.broberg@chalmers.se
+-- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
 -- Stability   :  stable
 -- Portability :  portable
 --
--- Parser for Haskell with extensions.
+-- Annotated parser for Haskell with extensions.
 --
 -----------------------------------------------------------------------------
-
 module Language.Haskell.Exts.Parser
-            (
-                -- * General parsing
-                Parseable(..),
-                ParseMode(..), defaultParseMode, ParseResult(..), fromParseResult,
-                -- * Parsing of specific AST elements
-                -- ** Modules
-                parseModule, parseModuleWithMode, parseModuleWithComments,
-                -- ** Expressions
-                parseExp, parseExpWithMode, parseExpWithComments,
-                -- ** Statements
-                parseStmt, parseStmtWithMode, parseStmtWithComments,
-                -- ** Patterns
-                parsePat, parsePatWithMode, parsePatWithComments,
-                -- ** Declarations
-                parseDecl, parseDeclWithMode, parseDeclWithComments,
-                -- ** Types
-                parseType, parseTypeWithMode, parseTypeWithComments,
-                -- ** Option pragmas
-                getTopPragmas
-            ) where
+    (
+    -- * General parsing
+      Parseable(parse, parseWithMode, parseWithComments)
+    , ParseMode(..), defaultParseMode, ParseResult(..), fromParseResult
+    -- * Parsing of specific AST elements
+    -- ** Modules
+    , parseModule, parseModuleWithMode, parseModuleWithComments
+    -- ** Expressions
+    , parseExp, parseExpWithMode, parseExpWithComments
+    -- ** Statements
+    , parseStmt, parseStmtWithMode, parseStmtWithComments
+    -- ** Patterns
+    , parsePat, parsePatWithMode, parsePatWithComments
+    -- ** Declarations
+    , parseDecl, parseDeclWithMode, parseDeclWithComments
+    -- ** Types
+    , parseType, parseTypeWithMode, parseTypeWithComments
+    -- ** Imports
+    , parseImportDecl, parseImportDeclWithMode, parseImportDeclWithComments
+    -- * Non-greedy parsers
+    , NonGreedy(..)
+    , ListOf(..), unListOf
+    -- ** Module head parsers
+    , getTopPragmas
+    , PragmasAndModuleName(..)
+    , PragmasAndModuleHead(..)
+    , ModuleHeadAndImports(..)
+    ) where
 
+import Data.Data hiding (Fixity)
+import Language.Haskell.Exts.Fixity
+import Language.Haskell.Exts.Syntax
+import Language.Haskell.Exts.Comments
+import Language.Haskell.Exts.InternalParser
+import Language.Haskell.Exts.ParseMonad
+import Language.Haskell.Exts.SrcLoc
 
-import Language.Haskell.Exts.InternalParser ( ParseMode(..), defaultParseMode, ParseResult(..), fromParseResult )
-import qualified Language.Haskell.Exts.InternalParser as P
+instance Parseable (Decl   SrcSpanInfo) where parser = normalParser mparseDecl
+instance Parseable (Exp    SrcSpanInfo) where parser = normalParser mparseExp
+instance Parseable (Module SrcSpanInfo) where parser = normalParser mparseModule
+instance Parseable (Pat    SrcSpanInfo) where parser = normalParser mparsePat
+instance Parseable (Stmt   SrcSpanInfo) where parser = normalParser mparseStmt
+instance Parseable (Type   SrcSpanInfo) where parser = normalParserNoFixity mparseType
+instance Parseable (ImportDecl SrcSpanInfo) where parser = normalParserNoFixity mparseImportDecl
 
-import Language.Haskell.Exts.Annotated.Syntax
-import qualified Language.Haskell.Exts.Syntax as S
-import Language.Haskell.Exts.Annotated.Simplify
+normalParser :: AppFixity a => P (a SrcSpanInfo) -> Maybe [Fixity] -> P (a SrcSpanInfo)
+normalParser p Nothing = p
+normalParser p (Just fixs) = p >>= \ast -> applyFixities fixs ast `atSrcLoc` noLoc
 
-import Language.Haskell.Exts.SrcLoc
-import Language.Haskell.Exts.Comments
+normalParserNoFixity :: P (a SrcSpanInfo) -> Maybe [Fixity] -> P (a SrcSpanInfo)
+normalParserNoFixity p _ = p
 
-import Prelude hiding (mod)
+-- Type-specific functions
 
-getTopPragmas :: String -> ParseResult [S.ModulePragma]
-getTopPragmas = fmap (map sModulePragma) . P.getTopPragmas
+-- | Parse of a string, which should contain a complete Haskell module, using 'defaultParseMode'.
+parseModule :: String -> ParseResult (Module SrcSpanInfo)
+parseModule = parse
 
--- | Class to reuse the parse function at many different types.
-class Parseable ast where
-  -- | Parse a string with default mode.
-  parse :: String -> ParseResult ast
-  -- | Parse a string with an explicit mode.
-  parseWithMode :: ParseMode -> String -> ParseResult ast
-  -- | Parse a string with an explicit mode, returning all comments along the AST
-  parseWithComments :: ParseMode -> String -> ParseResult (ast, [Comment])
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode'.
+parseModuleWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo)
+parseModuleWithMode = parseWithMode
 
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseModuleWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
+parseModuleWithComments = parseWithComments
 
-instance SrcInfo loc => Parseable (Module loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parseModule
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parseModuleWithMode
-  parseWithComments md s = P.parseModuleWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a Haskell expression, using 'defaultParseMode'.
+parseExp :: String -> ParseResult (Exp SrcSpanInfo)
+parseExp = parse
 
-instance SrcInfo loc => Parseable (Exp loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parseExp
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parseExpWithMode
-  parseWithComments md s = P.parseExpWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a Haskell expression, using an explicit 'ParseMode'.
+parseExpWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo)
+parseExpWithMode = parseWithMode
 
-instance SrcInfo loc => Parseable (Pat loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parsePat
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parsePatWithMode
-  parseWithComments md s = P.parsePatWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseExpWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment])
+parseExpWithComments = parseWithComments
 
-instance SrcInfo loc => Parseable (Decl loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parseDecl
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parseDeclWithMode
-  parseWithComments md s = P.parseDeclWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a Haskell pattern, using 'defaultParseMode'.
+parsePat :: String -> ParseResult (Pat SrcSpanInfo)
+parsePat = parse
 
-instance SrcInfo loc => Parseable (Type loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parseType
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parseTypeWithMode
-  parseWithComments md s = P.parseTypeWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a Haskell pattern, using an explicit 'ParseMode'.
+parsePatWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo)
+parsePatWithMode = parseWithMode
 
-instance SrcInfo loc => Parseable (Stmt loc) where
-  parse = fmap (fmap fromSrcInfo) . P.parseStmt
-  parseWithMode = (fmap (fmap fromSrcInfo) .) . P.parseStmtWithMode
-  parseWithComments md s = P.parseStmtWithComments md s >>= \(r, cs) -> return (fmap fromSrcInfo r, cs)
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parsePatWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment])
+parsePatWithComments = parseWithComments
 
+-- | Parse of a string containing a Haskell top-level declaration, using 'defaultParseMode'.
+parseDecl :: String -> ParseResult (Decl SrcSpanInfo)
+parseDecl = parse
 
--- | Parse of a string, which should contain a complete Haskell module.
-parseModule :: String -> ParseResult S.Module
-parseModule = fmap sModule . P.parseModule
+-- | Parse of a string containing a Haskell top-level declaration, using an explicit 'ParseMode'.
+parseDeclWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo)
+parseDeclWithMode = parseWithMode
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode.
-parseModuleWithMode :: ParseMode -> String -> ParseResult S.Module
-parseModuleWithMode = (fmap sModule .) . P.parseModuleWithMode
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseDeclWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment])
+parseDeclWithComments = parseWithComments
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseModuleWithComments :: ParseMode -> String -> ParseResult (S.Module, [Comment])
-parseModuleWithComments = (fmap (\(mod, cs) -> (sModule mod, cs)) .) . P.parseModuleWithComments
+-- | Parse of a string containing a Haskell type, using 'defaultParseMode'.
+parseType :: String -> ParseResult (Type SrcSpanInfo)
+parseType = parse
 
--- | Parse of a string containing a Haskell expression.
-parseExp :: String -> ParseResult S.Exp
-parseExp = fmap sExp . P.parseExp
+-- | Parse of a string containing a Haskell type, using an explicit 'ParseMode'.
+parseTypeWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo)
+parseTypeWithMode = parseWithMode
 
--- | Parse of a string containing a Haskell expression, using an explicit mode.
-parseExpWithMode :: ParseMode -> String -> ParseResult S.Exp
-parseExpWithMode = (fmap sExp .) . P.parseExpWithMode
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseTypeWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment])
+parseTypeWithComments = parseWithComments
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseExpWithComments :: ParseMode -> String -> ParseResult (S.Exp, [Comment])
-parseExpWithComments = (fmap (\(e, cs) -> (sExp e, cs)) .) . P.parseExpWithComments
+-- | Parse of a string containing a Haskell statement, using 'defaultParseMode'.
+parseStmt :: String -> ParseResult (Stmt SrcSpanInfo)
+parseStmt = parse
 
--- | Parse of a string containing a Haskell pattern.
-parsePat :: String -> ParseResult S.Pat
-parsePat = fmap sPat . P.parsePat
+-- | Parse of a string containing a Haskell type, using an explicit 'ParseMode'.
+parseStmtWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo)
+parseStmtWithMode = parseWithMode
 
--- | Parse of a string containing a Haskell pattern, using an explicit mode.
-parsePatWithMode :: ParseMode -> String -> ParseResult S.Pat
-parsePatWithMode = (fmap sPat .) . P.parsePatWithMode
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseStmtWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment])
+parseStmtWithComments = parseWithComments
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parsePatWithComments :: ParseMode -> String -> ParseResult (S.Pat, [Comment])
-parsePatWithComments = (fmap (\(p, cs) -> (sPat p, cs)) .) . P.parsePatWithComments
+-- | Parse of a string containing a Haskell statement, using 'defaultParseMode'.
+parseImportDecl :: String -> ParseResult (ImportDecl SrcSpanInfo)
+parseImportDecl = parse
 
--- | Parse of a string containing a Haskell top-level declaration.
-parseDecl :: String -> ParseResult S.Decl
-parseDecl = fmap sDecl . P.parseDecl
+-- | Parse of a string containing a Haskell type, using an explicit 'ParseMode'.
+parseImportDeclWithMode :: ParseMode -> String -> ParseResult (ImportDecl SrcSpanInfo)
+parseImportDeclWithMode = parseWithMode
 
--- | Parse of a string containing a Haskell top-level declaration, using an explicit mode.
-parseDeclWithMode :: ParseMode -> String -> ParseResult S.Decl
-parseDeclWithMode = (fmap sDecl .) . P.parseDeclWithMode
+-- | Parse of a string containing a complete Haskell module, using an explicit 'ParseMode', retaining comments.
+parseImportDeclWithComments :: ParseMode -> String -> ParseResult (ImportDecl SrcSpanInfo, [Comment])
+parseImportDeclWithComments = parseWithComments
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseDeclWithComments :: ParseMode -> String -> ParseResult (S.Decl, [Comment])
-parseDeclWithComments = (fmap (\(decl, cs) -> (sDecl decl, cs)) .) . P.parseDeclWithComments
+-- Non-greedy parsers (should use ng- prefixed parses exported by InternalParser)
 
--- | Parse of a string containing a Haskell type.
-parseType :: String -> ParseResult S.Type
-parseType = fmap sType . P.parseType
+-- | Non-greedy parse of a string starting with a series of top-level option pragmas.
+getTopPragmas :: String -> ParseResult [ModulePragma SrcSpanInfo]
+getTopPragmas = fmap (unListOf . unNonGreedy) . parse
 
--- | Parse of a string containing a Haskell type, using an explicit mode.
-parseTypeWithMode :: ParseMode -> String -> ParseResult S.Type
-parseTypeWithMode = (fmap sType .) . P.parseTypeWithMode
+instance Parseable (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) where
+  parser = nglistParserNoFixity ngparseModulePragmas
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseTypeWithComments :: ParseMode -> String -> ParseResult (S.Type, [Comment])
-parseTypeWithComments = (fmap (\(t, cs) -> (sType t, cs)) .) . P.parseTypeWithComments
+nglistParserNoFixity :: P ([a SrcSpanInfo], [SrcSpan], SrcSpanInfo) -> Maybe [Fixity] -> P (NonGreedy (ListOf (a SrcSpanInfo)))
+nglistParserNoFixity f = fmap (NonGreedy . toListOf) . normalParserNoFixity f
 
--- | Parse of a string containing a Haskell type.
-parseStmt :: String -> ParseResult S.Stmt
-parseStmt = fmap sStmt . P.parseStmt
+-- | Type intended to be used with 'Parseable', with instances that implement a
+--   non-greedy parse of the module name, including top-level pragmas.  This
+--   means that a parse error that comes after the module header won't be
+--   returned. If the 'Maybe' value is 'Nothing', then this means that there was
+--   no module header.
+data PragmasAndModuleName l = PragmasAndModuleName l
+    [ModulePragma l]
+    (Maybe (ModuleName l))
+  deriving (Eq,Ord,Show,Typeable,Data)
 
--- | Parse of a string containing a Haskell type, using an explicit mode.
-parseStmtWithMode :: ParseMode -> String -> ParseResult S.Stmt
-parseStmtWithMode = (fmap sStmt .) . P.parseStmtWithMode
+instance Parseable (NonGreedy (PragmasAndModuleName SrcSpanInfo)) where
+    parser _ = do
+        ((pragmas, pss, pl), mn) <- ngparsePragmasAndModuleName
+        let l = combSpanMaybe (pl <** pss) (fmap ann mn)
+        return $ NonGreedy $ PragmasAndModuleName l pragmas mn
 
--- | Parse of a string containing a complete Haskell module, using an explicit mode, retaining comments.
-parseStmtWithComments :: ParseMode -> String -> ParseResult (S.Stmt, [Comment])
-parseStmtWithComments = (fmap (\(s, cs) -> (sStmt s, cs)) .) . P.parseStmtWithComments
+--   Type intended to be used with 'Parseable', with instances that
+--   implement a non-greedy parse of the module name, including
+--   top-level pragmas.  This means that a parse error that comes
+--   after the module header won't be returned. If the 'Maybe' value
+--   is 'Nothing', this means that there was no module head.
+--
+--   Note that the 'ParseMode' matters for this due to the 'MagicHash'
+--   changing the lexing of identifiers to include \"#\".
+data PragmasAndModuleHead l = PragmasAndModuleHead l
+    [ModulePragma l]
+    (Maybe (ModuleHead l))
+  deriving (Eq,Ord,Show,Typeable,Data)
 
+instance Parseable (NonGreedy (PragmasAndModuleHead SrcSpanInfo)) where
+    parser _ = do
+        ((pragmas, pss, pl), mh) <- ngparsePragmasAndModuleHead
+        let l = combSpanMaybe (pl <** pss) (fmap ann mh)
+        return $ NonGreedy $ PragmasAndModuleHead l pragmas mh
 
-instance Parseable S.Module where
-  parse = parseModule
-  parseWithMode = parseModuleWithMode
-  parseWithComments = parseModuleWithComments
+--   Type intended to be used with 'Parseable', with instances that
+--   implement a non-greedy parse of the module head, including
+--   top-level pragmas, module name, export list, and import
+--   list. This means that if a parse error that comes after the
+--   imports won't be returned.  If the 'Maybe' value is 'Nothing',
+--   this means that there was no module head.
+--
+--   Note that the 'ParseMode' matters for this due to the 'MagicHash'
+--   changing the lexing of identifiers to include \"#\".
+data ModuleHeadAndImports l = ModuleHeadAndImports l
+    [ModulePragma l]
+    (Maybe (ModuleHead l))
+    [ImportDecl l]
+  deriving (Eq,Ord,Show,Typeable,Data)
 
-instance Parseable S.Exp where
-  parse = parseExp
-  parseWithMode = parseExpWithMode
-  parseWithComments = parseExpWithComments
+instance Parseable (NonGreedy (ModuleHeadAndImports SrcSpanInfo)) where
+    parser _ = do
+        ((pragmas, pss, pl), mh, mimps) <- ngparseModuleHeadAndImports
+        let l = (pl <** pss) `combSpanMaybe`
+                (fmap ann mh) `combSpanMaybe`
+                (fmap (\(_, iss, il) -> il <** iss) mimps)
+            imps = maybe [] (\(x, _, _) -> x) mimps
+        return $ NonGreedy $ ModuleHeadAndImports l pragmas mh imps
 
-instance Parseable S.Pat where
-  parse = parsePat
-  parseWithMode = parsePatWithMode
-  parseWithComments = parsePatWithComments
+-- | Instances of 'Parseable' for @NonGreedy a@ will only consume the input
+--   until @a@ is fully parsed.  This means that parse errors that come later
+--   in the input will be ignored.  It's also more efficient, as it's fully lazy
+--   in the remainder of the input:
+--
+--   >>> parse (unlines ("module A where" : "main =" : repeat "blah")) :: ParseResult PragmasAndModuleHead
+--   ParseOk (NonGreedy {unNonGreedy = PragmasAndModuleHead [] (ModuleName "A",Nothing,Nothing)})
+--
+--   (this example uses the simplified AST)
+newtype NonGreedy a = NonGreedy { unNonGreedy :: a }
+  deriving (Eq,Ord,Show,Typeable,Data)
 
-instance Parseable S.Decl where
-  parse = parseDecl
-  parseWithMode = parseDeclWithMode
-  parseWithComments = parseDeclWithComments
+instance Functor NonGreedy where
+    fmap f (NonGreedy x) = NonGreedy (f x)
 
-instance Parseable S.Type where
-  parse = parseType
-  parseWithMode = parseTypeWithMode
-  parseWithComments = parseTypeWithComments
+-- | @ListOf a@ stores lists of the AST type @a@, along with a 'SrcSpanInfo',
+--   in order to provide 'Parseable' instances for lists.  These instances are
+--   provided when the type is used as a list in the syntax, and the same
+--   delimiters are used in all of its usages. Some exceptions are made:
+data ListOf a = ListOf SrcSpanInfo [a]
+  deriving (Eq,Ord,Show,Typeable,Data,Functor)
+
+unListOf :: ListOf a -> [a]
+unListOf (ListOf _ xs) = xs
+
+-- It's safe to forget about the previous SrcSpanInfo 'srcInfoPoints',
+-- as long as they are created with (presently) are all created with
+-- 'noInfoSpan' ('nIS'), '(<^^>)', or '(<++>)', all of which have
+-- empty 'srcInfoPoints'. Ideally, the parsers would return better
+-- types, but this works.
+toListOf :: ([a], [SrcSpan], SrcSpanInfo) -> ListOf a
+toListOf (xs, ss, l) = ListOf (infoSpan (srcInfoSpan l) ss) xs
diff --git a/src/Language/Haskell/Exts/Pretty.hs b/src/Language/Haskell/Exts/Pretty.hs
--- a/src/Language/Haskell/Exts/Pretty.hs
+++ b/src/Language/Haskell/Exts/Pretty.hs
@@ -1,1832 +1,1717 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Pretty
--- Copyright   :  (c) Niklas Broberg 2004-2009,
---                (c) The GHC Team, Noel Winstanley 1997-2000
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- Pretty printer for Haskell with extensions.
---
------------------------------------------------------------------------------
-
-module Language.Haskell.Exts.Pretty (
-                -- * Pretty printing
-                Pretty,
-                prettyPrintStyleMode, prettyPrintWithMode, prettyPrint,
-                -- * Pretty-printing styles (from "Text.PrettyPrint.HughesPJ")
-                P.Style(..), P.style, P.Mode(..),
-                -- * Haskell formatting modes
-                PPHsMode(..), Indent, PPLayout(..), defaultMode) where
-
-import Language.Haskell.Exts.Syntax
-import qualified Language.Haskell.Exts.Annotated.Syntax as A
-import Language.Haskell.Exts.Annotated.Simplify
-import qualified Language.Haskell.Exts.ParseSyntax as P
-
-import Language.Haskell.Exts.SrcLoc hiding (loc)
-
-import Prelude hiding (exp)
-import qualified Text.PrettyPrint as P
-import Data.List (intersperse)
-import Control.Applicative (Applicative(..))
-import qualified Control.Monad as M (ap)
-
-infixl 5 $$$
-
------------------------------------------------------------------------------
-
--- | Varieties of layout we can use.
-data PPLayout = PPOffsideRule   -- ^ classical layout
-              | PPSemiColon     -- ^ classical layout made explicit
-              | PPInLine        -- ^ inline decls, with newlines between them
-              | PPNoLayout      -- ^ everything on a single line
-              deriving Eq
-
-type Indent = Int
-
--- | Pretty-printing parameters.
---
--- /Note:/ the 'onsideIndent' must be positive and less than all other indents.
-data PPHsMode = PPHsMode {
-                                -- | indentation of a class or instance
-                classIndent :: Indent,
-                                -- | indentation of a @do@-expression
-                doIndent :: Indent,
-                                -- | indentation of the body of a
-                                -- @case@ expression
-                multiIfIndent :: Indent,
-                                -- | indentation of the body of a
-                                -- multi-@if@ expression
-                caseIndent :: Indent,
-                                -- | indentation of the declarations in a
-                                -- @let@ expression
-                letIndent :: Indent,
-                                -- | indentation of the declarations in a
-                                -- @where@ clause
-                whereIndent :: Indent,
-                                -- | indentation added for continuation
-                                -- lines that would otherwise be offside
-                onsideIndent :: Indent,
-                                -- | blank lines between statements?
-                spacing :: Bool,
-                                -- | Pretty-printing style to use
-                layout :: PPLayout,
-                                -- | add GHC-style @LINE@ pragmas to output?
-                linePragmas :: Bool
-                }
-
--- | The default mode: pretty-print using the offside rule and sensible
--- defaults.
-defaultMode :: PPHsMode
-defaultMode = PPHsMode{
-                      classIndent = 8,
-                      doIndent = 3,
-                      multiIfIndent = 3,
-                      caseIndent = 4,
-                      letIndent = 4,
-                      whereIndent = 6,
-                      onsideIndent = 2,
-                      spacing = True,
-                      layout = PPOffsideRule,
-                      linePragmas = False
-                      }
-
--- | Pretty printing monad
-newtype DocM s a = DocM (s -> a)
-
-instance Functor (DocM s) where
-         fmap f xs = do x <- xs; return (f x)
-
-instance Applicative (DocM s) where
-        pure = retDocM
-        (<*>) = M.ap
-
-instance Monad (DocM s) where
-        (>>=) = thenDocM
-        (>>) = then_DocM
-        return = retDocM
-
-{-# INLINE thenDocM #-}
-{-# INLINE then_DocM #-}
-{-# INLINE retDocM #-}
-{-# INLINE unDocM #-}
-{-# INLINE getPPEnv #-}
-
-thenDocM :: DocM s a -> (a -> DocM s b) -> DocM s b
-thenDocM m k = DocM $ \s -> case unDocM m s of a -> unDocM (k a) s
-
-then_DocM :: DocM s a -> DocM s b -> DocM s b
-then_DocM m k = DocM $ \s -> case unDocM m s of _ -> unDocM k s
-
-retDocM :: a -> DocM s a
-retDocM a = DocM $ const a
-
-unDocM :: DocM s a -> s -> a
-unDocM (DocM f) = f
-
--- all this extra stuff, just for this one function.
-getPPEnv :: DocM s s
-getPPEnv = DocM id
-
--- So that pp code still looks the same
--- this means we lose some generality though
-
--- | The document type produced by these pretty printers uses a 'PPHsMode'
--- environment.
-type Doc = DocM PPHsMode P.Doc
-
--- | Things that can be pretty-printed, including all the syntactic objects
--- in "Language.Haskell.Exts.Syntax" and "Language.Haskell.Exts.Annotated.Syntax".
-class Pretty a where
-        -- | Pretty-print something in isolation.
-        pretty :: a -> Doc
-        -- | Pretty-print something in a precedence context.
-        prettyPrec :: Int -> a -> Doc
-        pretty = prettyPrec 0
-        prettyPrec _ = pretty
-
--- The pretty printing combinators
-
-empty :: Doc
-empty = return P.empty
-
-nest :: Int -> Doc -> Doc
-nest i m = m >>= return . P.nest i
-
-
--- Literals
-
-text :: String -> Doc
-text = return . P.text
-
-char :: Char -> Doc
-char = return . P.char
-
-int :: Int -> Doc
-int = return . P.int
-
-integer :: Integer -> Doc
-integer = return . P.integer
-
-float :: Float -> Doc
-float = return . P.float
-
-double :: Double -> Doc
-double = return . P.double
-
--- rational :: Rational -> Doc
--- rational = return . P.rational
-
--- Simple Combining Forms
-
-parens, brackets, braces, doubleQuotes :: Doc -> Doc
-parens d = d >>= return . P.parens
-brackets d = d >>= return . P.brackets
-braces d = d >>= return . P.braces
--- quotes :: Doc -> Doc
--- quotes d = d >>= return . P.quotes
-doubleQuotes d = d >>= return . P.doubleQuotes
-
-parensIf :: Bool -> Doc -> Doc
-parensIf True = parens
-parensIf False = id
-
--- Constants
-
-semi,comma,space,equals :: Doc
-semi = return P.semi
-comma = return P.comma
--- colon :: Doc
--- colon = return P.colon
-space = return P.space
-equals = return P.equals
-
-{-
-lparen,rparen,lbrack,rbrack,lbrace,rbrace :: Doc
-lparen = return  P.lparen
-rparen = return  P.rparen
-lbrack = return  P.lbrack
-rbrack = return  P.rbrack
-lbrace = return  P.lbrace
-rbrace = return  P.rbrace
--}
-
--- Combinators
-
-(<>),(<+>),($$) :: Doc -> Doc -> Doc
-aM <> bM = do{a<-aM;b<-bM;return (a P.<> b)}
-aM <+> bM = do{a<-aM;b<-bM;return (a P.<+> b)}
-aM $$ bM = do{a<-aM;b<-bM;return (a P.$$ b)}
--- ($+$) :: Doc -> Doc -> Doc
--- aM $+$ bM = do{a<-aM;b<-bM;return (a P.$+$ b)}
-
-hcat,hsep,vcat,fsep :: [Doc] -> Doc
-hcat dl = sequence dl >>= return . P.hcat
-hsep dl = sequence dl >>= return . P.hsep
-vcat dl = sequence dl >>= return . P.vcat
--- sep, cat, fcat :: [Doc] -> Doc
--- sep dl = sequence dl >>= return . P.sep
--- cat dl = sequence dl >>= return . P.cat
-fsep dl = sequence dl >>= return . P.fsep
--- fcat dl = sequence dl >>= return . P.fcat
-
--- Some More
-
--- hang :: Doc -> Int -> Doc -> Doc
--- hang dM i rM = do{d<-dM;r<-rM;return $ P.hang d i r}
-
--- Yuk, had to cut-n-paste this one from Pretty.hs
-punctuate :: Doc -> [Doc] -> [Doc]
-punctuate _ []     = []
-punctuate p (d1:ds) = go d1 ds
-                   where
-                     go d [] = [d]
-                     go d (e:es) = (d <> p) : go e es
-
--- | render the document with a given style and mode.
-renderStyleMode :: P.Style -> PPHsMode -> Doc -> String
-renderStyleMode ppStyle ppMode d = P.renderStyle ppStyle . unDocM d $ ppMode
-
--- | render the document with a given mode.
--- renderWithMode :: PPHsMode -> Doc -> String
--- renderWithMode = renderStyleMode P.style
-
--- | render the document with 'defaultMode'.
--- render :: Doc -> String
--- render = renderWithMode defaultMode
-
--- | pretty-print with a given style and mode.
-prettyPrintStyleMode :: Pretty a => P.Style -> PPHsMode -> a -> String
-prettyPrintStyleMode ppStyle ppMode = renderStyleMode ppStyle ppMode . pretty
-
--- | pretty-print with the default style and a given mode.
-prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String
-prettyPrintWithMode = prettyPrintStyleMode P.style
-
--- | pretty-print with the default style and 'defaultMode'.
-prettyPrint :: Pretty a => a -> String
-prettyPrint = prettyPrintWithMode defaultMode
-
--- fullRenderWithMode :: PPHsMode -> P.Mode -> Int -> Float ->
---                       (P.TextDetails -> a -> a) -> a -> Doc -> a
--- fullRenderWithMode ppMode m i f fn e mD =
---                   P.fullRender m i f fn e $ (unDocM mD) ppMode
-
-
--- fullRender :: P.Mode -> Int -> Float -> (P.TextDetails -> a -> a)
---               -> a -> Doc -> a
--- fullRender = fullRenderWithMode defaultMode
-
--------------------------  Pretty-Print a Module --------------------
-instance Pretty Module where
-        pretty (Module pos m os mbWarn mbExports imp decls) =
-                markLine pos $
-                myVcat $ map pretty os ++
-                    (if m == ModuleName "" then id
-                     else \x -> [topLevel (ppModuleHeader m mbWarn mbExports) x])
-                    (map pretty imp ++ map pretty decls)
-
---------------------------  Module Header ------------------------------
-ppModuleHeader :: ModuleName -> Maybe WarningText -> Maybe [ExportSpec] -> Doc
-ppModuleHeader m mbWarn mbExportList = mySep [
-        text "module",
-        pretty m,
-        maybePP ppWarnTxt mbWarn,
-        maybePP (parenList . map pretty) mbExportList,
-        text "where"]
-
-ppWarnTxt :: WarningText -> Doc
-ppWarnTxt (DeprText s) = mySep [text "{-# DEPRECATED", text (show s), text "#-}"]
-ppWarnTxt (WarnText s) = mySep [text "{-# WARNING",    text (show s), text "#-}"]
-
-instance Pretty ModuleName where
-        pretty (ModuleName modName) = text modName
-
-instance Pretty ExportSpec where
-        pretty (EVar t name)              =
-                (case t of { NoNamespace -> empty; TypeNamespace -> text "type" })
-                  <+> pretty name
-        pretty (EAbs name)                = pretty name
-        pretty (EThingAll name)           = pretty name <> text "(..)"
-        pretty (EThingWith name nameList) =
-                pretty name <> (parenList . map pretty $ nameList)
-        pretty (EModuleContents m)        = text "module" <+> pretty m
-
-instance Pretty ImportDecl where
-        pretty (ImportDecl pos m qual src safe mbPkg mbName mbSpecs) =
-                markLine pos $
-                mySep [text "import",
-                       if src  then text "{-# SOURCE #-}" else empty,
-                       if safe then text "safe" else empty,
-                       if qual then text "qualified" else empty,
-                       maybePP (\s -> text (show s)) mbPkg,
-                       pretty m,
-                       maybePP (\m' -> text "as" <+> pretty m') mbName,
-                       maybePP exports mbSpecs]
-            where
-                exports (b,specList) =
-                        if b then text "hiding" <+> specs else specs
-                    where specs = parenList . map pretty $ specList
-
-instance Pretty ImportSpec where
-        pretty (IVar t name)              =
-                (case t of { NoNamespace -> empty; TypeNamespace -> text "type" })
-                  <+> pretty name
-        pretty (IAbs name)                = pretty name
-        pretty (IThingAll name)           = pretty name <> text "(..)"
-        pretty (IThingWith name nameList) =
-                pretty name <> (parenList . map pretty $ nameList)
-
-instance Pretty TypeEqn where
-        pretty (TypeEqn pat eqn) = mySep [pretty pat, equals, pretty eqn]
-
--------------------------  Declarations ------------------------------
-instance Pretty Decl where
-        pretty (TypeDecl loc name nameList htype) =
-                blankline $
-                markLine loc $
-                mySep ( [text "type", pretty name]
-                        ++ map pretty nameList
-                        ++ [equals, pretty htype])
-
-        pretty (DataDecl loc don context name nameList constrList derives) =
-                blankline $
-                markLine loc $
-                mySep ( [pretty don, ppContext context, pretty name]
-                        ++ map pretty nameList)
-                  <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
-                                             (map pretty constrList))
-                        $$$ ppDeriving derives)
-
-        pretty (GDataDecl loc don context name nameList optkind gadtList derives) =
-                blankline $
-                markLine loc $
-                mySep ( [pretty don, ppContext context, pretty name]
-                        ++ map pretty nameList ++ ppOptKind optkind ++ [text "where"])
-                        $$$ ppBody classIndent (map pretty gadtList)
-                        $$$ ppIndent letIndent [ppDeriving derives]
-
-        pretty (TypeFamDecl loc name nameList optkind) =
-                blankline $
-                markLine loc $
-                mySep ([text "type", text "family", pretty name]
-                        ++ map pretty nameList
-                        ++ ppOptKind optkind)
-
-        pretty (ClosedTypeFamDecl loc name nameList optkind eqns) =
-                blankline $
-                markLine loc $
-                mySep ([text "type", text "family", pretty name]
-                        ++ map pretty nameList
-                        ++ ppOptKind optkind ++ [text "where"]) $$$ ppBody classIndent (map pretty eqns)
-
-        pretty (DataFamDecl loc context name nameList optkind) =
-                blankline $
-                markLine loc $
-                mySep ( [text "data", text "family", ppContext context, pretty name]
-                        ++ map pretty nameList ++ ppOptKind optkind)
-
-        pretty (TypeInsDecl loc ntype htype) =
-                blankline $
-                markLine loc $
-                mySep [text "type", text "instance", pretty ntype, equals, pretty htype]
-
-        pretty (DataInsDecl loc don ntype constrList derives) =
-                blankline $
-                markLine loc $
-                mySep [pretty don, text "instance", pretty ntype]
-                        <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
-                                                   (map pretty constrList))
-                              $$$ ppDeriving derives)
-
-        pretty (GDataInsDecl loc don ntype optkind gadtList derives) =
-                blankline $
-                markLine loc $
-                mySep ( [pretty don, text "instance", pretty ntype]
-                        ++ ppOptKind optkind ++ [text "where"])
-                        $$$ ppBody classIndent (map pretty gadtList)
-                        $$$ ppDeriving derives
-
-        --m{spacing=False}
-        -- special case for empty class declaration
-        pretty (ClassDecl pos context name nameList fundeps []) =
-                blankline $
-                markLine pos $
-                mySep ( [text "class", ppContext context, pretty name]
-                        ++ map pretty nameList ++ [ppFunDeps fundeps])
-        pretty (ClassDecl pos context name nameList fundeps declList) =
-                blankline $
-                markLine pos $
-                mySep ( [text "class", ppContext context, pretty name]
-                        ++ map pretty nameList ++ [ppFunDeps fundeps, text "where"])
-                $$$ ppBody classIndent (map pretty declList)
-
-        -- m{spacing=False}
-        -- special case for empty instance declaration
-        pretty (InstDecl pos overlap tvs context name args []) =
-                blankline $
-                markLine pos $
-                let olp = case overlap of { Nothing -> empty; Just o -> space <> pretty o }
-                in mySep ( [text "instance" <> olp, ppForall (Just tvs)
-                           , ppContext context, pretty name] ++ map ppAType args)
-        pretty (InstDecl pos overlap tvs context name args declList) =
-                blankline $
-                markLine pos $
-                let olp = case overlap of { Nothing -> empty; Just o -> space <> pretty o }
-                in mySep ( [text "instance" <> olp,  ppForall (Just tvs)
-                           , ppContext context, pretty name]
-                          ++ map ppAType args ++ [text "where"])
-                $$$ ppBody classIndent (map pretty declList)
-
-        pretty (DerivDecl pos overlap tvs context name args) =
-                blankline $
-                markLine pos $
-                let olp = case overlap of { Nothing -> empty; Just o -> space <> pretty o }
-                in mySep ( [text "deriving", text "instance" <> olp, ppForall (Just tvs)
-                           , ppContext context, pretty name] ++ map ppAType args)
-        pretty (DefaultDecl pos htypes) =
-                blankline $
-                markLine pos $
-                text "default" <+> parenList (map pretty htypes)
-
-        pretty (SpliceDecl pos splice) =
-                blankline $
-                markLine pos $
-                pretty splice
-
-        pretty (TypeSig pos nameList qualType) =
-                blankline $
-                markLine pos $
-                mySep ((punctuate comma . map pretty $ nameList)
-                      ++ [text "::", pretty qualType])
-
-        pretty (FunBind matches) = do
-                e <- fmap layout getPPEnv
-                case e of PPOffsideRule -> foldr ($$$) empty (map pretty matches)
-                          _ -> foldr (\x y -> x <> semi <> y) empty (map pretty matches)
-
-        pretty (PatBind pos pat rhs whereBinds) =
-                markLine pos $
-                myFsep [pretty pat, pretty rhs] $$$ ppWhere whereBinds
-
-        pretty (InfixDecl pos assoc prec opList) =
-                blankline $
-                markLine pos $
-                mySep ([pretty assoc, int prec]
-                       ++ (punctuate comma . map pretty $ opList))
-
-        pretty (ForImp pos cconv saf str name typ) =
-                blankline $
-                markLine pos $
-                mySep [text "foreign import", pretty cconv, pretty saf,
-                       text (show str), pretty name, text "::", pretty typ]
-
-        pretty (ForExp pos cconv str name typ) =
-                blankline $
-                markLine pos $
-                mySep [text "foreign export", pretty cconv,
-                       text (show str), pretty name, text "::", pretty typ]
-
-        pretty (RulePragmaDecl pos rules) =
-                blankline $
-                markLine pos $
-                myVcat $ text "{-# RULES" : map pretty rules ++ [text " #-}"]
-
-        pretty (DeprPragmaDecl pos deprs) =
-                blankline $
-                markLine pos $
-                myVcat $ text "{-# DEPRECATED" : map ppWarnDepr deprs ++ [text " #-}"]
-
-        pretty (WarnPragmaDecl pos deprs) =
-                blankline $
-                markLine pos $
-                myVcat $ text "{-# WARNING" : map ppWarnDepr deprs ++ [text " #-}"]
-
-        pretty (InlineSig pos inl activ name) =
-                blankline $
-                markLine pos $
-                mySep [text (if inl then "{-# INLINE" else "{-# NOINLINE"), pretty activ, pretty name, text "#-}"]
-
-        pretty (InlineConlikeSig pos activ name) =
-                blankline $
-                markLine pos $
-                mySep [text "{-# INLINE CONLIKE", pretty activ, pretty name, text "#-}"]
-
-        pretty (SpecSig pos activ name types) =
-                blankline $
-                markLine pos $
-                mySep $ [text "{-# SPECIALISE", pretty activ, pretty name, text "::"]
-                    ++ punctuate comma (map pretty types) ++ [text "#-}"]
-
-        pretty (SpecInlineSig pos inl activ name types) =
-                blankline $
-                markLine pos $
-                mySep $ [text "{-# SPECIALISE", text (if inl then "INLINE" else "NOINLINE"),
-                        pretty activ, pretty name, text "::"]
-                        ++ (punctuate comma $ map pretty types) ++ [text "#-}"]
-
-        pretty (InstSig pos tvs context name args) =
-                blankline $
-                markLine pos $
-                mySep $ [text "{-# SPECIALISE", text "instance"
-                         , ppForall (Just tvs), ppContext context, pretty name]
-                         ++ map ppAType args ++ [text "#-}"]
-
-        pretty (AnnPragma pos ann) =
-                blankline $
-                markLine pos $
-                mySep [text "{-# ANN", pretty ann, text "#-}"]
-
-        pretty (MinimalPragma pos b) =
-                blankline $
-                markLine pos $
-                let bs = case b of { Just b' -> pretty b'; _ -> empty }
-                in myFsep [text "{-# MINIMAL", bs, text "#-}"]
-
-instance Pretty Annotation where
-        pretty (Ann n e) = myFsep [pretty n, pretty e]
-        pretty (TypeAnn n e) = myFsep [text "type", pretty n, pretty e]
-        pretty (ModuleAnn e) = myFsep [text "module", pretty e]
-
-instance Pretty BooleanFormula where
-        pretty (VarFormula n)   = pretty n
-        pretty (AndFormula bs)  = myFsep $ punctuate (text " ,") $ map pretty bs
-        pretty (OrFormula bs)   = myFsep $ punctuate (text " |") $ map pretty bs
-        pretty (ParenFormula b) = parens $ pretty b
-
-instance Pretty DataOrNew where
-        pretty DataType = text "data"
-        pretty NewType  = text "newtype"
-
-instance Pretty Assoc where
-        pretty AssocNone  = text "infix"
-        pretty AssocLeft  = text "infixl"
-        pretty AssocRight = text "infixr"
-
-instance Pretty Match where
-        pretty (Match pos f ps optsig rhs whereBinds) =
-                markLine pos $
-                myFsep (lhs ++ [maybePP ppSig optsig, pretty rhs])
-                $$$ ppWhere whereBinds
-            where
-                lhs = case ps of
-                        l:r:ps' | isSymbolName f ->
-                                let hd = [prettyPrec 2 l, ppName f, prettyPrec 2 r] in
-                                if null ps' then hd
-                                else parens (myFsep hd) : map (prettyPrec 3) ps'
-                        _ -> pretty f : map (prettyPrec 3) ps
-
-ppWhere :: Binds -> Doc
-ppWhere (BDecls []) = empty
-ppWhere (BDecls l)  = nest 2 (text "where" $$$ ppBody whereIndent (map pretty l))
-ppWhere (IPBinds b) = nest 2 (text "where" $$$ ppBody whereIndent (map pretty b))
-
-ppSig :: Type -> Doc
-ppSig t = text "::" <+> pretty t
-
-instance Pretty ClassDecl where
-    pretty (ClsDecl decl) = pretty decl
-
-    pretty (ClsDataFam loc context name nameList optkind) =
-                markLine loc $
-                mySep ( [text "data", ppContext context, pretty name]
-                        ++ map pretty nameList ++ ppOptKind optkind)
-
-    pretty (ClsTyFam loc name nameList optkind) =
-                markLine loc $
-                mySep ( [text "type", pretty name]
-                        ++ map pretty nameList ++ ppOptKind optkind)
-
-    pretty (ClsTyDef loc ntype htype) =
-                markLine loc $
-                mySep [text "type", pretty ntype, equals, pretty htype]
-
-    pretty (ClsDefSig loc name typ) =
-                blankline $
-                markLine loc $
-                mySep [
-                    text "default",
-                    pretty name,
-                    text "::",
-                    pretty typ]
-
-instance Pretty InstDecl where
-        pretty (InsDecl decl) = pretty decl
-
-        pretty (InsType loc ntype htype) =
-                markLine loc $
-                mySep [text "type", pretty ntype, equals, pretty htype]
-
-        pretty (InsData loc don ntype constrList derives) =
-                markLine loc $
-                mySep [pretty don, pretty ntype]
-                        <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
-                                                   (map pretty constrList))
-                              $$$ ppDeriving derives)
-
-        pretty (InsGData loc don ntype optkind gadtList derives) =
-                markLine loc $
-                mySep ( [pretty don, pretty ntype]
-                        ++ ppOptKind optkind ++ [text "where"])
-                        $$$ ppBody classIndent (map pretty gadtList)
-                        $$$ ppDeriving derives
-
---        pretty (InsInline loc inl activ name) =
---                markLine loc $
---                mySep [text (if inl then "{-# INLINE" else "{-# NOINLINE"), pretty activ, pretty name, text "#-}"]
-
-
-------------------------- FFI stuff -------------------------------------
-instance Pretty Safety where
-        pretty PlayRisky        = text "unsafe"
-        pretty (PlaySafe b)     = text $ if b then "threadsafe" else "safe"
-        pretty PlayInterruptible = text "interruptible"
-
-instance Pretty CallConv where
-        pretty StdCall   = text "stdcall"
-        pretty CCall     = text "ccall"
-        pretty CPlusPlus = text "cplusplus"
-        pretty DotNet    = text "dotnet"
-        pretty Jvm       = text "jvm"
-        pretty Js        = text "js"
-        pretty CApi      = text "capi"
-
-------------------------- Pragmas ---------------------------------------
-ppWarnDepr :: ([Name], String) -> Doc
-ppWarnDepr (names, txt) = mySep $ punctuate comma (map pretty names) ++ [text $ show txt]
-
-instance Pretty Rule where
-        pretty (Rule tag activ rvs rhs lhs) =
-            mySep [text $ show tag, pretty activ,
-                        maybePP ppRuleVars rvs,
-                        pretty rhs, char '=', pretty lhs]
-
-ppRuleVars :: [RuleVar] -> Doc
-ppRuleVars []  = empty
-ppRuleVars rvs = mySep $ text "forall" : map pretty rvs ++ [char '.']
-
-instance Pretty Activation where
-    pretty AlwaysActive    = empty
-    pretty (ActiveFrom i)  = char '['  <> int i <> char ']'
-    pretty (ActiveUntil i) = text "[~" <> int i <> char ']'
-
-instance Pretty Overlap where
-    pretty Overlap    = text "{-# OVERLAP #-}"
-    pretty NoOverlap  = text "{-# NO_OVERLAP #-}"
-    pretty Incoherent = text "{-# INCOHERENT #-}"
-
-instance Pretty RuleVar where
-    pretty (RuleVar n) = pretty n
-    pretty (TypedRuleVar n t) = parens $ mySep [pretty n, text "::", pretty t]
-
-instance Pretty ModulePragma where
-    pretty (LanguagePragma _ ns) =
-        myFsep $ text "{-# LANGUAGE" : punctuate (char ',') (map pretty ns) ++ [text "#-}"]
-    pretty (OptionsPragma _ (Just tool) s) =
-        myFsep [text "{-# OPTIONS_" <> pretty tool <> text s <> text "#-}"]
-    pretty (OptionsPragma _ _ s) =
-        myFsep [text "{-# OPTIONS" <> text s <> text "#-}"]
-    pretty (AnnModulePragma _ ann) =
-        myFsep [text "{-# ANN", pretty ann, text "#-}"]
-
-
-instance Pretty Tool where
-    pretty (UnknownTool s) = text s
-    pretty t               = text $ show t
-
-------------------------- Data & Newtype Bodies -------------------------
-instance Pretty QualConDecl where
-        pretty (QualConDecl _pos tvs ctxt con) =
-                myFsep [ppForall (Just tvs), ppContext ctxt, pretty con]
-
-instance Pretty GadtDecl where
-        pretty (GadtDecl _pos name names ty) =
-            case names of
-                [] ->
-                    myFsep [pretty name, text "::", pretty ty]
-                ts' ->
-                    myFsep [pretty name, text "::" ,
-                         braceList . map ppField $ ts', text "->", pretty ty]
-
-instance Pretty ConDecl where
-        pretty (RecDecl name fieldList) =
-                pretty name <> (braceList . map ppField $ fieldList)
-
-{-        pretty (ConDecl name@(Symbol _) [l, r]) =
-                myFsep [prettyPrec prec_btype l, ppName name,
-                        prettyPrec prec_btype r] -}
-        pretty (ConDecl name typeList) =
-                mySep $ ppName name : map (prettyPrec prec_atype) typeList
-        pretty (InfixConDecl l name r) =
-                myFsep [prettyPrec prec_btype l, ppNameInfix name,
-                         prettyPrec prec_btype r]
-
-ppField :: ([Name], Type) -> Doc
-ppField (names, ty) =
-        myFsepSimple $ (punctuate comma . map pretty $ names) ++
-                       [text "::", pretty ty]
-
-instance Pretty BangType where
-        pretty BangedTy   = char '!'
-        pretty UnpackedTy = text "{-# UNPACK #-}" <+> char '!'
-
-ppDeriving :: [Deriving] -> Doc
-ppDeriving []  = empty
-ppDeriving [(d, [])] = text "deriving" <+> ppQName d
-ppDeriving ds  = text "deriving" <+> parenList (map ppDer ds)
-    where ppDer :: (QName, [Type]) -> Doc
-          ppDer (n, ts) = mySep (pretty n : map pretty ts)
-
-------------------------- Types -------------------------
-ppBType :: Type -> Doc
-ppBType = prettyPrec prec_btype
-
-ppAType :: Type -> Doc
-ppAType = prettyPrec prec_atype
-
--- precedences for types
-prec_btype, prec_atype :: Int
-prec_btype = 1  -- left argument of ->,
-                -- or either argument of an infix data constructor
-prec_atype = 2  -- argument of type or data constructor, or of a class
-
-instance Pretty Type where
-        prettyPrec p (TyForall mtvs ctxt htype) = parensIf (p > 0) $
-                myFsep [ppForall mtvs, ppContext ctxt, pretty htype]
-        prettyPrec p (TyFun a b) = parensIf (p > 0) $
-                myFsep [ppBType a, text "->", pretty b]
-        prettyPrec _ (TyTuple bxd l) =
-                let ds = map pretty l
-                 in case bxd of
-                        Boxed   -> parenList ds
-                        Unboxed -> hashParenList ds
-        prettyPrec _ (TyList t)  = brackets $ pretty t
-        prettyPrec _ (TyParArray t) = bracketColonList [pretty t]
-        prettyPrec p (TyApp a b) =
-                {-
-                | a == list_tycon = brackets $ pretty b         -- special case
-                | otherwise = -} parensIf (p > prec_btype) $
-                                    myFsep [pretty a, ppAType b]
-        prettyPrec _ (TyVar name) = pretty name
-        prettyPrec _ (TyCon name) = pretty name
-        prettyPrec _ (TyParen t) = parens (pretty t)
---        prettyPrec _ (TyPred asst) = pretty asst
-        prettyPrec _ (TyInfix a op b) = myFsep [pretty a, ppQNameInfix op, pretty b]
-        prettyPrec _ (TyKind t k) = parens (myFsep [pretty t, text "::", pretty k])
-        prettyPrec _ (TyPromoted p) = pretty p
-        prettyPrec p (TyEquals a b) = parensIf (p > 0) (myFsep [pretty a, text "~", pretty b])
-        prettyPrec _ (TySplice s) = pretty s
-        prettyPrec _ (TyBang b t) = pretty b <> pretty t
-
-instance Pretty Promoted where
-  pretty p =
-    case p of
-      PromotedInteger n -> integer n
-      PromotedString s -> doubleQuotes $ text s
-      PromotedCon hasQuote qn ->
-        addQuote hasQuote $ maybe (pretty qn) pretty (getSpecialName qn)
-      PromotedList hasQuote list ->
-        addQuote hasQuote $ bracketList . punctuate comma . map pretty $ list
-      PromotedTuple list ->
-        addQuote True $ parenList $ map pretty list
-      PromotedUnit -> addQuote True $ text "()"
-    where
-      addQuote True doc = char '\'' <> doc
-      addQuote False doc = doc
-
-instance Pretty TyVarBind where
-        pretty (KindedVar var kind) = parens $ myFsep [pretty var, text "::", pretty kind]
-        pretty (UnkindedVar var)    = pretty var
-
-ppForall :: Maybe [TyVarBind] -> Doc
-ppForall Nothing   = empty
-ppForall (Just []) = empty
-ppForall (Just vs) =    myFsep (text "forall" : map pretty vs ++ [char '.'])
-
----------------------------- Kinds ----------------------------
-
-instance Pretty Kind where
-        prettyPrec _ KindStar      = text "*"
-        prettyPrec _ KindBang      = text "!"
-        prettyPrec n (KindFn a b)  = parensIf (n > 0) $ myFsep [prettyPrec 1 a, text "->", pretty b]
-        prettyPrec _ (KindParen k) = parens $ pretty k
-        prettyPrec _ (KindVar n)   = pretty n
-        prettyPrec _ (KindTuple t) = parenList . map pretty $ t
-        prettyPrec _ (KindList l)  = bracketList . punctuate comma . map pretty $ l
-        prettyPrec n (KindApp a b) =
-          parensIf (n > 3) $ myFsep [prettyPrec 3 a, prettyPrec 4 b]
-
-ppOptKind :: Maybe Kind -> [Doc]
-ppOptKind Nothing  = []
-ppOptKind (Just k) = [text "::", pretty k]
-
-------------------- Functional Dependencies -------------------
-instance Pretty FunDep where
-        pretty (FunDep from to) =
-                myFsep $ map pretty from ++ [text "->"] ++ map pretty to
-
-
-ppFunDeps :: [FunDep] -> Doc
-ppFunDeps []  = empty
-ppFunDeps fds = myFsep $ (char '|':) . punctuate comma . map pretty $ fds
-
-------------------------- Expressions -------------------------
-instance Pretty Rhs where
-        pretty (UnGuardedRhs e) = equals <+> pretty e
-        pretty (GuardedRhss guardList) = myVcat . map pretty $ guardList
-
-instance Pretty GuardedRhs where
-        pretty (GuardedRhs _pos guards ppBody') =
-                myFsep $ [char '|'] ++ (punctuate comma . map pretty $ guards) ++ [equals, pretty ppBody']
-
-newtype GuardedAlts = GuardedAlts Rhs
-newtype GuardedAlt = GuardedAlt GuardedRhs
-
-instance Pretty GuardedAlts where
-        pretty (GuardedAlts (UnGuardedRhs e)) = text "->" <+> pretty e
-        pretty (GuardedAlts (GuardedRhss guardList)) = myVcat . map (pretty . GuardedAlt) $ guardList
-
-instance Pretty GuardedAlt where
-        pretty (GuardedAlt (GuardedRhs _pos guards ppBody')) =
-                myFsep $ [char '|'] ++ (punctuate comma . map pretty $ guards) ++ [text "->", pretty ppBody']
-
-instance Pretty Literal where
-        pretty (Int i)        = integer i
-        pretty (Char c)       = text (show c)
-        pretty (String s)     = text (show s)
-        pretty (Frac r)       = double (fromRational r)
-        -- GHC unboxed literals:
-        pretty (PrimChar c)   = text (show c)           <> char '#'
-        pretty (PrimString s) = text (show s)           <> char '#'
-        pretty (PrimInt i)    = integer i               <> char '#'
-        pretty (PrimWord w)   = integer w               <> text "##"
-        pretty (PrimFloat r)  = float  (fromRational r) <> char '#'
-        pretty (PrimDouble r) = double (fromRational r) <> text "##"
-
-instance Pretty Exp where
-        prettyPrec _ (Lit l) = pretty l
-        -- lambda stuff
-        -- WARNING: This stuff is fragile. See #152 for one example of how
-        -- things can break.
-        prettyPrec p (InfixApp a op b) = parensIf (p > 2) $ myFsep [prettyPrec 1 a, pretty op, prettyPrec 1 b]
-        prettyPrec p (NegApp e) = parensIf (p > 0) $ char '-' <> prettyPrec 2 e
-        prettyPrec p (App a b) = parensIf (p > 3) $ myFsep [prettyPrec 3 a, prettyPrec 4 b]
-        prettyPrec p (Lambda _loc patList ppBody') = parensIf (p > 1) $ myFsep $
-                char '\\' : map (prettyPrec 3) patList ++ [text "->", pretty ppBody']
-        -- keywords
-        -- two cases for lets
-        prettyPrec p (Let (BDecls declList) letBody) =
-                parensIf (p > 1) $ ppLetExp declList letBody
-        prettyPrec p (Let (IPBinds bindList) letBody) =
-                parensIf (p > 1) $ ppLetExp bindList letBody
-
-        prettyPrec p (If cond thenexp elsexp) = parensIf (p > 1) $
-                myFsep [text "if", pretty cond,
-                        text "then", pretty thenexp,
-                        text "else", pretty elsexp]
-        prettyPrec p (MultiIf alts) = parensIf (p > 1) $
-                text "if"
-                $$$ ppBody multiIfIndent (map (pretty . GuardedAlt) alts)
-        prettyPrec p (Case cond altList) = parensIf (p > 1) $
-                myFsep [text "case", pretty cond, text "of"]
-                $$$ ppBody caseIndent (map pretty altList)
-        prettyPrec p (Do stmtList) = parensIf (p > 1) $
-                text "do" $$$ ppBody doIndent (map pretty stmtList)
-        prettyPrec p (MDo stmtList) = parensIf (p > 1) $
-                text "mdo" $$$ ppBody doIndent (map pretty stmtList)
-        -- Constructors & Vars
-        prettyPrec _ (Var name) = pretty name
-        prettyPrec _ (IPVar ipname) = pretty ipname
-        prettyPrec _ (Con name) = pretty name
-        prettyPrec _ (Tuple bxd expList) =
-                let ds = map pretty expList
-                in case bxd of
-                       Boxed   -> parenList ds
-                       Unboxed -> hashParenList ds
-        prettyPrec _ (TupleSection bxd mExpList) =
-                let ds = map (maybePP pretty) mExpList
-                in case bxd of
-                       Boxed   -> parenList ds
-                       Unboxed -> hashParenList ds
-        -- weird stuff
-        prettyPrec _ (Paren e) = parens . pretty $ e
-        prettyPrec _ (LeftSection e op) = parens (pretty e <+> pretty op)
-        prettyPrec _ (RightSection op e) = parens (pretty op <+> pretty e)
-        prettyPrec _ (RecConstr c fieldList) =
-                pretty c <> (braceList . map pretty $ fieldList)
-        prettyPrec _ (RecUpdate e fieldList) =
-                pretty e <> (braceList . map pretty $ fieldList)
-        -- Lists and parallel arrays
-        prettyPrec _ (List list) =
-                bracketList . punctuate comma . map pretty $ list
-        prettyPrec _ (ParArray arr) =
-                bracketColonList . map pretty $ arr
-        prettyPrec _ (EnumFrom e) =
-                bracketList [pretty e, text ".."]
-        prettyPrec _ (EnumFromTo from to) =
-                bracketList [pretty from, text "..", pretty to]
-        prettyPrec _ (EnumFromThen from thenE) =
-                bracketList [pretty from <> comma, pretty thenE, text ".."]
-        prettyPrec _ (EnumFromThenTo from thenE to) =
-                bracketList [pretty from <> comma, pretty thenE,
-                             text "..", pretty to]
-        prettyPrec _ (ParArrayFromTo from to) =
-                bracketColonList [pretty from, text "..", pretty to]
-        prettyPrec _ (ParArrayFromThenTo from thenE to) =
-                bracketColonList [pretty from <> comma, pretty thenE,
-                             text "..", pretty to]
-        prettyPrec _ (ListComp e qualList) =
-                bracketList ([pretty e, char '|']
-                             ++ (punctuate comma . map pretty $ qualList))
-        prettyPrec _ (ParComp e qualLists) =
-                bracketList (punctuate (char '|') $
-                                pretty e : map (hsep . punctuate comma . map pretty) qualLists)
-        prettyPrec _ (ParArrayComp e qualArrs) =
-                bracketColonList (punctuate (char '|') $
-                                pretty e : map (hsep . punctuate comma . map pretty) qualArrs)
-        prettyPrec p (ExpTypeSig _pos e ty) = parensIf (p > 0) $
-                myFsep [pretty e, text "::", pretty ty]
-        -- Template Haskell
-        prettyPrec _ (BracketExp b) = pretty b
-        prettyPrec _ (SpliceExp s) = pretty s
-        prettyPrec _ (TypQuote t)  = text "\'\'" <> pretty t
-        prettyPrec _ (VarQuote x)  = text "\'" <> pretty x
-        prettyPrec _ (QuasiQuote n qt) = text ("[" ++ n ++ "|" ++ qt ++ "|]")
-        -- Hsx
-        prettyPrec _ (XTag _ n attrs mattr cs) =
-                let ax = maybe [] (return . pretty) mattr
-                 in hcat $
-                     (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
-                        map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]
-        prettyPrec _ (XETag _ n attrs mattr) =
-                let ax = maybe [] (return . pretty) mattr
-                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [text "/>"]
-        prettyPrec _ (XPcdata s) = text s
-        prettyPrec _ (XExpTag e) =
-                myFsep [text "<%", pretty e, text "%>"]
-        prettyPrec _ (XChildTag _ cs) =
-                myFsep $ text "<%>" : map pretty cs ++ [text "</%>"]
-
-        -- Pragmas
-        prettyPrec _ (CorePragma s e) = myFsep $ map text ["{-# CORE", show s, "#-}"] ++ [pretty e]
-        prettyPrec _ (SCCPragma  s e) = myFsep $ map text ["{-# SCC",  show s, "#-}"] ++ [pretty e]
-        prettyPrec _ (GenPragma  s (a,b) (c,d) e) =
-                myFsep [text "{-# GENERATED", text $ show s,
-                            int a, char ':', int b, char '-',
-                            int c, char ':', int d, text "#-}", pretty e]
-        -- Arrows
-        prettyPrec p (Proc _ pat e) = parensIf (p > 1) $ myFsep [text "proc", pretty pat, text "->", pretty e]
-        prettyPrec p (LeftArrApp l r)      = parensIf (p > 0) $ myFsep [pretty l, text "-<",  pretty r]
-        prettyPrec p (RightArrApp l r)     = parensIf (p > 0) $ myFsep [pretty l, text ">-",  pretty r]
-        prettyPrec p (LeftArrHighApp l r)  = parensIf (p > 0) $ myFsep [pretty l, text "-<<", pretty r]
-        prettyPrec p (RightArrHighApp l r) = parensIf (p > 0) $ myFsep [pretty l, text ">>-", pretty r]
-
-        -- LamdaCase
-        prettyPrec p (LCase altList) = parensIf (p > 1) $
-                text "\\case" $$$ ppBody caseIndent (map pretty altList)
-
-
-instance Pretty XAttr where
-        pretty (XAttr n v) =
-                myFsep [pretty n, char '=', pretty v]
-
-instance Pretty XName where
-        pretty (XName n) = text n
-        pretty (XDomName d n) = text d <> char ':' <> text n
-
-ppLetExp :: (Pretty a, Pretty b) => [a] -> b -> Doc
-ppLetExp l b = myFsep [text "let" <+> ppBody letIndent (map pretty l),
-                        text "in", pretty b]
-
--- ppWith :: Pretty a => [a] -> Doc
--- ppWith binds = nest 2 (text "with" $$$ ppBody withIndent (map pretty binds))
--- withIndent :: PPHsMode -> Indent
--- withIndent = whereIndent
-
---------------------- Template Haskell -------------------------
-
-instance Pretty Bracket where
-        pretty (ExpBracket e) = ppBracket "[|" e
-        pretty (PatBracket p) = ppBracket "[p|" p
-        pretty (TypeBracket t) = ppBracket "[t|" t
-        pretty (DeclBracket d) =
-                myFsep $ text "[d|" : map pretty d ++ [text "|]"]
-
-ppBracket :: Pretty a => String -> a -> Doc
-ppBracket o x = myFsep [text o, pretty x, text "|]"]
-
-instance Pretty Splice where
-        pretty (IdSplice s) = char '$' <> text s
-        pretty (ParenSplice e) =
-                myFsep [text "$(", pretty e, char ')']
-
-------------------------- Patterns -----------------------------
-
-instance Pretty Pat where
-        prettyPrec _ (PVar name) = pretty name
-        prettyPrec _ (PLit Signless lit) = pretty lit
-        prettyPrec p (PLit Negative lit) = parensIf (p > 1) $ char '-' <> pretty lit
-        prettyPrec p (PInfixApp a op b) = parensIf (p > 0) $
-                myFsep [prettyPrec 1 a, pretty (QConOp op), prettyPrec 1 b]
-        prettyPrec p (PApp n ps) = parensIf (p > 2 && not (null ps)) $
-                myFsep (pretty n : map (prettyPrec 3) ps)
-        prettyPrec _ (PTuple bxd ps) =
-                let ds = map pretty ps
-                in case bxd of
-                       Boxed   -> parenList ds
-                       Unboxed -> hashParenList ds
-        prettyPrec _ (PList ps) =
-                bracketList . punctuate comma . map pretty $ ps
-        prettyPrec _ (PParen pat) = parens . pretty $ pat
-        prettyPrec _ (PRec c fields) =
-                pretty c <> (braceList . map pretty $ fields)
-        -- special case that would otherwise be buggy
-        prettyPrec _ (PAsPat name (PIrrPat pat)) =
-                myFsep [pretty name <> char '@', char '~' <> prettyPrec 3 pat]
-        prettyPrec _ (PAsPat name pat) =
-                hcat [pretty name, char '@', prettyPrec 3 pat]
-        prettyPrec _ PWildCard = char '_'
-        prettyPrec _ (PIrrPat pat) = char '~' <> prettyPrec 3 pat
-        prettyPrec p (PatTypeSig _pos pat ty) = parensIf (p > 0) $
-                myFsep [pretty pat, text "::", pretty ty]
-        prettyPrec p (PViewPat e pat) = parensIf (p > 0) $
-                myFsep [pretty e, text "->", pretty pat]
-        prettyPrec p (PNPlusK n k) = parensIf (p > 0) $
-                myFsep [pretty n, text "+", text $ show k]
-        -- HaRP
-        prettyPrec _ (PRPat rs) =
-                bracketList . punctuate comma . map pretty $ rs
-        -- Hsx
-        prettyPrec _ (PXTag _ n attrs mattr cp) =
-            let ap = maybe [] (return . pretty) mattr
-             in hcat $ -- TODO: should not introduce blanks
-                  (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ap ++ [char '>']):
-                    map pretty cp ++ [myFsep [text "</" <> pretty n, char '>']]
-        prettyPrec _ (PXETag _ n attrs mattr) =
-                let ap = maybe [] (return . pretty) mattr
-                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ap ++ [text "/>"]
-        prettyPrec _ (PXPcdata s) = text s
-        prettyPrec _ (PXPatTag p) =
-                myFsep [text "<%", pretty p, text "%>"]
-        prettyPrec _ (PXRPats ps) =
-                myFsep $ text "<[" : map pretty ps ++ [text "%>"]
-        -- BangPatterns
-        prettyPrec _ (PBangPat pat) = text "!" <> prettyPrec 3 pat
-        prettyPrec _ (PQuasiQuote n qt) = text ("[$" ++ n ++ "|" ++ qt ++ "|]")
-
-instance Pretty PXAttr where
-        pretty (PXAttr n p) =
-                myFsep [pretty n, char '=', pretty p]
-
-instance Pretty PatField where
-        pretty (PFieldPat name pat) =
-                myFsep [pretty name, equals, pretty pat]
-        pretty (PFieldPun name) = pretty name
-        pretty (PFieldWildcard) = text ".."
-
---------------------- Regular Patterns -------------------------
-
-instance Pretty RPat where
-        pretty (RPOp r op) = pretty r <> pretty op
-        pretty (RPEither r1 r2) = parens . myFsep $
-                [pretty r1, char '|', pretty r2]
-        pretty (RPSeq rs) =
-                myFsep $ text "(/" : map pretty rs ++ [text "/)"]
-        pretty (RPGuard r gs) =
-                myFsep $ text "(|" : pretty r : char '|' : map pretty gs ++ [text "|)"]
-        -- special case that would otherwise be buggy
-        pretty (RPCAs n (RPPat (PIrrPat p))) =
-                myFsep [pretty n <> text "@:", char '~' <> pretty p]
-        pretty (RPCAs n r) = hcat [pretty n, text "@:", pretty r]
-        -- special case that would otherwise be buggy
-        pretty (RPAs n (RPPat (PIrrPat p))) =
-                myFsep [pretty n <> text "@:", char '~' <> pretty p]
-        pretty (RPAs n r) = hcat [pretty n, char '@', pretty r]
-        pretty (RPPat p) = pretty p
-        pretty (RPParen rp) = parens . pretty $ rp
-
-instance Pretty RPatOp where
-        pretty RPStar  = char '*'
-        pretty RPStarG = text "*!"
-        pretty RPPlus  = char '+'
-        pretty RPPlusG = text "+!"
-        pretty RPOpt   = char '?'
-        pretty RPOptG  = text "?!"
-
-------------------------- Case bodies  -------------------------
-instance Pretty Alt where
-        pretty (Alt _pos e gAlts binds) =
-                pretty e <+> pretty (GuardedAlts gAlts) $$$ ppWhere binds
-
-------------------------- Statements in monads, guards & list comprehensions -----
-instance Pretty Stmt where
-        pretty (Generator _loc e from) =
-                pretty e <+> text "<-" <+> pretty from
-        pretty (Qualifier e) = pretty e
-        -- two cases for lets
-        pretty (LetStmt (BDecls declList)) =
-                ppLetStmt declList
-        pretty (LetStmt (IPBinds bindList)) =
-                ppLetStmt bindList
-        pretty (RecStmt stmtList) =
-                text "rec" $$$ ppBody letIndent (map pretty stmtList)
-
-ppLetStmt :: Pretty a => [a] -> Doc
-ppLetStmt l = text "let" $$$ ppBody letIndent (map pretty l)
-
-instance Pretty QualStmt where
-        pretty (QualStmt s) = pretty s
-        pretty (ThenTrans    f)    = myFsep [text "then", pretty f]
-        pretty (ThenBy       f e)  = myFsep [text "then", pretty f, text "by", pretty e]
-        pretty (GroupBy      e)    = myFsep [text "then", text "group", text "by", pretty e]
-        pretty (GroupUsing   f)    = myFsep [text "then", text "group", text "using", pretty f]
-        pretty (GroupByUsing e f)  = myFsep [text "then", text "group", text "by",
-                                                pretty e, text "using", pretty f]
-
-
-
-------------------------- Record updates
-instance Pretty FieldUpdate where
-        pretty (FieldUpdate name e) =
-                myFsep [pretty name, equals, pretty e]
-        pretty (FieldPun name) = pretty name
-        pretty (FieldWildcard) = text ".."
-
-------------------------- Names -------------------------
-instance Pretty QOp where
-        pretty (QVarOp n) = ppQNameInfix n
-        pretty (QConOp n) = ppQNameInfix n
-
-ppQNameInfix :: QName -> Doc
-ppQNameInfix name
-        | isSymbolName (getName name) = ppQName name
-        | otherwise = char '`' <> ppQName name <> char '`'
-
-instance Pretty QName where
-        pretty name = case name of
-                UnQual (Symbol ('#':_)) -> char '(' <+> ppQName name <+> char ')'
-                _ -> parensIf (isSymbolName (getName name)) (ppQName name)
-
-ppQName :: QName -> Doc
-ppQName (UnQual name) = ppName name
-ppQName (Qual m name) = pretty m <> char '.' <> ppName name
-ppQName (Special sym) = text (specialName sym)
-
-instance Pretty Op where
-        pretty (VarOp n) = ppNameInfix n
-        pretty (ConOp n) = ppNameInfix n
-
-ppNameInfix :: Name -> Doc
-ppNameInfix name
-        | isSymbolName name = ppName name
-        | otherwise = char '`' <> ppName name <> char '`'
-
-instance Pretty Name where
-        pretty name = case name of
-                Symbol ('#':_) -> char '(' <+> ppName name <+> char ')'
-                _ -> parensIf (isSymbolName name) (ppName name)
-
-ppName :: Name -> Doc
-ppName (Ident s) = text s
-ppName (Symbol s) = text s
-
-instance Pretty IPName where
-        pretty (IPDup s) = char '?' <> text s
-        pretty (IPLin s) = char '%' <> text s
-
-instance Pretty IPBind where
-        pretty (IPBind _loc ipname exp) =
-                myFsep [pretty ipname, equals, pretty exp]
-
-instance Pretty CName where
-        pretty (VarName n) = pretty n
-        pretty (ConName n) = pretty n
-
-instance Pretty SpecialCon where
-        pretty sc = text $ specialName sc
-
-isSymbolName :: Name -> Bool
-isSymbolName (Symbol _) = True
-isSymbolName _ = False
-
-getSpecialName :: QName -> Maybe SpecialCon
-getSpecialName (Special n) = Just n
-getSpecialName _           = Nothing
-
-getName :: QName -> Name
-getName (UnQual s) = s
-getName (Qual _ s) = s
-getName (Special Cons) = Symbol ":"
-getName (Special FunCon) = Symbol "->"
-getName (Special s) = Ident (specialName s)
-
-specialName :: SpecialCon -> String
-specialName UnitCon = "()"
-specialName ListCon = "[]"
-specialName FunCon = "->"
-specialName (TupleCon b n) = "(" ++ hash ++ replicate (n-1) ',' ++ hash ++ ")"
-    where hash = if b == Unboxed then "#" else ""
-specialName Cons = ":"
-specialName UnboxedSingleCon = "(# #)"
-
--- Contexts are "sets" of assertions. Several members really means it's a
--- CxTuple, but we can't represent that in our list of assertions.
--- Therefore: print single member contexts without parenthesis, and treat
---            larger contexts as tuples.
-ppContext :: Context -> Doc
-ppContext []      = empty
-ppContext [ctxt]  = pretty ctxt <+> text "=>"
-ppContext context = mySep [parenList (map pretty context), text "=>"]
-
--- hacked for multi-parameter type classes
-instance Pretty Asst where
-        pretty (ClassA a ts)   = myFsep $ ppQName a : map ppAType ts
-        pretty (VarA n)        = pretty n
-        pretty (InfixA a op b) = myFsep [pretty a, ppQNameInfix op, pretty b]
-        pretty (IParam i t)    = myFsep [pretty i, text "::", pretty t]
-        pretty (EqualP t1 t2)  = myFsep [pretty t1, text "~", pretty t2]
-        pretty (ParenA a)      = parens (pretty a)
-
--- Pretty print a source location, useful for printing out error messages
-instance Pretty SrcLoc where
-  pretty srcLoc =
-    return $ P.hsep [ colonFollow (P.text $ srcFilename srcLoc)
-                    , colonFollow (P.int  $ srcLine     srcLoc)
-                    , P.int $ srcColumn srcLoc
-                    ]
-
-colonFollow :: P.Doc -> P.Doc
-colonFollow p = P.hcat [ p, P.colon ]
-
-
-instance Pretty SrcSpan where
-    pretty srcSpan =
-        return $ P.hsep [ colonFollow (P.text $ srcSpanFilename srcSpan)
-                        , P.hcat [ P.text "("
-                                 , P.int $ srcSpanStartLine srcSpan
-                                 , P.colon
-                                 , P.int $ srcSpanStartColumn srcSpan
-                                 , P.text ")"
-                                 ]
-                        , P.text "-"
-                        , P.hcat [ P.text "("
-                                 , P.int $ srcSpanEndLine srcSpan
-                                 , P.colon
-                                 , P.int $ srcSpanEndColumn srcSpan
-                                 , P.text ")"
-                                 ]
-                        ]
-
----------------------------------------------------------------------
--- Annotated version
-
--------------------------  Pretty-Print a Module --------------------
-instance SrcInfo pos => Pretty (A.Module pos) where
-        pretty (A.Module pos mbHead os imp decls) =
-                markLine pos $
-                myVcat $ map pretty os ++
-                    (case mbHead of
-                        Nothing -> id
-                        Just h  -> \x -> [topLevel (pretty h) x])
-                    (map pretty imp ++ map pretty decls)
-        pretty (A.XmlPage pos _mn os n attrs mattr cs) =
-                markLine pos $
-                myVcat $ map pretty os ++
-                    [let ax = maybe [] (return . pretty) mattr
-                      in hcat $
-                         (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
-                            map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]]
-        pretty (A.XmlHybrid pos mbHead os imp decls n attrs mattr cs) =
-                markLine pos $
-                myVcat $ map pretty os ++ [text "<%"] ++
-                    (case mbHead of
-                        Nothing -> id
-                        Just h  -> \x -> [topLevel (pretty h) x])
-                    (map pretty imp ++ map pretty decls ++
-                        [let ax = maybe [] (return . pretty) mattr
-                          in hcat $
-                             (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
-                                map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]])
-
-
-
---------------------------  Module Header ------------------------------
-instance Pretty (A.ModuleHead l) where
-    pretty (A.ModuleHead _ m mbWarn mbExportList) = mySep [
-        text "module",
-        pretty m,
-        maybePP pretty mbWarn,
-        maybePP pretty mbExportList,
-        text "where"]
-
-instance Pretty (A.WarningText l) where
-    pretty = ppWarnTxt. sWarningText
-
-instance Pretty (A.ModuleName l) where
-        pretty = pretty . sModuleName
-
-instance Pretty (A.ExportSpecList l) where
-        pretty (A.ExportSpecList _ especs)  = parenList $ map pretty especs
-
-instance Pretty (A.ExportSpec l) where
-        pretty = pretty . sExportSpec
-
-instance SrcInfo pos => Pretty (A.ImportDecl pos) where
-        pretty = pretty . sImportDecl
-
-instance Pretty (A.ImportSpecList l) where
-        pretty (A.ImportSpecList _ b ispecs)  =
-            (if b then text "hiding" else empty)
-                <+> parenList (map pretty ispecs)
-
-instance Pretty (A.ImportSpec l) where
-        pretty = pretty . sImportSpec
-
--------------------------  Declarations ------------------------------
-instance SrcInfo pos => Pretty (A.Decl pos) where
-        pretty = pretty . sDecl
-
-instance Pretty (A.DeclHead l) where
-    pretty (A.DHead _ n)           = pretty n
-    pretty (A.DHInfix _ tva n)     = mySep [pretty tva, pretty n]
-    pretty (A.DHParen _ dh)        = parens (pretty dh)
-    pretty (A.DHApp _ dh t)        = myFsep [pretty dh, pretty t]
-
-instance SrcInfo l => Pretty (A.InstRule l) where
-    pretty (A.IRule _ tvs mctxt qn)    =
-            mySep [ppForall (fmap (map sTyVarBind) tvs)
-                  , ppContext $ maybe [] sContext mctxt, pretty qn]
-    pretty (A.IParen _ ih)        = parens (pretty ih)
-
-instance SrcInfo l => Pretty (A.InstHead l) where
-    pretty (A.IHCon _ qn)          = pretty qn
-    pretty (A.IHInfix _ ta qn)     = mySep [pretty ta, pretty qn]
-    pretty (A.IHParen _ ih)        = parens (pretty ih)
-    pretty (A.IHApp _ ih t)        = myFsep [pretty ih, pretty t]
-
-instance Pretty (A.DataOrNew l) where
-        pretty = pretty . sDataOrNew
-
-instance Pretty (A.Assoc l) where
-        pretty = pretty . sAssoc
-
-instance SrcInfo pos => Pretty (A.Match pos) where
-        pretty = pretty . sMatch
-
-instance SrcInfo loc => Pretty (A.ClassDecl loc) where
-        pretty = pretty . sClassDecl
-
-instance SrcInfo loc => Pretty (A.InstDecl loc) where
-        pretty = pretty . sInstDecl
-
-------------------------- FFI stuff -------------------------------------
-instance Pretty (A.Safety l) where
-        pretty = pretty . sSafety
-
-instance Pretty (A.CallConv l) where
-        pretty = pretty . sCallConv
-
-------------------------- Pragmas ---------------------------------------
-instance SrcInfo loc => Pretty (A.Rule loc) where
-        pretty = pretty . sRule
-
-instance Pretty (A.Activation l) where
-    pretty = pretty . sActivation
-
-instance SrcInfo l => Pretty (A.RuleVar l) where
-    pretty = pretty . sRuleVar
-
-instance SrcInfo loc => Pretty (A.ModulePragma loc) where
-    pretty (A.LanguagePragma _ ns) =
-        myFsep $ text "{-# LANGUAGE" : punctuate (char ',') (map pretty ns) ++ [text "#-}"]
-    pretty (A.OptionsPragma _ (Just tool) s) =
-        myFsep [text "{-# OPTIONS_" <> pretty tool, text s, text "#-}"]
-    pretty (A.OptionsPragma _ _ s) =
-        myFsep [text "{-# OPTIONS", text s, text "#-}"]
-    pretty (A.AnnModulePragma _ ann) =
-        myFsep [text "{-# ANN", pretty ann, text "#-}"]
-
-instance SrcInfo loc => Pretty (A.Annotation loc) where
-    pretty = pretty . sAnnotation
-
-------------------------- Data & Newtype Bodies -------------------------
-instance SrcInfo l => Pretty (A.QualConDecl l) where
-        pretty (A.QualConDecl _pos mtvs ctxt con) =
-                myFsep [ppForall (fmap (map sTyVarBind) mtvs), ppContext $ maybe [] sContext ctxt, pretty con]
-
-instance SrcInfo l => Pretty (A.GadtDecl l) where
-        pretty (A.GadtDecl _pos name names ty) =
-            case names of
-                Nothing ->
-                    myFsep [pretty name, text "::", pretty ty]
-                Just ts ->
-                    mySep $ [pretty name, text "::", char '{'] ++
-                              map pretty ts ++ [char '}', text "->", pretty ty]
-
-instance SrcInfo l => Pretty (A.ConDecl l) where
-        pretty = pretty . sConDecl
-
-instance SrcInfo l => Pretty (A.FieldDecl l) where
-        pretty (A.FieldDecl _ names ty) =
-                myFsepSimple $ (punctuate comma . map pretty $ names) ++
-                       [text "::", pretty ty]
-
-
-instance SrcInfo l => Pretty (A.BangType l) where
-        pretty = pretty . sBangType
-
-instance SrcInfo l => Pretty (A.Deriving l) where
-        pretty (A.Deriving _ []) = text "deriving" <+> parenList []
-        pretty (A.Deriving _ [A.IRule _ _ _ d]) = text "deriving" <+> pretty d
-        pretty (A.Deriving _ ihs) = text "deriving" <+> parenList (map pretty ihs)
-
-------------------------- Types -------------------------
-instance SrcInfo l => Pretty (A.Type l) where
-        pretty = pretty . sType
-
-instance Pretty (A.TyVarBind l) where
-        pretty = pretty . sTyVarBind
-
----------------------------- Kinds ----------------------------
-
-instance Pretty (A.Kind l) where
-        pretty = pretty . sKind
-
-------------------- Functional Dependencies -------------------
-instance Pretty (A.FunDep l) where
-        pretty = pretty . sFunDep
-
-------------------------- Expressions -------------------------
-instance SrcInfo loc => Pretty (A.Rhs loc) where
-        pretty = pretty . sRhs
-
-instance SrcInfo loc => Pretty (A.GuardedRhs loc) where
-        pretty = pretty . sGuardedRhs
-
-instance Pretty (A.Literal l) where
-        pretty = pretty . sLiteral
-
-instance SrcInfo loc => Pretty (A.Exp loc) where
-        pretty = pretty . sExp
-
-instance SrcInfo loc => Pretty (A.XAttr loc) where
-        pretty = pretty . sXAttr
-
-instance Pretty (A.XName l) where
-        pretty = pretty . sXName
-
---------------------- Template Haskell -------------------------
-
-instance SrcInfo loc => Pretty (A.Bracket loc) where
-        pretty = pretty . sBracket
-
-instance SrcInfo loc => Pretty (A.Splice loc) where
-        pretty = pretty . sSplice
-
-------------------------- Patterns -----------------------------
-
-instance SrcInfo loc => Pretty (A.Pat loc) where
-        pretty = pretty . sPat
-
-instance SrcInfo loc => Pretty (A.PXAttr loc) where
-        pretty = pretty . sPXAttr
-
-instance SrcInfo loc => Pretty (A.PatField loc) where
-        pretty = pretty . sPatField
-
---------------------- Regular Patterns -------------------------
-
-instance SrcInfo loc => Pretty (A.RPat loc) where
-        pretty = pretty . sRPat
-
-instance Pretty (A.RPatOp l) where
-        pretty = pretty . sRPatOp
-
-------------------------- Case bodies  -------------------------
-instance SrcInfo loc => Pretty (A.Alt loc) where
-        pretty = pretty . sAlt
-
-------------------------- Statements in monads, guards & list comprehensions -----
-instance SrcInfo loc => Pretty (A.Stmt loc) where
-        pretty = pretty . sStmt
-
-instance SrcInfo loc => Pretty (A.QualStmt loc) where
-        pretty = pretty . sQualStmt
-
-------------------------- Record updates
-instance SrcInfo loc => Pretty (A.FieldUpdate loc) where
-        pretty = pretty . sFieldUpdate
-
-------------------------- Names -------------------------
-instance Pretty (A.QOp l) where
-        pretty = pretty . sQOp
-
-instance Pretty (A.QName l) where
-        pretty = pretty . sQName
-
-instance Pretty (A.Op l) where
-        pretty = pretty . sOp
-
-instance Pretty (A.Name l) where
-        pretty = pretty . sName
-
-instance Pretty (A.IPName l) where
-        pretty = pretty . sIPName
-
-instance SrcInfo loc => Pretty (A.IPBind loc) where
-        pretty = pretty . sIPBind
-
-instance Pretty (A.CName l) where
-        pretty = pretty . sCName
-
-instance SrcInfo l => Pretty (A.Context l) where
-        pretty (A.CxEmpty _) = mySep [text "()", text "=>"]
-        pretty (A.CxSingle _ asst) = mySep [pretty asst, text "=>"]
-        pretty (A.CxTuple _ assts) = myFsep [parenList (map pretty assts), text "=>"]
-
--- hacked for multi-parameter type classes
-instance SrcInfo l => Pretty (A.Asst l) where
-        pretty = pretty . sAsst
-
-------------------------- pp utils -------------------------
-maybePP :: (a -> Doc) -> Maybe a -> Doc
-maybePP _  Nothing = empty
-maybePP pp (Just a) = pp a
-
-parenList :: [Doc] -> Doc
-parenList = parens . myFsepSimple . punctuate comma
-
-hashParenList :: [Doc] -> Doc
-hashParenList = hashParens . myFsepSimple . punctuate comma
-  where hashParens = parens . hashes
-        hashes doc = char '#' <> doc <> char '#'
-
-braceList :: [Doc] -> Doc
-braceList = braces . myFsepSimple . punctuate comma
-
-bracketList :: [Doc] -> Doc
-bracketList = brackets . myFsepSimple
-
-bracketColonList :: [Doc] -> Doc
-bracketColonList = bracketColons . myFsepSimple
-    where bracketColons = brackets . colons
-          colons doc = char ':' <> doc <> char ':'
-
--- Wrap in braces and semicolons, with an extra space at the start in
--- case the first doc begins with "-", which would be scanned as {-
-flatBlock :: [Doc] -> Doc
-flatBlock = braces . (space <>) . hsep . punctuate semi
-
--- Same, but put each thing on a separate line
-prettyBlock :: [Doc] -> Doc
-prettyBlock = braces . (space <>) . vcat . punctuate semi
-
--- Monadic PP Combinators -- these examine the env
-
-blankline :: Doc -> Doc
-blankline dl = do{e<-getPPEnv;if spacing e && layout e /= PPNoLayout
-                              then space $$ dl else dl}
-topLevel :: Doc -> [Doc] -> Doc
-topLevel header dl = do
-         e <- fmap layout getPPEnv
-         case e of
-             PPOffsideRule -> header $$ vcat dl
-             PPSemiColon -> header $$ prettyBlock dl
-             PPInLine -> header $$ prettyBlock dl
-             PPNoLayout -> header <+> flatBlock dl
-
-ppBody :: (PPHsMode -> Int) -> [Doc] -> Doc
-ppBody f dl = do
-         e <- fmap layout getPPEnv
-         case e of PPOffsideRule -> indent
-                   PPSemiColon   -> indentExplicit
-                   _ -> flatBlock dl
-                   where
-                   indent  = do{i <-fmap f getPPEnv;nest i . vcat $ dl}
-                   indentExplicit = do {i <- fmap f getPPEnv;
-                           nest i . prettyBlock $ dl}
-
--- | Indent without braces. Useful for deriving clauses etc.
-ppIndent :: (PPHsMode -> Int) -> [Doc] -> Doc
-ppIndent f dl = do
-            i <- fmap f getPPEnv
-            nest i . vcat $ dl
-
-($$$) :: Doc -> Doc -> Doc
-a $$$ b = layoutChoice (a $$) (a <+>) b
-
-mySep :: [Doc] -> Doc
-mySep = layoutChoice mySep' hsep
-        where
-        -- ensure paragraph fills with indentation.
-        mySep' [x]    = x
-        mySep' (x:xs) = x <+> fsep xs
-        mySep' []     = error "Internal error: mySep"
-
-myVcat :: [Doc] -> Doc
-myVcat = layoutChoice vcat hsep
-
-myFsepSimple :: [Doc] -> Doc
-myFsepSimple = layoutChoice fsep hsep
-
--- same, except that continuation lines are indented,
--- which is necessary to avoid triggering the offside rule.
-myFsep :: [Doc] -> Doc
-myFsep = layoutChoice fsep' hsep
-        where   fsep' [] = empty
-                fsep' (d:ds) = do
-                        e <- getPPEnv
-                        let n = onsideIndent e
-                        nest n (fsep (nest (-n) d:ds))
-
-layoutChoice :: (a -> Doc) -> (a -> Doc) -> a -> Doc
-layoutChoice a b dl = do e <- getPPEnv
-                         if layout e == PPOffsideRule ||
-                            layout e == PPSemiColon
-                          then a dl else b dl
-
--- Prefix something with a LINE pragma, if requested.
--- GHC's LINE pragma actually sets the current line number to n-1, so
--- that the following line is line n.  But if there's no newline before
--- the line we're talking about, we need to compensate by adding 1.
-
-markLine :: SrcInfo s => s -> Doc -> Doc
-markLine loc doc = do
-        e <- getPPEnv
-        let y = startLine loc
-        let line l =
-              text ("{-# LINE " ++ show l ++ " \"" ++ fileName loc ++ "\" #-}")
-        if linePragmas e then layoutChoice (line y $$) (line (y+1) <+>) doc
-              else doc
-
---------------------------------------------------------------------------------
--- Pretty-printing of internal constructs, for error messages while parsing
-
-instance SrcInfo loc => Pretty (P.PExp loc) where
-        pretty (P.Lit _ l) = pretty l
-        pretty (P.InfixApp _ a op b) = myFsep [pretty a, pretty op, pretty b]
-        pretty (P.NegApp _ e) = myFsep [char '-', pretty e]
-        pretty (P.App _ a b) = myFsep [pretty a, pretty b]
-        pretty (P.Lambda _loc expList ppBody') = myFsep $
-                char '\\' : map pretty expList ++ [text "->", pretty ppBody']
-        pretty (P.Let _ (A.BDecls _ declList) letBody) =
-                ppLetExp declList letBody
-        pretty (P.Let _ (A.IPBinds _ bindList) letBody) =
-                ppLetExp bindList letBody
-        pretty (P.If _ cond thenexp elsexp) =
-                myFsep [text "if", pretty cond,
-                        text "then", pretty thenexp,
-                        text "else", pretty elsexp]
-        pretty (P.MultiIf _ alts) =
-                text "if"
-                $$$ ppBody caseIndent (map pretty alts)
-        pretty (P.Case _ cond altList) =
-                myFsep [text "case", pretty cond, text "of"]
-                $$$ ppBody caseIndent (map pretty altList)
-        pretty (P.Do _ stmtList) =
-                text "do" $$$ ppBody doIndent (map pretty stmtList)
-        pretty (P.MDo _ stmtList) =
-                text "mdo" $$$ ppBody doIndent (map pretty stmtList)
-        pretty (P.Var _ name) = pretty name
-        pretty (P.IPVar _ ipname) = pretty ipname
-        pretty (P.Con _ name) = pretty name
-        pretty (P.TupleSection _ bxd mExpList) =
-                let ds = map (maybePP pretty) mExpList
-                in case bxd of
-                       Boxed   -> parenList ds
-                       Unboxed -> hashParenList ds
-        pretty (P.Paren _ e) = parens . pretty $ e
-        pretty (P.RecConstr _ c fieldList) =
-                pretty c <> (braceList . map pretty $ fieldList)
-        pretty (P.RecUpdate _ e fieldList) =
-                pretty e <> (braceList . map pretty $ fieldList)
-        pretty (P.List _ list) =
-                bracketList . punctuate comma . map pretty $ list
-        pretty (P.ParArray _ arr) =
-                bracketColonList . punctuate comma . map pretty $ arr
-        pretty (P.EnumFrom _ e) =
-                bracketList [pretty e, text ".."]
-        pretty (P.EnumFromTo _ from to) =
-                bracketList [pretty from, text "..", pretty to]
-        pretty (P.EnumFromThen _ from thenE) =
-                bracketList [pretty from <> comma, pretty thenE, text ".."]
-        pretty (P.EnumFromThenTo _ from thenE to) =
-                bracketList [pretty from <> comma, pretty thenE,
-                             text "..", pretty to]
-        pretty (P.ParArrayFromTo _ from to) =
-                bracketColonList [pretty from, text "..", pretty to]
-        pretty (P.ParArrayFromThenTo _ from thenE to) =
-                bracketColonList [pretty from <> comma, pretty thenE,
-                             text "..", pretty to]
-        pretty (P.ParComp _ e qualLists) =
-                bracketList (intersperse (char '|') $
-                                pretty e : (punctuate comma . concatMap (map pretty) $ qualLists))
-        pretty (P.ParArrayComp _ e qualArrs) =
-                bracketColonList (intersperse (char '|') $
-                                pretty e : (punctuate comma . concatMap (map pretty) $ qualArrs))
-        pretty (P.ExpTypeSig _pos e ty) =
-                myFsep [pretty e, text "::", pretty ty]
-        pretty (P.BracketExp _ b) = pretty b
-        pretty (P.SpliceExp _ s) = pretty s
-        pretty (P.TypQuote _ t)  = text "\'\'" <> pretty t
-        pretty (P.VarQuote _ x)  = text "\'" <> pretty x
-        pretty (P.QuasiQuote _ n qt) = text ("[$" ++ n ++ "|" ++ qt ++ "|]")
-        pretty (P.XTag _ n attrs mattr cs) =
-                let ax = maybe [] (return . pretty) mattr
-                 in hcat $
-                     (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
-                        map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]
-        pretty (P.XETag _ n attrs mattr) =
-                let ax = maybe [] (return . pretty) mattr
-                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [text "/>"]
-        pretty (P.XPcdata _ s) = text s
-        pretty (P.XExpTag _ e) =
-                myFsep [text "<%", pretty e, text "%>"]
-        pretty (P.XChildTag _ es) =
-                myFsep $ text "<%>" : map pretty es ++ [text "</%>"]
-        pretty (P.CorePragma _ s e) = myFsep $ map text ["{-# CORE", show s, "#-}"] ++ [pretty e]
-        pretty (P.SCCPragma  _ s e) = myFsep $ map text ["{-# SCC",  show s, "#-}"] ++ [pretty e]
-        pretty (P.GenPragma  _ s (a,b) (c,d) e) =
-                myFsep [text "{-# GENERATED", text $ show s,
-                            int a, char ':', int b, char '-',
-                            int c, char ':', int d, text "#-}", pretty e]
-        pretty (P.Proc _ p e) = myFsep [text "proc", pretty p, text "->", pretty e]
-        pretty (P.LeftArrApp _ l r)      = myFsep [pretty l, text "-<",  pretty r]
-        pretty (P.RightArrApp _ l r)     = myFsep [pretty l, text ">-",  pretty r]
-        pretty (P.LeftArrHighApp _ l r)  = myFsep [pretty l, text "-<<", pretty r]
-        pretty (P.RightArrHighApp _ l r) = myFsep [pretty l, text ">>-", pretty r]
-        pretty (P.AsPat _ name (P.IrrPat _ pat)) =
-                myFsep [pretty name <> char '@', char '~' <> pretty pat]
-        pretty (P.AsPat _ name pat) =
-                hcat [pretty name, char '@', pretty pat]
-        pretty (P.WildCard _) = char '_'
-        pretty (P.IrrPat _ pat) = char '~' <> pretty pat
-        pretty (P.PostOp _ e op) = pretty e <+> pretty op
-        pretty (P.PreOp _ op e)  = pretty op <+> pretty e
-        pretty (P.ViewPat _ e p) =
-                myFsep [pretty e, text "->", pretty p]
-        pretty (P.SeqRP _ rs) = myFsep $ text "(/" : map pretty rs ++ [text "/)"]
-        pretty (P.GuardRP _ r gs) =
-                myFsep $ text "(|" : pretty r : char '|' : map pretty gs ++ [text "|)"]
-        pretty (P.EitherRP _ r1 r2) = parens . myFsep $ [pretty r1, char '|', pretty r2]
-        pretty (P.CAsRP _ n (P.IrrPat _ e)) =
-                myFsep [pretty n <> text "@:", char '~' <> pretty e]
-        pretty (P.CAsRP _ n r) = hcat [pretty n, text "@:", pretty r]
-        pretty (P.XRPats _ ps) =
-                myFsep $ text "<[" : map pretty ps ++ [text "%>"]
-        pretty (P.BangPat _ e) = text "!" <> pretty e
-        pretty (P.LCase _ altList) = text "\\case" $$$ ppBody caseIndent (map pretty altList)
-
-instance SrcInfo loc => Pretty (P.PFieldUpdate loc) where
-        pretty (P.FieldUpdate _ name e) =
-                myFsep [pretty name, equals, pretty e]
-        pretty (P.FieldPun _ name) = pretty name
-        pretty (P.FieldWildcard _) = text ".."
-
-instance SrcInfo loc => Pretty (P.ParseXAttr loc) where
-        pretty (P.XAttr _ n v) =
-                myFsep [pretty n, char '=', pretty v]
-
-instance SrcInfo loc => Pretty (P.PContext loc) where
-        pretty (P.CxEmpty _) = mySep [text "()", text "=>"]
-        pretty (P.CxSingle _ asst) = mySep [pretty asst, text "=>"]
-        pretty (P.CxTuple _ assts) = myFsep [parenList (map pretty assts), text "=>"]
-
-instance SrcInfo loc => Pretty (P.PAsst loc) where
-        pretty (P.ClassA _ a ts)   = myFsep $ ppQName (sQName a) : map (prettyPrec prec_atype) ts
-        pretty (P.VarA _ n)        = pretty n
-        pretty (P.InfixA _ a op b) = myFsep [pretty a, ppQNameInfix (sQName op), pretty b]
-        pretty (P.IParam _ i t)    = myFsep [pretty i, text "::", pretty t]
-        pretty (P.EqualP _ t1 t2)  = myFsep [pretty t1, text "~", pretty t2]
-        pretty (P.ParenA _ a)      = parens (pretty a)
-
-instance SrcInfo loc => Pretty (P.PType loc) where
-        prettyPrec p (P.TyForall _ mtvs ctxt htype) = parensIf (p > 0) $
-                myFsep [ppForall (fmap (map sTyVarBind) mtvs), maybePP pretty ctxt, pretty htype]
-        prettyPrec p (P.TyFun _ a b) = parensIf (p > 0) $
-                myFsep [prettyPrec prec_btype a, text "->", pretty b]
-        prettyPrec _ (P.TyTuple _ bxd l) =
-                let ds = map pretty l
-                 in case bxd of
-                        Boxed   -> parenList ds
-                        Unboxed -> hashParenList ds
-        prettyPrec _ (P.TyList _ t)  = brackets $ pretty t
-        prettyPrec _ (P.TyParArray _ t) = bracketColonList [pretty t]
-        prettyPrec p (P.TyApp _ a b) =
-                {-
-                | a == list_tycon = brackets $ pretty b         -- special case
-                | otherwise = -} parensIf (p > prec_btype) $
-                                    myFsep [pretty a, prettyPrec prec_atype b]
-        prettyPrec _ (P.TyVar _ name) = pretty name
-        prettyPrec _ (P.TyCon _ name) = pretty name
-        prettyPrec _ (P.TyParen _ t) = parens (pretty t)
-        prettyPrec _ (P.TyPred _ asst) = pretty asst
-        prettyPrec _ (P.TyInfix _ a op b) = myFsep [pretty a, ppQNameInfix (sQName op), pretty b]
-        prettyPrec _ (P.TyKind _ t k) = parens (myFsep [pretty t, text "::", pretty k])
-        prettyPrec _ (P.TyPromoted _ p) = pretty $ sPromoted p
-        prettyPrec _ (P.TySplice _ s) = pretty s
-        prettyPrec _ (P.TyBang _ b t) = pretty b <> pretty t
+{-# LANGUAGE CPP #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Language.Haskell.Exts.Pretty
+-- Copyright   :  (c) Niklas Broberg 2004-2009,
+--                (c) The GHC Team, Noel Winstanley 1997-2000
+-- License     :  BSD-style (see the file LICENSE.txt)
+--
+-- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Pretty printer for Haskell with extensions.
+--
+-----------------------------------------------------------------------------
+
+module Language.Haskell.Exts.Pretty (
+                -- * Pretty printing
+                Pretty,
+                prettyPrintStyleMode, prettyPrintWithMode, prettyPrint,
+                -- * Pretty-printing styles (from "Text.PrettyPrint.HughesPJ")
+                P.Style(..), P.style, P.Mode(..),
+                -- * Haskell formatting modes
+                PPHsMode(..), Indent, PPLayout(..), defaultMode
+                -- * Primitive Printers
+                , prettyPrim, prettyPrimWithMode
+                ) where
+
+import Language.Haskell.Exts.Syntax
+import qualified Language.Haskell.Exts.ParseSyntax as P
+
+import Language.Haskell.Exts.SrcLoc hiding (loc)
+
+import Prelude hiding ( exp
+#if MIN_VERSION_base(4,11,0)
+                      , (<>)
+#endif
+                      )
+import qualified Text.PrettyPrint as P
+import Data.List (intersperse)
+import Data.Maybe (isJust , fromMaybe)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative (Applicative(..), (<$>))
+#endif
+import qualified Control.Monad as M (ap)
+
+infixl 5 $$$
+
+-----------------------------------------------------------------------------
+
+-- | Varieties of layout we can use.
+data PPLayout = PPOffsideRule   -- ^ classical layout
+              | PPSemiColon     -- ^ classical layout made explicit
+              | PPInLine        -- ^ inline decls, with newlines between them
+              | PPNoLayout      -- ^ everything on a single line
+              deriving Eq
+
+type Indent = Int
+
+-- | Pretty-printing parameters.
+--
+-- /Note:/ the 'onsideIndent' must be positive and less than all other indents.
+data PPHsMode = PPHsMode {
+                                -- | indentation of a class or instance
+                classIndent :: Indent,
+                                -- | indentation of a @do@-expression
+                doIndent :: Indent,
+                                -- | indentation of the body of a
+                                -- @case@ expression
+                multiIfIndent :: Indent,
+                                -- | indentation of the body of a
+                                -- multi-@if@ expression
+                caseIndent :: Indent,
+                                -- | indentation of the declarations in a
+                                -- @let@ expression
+                letIndent :: Indent,
+                                -- | indentation of the declarations in a
+                                -- @where@ clause
+                whereIndent :: Indent,
+                                -- | indentation added for continuation
+                                -- lines that would otherwise be offside
+                onsideIndent :: Indent,
+                                -- | blank lines between statements?
+                spacing :: Bool,
+                                -- | Pretty-printing style to use
+                layout :: PPLayout,
+                                -- | add GHC-style @LINE@ pragmas to output?
+                linePragmas :: Bool
+                }
+
+-- | The default mode: pretty-print using the offside rule and sensible
+-- defaults.
+defaultMode :: PPHsMode
+defaultMode = PPHsMode{
+                      classIndent = 8,
+                      doIndent = 3,
+                      multiIfIndent = 3,
+                      caseIndent = 4,
+                      letIndent = 4,
+                      whereIndent = 6,
+                      onsideIndent = 2,
+                      spacing = True,
+                      layout = PPOffsideRule,
+                      linePragmas = False
+                      }
+
+-- | Pretty printing monad
+newtype DocM s a = DocM (s -> a)
+
+instance Functor (DocM s) where
+         fmap f xs = do x <- xs; return (f x)
+
+instance Applicative (DocM s) where
+        pure = retDocM
+        (<*>) = M.ap
+
+instance Monad (DocM s) where
+        (>>=) = thenDocM
+        (>>) = then_DocM
+
+{-# INLINE thenDocM #-}
+{-# INLINE then_DocM #-}
+{-# INLINE retDocM #-}
+{-# INLINE unDocM #-}
+{-# INLINE getPPEnv #-}
+
+thenDocM :: DocM s a -> (a -> DocM s b) -> DocM s b
+thenDocM m k = DocM $ \s -> case unDocM m s of a -> unDocM (k a) s
+
+then_DocM :: DocM s a -> DocM s b -> DocM s b
+then_DocM m k = DocM $ \s -> case unDocM m s of _ -> unDocM k s
+
+retDocM :: a -> DocM s a
+retDocM a = DocM $ const a
+
+unDocM :: DocM s a -> s -> a
+unDocM (DocM f) = f
+
+-- all this extra stuff, just for this one function.
+getPPEnv :: DocM s s
+getPPEnv = DocM id
+
+-- So that pp code still looks the same
+-- this means we lose some generality though
+
+-- | The document type produced by these pretty printers uses a 'PPHsMode'
+-- environment.
+type Doc = DocM PPHsMode P.Doc
+
+-- | Things that can be pretty-printed, including all the syntactic objects
+-- in "Language.Haskell.Exts.Syntax".
+class Pretty a where
+        -- | Pretty-print something in isolation.
+        pretty :: a -> Doc
+        -- | Pretty-print something in a precedence context.
+        prettyPrec :: Int -> a -> Doc
+        pretty = prettyPrec 0
+        prettyPrec _ = pretty
+
+-- The pretty printing combinators
+
+empty :: Doc
+empty = return P.empty
+
+nest :: Int -> Doc -> Doc
+nest i m = m >>= return . P.nest i
+
+
+-- Literals
+
+text :: String -> Doc
+text = return . P.text
+
+char :: Char -> Doc
+char = return . P.char
+
+int :: Int -> Doc
+int = return . P.int
+
+integer :: Integer -> Doc
+integer = return . P.integer
+
+float :: Float -> Doc
+float = return . P.float
+
+double :: Double -> Doc
+double = return . P.double
+
+-- rational :: Rational -> Doc
+-- rational = return . P.rational
+
+-- Simple Combining Forms
+
+parens, brackets, braces, doubleQuotes :: Doc -> Doc
+parens d = d >>= return . P.parens
+brackets d = d >>= return . P.brackets
+braces d = d >>= return . P.braces
+-- quotes :: Doc -> Doc
+-- quotes d = d >>= return . P.quotes
+doubleQuotes d = d >>= return . P.doubleQuotes
+
+parensIf :: Bool -> Doc -> Doc
+parensIf True = parens
+parensIf False = id
+
+-- Constants
+
+semi,comma,space,equals :: Doc
+semi = return P.semi
+comma = return P.comma
+-- colon :: Doc
+-- colon = return P.colon
+space = return P.space
+equals = return P.equals
+
+{-
+lparen,rparen,lbrack,rbrack,lbrace,rbrace :: Doc
+lparen = return  P.lparen
+rparen = return  P.rparen
+lbrack = return  P.lbrack
+rbrack = return  P.rbrack
+lbrace = return  P.lbrace
+rbrace = return  P.rbrace
+-}
+
+-- Combinators
+
+(<>),(<+>),($$) :: Doc -> Doc -> Doc
+aM <> bM = do{a<-aM;b<-bM;return (a P.<> b)}
+aM <+> bM = do{a<-aM;b<-bM;return (a P.<+> b)}
+aM $$ bM = do{a<-aM;b<-bM;return (a P.$$ b)}
+($+$) :: Doc -> Doc -> Doc
+aM $+$ bM = do{a<-aM;b<-bM;return (a P.$+$ b)}
+
+hcat,hsep,vcat,fsep :: [Doc] -> Doc
+hcat dl = sequence dl >>= return . P.hcat
+hsep dl = sequence dl >>= return . P.hsep
+vcat dl = sequence dl >>= return . P.vcat
+-- sep, cat, fcat :: [Doc] -> Doc
+-- sep dl = sequence dl >>= return . P.sep
+-- cat dl = sequence dl >>= return . P.cat
+fsep dl = sequence dl >>= return . P.fsep
+-- fcat dl = sequence dl >>= return . P.fcat
+
+-- Some More
+
+-- hang :: Doc -> Int -> Doc -> Doc
+-- hang dM i rM = do{d<-dM;r<-rM;return $ P.hang d i r}
+
+-- Yuk, had to cut-n-paste this one from Pretty.hs
+punctuate :: Doc -> [Doc] -> [Doc]
+punctuate _ []     = []
+punctuate p (d1:ds) = go d1 ds
+                   where
+                     go d [] = [d]
+                     go d (e:es) = (d <> p) : go e es
+
+-- | render the document with a given style and mode.
+renderStyleMode :: P.Style -> PPHsMode -> Doc -> String
+renderStyleMode ppStyle ppMode d = P.renderStyle ppStyle . unDocM d $ ppMode
+
+-- | render the document with a given mode.
+-- renderWithMode :: PPHsMode -> Doc -> String
+-- renderWithMode = renderStyleMode P.style
+
+-- | render the document with 'defaultMode'.
+-- render :: Doc -> String
+-- render = renderWithMode defaultMode
+
+-- | pretty-print with a given style and mode.
+prettyPrintStyleMode :: Pretty a => P.Style -> PPHsMode -> a -> String
+prettyPrintStyleMode ppStyle ppMode = renderStyleMode ppStyle ppMode . pretty
+
+-- | pretty-print with the default style and a given mode.
+prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String
+prettyPrintWithMode = prettyPrintStyleMode P.style
+
+-- | pretty-print with the default style and 'defaultMode'.
+prettyPrint :: Pretty a => a -> String
+prettyPrint = prettyPrintWithMode defaultMode
+
+-- fullRenderWithMode :: PPHsMode -> P.Mode -> Int -> Float ->
+--                       (P.TextDetails -> a -> a) -> a -> Doc -> a
+-- fullRenderWithMode ppMode m i f fn e mD =
+--                   P.fullRender m i f fn e $ (unDocM mD) ppMode
+
+
+-- fullRender :: P.Mode -> Int -> Float -> (P.TextDetails -> a -> a)
+--               -> a -> Doc -> a
+-- fullRender = fullRenderWithMode defaultMode
+
+-- | pretty-print with the default style and 'defaultMode'.
+prettyPrim :: Pretty a => a -> P.Doc
+prettyPrim = prettyPrimWithMode defaultMode
+
+-- | pretty-print with the default style and a given mode.
+prettyPrimWithMode :: Pretty a => PPHsMode -> a -> P.Doc
+prettyPrimWithMode pphs doc = unDocM (pretty doc) pphs
+
+
+-------------------------  Pretty-Print a Module --------------------
+{-
+instance  Pretty (Module l) where
+        pretty (Module pos m os mbWarn mbExports imp decls) =
+                markLine pos $ (myVcat $ map pretty os) $$
+                myVcat (
+                    (if m == ModuleName "" then id
+                     else \x -> [topLevel (ppModuleHeader m mbWarn mbExports) x])
+                    (map pretty imp ++
+                      ppDecls (m /= ModuleName "" ||
+                               not (null imp) ||
+                               not (null os))
+                              decls]-}
+
+--------------------------  Module Header ------------------------------
+instance Pretty (ModuleHead l) where
+  pretty (ModuleHead _ m mbWarn mbExportList) =
+    mySep [
+        text "module",
+        pretty m,
+        maybePP ppWarnTxt mbWarn,
+        maybePP pretty mbExportList,
+        text "where"]
+
+instance Pretty (ExportSpecList l) where
+        pretty (ExportSpecList _ especs)  = parenList $ map pretty especs
+
+ppWarnTxt :: WarningText l -> Doc
+ppWarnTxt (DeprText _ s) = mySep [text "{-# DEPRECATED", text (show s), text "#-}"]
+ppWarnTxt (WarnText _ s) = mySep [text "{-# WARNING",    text (show s), text "#-}"]
+
+instance  Pretty (ModuleName l) where
+        pretty (ModuleName _ modName) = text modName
+
+instance  Pretty (Namespace l) where
+        pretty NoNamespace {}     = empty
+        pretty TypeNamespace {}   = text "type"
+        pretty PatternNamespace {} = text "pattern"
+
+instance  Pretty (ExportSpec l) where
+        pretty (EVar _ name)                = pretty name
+        pretty (EAbs _ ns name)             = pretty ns <+> pretty name
+        pretty (EThingWith _ wc name nameList) =
+          let prettyNames = map pretty nameList
+              names = case wc of
+                        NoWildcard {} -> prettyNames
+                        EWildcard _ n  ->
+                          let (before,after) = splitAt n prettyNames
+                          in before ++ [text ".."] ++ after
+           in pretty name <> (parenList names)
+        pretty (EModuleContents _ m)        = text "module" <+> pretty m
+
+instance  Pretty (ImportDecl l) where
+        pretty (ImportDecl _ m qual src safe mbPkg mbName mbSpecs) =
+                mySep [text "import",
+                       if src  then text "{-# SOURCE #-}" else empty,
+                       if safe then text "safe" else empty,
+                       if qual then text "qualified" else empty,
+                       maybePP (\s -> text (show s)) mbPkg,
+                       pretty m,
+                       maybePP (\m' -> text "as" <+> pretty m') mbName,
+                       maybePP pretty mbSpecs]
+
+instance Pretty (ImportSpecList l) where
+        pretty (ImportSpecList _ b ispecs)  =
+            (if b then text "hiding" else empty)
+                <+> parenList (map pretty ispecs)
+
+instance  Pretty (ImportSpec l) where
+        pretty (IVar _ name  )              = pretty name
+        pretty (IAbs _ ns name)             = pretty ns <+> pretty name
+        pretty (IThingAll _ name)           = pretty name <> text "(..)"
+        pretty (IThingWith _ name nameList) =
+                pretty name <> (parenList . map pretty $ nameList)
+
+instance  Pretty (TypeEqn l) where
+        pretty (TypeEqn _ pat eqn) = mySep [pretty pat, equals, pretty eqn]
+
+-------------------------  Declarations ------------------------------
+class Pretty a => PrettyDeclLike a where
+  wantsBlankline :: a -> Bool
+
+instance  PrettyDeclLike (Decl l) where
+  wantsBlankline (FunBind {}) = False
+  wantsBlankline (PatBind {}) = False
+  wantsBlankline _ = True
+
+condBlankline :: PrettyDeclLike a => a -> Doc
+condBlankline d = (if wantsBlankline d then blankline else id) $ pretty d
+
+ppDecls :: PrettyDeclLike a => Bool -> [a] -> [Doc]
+ppDecls True  ds     = map condBlankline ds
+ppDecls False (d:ds) = pretty d : map condBlankline ds
+ppDecls _ _ = []
+--ppDecls = map condBlankline
+
+instance Pretty (InjectivityInfo l) where
+  pretty (InjectivityInfo _ from to) =
+    char '|' <+> pretty from <+> text "->" <+> hsep (map pretty to)
+
+instance Pretty (ResultSig l) where
+  pretty (KindSig _ kind) = text "::" <+> pretty kind
+  pretty (TyVarSig _ tv)  = char '='  <+> pretty tv
+
+instance  Pretty (Decl l) where
+        pretty (TypeDecl _ dHead htype) =
+                mySep ( [text "type", pretty dHead]
+                        ++ [equals, pretty htype])
+
+        pretty (DataDecl _ don context dHead constrList derives) =
+                mySep ( [pretty don, maybePP pretty context, pretty dHead])
+
+                  <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
+                                             (map pretty constrList))
+                        $$$ ppIndent letIndent (map pretty derives))
+
+        pretty (GDataDecl _ don context dHead optkind gadtList derives) =
+                mySep ( [pretty don, maybePP pretty context, pretty dHead]
+                        ++ ppOptKind optkind ++ [text "where"])
+                        $$$ ppBody classIndent (map pretty gadtList)
+                        $$$ ppIndent letIndent (map pretty derives)
+
+        pretty (TypeFamDecl _ dHead optkind optinj) =
+                mySep ([text "type", text "family", pretty dHead
+                       , maybePP pretty optkind, maybePP pretty optinj])
+
+        pretty (ClosedTypeFamDecl _ dHead optkind optinj eqns) =
+                mySep ([text "type", text "family", pretty dHead
+                       , maybePP pretty optkind ,maybePP pretty optinj
+                       , text "where"]) $$$ ppBody classIndent (map pretty eqns)
+
+        pretty (DataFamDecl _ context dHead optkind) =
+                mySep ( [text "data", text "family", maybePP pretty context, pretty dHead
+                        , maybePP pretty optkind])
+
+        pretty (TypeInsDecl _ ntype htype) =
+                mySep [text "type", text "instance", pretty ntype, equals, pretty htype]
+
+        pretty (DataInsDecl _ don ntype constrList derives) =
+                mySep [pretty don, text "instance ", pretty ntype]
+                        <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
+                                                   (map pretty constrList))
+                              $$$ ppIndent letIndent (map pretty derives))
+
+        pretty (GDataInsDecl _ don ntype optkind gadtList derives) =
+                mySep ( [pretty don, text "instance ", pretty ntype]
+                        ++ ppOptKind optkind ++ [text "where"])
+                        $$$ ppBody classIndent (map pretty gadtList)
+                        $$$ ppIndent letIndent (map pretty derives)
+
+        --m{spacing=False}
+        -- special case for empty class declaration
+        pretty (ClassDecl _ context dHead fundeps Nothing) =
+                mySep ( [text "class", maybePP pretty context, pretty dHead
+                        , ppFunDeps fundeps])
+        pretty (ClassDecl _ context dHead fundeps declList) =
+                mySep ( [text "class", maybePP pretty context, pretty dHead
+                        , ppFunDeps fundeps, text "where"])
+                $$$ ppBody classIndent (fromMaybe [] ((ppDecls False) <$> declList))
+
+        -- m{spacing=False}
+        -- special case for empty instance  declaration
+        pretty (InstDecl _ moverlap iHead Nothing) =
+                  mySep ( [text "instance", maybePP pretty moverlap, pretty iHead])
+        pretty (InstDecl _ overlap iHead declList) =
+                mySep ( [ text "instance", maybePP pretty overlap
+                           , pretty iHead, text "where"])
+                $$$ ppBody classIndent (fromMaybe [] ((ppDecls False) <$> declList))
+
+        pretty (DerivDecl _ mds overlap irule) =
+                  mySep ( [ text "deriving"
+                          , maybePP pretty mds
+                          , text "instance"
+                          , maybePP pretty overlap
+                          , pretty irule])
+        pretty (DefaultDecl _ htypes) =
+                text "default" <+> parenList (map pretty htypes)
+
+        pretty (SpliceDecl _ splice) =
+                pretty splice
+
+        pretty (TSpliceDecl _ splice) =
+                pretty splice
+
+        pretty (TypeSig _ nameList qualType) =
+                mySep ((punctuate comma . map pretty $ nameList)
+                      ++ [text "::", pretty qualType])
+
+        --  Req can be ommitted if it is empty
+        --  We must print prov if req is nonempty
+        pretty (PatSynSig _ ns mtvs prov mtvs2 req t) =
+                let contexts = [maybePP pretty prov, ppForall mtvs2, maybePP pretty req]
+                 in
+                  mySep ( [text "pattern" ]
+                           ++ punctuate comma (map pretty ns)
+                           ++ [ text "::", ppForall mtvs] ++
+                          contexts ++ [pretty t] )
+
+
+        pretty (FunBind _ matches) = do
+                e <- fmap layout getPPEnv
+                case e of PPOffsideRule -> foldr ($$$) empty (map pretty matches)
+                          _ -> hsep $ punctuate semi (map pretty matches)
+
+        pretty (PatBind _ pat rhs whereBinds) =
+                myFsep [pretty pat, pretty rhs] $$$ ppWhere whereBinds
+
+        pretty (InfixDecl _ assoc prec opList) =
+                mySep ([pretty assoc, maybePP int prec]
+                       ++ (punctuate comma . map pretty $ opList))
+
+        pretty (PatSyn _ pat rhs dir) =
+                let sep = case dir of
+                            ImplicitBidirectional {}   -> "="
+                            ExplicitBidirectional {}   -> "<-"
+                            Unidirectional {}          -> "<-"
+                in
+                 (mySep ([text "pattern", pretty pat, text sep, pretty rhs])) $$$
+                    (case dir of
+                      ExplicitBidirectional _ ds ->
+                        nest 2 (text "where" $$$ ppBody whereIndent (ppDecls False ds))
+                      _ -> empty)
+
+        pretty (ForImp _ cconv saf str name typ) =
+                mySep [text "foreign import", pretty cconv, maybePP pretty saf,
+                       maybe empty (text . show) str, pretty name, text "::", pretty typ]
+
+        pretty (ForExp _ cconv str name typ) =
+                mySep [text "foreign export", pretty cconv,
+                       text (show str), pretty name, text "::", pretty typ]
+
+        pretty (RulePragmaDecl _ rules) =
+                myVcat $ text "{-# RULES" : map pretty rules ++ [text " #-}"]
+
+        pretty (DeprPragmaDecl _ deprs) =
+                myVcat $ text "{-# DEPRECATED" : map ppWarnDepr deprs ++ [text " #-}"]
+
+        pretty (WarnPragmaDecl _ deprs) =
+                myVcat $ text "{-# WARNING" : map ppWarnDepr deprs ++ [text " #-}"]
+
+        pretty (InlineSig _ inl activ name) =
+                mySep [text (if inl then "{-# INLINE" else "{-# NOINLINE")
+                      , maybePP pretty activ, pretty name, text "#-}"]
+
+        pretty (InlineConlikeSig _ activ name) =
+                mySep [ text "{-# INLINE CONLIKE", maybePP pretty activ
+                      , pretty name, text "#-}"]
+
+        pretty (SpecSig _ activ name types) =
+                mySep $ [text "{-# SPECIALISE", maybePP pretty activ
+                        , pretty name, text "::"]
+                         ++ punctuate comma (map pretty types) ++ [text "#-}"]
+
+        pretty (SpecInlineSig _ inl activ name types) =
+                mySep $ [text "{-# SPECIALISE", text (if inl then "INLINE" else "NOINLINE"),
+                        maybePP pretty activ, pretty name, text "::"]
+                        ++ (punctuate comma $ map pretty types) ++ [text "#-}"]
+
+        pretty (InstSig _ irule) =
+                mySep $ [ text "{-# SPECIALISE", text "instance", pretty irule
+                        , text "#-}"]
+
+        pretty (AnnPragma _ annp) =
+                mySep [text "{-# ANN", pretty annp, text "#-}"]
+
+        pretty (MinimalPragma _ b) =
+                let bs = case b of { Just b' -> pretty b'; _ -> empty }
+                in myFsep [text "{-# MINIMAL", bs, text "#-}"]
+
+        pretty (RoleAnnotDecl _ qn rs) =
+                mySep ( [text "type", text "role", pretty qn]
+                        ++ map pretty rs )
+        pretty (CompletePragma _ cls opt_ts) =
+                let cls_p = punctuate comma $ map pretty cls
+                    ts_p  = maybe empty (\tc -> text "::" <+> pretty tc) opt_ts
+                in myFsep $ [text "{-# COMPLETE"] ++ cls_p ++ [ts_p, text "#-}"]
+
+instance Pretty (InstRule l) where
+    pretty (IRule _ tvs mctxt qn)  =
+            mySep [ppForall tvs
+                  , maybePP pretty mctxt, pretty qn]
+    pretty (IParen _ ih)        = parens (pretty ih)
+
+instance  Pretty (InstHead l) where
+    pretty (IHCon _ qn)          = pretty qn
+    pretty (IHInfix _ ta qn)     = mySep [pretty ta, pretty qn]
+    pretty (IHParen _ ih)        = parens (pretty ih)
+    pretty (IHApp _ ih t)        = myFsep [pretty ih, pretty t]
+
+
+instance  Pretty (Annotation l) where
+        pretty (Ann _ n e) = myFsep [pretty n, pretty e]
+        pretty (TypeAnn _ n e) = myFsep [text "type", pretty n, pretty e]
+        pretty (ModuleAnn _ e) = myFsep [text "module", pretty e]
+
+instance  Pretty (BooleanFormula l) where
+        pretty (VarFormula _ n)   = pretty n
+        pretty (AndFormula _ bs)  = myFsep $ punctuate (text " ,") $ map pretty bs
+        pretty (OrFormula _ bs)   = myFsep $ punctuate (text " |") $ map pretty bs
+        pretty (ParenFormula _ b) = parens $ pretty b
+
+instance  Pretty (Role l) where
+        pretty RoleWildcard{}     = char '_'
+        pretty Nominal{}          = text "nominal"
+        pretty Representational{} = text "representational"
+        pretty Phantom{}          = text "phantom"
+
+instance  Pretty (DataOrNew l) where
+        pretty DataType{} = text "data"
+        pretty NewType{}  = text "newtype"
+
+instance  Pretty (Assoc l) where
+        pretty AssocNone{}  = text "infix"
+        pretty AssocLeft{}  = text "infixl"
+        pretty AssocRight{} = text "infixr"
+
+instance  Pretty (Match l) where
+        pretty (InfixMatch _ l op rs rhs wbinds) =
+          let
+              lhs = case rs of
+                      []  -> [] -- Should never reach
+                      (r:rs') ->
+                        let hd = [prettyPrec 2 l, ppNameInfix op, prettyPrec 2 r]
+                        in if null rs'
+                            then hd
+                            else parens (myFsep hd) : map (prettyPrec 3) rs'
+
+          in myFsep (lhs ++ [pretty rhs]) $$$ ppWhere wbinds
+        pretty (Match _ f ps rhs whereBinds) =
+                myFsep (pretty f : map (prettyPrec 3) ps ++ [pretty rhs])
+                $$$ ppWhere whereBinds
+
+ppWhere :: Maybe (Binds l) -> Doc
+ppWhere Nothing            = empty
+ppWhere (Just (BDecls _ l))  = nest 2 (text "where" $$$ ppBody whereIndent (ppDecls False l))
+ppWhere (Just (IPBinds _ b)) = nest 2 (text "where" $$$ ppBody whereIndent (ppDecls False b))
+
+instance  PrettyDeclLike (ClassDecl l) where
+    wantsBlankline (ClsDecl _ d) = wantsBlankline d
+    wantsBlankline (ClsDefSig {}) = True
+    wantsBlankline _ = False
+
+instance  Pretty (ClassDecl l) where
+    pretty (ClsDecl _ decl) = pretty decl
+
+    pretty (ClsDataFam _ context declHead optkind) =
+                mySep ( [text "data", maybePP pretty context, pretty declHead
+                        , maybePP pretty optkind])
+
+    pretty (ClsTyFam _ declHead optkind optinj) =
+                mySep ( [text "type", pretty declHead
+                        , maybePP pretty optkind, maybePP pretty optinj])
+
+    pretty (ClsTyDef _ ntype) =
+                mySep [text "type", pretty ntype]
+
+    pretty (ClsDefSig _ name typ) =
+                mySep [
+                    text "default",
+                    pretty name,
+                    text "::",
+                    pretty typ]
+
+instance Pretty (DeclHead l) where
+  pretty (DHead _ n) = pretty n
+  pretty (DHInfix _ tv n) =  pretty tv <+> ppNameInfix n
+  pretty (DHParen _ d) = parens (pretty d)
+  pretty (DHApp _ dh tv) = pretty dh <+> pretty tv
+
+
+
+instance  PrettyDeclLike (InstDecl l) where
+    wantsBlankline (InsDecl _ d) = wantsBlankline d
+    wantsBlankline _ = False
+
+instance  Pretty (InstDecl l) where
+        pretty (InsDecl _ decl) = pretty decl
+
+        pretty (InsType _ ntype htype) =
+                mySep [text "type", pretty ntype, equals, pretty htype]
+
+        pretty (InsData _ don ntype constrList derives) =
+                mySep [pretty don, pretty ntype]
+                        <+> (myVcat (zipWith (<+>) (equals : repeat (char '|'))
+                                                   (map pretty constrList))
+                              $$$ ppIndent letIndent (map pretty derives))
+
+        pretty (InsGData _ don ntype optkind gadtList derives) =
+                mySep ( [pretty don, pretty ntype]
+                        ++ ppOptKind optkind ++ [text "where"])
+                        $$$ ppBody classIndent (map pretty gadtList)
+                        $$$ ppIndent letIndent (map pretty derives)
+
+--        pretty (InsInline loc inl activ name) =
+--                markLine loc $
+--                mySep [text (if inl then "{-# INLINE" else "{-# NOINLINE"), pretty activ, pretty name, text "#-}"]
+
+
+------------------------- FFI stuff -------------------------------------
+instance  Pretty (Safety l) where
+        pretty PlayRisky {}        = text "unsafe"
+        pretty (PlaySafe _ b)      = text $ if b then "threadsafe" else "safe"
+        pretty PlayInterruptible {} = text "interruptible"
+
+instance  Pretty (CallConv l) where
+        pretty StdCall {}    = text "stdcall"
+        pretty CCall {}     = text "ccall"
+        pretty CPlusPlus {}  = text "cplusplus"
+        pretty DotNet {}     = text "dotnet"
+        pretty Jvm {}        = text "jvm"
+        pretty Js {}         = text "js"
+        pretty JavaScript {} = text "javascript"
+        pretty CApi {}       = text "capi"
+
+------------------------- Pragmas ---------------------------------------
+ppWarnDepr :: ([Name l], String) -> Doc
+ppWarnDepr (names, txt) = mySep $ punctuate comma (map pretty names) ++ [text $ show txt]
+
+instance  Pretty (Rule l) where
+        pretty (Rule _ tag activ rvs rhs lhs) =
+            mySep [text $ show tag, maybePP pretty activ,
+                        maybePP ppRuleVars rvs,
+                        pretty rhs, char '=', pretty lhs]
+
+ppRuleVars :: [RuleVar l] -> Doc
+ppRuleVars []  = empty
+ppRuleVars rvs = mySep $ text "forall" : map pretty rvs ++ [char '.']
+
+instance  Pretty (Activation l) where
+    pretty (ActiveFrom _ i)  = char '['  <> int i <> char ']'
+    pretty (ActiveUntil _ i) = text "[~" <> int i <> char ']'
+
+instance  Pretty (Overlap l) where
+    pretty Overlap {}   = text "{-# OVERLAP #-}"
+    pretty Overlaps {}   = text "{-# OVERLAPS #-}"
+    pretty Overlapping {}   = text "{-# OVERLAPPING #-}"
+    pretty Overlappable {}   = text "{-# OVERLAPPABLE #-}"
+    pretty NoOverlap {}  = text "{-# NO_OVERLAP #-}"
+    pretty Incoherent {} = text "{-# INCOHERENT #-}"
+
+instance  Pretty (RuleVar l) where
+    pretty (RuleVar _ n) = pretty n
+    pretty (TypedRuleVar _ n t) = parens $ mySep [pretty n, text "::", pretty t]
+
+-- Spaces are stripped from the pragma text but other whitespace
+-- is not.
+ppOptionsPragma :: Doc -> String -> Doc
+ppOptionsPragma opt s =
+  case s of
+    ('\n':_) -> opt <> text s <> text "#-}"
+    _ ->  myFsep [opt, text s <> text "#-}"]
+
+instance  Pretty (ModulePragma l) where
+    pretty (LanguagePragma _ ns) =
+        myFsep $ text "{-# LANGUAGE" : punctuate (char ',') (map pretty ns) ++ [text "#-}"]
+    pretty (OptionsPragma _ (Just tool) s) =
+        ppOptionsPragma (text "{-# OPTIONS_" <> pretty tool) s
+    pretty (OptionsPragma _ _ s) =
+        ppOptionsPragma (text "{-# OPTIONS") s
+    pretty (AnnModulePragma _ mann) =
+        myFsep [text "{-# ANN", pretty mann, text "#-}"]
+
+
+instance Pretty Tool where
+    pretty (UnknownTool s) = text s
+    pretty t               = text $ show t
+
+------------------------- Data & Newtype Bodies -------------------------
+instance  Pretty (QualConDecl l) where
+        pretty (QualConDecl _pos tvs ctxt con) =
+                myFsep [ppForall tvs, maybePP pretty ctxt, pretty con]
+
+instance  Pretty (GadtDecl l) where
+        pretty (GadtDecl _pos name tvs ctxt names ty) =
+            case names of
+                Nothing ->
+                    myFsep [pretty name, text "::", pretty ty]
+                Just ts' ->
+                    myFsep [pretty name, text "::" , ppForall tvs, maybePP pretty ctxt,
+                         braceList . map pretty $ ts', text "->", pretty ty]
+
+instance  Pretty (ConDecl l) where
+        pretty (RecDecl _ name fieldList) =
+                pretty name <> braceList (map pretty fieldList)
+
+{-        pretty (ConDecl name@(Symbol _) [l, r]) =
+                myFsep [prettyPrec prec_btype l, ppName name,
+                        prettyPrec prec_btype r] -}
+        pretty (ConDecl _ name typeList) =
+                mySep $ pretty name : map (prettyPrec prec_atype) typeList
+        pretty (InfixConDecl _ l name r) =
+                myFsep [prettyPrec prec_btype l, ppNameInfix name,
+                         prettyPrec prec_btype r]
+
+
+instance Pretty (FieldDecl l) where
+  pretty (FieldDecl _ names ty) =
+        myFsepSimple $ (punctuate comma . map pretty $ names) ++
+                       [text "::", pretty ty]
+
+instance  Pretty (BangType l) where
+        pretty BangedTy {}  = char '!'
+        pretty LazyTy {}    = char '~'
+        pretty NoStrictAnnot {} = empty
+
+instance Pretty (Unpackedness l) where
+        pretty Unpack {}  = text "{-# UNPACK #-} "
+        pretty NoUnpack {} = text "{-# NOUNPACK #-} "
+        pretty NoUnpackPragma {} = empty
+
+instance Pretty (Deriving l) where
+  pretty (Deriving _ mds d) =
+    hsep [ text "deriving"
+         , pp_strat_before
+         , pp_dct
+         , pp_strat_after ]
+    where
+      pp_dct =
+        case d of
+          [d'] -> pretty d'
+          _    -> parenList (map pretty d)
+
+      -- @via@ is unique in that in comes /after/ the class being derived,
+      -- so we must special-case it.
+      (pp_strat_before, pp_strat_after) =
+        case mds of
+          Just (via@DerivVia{}) -> (empty, pretty via)
+          _                     -> (maybePP pretty mds, empty)
+
+instance Pretty (DerivStrategy l) where
+  pretty ds =
+    case ds of
+      DerivStock _    -> text "stock"
+      DerivAnyclass _ -> text "anyclass"
+      DerivNewtype _  -> text "newtype"
+      DerivVia _ ty   -> text "via" <+> pretty ty
+
+------------------------- Types -------------------------
+ppBType :: Type l -> Doc
+ppBType = prettyPrec prec_btype
+
+ppAType :: Type l -> Doc
+ppAType = prettyPrec prec_atype
+
+-- precedences for types
+prec_btype, prec_atype :: Int
+prec_btype = 1  -- left argument of ->,
+                -- or either argument of an infix data constructor
+prec_atype = 2  -- argument of type or data constructor, or of a class
+
+instance  Pretty (Type l) where
+        prettyPrec p (TyForall _ mtvs ctxt htype) = parensIf (p > 0) $
+                myFsep [ppForall mtvs, maybePP pretty ctxt, pretty htype]
+        prettyPrec _ (TyStar _) = text "*"
+        prettyPrec p (TyFun _ a b) = parensIf (p > 0) $
+                myFsep [ppBType a, text "->", pretty b]
+        prettyPrec _ (TyTuple _ bxd l) =
+                let ds = map pretty l
+                 in case bxd of
+                        Boxed   -> parenList ds
+                        Unboxed -> hashParenList ds
+        prettyPrec _ (TyUnboxedSum _ es) = unboxedSumType (map pretty es)
+
+        prettyPrec _ (TyList _ t)  = brackets $ pretty t
+        prettyPrec _ (TyParArray _ t) = bracketColonList [pretty t]
+        prettyPrec p (TyApp _ a b) =
+                {-
+                | a == list_tycon = brackets $ pretty b         -- special case
+                | otherwise = -} parensIf (p > prec_btype) $
+                                    myFsep [pretty a, ppAType b]
+        prettyPrec _ (TyVar _ name) = pretty name
+        prettyPrec _ (TyCon _ name) = pretty name
+        prettyPrec _ (TyParen _ t) = parens (pretty t)
+        prettyPrec _ (TyInfix _ a op b) = myFsep [pretty a, pretty op, pretty b]
+        prettyPrec _ (TyKind _ t k) = parens (myFsep [pretty t, text "::", pretty k])
+        prettyPrec _ (TyPromoted _ p) = pretty p
+        prettyPrec p (TyEquals _ a b) = parensIf (p > 0) (myFsep [pretty a, text "~", pretty b])
+        prettyPrec _ (TySplice _ s) = pretty s
+        prettyPrec _ (TyBang _ b u t) = pretty u <> pretty b <> prettyPrec prec_atype t
+        prettyPrec _ (TyWildCard _ mn) = char '_' <> maybePP pretty mn
+        prettyPrec _ (TyQuasiQuote _ n qt) = text ("[" ++ n ++ "|" ++ qt ++ "|]")
+
+instance Pretty (MaybePromotedName l) where
+  pretty (PromotedName _ q) = char '\'' <> ppQNameInfix q
+  pretty (UnpromotedName _ q) = ppQNameInfix q
+
+
+instance  Pretty (Promoted l) where
+  pretty p =
+    case p of
+      PromotedInteger _ n _ -> integer n
+      PromotedString _ s _ -> doubleQuotes $ text s
+      PromotedCon _ hasQuote qn ->
+        addQuote hasQuote (pretty qn)
+      PromotedList _ hasQuote list ->
+        addQuote hasQuote $ brackets . addSpace list . prettyList $ list
+      PromotedTuple _ list ->
+        addQuote True $ parens . addSpace list . prettyList $ list
+      PromotedUnit {} -> addQuote True $ text "()"
+    where
+      addQuote True doc = char '\'' <> doc
+      addQuote False doc = doc
+
+      checkQuote (PromotedCon _ q _) = q
+      checkQuote (PromotedList _ q _) = q
+      checkQuote (PromotedTuple _ _) = True
+      checkQuote _ = False
+
+      addSpace (TyPromoted _ l0:_) | checkQuote l0 = (space <>)
+      addSpace _ = id
+
+      prettyList = myFsepSimple . punctuate comma . map pretty
+
+
+instance  Pretty (TyVarBind l) where
+        pretty (KindedVar _ var kind) = parens $ myFsep [pretty var, text "::", pretty kind]
+        pretty (UnkindedVar _ var)    = pretty var
+
+ppForall :: Maybe [TyVarBind l] -> Doc
+ppForall Nothing   = empty
+ppForall (Just []) = empty
+ppForall (Just vs) =    myFsep (text "forall" : map pretty vs ++ [char '.'])
+
+---------------------------- Kinds ----------------------------
+
+ppOptKind :: Maybe (Kind l) -> [Doc]
+ppOptKind Nothing  = []
+ppOptKind (Just k) = [text "::", pretty k]
+
+------------------- Functional Dependencies -------------------
+instance  Pretty (FunDep l) where
+        pretty (FunDep _ from to) =
+                myFsep $ map pretty from ++ [text "->"] ++ map pretty to
+
+
+ppFunDeps :: [FunDep l] -> Doc
+ppFunDeps []  = empty
+ppFunDeps fds = myFsep $ (char '|':) . punctuate comma . map pretty $ fds
+
+------------------------- Expressions -------------------------
+instance  Pretty (Rhs l) where
+        pretty (UnGuardedRhs _ e) = equals <+> pretty e
+        pretty (GuardedRhss _ guardList) = myVcat . map pretty $ guardList
+
+instance  Pretty (GuardedRhs l) where
+        pretty (GuardedRhs _pos guards ppBody') =
+                myFsep $ [char '|'] ++ (punctuate comma . map pretty $ guards) ++ [equals, pretty ppBody']
+
+newtype GuardedAlts l = GuardedAlts (Rhs l)
+newtype GuardedAlt l = GuardedAlt (GuardedRhs l)
+
+instance  Pretty (GuardedAlts l) where
+        pretty (GuardedAlts (UnGuardedRhs _ e)) = text "->" <+> pretty e
+        pretty (GuardedAlts (GuardedRhss _ guardList)) = myVcat . map (pretty . GuardedAlt) $ guardList
+
+instance  Pretty (GuardedAlt l) where
+        pretty (GuardedAlt (GuardedRhs _pos guards ppBody')) =
+                myFsep $ [char '|'] ++ (punctuate comma . map pretty $ guards) ++ [text "->", pretty ppBody']
+
+instance  Pretty (Literal l) where
+        pretty (Int _ i _)        = integer i
+        pretty (Char _ c _)       = text (show c)
+        pretty (String _ s _)     = text (show s)
+        pretty (Frac _ r _)       = double (fromRational r)
+        -- GHC unboxed literals:
+        pretty (PrimChar _ c _)   = text (show c)           <> char '#'
+        pretty (PrimString _ s _) = text (show s)           <> char '#'
+        pretty (PrimInt _ i _)    = integer i               <> char '#'
+        pretty (PrimWord _ w _)   = integer w               <> text "##"
+        pretty (PrimFloat _ r _)  = float  (fromRational r) <> char '#'
+        pretty (PrimDouble _ r _) = double (fromRational r) <> text "##"
+
+instance  Pretty (Exp l) where
+        prettyPrec _ (Lit _ l) = pretty l
+        -- lambda stuff
+        -- WARNING: This stuff is fragile. See #152 for one example of how
+        -- things can break.
+        prettyPrec p (InfixApp _ a op b) = parensIf (p > 2) $ myFsep [prettyPrec 1 a, pretty op, prettyPrec 1 b]
+        prettyPrec p (NegApp _ e) = parensIf (p > 0) $ char '-' <> prettyPrec 2 e
+        prettyPrec p (App _ a b) = parensIf (p > 3) $ myFsep [prettyPrec 3 a, prettyPrec 4 b]
+        prettyPrec p (Lambda _loc patList ppBody') = parensIf (p > 1) $ myFsep $
+                char '\\' : map (prettyPrec 3) patList ++ [text "->", pretty ppBody']
+        -- keywords
+        -- two cases for lets
+        prettyPrec p (Let _ (BDecls _ declList) letBody) =
+                parensIf (p > 1) $ ppLetExp declList letBody
+        prettyPrec p (Let _ (IPBinds _ bindList) letBody) =
+                parensIf (p > 1) $ ppLetExp bindList letBody
+
+        prettyPrec p (If _ cond thenexp elsexp) = parensIf (p > 1) $
+                myFsep [text "if", pretty cond,
+                        text "then", pretty thenexp,
+                        text "else", pretty elsexp]
+        prettyPrec p (MultiIf _ alts) = parensIf (p > 1) $
+                text "if"
+                $$$ ppBody multiIfIndent (map (pretty . GuardedAlt) alts)
+        prettyPrec p (Case _ cond altList) = parensIf (p > 1) $
+                myFsep ([text "case", pretty cond, text "of"] ++
+                       if null altList then [text "{", text "}"] else [])
+                $$$ ppBody caseIndent (map pretty altList)
+        prettyPrec p (Do _ stmtList) = parensIf (p > 1) $
+                text "do" $$$ ppBody doIndent (map pretty stmtList)
+        prettyPrec p (MDo _ stmtList) = parensIf (p > 1) $
+                text "mdo" $$$ ppBody doIndent (map pretty stmtList)
+        -- Constructors & Vars
+        prettyPrec _ (Var _ name) = pretty name
+        prettyPrec _ (OverloadedLabel _ name) = text ('#':name)
+        prettyPrec _ (IPVar _ ipname) = pretty ipname
+        prettyPrec _ (Con _ name) = pretty name
+        prettyPrec _ (Tuple _ bxd expList) =
+                let ds = map pretty expList
+                in case bxd of
+                       Boxed   -> parenList ds
+                       Unboxed -> hashParenList ds
+        prettyPrec _ (UnboxedSum _ before after exp) =
+          printUnboxedSum before after exp
+        prettyPrec _ (TupleSection _ bxd mExpList) =
+                let ds = map (maybePP pretty) mExpList
+                in case bxd of
+                       Boxed   -> parenList ds
+                       Unboxed -> hashParenList ds
+        -- weird stuff
+        prettyPrec _ (Paren _ e) = parens . pretty $ e
+        prettyPrec _ (LeftSection _ e op) = parens (pretty e <+> pretty op)
+        prettyPrec _ (RightSection _ op e) = parens (pretty op <+> pretty e)
+        prettyPrec _ (RecConstr _ c fieldList) =
+                pretty c <> (braceList . map pretty $ fieldList)
+        prettyPrec _ (RecUpdate _ e fieldList) =
+                pretty e <> (braceList . map pretty $ fieldList)
+        -- Lists and parallel arrays
+        prettyPrec _ (List _ list) =
+                bracketList . punctuate comma . map pretty $ list
+        prettyPrec _ (ParArray _ arr) =
+                bracketColonList . map pretty $ arr
+        prettyPrec _ (EnumFrom _ e) =
+                bracketList [pretty e, text ".."]
+        prettyPrec _ (EnumFromTo _ from to) =
+                bracketList [pretty from, text "..", pretty to]
+        prettyPrec _ (EnumFromThen _ from thenE) =
+                bracketList [pretty from <> comma, pretty thenE, text ".."]
+        prettyPrec _ (EnumFromThenTo _ from thenE to) =
+                bracketList [pretty from <> comma, pretty thenE,
+                             text "..", pretty to]
+        prettyPrec _ (ParArrayFromTo _ from to) =
+                bracketColonList [pretty from, text "..", pretty to]
+        prettyPrec _ (ParArrayFromThenTo _ from thenE to) =
+                bracketColonList [pretty from <> comma, pretty thenE,
+                             text "..", pretty to]
+        prettyPrec _ (ListComp _ e qualList) =
+                bracketList ([pretty e, char '|']
+                             ++ (punctuate comma . map pretty $ qualList))
+        prettyPrec _ (ParComp _ e qualLists) =
+                bracketList (punctuate (char '|') $
+                                pretty e : map (hsep . punctuate comma . map pretty) qualLists)
+        prettyPrec _ (ParArrayComp _ e qualArrs) =
+                bracketColonList (punctuate (char '|') $
+                                pretty e : map (hsep . punctuate comma . map pretty) qualArrs)
+        prettyPrec p (ExpTypeSig _pos e ty) = parensIf (p > 0) $
+                myFsep [pretty e, text "::", pretty ty]
+        -- Template Haskell
+        prettyPrec _ (BracketExp _ b) = pretty b
+        prettyPrec _ (SpliceExp _ s) = pretty s
+        prettyPrec _ (TypQuote _ t)  = text "\'\'" <> pretty t
+        prettyPrec _ (VarQuote _ x)  = text "\'" <> pretty x
+        prettyPrec _ (QuasiQuote _ n qt) = text ("[" ++ n ++ "|" ++ qt ++ "|]")
+        -- Hsx
+        prettyPrec _ (XTag _ n attrs mattr cs) =
+                let ax = maybe [] (return . pretty) mattr
+                 in hcat $
+                     (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
+                        map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]
+        prettyPrec _ (XETag _ n attrs mattr) =
+                let ax = maybe [] (return . pretty) mattr
+                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [text "/>"]
+        prettyPrec _ (XPcdata _ s) = text s
+        prettyPrec _ (XExpTag _ e) =
+                myFsep [text "<%", pretty e, text "%>"]
+        prettyPrec _ (XChildTag _ cs) =
+                myFsep $ text "<%>" : map pretty cs ++ [text "</%>"]
+
+        -- Pragmas
+        prettyPrec _ (CorePragma _ s e) = myFsep $ map text ["{-# CORE", show s, "#-}"] ++ [pretty e]
+        prettyPrec _ (SCCPragma  _ s e) = myFsep $ map text ["{-# SCC",  show s, "#-}"] ++ [pretty e]
+        prettyPrec _ (GenPragma  _ s (a,b) (c,d) e) =
+                myFsep [text "{-# GENERATED", text $ show s,
+                            int a, char ':', int b, char '-',
+                            int c, char ':', int d, text "#-}", pretty e]
+        -- Arrows
+        prettyPrec p (Proc _ pat e) = parensIf (p > 1) $ myFsep [text "proc", pretty pat, text "->", pretty e]
+        prettyPrec p (LeftArrApp _ l r)      = parensIf (p > 0) $ myFsep [pretty l, text "-<",  pretty r]
+        prettyPrec p (RightArrApp _ l r)     = parensIf (p > 0) $ myFsep [pretty l, text ">-",  pretty r]
+        prettyPrec p (LeftArrHighApp _ l r)  = parensIf (p > 0) $ myFsep [pretty l, text "-<<", pretty r]
+        prettyPrec p (RightArrHighApp _ l r) = parensIf (p > 0) $ myFsep [pretty l, text ">>-", pretty r]
+        prettyPrec _ (ArrOp _ e) = myFsep [text "(|", pretty e, text "|)"]
+
+        -- LamdaCase
+        prettyPrec p (LCase _ altList) = parensIf (p > 1) $
+                myFsep (text "\\case":
+                       if null altList then [text "{", text "}"] else [])
+                $$$ ppBody caseIndent (map pretty altList)
+        prettyPrec _ (TypeApp _ ty)   = char '@' <> pretty ty
+
+printUnboxedSum :: Pretty e => Int -> Int -> e -> Doc
+printUnboxedSum before after exp =
+          hashParens . myFsep $ (replicate before (text "|")
+                                ++ [pretty exp]
+                                ++ (replicate after (text "|")))
+
+
+instance  Pretty (XAttr l) where
+        pretty (XAttr _ n v) =
+                myFsep [pretty n, char '=', pretty v]
+
+instance  Pretty (XName l) where
+        pretty (XName _ n) = text n
+        pretty (XDomName _ d n) = text d <> char ':' <> text n
+
+ppLetExp :: (PrettyDeclLike a, Pretty b) => [a] -> b -> Doc
+ppLetExp l b = myFsep [text "let" <+> ppBody letIndent (ppDecls False l),
+                        text "in", pretty b]
+
+--------------------- Template Haskell -------------------------
+
+instance  Pretty (Bracket l) where
+        pretty (ExpBracket _ e) = ppBracket "[|" e
+        pretty (TExpBracket _ e) = myFsep [text "[||", pretty e, text "||]"]
+        pretty (PatBracket _ p) = ppBracket "[p|" p
+        pretty (TypeBracket _ t) = ppBracket "[t|" t
+        pretty (DeclBracket _ d) =
+                myFsep $ text "[d|" : ppDecls True d ++ [text "|]"]
+
+ppBracket :: Pretty a => String -> a -> Doc
+ppBracket o x = myFsep [text o, pretty x, text "|]"]
+
+instance  Pretty (Splice l) where
+        pretty (IdSplice _ s) = char '$' <> text s
+        pretty (TIdSplice _ s) = char '$' <> char '$' <> text s
+        pretty (TParenSplice _ e) =
+                myFsep [text "$$(", pretty e, char ')']
+        pretty (ParenSplice _ e) =
+                myFsep [text "$(", pretty e, char ')']
+
+------------------------- Patterns -----------------------------
+
+instance  Pretty (Pat l) where
+        prettyPrec _ (PVar _ name) = pretty name
+        prettyPrec _ (PLit _ (Signless {}) lit) = pretty lit
+        prettyPrec p (PLit _ (Negative{}) lit) = parensIf (p > 1) $ char '-' <> pretty lit
+        prettyPrec p (PInfixApp l a op b) = parensIf (p > 0) $
+                myFsep [prettyPrec 1 a, pretty (QConOp l op), prettyPrec 1 b]
+        prettyPrec p (PApp _ n ps) = parensIf (p > 2 && not (null ps)) $
+                myFsep (pretty n : map (prettyPrec 3) ps)
+        prettyPrec _ (PTuple _ bxd ps) =
+                let ds = map pretty ps
+                in case bxd of
+                       Boxed   -> parenList ds
+                       Unboxed -> hashParenList ds
+        prettyPrec _ (PUnboxedSum _ before after exp) =
+          printUnboxedSum before after exp
+        prettyPrec _ (PList _ ps) =
+                bracketList . punctuate comma . map pretty $ ps
+        prettyPrec _ (PParen _ pat) = parens . pretty $ pat
+        prettyPrec _ (PRec _ c fields) =
+                pretty c <> (braceList . map pretty $ fields)
+        -- special case that would otherwise be buggy
+        prettyPrec _ (PAsPat _ name (PIrrPat _ pat)) =
+                myFsep [pretty name <> char '@', char '~' <> prettyPrec 3 pat]
+        prettyPrec _ (PAsPat _ name pat) =
+                hcat [pretty name, char '@', prettyPrec 3 pat]
+        prettyPrec _ PWildCard {} = char '_'
+        prettyPrec _ (PIrrPat _ pat) = char '~' <> prettyPrec 3 pat
+        prettyPrec p (PatTypeSig _pos pat ty) = parensIf (p > 0) $
+                myFsep [pretty pat, text "::", pretty ty]
+        prettyPrec p (PViewPat _ e pat) = parensIf (p > 0) $
+                myFsep [pretty e, text "->", pretty pat]
+        prettyPrec p (PNPlusK _ n k) = parensIf (p > 0) $
+                myFsep [pretty n, text "+", text $ show k]
+        -- HaRP
+        prettyPrec _ (PRPat _ rs) =
+                bracketList . punctuate comma . map pretty $ rs
+        -- Hsx
+        prettyPrec _ (PXTag _ n attrs mattr cp) =
+            let ap = maybe [] (return . pretty) mattr
+             in hcat $ -- TODO: should not introduce blanks
+                  (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ap ++ [char '>']):
+                    map pretty cp ++ [myFsep [text "</" <> pretty n, char '>']]
+        prettyPrec _ (PXETag _ n attrs mattr) =
+                let ap = maybe [] (return . pretty) mattr
+                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ap ++ [text "/>"]
+        prettyPrec _ (PXPcdata _ s) = text s
+        prettyPrec _ (PXPatTag _ p) =
+                myFsep [text "<%", pretty p, text "%>"]
+        prettyPrec _ (PXRPats _ ps) =
+                myFsep $ text "<[" : map pretty ps ++ [text "%>"]
+        -- BangPatterns
+        prettyPrec _ (PBangPat _ pat) = text "!" <> prettyPrec 3 pat
+        prettyPrec _ (PSplice _ s) = pretty s
+        prettyPrec _ (PQuasiQuote _ n qt) = text ("[$" ++ n ++ "|" ++ qt ++ "|]")
+
+instance  Pretty (PXAttr l) where
+        pretty (PXAttr _ n p) =
+                myFsep [pretty n, char '=', pretty p]
+
+instance  Pretty (PatField l) where
+        pretty (PFieldPat _ name pat) =
+                myFsep [pretty name, equals, pretty pat]
+        pretty (PFieldPun _ name) = pretty name
+        pretty (PFieldWildcard{}) = text ".."
+
+--------------------- Regular Patterns -------------------------
+
+instance  Pretty (RPat l) where
+        pretty (RPOp _ r op) = pretty r <> pretty op
+        pretty (RPEither _ r1 r2) = parens . myFsep $
+                [pretty r1, char '|', pretty r2]
+        pretty (RPSeq _ rs) =
+                myFsep $ text "(|" : (punctuate comma . map pretty $ rs)
+                           ++ [text "|)"]
+        pretty (RPGuard _ r gs) =
+                myFsep $ text "(|" : pretty r : char '|' :
+                           (punctuate comma . map pretty $ gs) ++ [text "|)"]
+        -- special case that would otherwise be buggy
+        pretty (RPCAs _ n (RPPat _ (PIrrPat _ p))) =
+                myFsep [pretty n <> text "@:", char '~' <> pretty p]
+        pretty (RPCAs _ n r) = hcat [pretty n, text "@:", pretty r]
+        -- special case that would otherwise be buggy
+        pretty (RPAs _ n (RPPat _ (PIrrPat _ p))) =
+                myFsep [pretty n <> text "@:", char '~' <> pretty p]
+        pretty (RPAs _ n r) = hcat [pretty n, char '@', pretty r]
+        pretty (RPPat _ p) = pretty p
+        pretty (RPParen _ rp) = parens . pretty $ rp
+
+instance  Pretty (RPatOp l) where
+        pretty RPStar{}  = char '*'
+        pretty RPStarG{} = text "*!"
+        pretty RPPlus{}  = char '+'
+        pretty RPPlusG{} = text "+!"
+        pretty RPOpt{}   = char '?'
+        pretty RPOptG{}  = text "?!"
+
+------------------------- Case bodies  -------------------------
+instance  Pretty (Alt l) where
+        pretty (Alt _pos e gAlts binds) =
+                pretty e <+> pretty (GuardedAlts gAlts) $$$ ppWhere binds
+
+------------------------- Statements in monads, guards & list comprehensions -----
+instance  Pretty (Stmt l) where
+        pretty (Generator _loc e from) =
+                pretty e <+> text "<-" <+> pretty from
+        pretty (Qualifier _ e) = pretty e
+        -- two cases for lets
+        pretty (LetStmt _ (BDecls _ declList)) =
+                ppLetStmt declList
+        pretty (LetStmt _ (IPBinds _ bindList)) =
+                ppLetStmt bindList
+        pretty (RecStmt _ stmtList) =
+                text "rec" $$$ ppBody letIndent (map pretty stmtList)
+
+ppLetStmt :: Pretty a => [a] -> Doc
+ppLetStmt l = text "let" $$$ ppBody letIndent (map pretty l)
+
+instance  Pretty (QualStmt l) where
+        pretty (QualStmt _ s) = pretty s
+        pretty (ThenTrans _ f)    = myFsep [text "then", pretty f]
+        pretty (ThenBy _ f e)  = myFsep [text "then", pretty f, text "by", pretty e]
+        pretty (GroupBy _ e)    = myFsep [text "then", text "group", text "by", pretty e]
+        pretty (GroupUsing _ f)    = myFsep [text "then", text "group", text "using", pretty f]
+        pretty (GroupByUsing _ e f)  = myFsep [text "then", text "group", text "by",
+                                                pretty e, text "using", pretty f]
+
+
+
+------------------------- Record updates
+instance  Pretty (FieldUpdate l) where
+        pretty (FieldUpdate _ name e) =
+                myFsep [pretty name, equals, pretty e]
+        pretty (FieldPun _ name) = pretty name
+        pretty (FieldWildcard {}) = text ".."
+
+------------------------- Names -------------------------
+instance  Pretty (QOp l) where
+        pretty (QVarOp _ n) = ppQNameInfix n
+        pretty (QConOp _ n) = ppQNameInfix n
+
+ppQNameInfix :: QName l -> Doc
+ppQNameInfix name
+        | isSymbolQName name = ppQName name
+        | otherwise = char '`' <> ppQName name <> char '`'
+
+instance  Pretty (QName l) where
+        pretty name = case name of
+                UnQual _ (Symbol _ ('#':_)) -> char '(' <+> ppQName name <+> char ')'
+                _ -> parensIf (isSymbolQName name) (ppQName name)
+
+ppQName :: QName l -> Doc
+ppQName (UnQual _ name) = ppName name
+ppQName (Qual _ m name) = pretty m <> char '.' <> ppName name
+ppQName (Special _ sym) = pretty sym
+
+instance  Pretty (Op l) where
+        pretty (VarOp _ n) = ppNameInfix n
+        pretty (ConOp _ n) = ppNameInfix n
+
+ppNameInfix :: Name l -> Doc
+ppNameInfix name
+        | isSymbolName name = ppName name
+        | otherwise = char '`' <> ppName name <> char '`'
+
+instance  Pretty (Name l) where
+        pretty name = case name of
+                Symbol _ ('#':_) -> char '(' <+> ppName name <+> char ')'
+                _ -> parensIf (isSymbolName name) (ppName name)
+
+ppName :: Name l -> Doc
+ppName (Ident _ s) = text s
+ppName (Symbol _ s) = text s
+
+instance  Pretty (IPName l) where
+        pretty (IPDup _ s) = char '?' <> text s
+        pretty (IPLin _ s) = char '%' <> text s
+
+instance  PrettyDeclLike (IPBind l) where
+  wantsBlankline _ = False
+
+instance  Pretty (IPBind l) where
+        pretty (IPBind _loc ipname exp) =
+                myFsep [pretty ipname, equals, pretty exp]
+
+instance  Pretty (CName l) where
+        pretty (VarName _ n) = pretty n
+        pretty (ConName _ n) = pretty n
+
+instance Pretty (SpecialCon l) where
+        pretty (UnitCon {})         = text "()"
+        pretty (ListCon {})         = text "[]"
+        pretty (FunCon  {})         = text "->"
+        pretty (TupleCon _ b n)   = listFun $ foldr (<>) empty (replicate (n-1) comma)
+          where listFun = if b == Unboxed then hashParens else parens
+        pretty (Cons {})             = text ":"
+        pretty (UnboxedSingleCon {}) = text "(# #)"
+        pretty (ExprHole {}) = text "_"
+
+isSymbolName :: Name l -> Bool
+isSymbolName (Symbol {}) = True
+isSymbolName _ = False
+
+isSymbolQName :: QName l -> Bool
+isSymbolQName (UnQual _ n)       = isSymbolName n
+isSymbolQName (Qual _ _ n)       = isSymbolName n
+isSymbolQName (Special _ (Cons {}))   = True
+isSymbolQName (Special _ (FunCon {})) = True
+isSymbolQName _                  = False
+
+--getSpecialName :: QName l -> Maybe (SpecialCon l)
+--getSpecialName (Special _ n) = Just n
+--getSpecialName _           = Nothing
+
+-- Contexts are "sets" of assertions. Several members really means it's a
+-- CxTuple, but we can't represent that in our list of assertions.
+-- Therefore: print single member contexts without parenthesis, and treat
+--            larger contexts as tuples.
+instance (Pretty (Context l)) where
+  pretty (CxEmpty _)      = text "()" <+> text "=>"
+  pretty (CxSingle _ ctxt)  = pretty ctxt <+> text "=>"
+  pretty (CxTuple _ context) = mySep [parenList (map pretty context), text "=>"]
+
+instance  Pretty (Asst l) where
+        pretty (TypeA _ t)       = pretty t
+        pretty (IParam _ i t)    = myFsep [pretty i, text "::", pretty t]
+        pretty (ParenA _ a)      = parens (pretty a)
+
+-- Pretty print a source location, useful for printing out error messages
+instance Pretty SrcLoc where
+  pretty srcLoc =
+    return $ P.hcat [ colonFollow (P.text $ srcFilename srcLoc)
+                    , colonFollow (P.int  $ srcLine     srcLoc)
+                    , P.int $ srcColumn srcLoc
+                    ]
+
+colonFollow :: P.Doc -> P.Doc
+colonFollow p = P.hcat [ p, P.colon ]
+
+
+instance Pretty SrcSpan where
+    pretty srcSpan =
+        return $ P.hsep [ colonFollow (P.text $ srcSpanFilename srcSpan)
+                        , P.hcat [ P.text "("
+                                 , P.int $ srcSpanStartLine srcSpan
+                                 , P.colon
+                                 , P.int $ srcSpanStartColumn srcSpan
+                                 , P.text ")"
+                                 ]
+                        , P.text "-"
+                        , P.hcat [ P.text "("
+                                 , P.int $ srcSpanEndLine srcSpan
+                                 , P.colon
+                                 , P.int $ srcSpanEndColumn srcSpan
+                                 , P.text ")"
+                                 ]
+                        ]
+
+---------------------------------------------------------------------
+-- Annotated version
+
+
+-------------------------  Pretty-Print a Module --------------------
+instance Pretty (Module pos) where
+        pretty (Module _ mbHead os imp decls) =
+                myVcat $ map pretty os ++
+                    (case mbHead of
+                        Nothing -> id
+                        Just h  -> \x -> [topLevel (pretty h) x])
+                    (map pretty imp ++
+                         ppDecls (isJust mbHead ||
+                                  not (null imp) ||
+                                  not (null os))
+                           decls)
+        pretty (XmlPage _ _mn os n attrs mattr cs) =
+                myVcat $ map pretty os ++
+                    [let ax = maybe [] (return . pretty) mattr
+                      in hcat $
+                         (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
+                            map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]]
+        pretty (XmlHybrid _ mbHead os imp decls n attrs mattr cs) =
+                myVcat $ map pretty os ++ [text "<%"] ++
+                    (case mbHead of
+                        Nothing -> id
+                        Just h  -> \x -> [topLevel (pretty h) x])
+                    (map pretty imp ++
+                      ppDecls (isJust mbHead || not (null imp) || not (null os)) decls ++
+                        [let ax = maybe [] (return . pretty) mattr
+                          in hcat $
+                             (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
+                                map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]])
+
+
+
+------------------------- pp utils -------------------------
+maybePP :: (a -> Doc) -> Maybe a -> Doc
+maybePP _  Nothing = empty
+maybePP pp (Just a) = pp a
+
+parenList :: [Doc] -> Doc
+parenList = parens . myFsepSimple . punctuate comma
+
+hashParenList :: [Doc] -> Doc
+hashParenList = hashParens . myFsepSimple . punctuate comma
+
+unboxedSumType :: [Doc] -> Doc
+unboxedSumType = hashParens . myFsepSimple . punctuate (text " |")
+
+hashParens :: Doc -> Doc
+hashParens = parens . hashes
+  where
+    hashes doc = char '#' <+> doc <+> char '#'
+
+braceList :: [Doc] -> Doc
+braceList = braces . myFsepSimple . punctuate comma
+
+bracketList :: [Doc] -> Doc
+bracketList = brackets . myFsepSimple
+
+bracketColonList :: [Doc] -> Doc
+bracketColonList = bracketColons . myFsepSimple
+    where bracketColons = brackets . colons
+          colons doc = char ':' <> doc <> char ':'
+
+-- Wrap in braces and semicolons, with an extra space at the start in
+-- case the first doc begins with "-", which would be scanned as {-
+flatBlock :: [Doc] -> Doc
+flatBlock = braces . (space <>) . hsep . punctuate semi
+
+-- Same, but put each thing on a separate line
+prettyBlock :: [Doc] -> Doc
+prettyBlock = braces . (space <>) . vcat . punctuate semi
+
+-- Monadic PP Combinators -- these examine the env
+
+blankline :: Doc -> Doc
+blankline dl = do{e<-getPPEnv;if spacing e && layout e /= PPNoLayout
+                              then text "" $+$ dl else dl}
+topLevel :: Doc -> [Doc] -> Doc
+topLevel header dl = do
+         e <- fmap layout getPPEnv
+         case e of
+             PPOffsideRule -> header $$ vcat dl
+             PPSemiColon -> header $$ prettyBlock dl
+             PPInLine -> header $$ prettyBlock dl
+             PPNoLayout -> header <+> flatBlock dl
+
+ppBody :: (PPHsMode -> Int) -> [Doc] -> Doc
+ppBody f dl = do
+         e <- fmap layout getPPEnv
+         case e of PPOffsideRule -> indent
+                   PPSemiColon   -> indentExplicit
+                   _ -> flatBlock dl
+                   where
+                   indent  = do{i <-fmap f getPPEnv;nest i . vcat $ dl}
+                   indentExplicit = do {i <- fmap f getPPEnv;
+                           nest i . prettyBlock $ dl}
+
+-- | Indent without braces. Useful for deriving clauses etc.
+ppIndent :: (PPHsMode -> Int) -> [Doc] -> Doc
+ppIndent f dl = do
+            i <- fmap f getPPEnv
+            nest i . vcat $ dl
+
+($$$) :: Doc -> Doc -> Doc
+a $$$ b = layoutChoice (a $$) (a <+>) b
+
+mySep :: [Doc] -> Doc
+mySep = layoutChoice mySep' hsep
+        where
+        -- ensure paragraph fills with indentation.
+        mySep' [x]    = x
+        mySep' (x:xs) = x <+> fsep xs
+        mySep' []     = error "Internal error: mySep"
+
+myVcat :: [Doc] -> Doc
+myVcat = layoutChoice vcat hsep
+
+myFsepSimple :: [Doc] -> Doc
+myFsepSimple = layoutChoice fsep hsep
+
+-- same, except that continuation lines are indented,
+-- which is necessary to avoid triggering the offside rule.
+myFsep :: [Doc] -> Doc
+myFsep = layoutChoice fsep' hsep
+        where   fsep' [] = empty
+                fsep' (d:ds) = do
+                        e <- getPPEnv
+                        let n = onsideIndent e
+                        nest n (fsep (nest (-n) d:ds))
+
+layoutChoice :: (a -> Doc) -> (a -> Doc) -> a -> Doc
+layoutChoice a b dl = do e <- getPPEnv
+                         if layout e == PPOffsideRule ||
+                            layout e == PPSemiColon
+                          then a dl else b dl
+
+--------------------------------------------------------------------------------
+-- Pretty-printing of internal constructs, for error messages while parsing
+
+instance SrcInfo loc => Pretty (P.PExp loc) where
+        pretty (P.Lit _ l) = pretty l
+        pretty (P.InfixApp _ a op b) = myFsep [pretty a, pretty op, pretty b]
+        pretty (P.NegApp _ e) = myFsep [char '-', pretty e]
+        pretty (P.App _ a b) = myFsep [pretty a, pretty b]
+        pretty (P.Lambda _loc expList ppBody') = myFsep $
+                char '\\' : map pretty expList ++ [text "->", pretty ppBody']
+        pretty (P.Let _ (BDecls _ declList) letBody) =
+                ppLetExp declList letBody
+        pretty (P.Let _ (IPBinds _ bindList) letBody) =
+                ppLetExp bindList letBody
+        pretty (P.If _ cond thenexp elsexp) =
+                myFsep [text "if", pretty cond,
+                        text "then", pretty thenexp,
+                        text "else", pretty elsexp]
+        pretty (P.MultiIf _ alts) =
+                text "if"
+                $$$ ppBody caseIndent (map pretty alts)
+        pretty (P.Case _ cond altList) =
+                myFsep [text "case", pretty cond, text "of"]
+                $$$ ppBody caseIndent (map pretty altList)
+        pretty (P.Do _ stmtList) =
+                text "do" $$$ ppBody doIndent (map pretty stmtList)
+        pretty (P.MDo _ stmtList) =
+                text "mdo" $$$ ppBody doIndent (map pretty stmtList)
+        pretty (P.Var _ name) = pretty name
+        pretty (P.OverloadedLabel _ name) = text name
+        pretty (P.IPVar _ ipname) = pretty ipname
+        pretty (P.Con _ name) = pretty name
+        pretty (P.TupleSection _ bxd mExpList) =
+                let ds = map (maybePP pretty) mExpList
+                in case bxd of
+                       Boxed   -> parenList ds
+                       Unboxed -> hashParenList ds
+        pretty (P.UnboxedSum _ before after exp) =
+          printUnboxedSum before after exp
+        pretty (P.Paren _ e) = parens . pretty $ e
+        pretty (P.RecConstr _ c fieldList) =
+                pretty c <> (braceList . map pretty $ fieldList)
+        pretty (P.RecUpdate _ e fieldList) =
+                pretty e <> (braceList . map pretty $ fieldList)
+        pretty (P.List _ list) =
+                bracketList . punctuate comma . map pretty $ list
+        pretty (P.ParArray _ arr) =
+                bracketColonList . punctuate comma . map pretty $ arr
+        pretty (P.EnumFrom _ e) =
+                bracketList [pretty e, text ".."]
+        pretty (P.EnumFromTo _ from to) =
+                bracketList [pretty from, text "..", pretty to]
+        pretty (P.EnumFromThen _ from thenE) =
+                bracketList [pretty from <> comma, pretty thenE, text ".."]
+        pretty (P.EnumFromThenTo _ from thenE to) =
+                bracketList [pretty from <> comma, pretty thenE,
+                             text "..", pretty to]
+        pretty (P.ParArrayFromTo _ from to) =
+                bracketColonList [pretty from, text "..", pretty to]
+        pretty (P.ParArrayFromThenTo _ from thenE to) =
+                bracketColonList [pretty from <> comma, pretty thenE,
+                             text "..", pretty to]
+        pretty (P.ParComp _ e qualLists) =
+                bracketList (intersperse (char '|') $
+                                pretty e : (punctuate comma . concatMap (map pretty) $ qualLists))
+        pretty (P.ParArrayComp _ e qualArrs) =
+                bracketColonList (intersperse (char '|') $
+                                pretty e : (punctuate comma . concatMap (map pretty) $ qualArrs))
+        pretty (P.ExpTypeSig _pos e ty) =
+                myFsep [pretty e, text "::", pretty ty]
+        pretty (P.BracketExp _ b) = pretty b
+        pretty (P.SpliceExp _ s) = pretty s
+        pretty (P.TypQuote _ t)  = text "\'\'" <> pretty t
+        pretty (P.VarQuote _ x)  = text "\'" <> pretty x
+        pretty (P.QuasiQuote _ n qt) = text ("[$" ++ n ++ "|" ++ qt ++ "|]")
+        pretty (P.XTag _ n attrs mattr cs) =
+                let ax = maybe [] (return . pretty) mattr
+                 in hcat $
+                     (myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [char '>']):
+                        map pretty cs ++ [myFsep [text "</" <> pretty n, char '>']]
+        pretty (P.XETag _ n attrs mattr) =
+                let ax = maybe [] (return . pretty) mattr
+                 in myFsep $ (char '<' <> pretty n): map pretty attrs ++ ax ++ [text "/>"]
+        pretty (P.XPcdata _ s) = text s
+        pretty (P.XExpTag _ e) =
+                myFsep [text "<%", pretty e, text "%>"]
+        pretty (P.XChildTag _ es) =
+                myFsep $ text "<%>" : map pretty es ++ [text "</%>"]
+        pretty (P.CorePragma _ s e) = myFsep $ map text ["{-# CORE", show s, "#-}"] ++ [pretty e]
+        pretty (P.SCCPragma  _ s e) = myFsep $ map text ["{-# SCC",  show s, "#-}"] ++ [pretty e]
+        pretty (P.GenPragma  _ s (a,b) (c,d) e) =
+                myFsep [text "{-# GENERATED", text $ show s,
+                            int a, char ':', int b, char '-',
+                            int c, char ':', int d, text "#-}", pretty e]
+        pretty (P.Proc _ p e) = myFsep [text "proc", pretty p, text "->", pretty e]
+        pretty (P.LeftArrApp _ l r)      = myFsep [pretty l, text "-<",  pretty r]
+        pretty (P.RightArrApp _ l r)     = myFsep [pretty l, text ">-",  pretty r]
+        pretty (P.LeftArrHighApp _ l r)  = myFsep [pretty l, text "-<<", pretty r]
+        pretty (P.RightArrHighApp _ l r) = myFsep [pretty l, text ">>-", pretty r]
+        pretty (P.ArrOp _ e) = myFsep [text "(|", pretty e, text "|)"]
+        pretty (P.AsPat _ name (P.IrrPat _ pat)) =
+                myFsep [pretty name <> char '@', char '~' <> pretty pat]
+        pretty (P.AsPat _ name pat) =
+                hcat [pretty name, char '@', pretty pat]
+        pretty (P.WildCard _) = char '_'
+        pretty (P.IrrPat _ pat) = char '~' <> pretty pat
+        pretty (P.PostOp _ e op) = pretty e <+> pretty op
+        pretty (P.PreOp _ op e)  = pretty op <+> pretty e
+        pretty (P.ViewPat _ e p) =
+                myFsep [pretty e, text "->", pretty p]
+        pretty (P.SeqRP _ rs) =
+            myFsep $ text "(|" : (punctuate comma . map pretty $ rs) ++ [text "|)"]
+        pretty (P.GuardRP _ r gs) =
+                myFsep $ text "(|" : pretty r : char '|' :
+                           (punctuate comma . map pretty $ gs) ++ [text "|)"]
+        pretty (P.EitherRP _ r1 r2) = parens . myFsep $ [pretty r1, char '|', pretty r2]
+        pretty (P.CAsRP _ n (P.IrrPat _ e)) =
+                myFsep [pretty n <> text "@:", char '~' <> pretty e]
+        pretty (P.CAsRP _ n r) = hcat [pretty n, text "@:", pretty r]
+        pretty (P.XRPats _ ps) =
+                myFsep $ text "<[" : map pretty ps ++ [text "%>"]
+        pretty (P.BangPat _ e) = text "!" <> pretty e
+        pretty (P.LCase _ altList) = text "\\case" $$$ ppBody caseIndent (map pretty altList)
+        pretty (P.TypeApp _ ty) = char '@' <> pretty ty
+
+instance SrcInfo loc => Pretty (P.PFieldUpdate loc) where
+        pretty (P.FieldUpdate _ name e) =
+                myFsep [pretty name, equals, pretty e]
+        pretty (P.FieldPun _ name) = pretty name
+        pretty (P.FieldWildcard _) = text ".."
+
+instance SrcInfo loc => Pretty (P.ParseXAttr loc) where
+        pretty (P.XAttr _ n v) =
+                myFsep [pretty n, char '=', pretty v]
+
+instance SrcInfo loc => Pretty (P.PContext loc) where
+        pretty (P.CxEmpty _) = mySep [text "()", text "=>"]
+        pretty (P.CxSingle _ asst) = mySep [pretty asst, text "=>"]
+        pretty (P.CxTuple _ assts) = myFsep [parenList (map pretty assts), text "=>"]
+
+instance SrcInfo loc => Pretty (P.PAsst loc) where
+        pretty (P.TypeA _ t)       = pretty t
+        pretty (P.IParam _ i t)    = myFsep [pretty i, text "::", pretty t]
+        pretty (P.ParenA _ a)      = parens (pretty a)
+
+instance SrcInfo loc => Pretty (P.PType loc) where
+        prettyPrec p (P.TyForall _ mtvs ctxt htype) = parensIf (p > 0) $
+                myFsep [ppForall mtvs, maybePP pretty ctxt, pretty htype]
+        prettyPrec _ (P.TyStar _) = text "*"
+        prettyPrec p (P.TyFun _ a b) = parensIf (p > 0) $
+                myFsep [prettyPrec prec_btype a, text "->", pretty b]
+        prettyPrec _ (P.TyTuple _ bxd l) =
+                let ds = map pretty l
+                 in case bxd of
+                        Boxed   -> parenList ds
+                        Unboxed -> hashParenList ds
+        prettyPrec _ (P.TyUnboxedSum _ es) =
+          unboxedSumType (map pretty es)
+        prettyPrec _ (P.TyList _ t)  = brackets $ pretty t
+        prettyPrec _ (P.TyParArray _ t) = bracketColonList [pretty t]
+        prettyPrec p (P.TyApp _ a b) =
+                {-
+                | a == list_tycon = brackets $ pretty b         -- special case
+                | otherwise = -} parensIf (p > prec_btype) $
+                                    myFsep [pretty a, prettyPrec prec_atype b]
+        prettyPrec _ (P.TyVar _ name) = pretty name
+        prettyPrec _ (P.TyCon _ name) = pretty name
+        prettyPrec _ (P.TyParen _ t) = parens (pretty t)
+        prettyPrec _ (P.TyPred _ asst) = pretty asst
+        prettyPrec _ (P.TyInfix _ a op b) = myFsep [pretty a, pretty op, pretty b]
+        prettyPrec _ (P.TyKind _ t k) = parens (myFsep [pretty t, text "::", pretty k])
+        prettyPrec _ (P.TyPromoted _ p) = pretty p
+        prettyPrec _ (P.TyEquals _ a b) = myFsep [pretty a, text "~", pretty b]
+        prettyPrec _ (P.TySplice _ s) = pretty s
+        prettyPrec _ (P.TyBang _ b u t) = pretty u <+> pretty b <> prettyPrec prec_atype t
+        prettyPrec _ (P.TyWildCard _ mn) = char '_' <> maybePP pretty mn
+        prettyPrec _ (P.TyQuasiQuote _ n qt) = text ("[$" ++ n ++ "|" ++ qt ++ "|]")
diff --git a/src/Language/Haskell/Exts/SrcLoc.hs b/src/Language/Haskell/Exts/SrcLoc.hs
--- a/src/Language/Haskell/Exts/SrcLoc.hs
+++ b/src/Language/Haskell/Exts/SrcLoc.hs
@@ -18,6 +18,10 @@
 import Data.Data
 import GHC.Generics (Generic)
 
+showInt :: Int -> String
+showInt i | i < 0 = "(" ++ show i ++ ")"
+showInt i = show i
+
 -- | A single position in the source.
 data SrcLoc = SrcLoc
     { srcFilename :: String
@@ -29,7 +33,7 @@
 instance Show SrcLoc where
   showsPrec n (SrcLoc fn sl sc) =
     showParen (n >= 11) $
-      showString $ "SrcLoc " ++ show fn ++ " " ++ unwords (map show [sl,sc])
+      showString $ "SrcLoc " ++ show fn ++ " " ++ unwords (map showInt [sl,sc])
 
 noLoc :: SrcLoc
 noLoc = SrcLoc "" (-1) (-1)
@@ -42,12 +46,12 @@
     , srcSpanEndLine     :: Int
     , srcSpanEndColumn   :: Int
     }
-  deriving (Eq,Ord,Typeable,Data)
+  deriving (Eq,Ord,Typeable,Data,Generic)
 
 instance Show SrcSpan where
   showsPrec n (SrcSpan fn sl sc el ec) =
     showParen (n >= 11) $
-      showString $ "SrcSpan " ++ show fn ++ " " ++ unwords (map show [sl,sc,el,ec])
+      showString $ "SrcSpan " ++ show fn ++ " " ++ unwords (map showInt [sl,sc,el,ec])
 
 
 -- | Returns 'srcSpanStartLine' and 'srcSpanStartColumn' in a pair.
@@ -67,7 +71,7 @@
 --   to the end of the second. Assumes that the two spans relate to the
 --   same source file.
 mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpan
-mergeSrcSpan (SrcSpan fn sl1 sc1 el1 ec1) (SrcSpan _ sl2 sc2 el2 ec2) = 
+mergeSrcSpan (SrcSpan fn sl1 sc1 el1 ec1) (SrcSpan _ sl2 sc2 el2 ec2) =
     let (sl,sc) = min (sl1,sc1) (sl2,sc2)
         (el,ec) = max (el1,ec1) (el2,ec2)
      in SrcSpan fn sl sc el ec
@@ -87,7 +91,7 @@
     { loc :: SrcSpan
     , unLoc :: a
     }
-  deriving (Eq,Ord,Show)
+  deriving (Eq,Ord,Show,Generic)
 
 
 -- | A portion of the source, extended with information on the position of entities within the span.
@@ -96,12 +100,22 @@
 --    , explLayout     :: Bool
     , srcInfoPoints  :: [SrcSpan]    -- Marks the location of specific entities inside the span
     }
-  deriving (Eq,Ord,Show,Typeable,Data)
+  deriving (Eq,Ord,Typeable,Data,Generic)
 
+-- Identical output to the derived show instance for GHC 7.10 and earlier.
+instance Show SrcSpanInfo where
+  showsPrec n (SrcSpanInfo s pts) = showParen (n >= 11) . showString $
+    "SrcSpanInfo {srcInfoSpan = " ++ show s ++ ", srcInfoPoints = " ++ show pts ++ "}"
+
 -- | Generate a 'SrcSpanInfo' with no positional information for entities.
 noInfoSpan :: SrcSpan -> SrcSpanInfo
 noInfoSpan ss = SrcSpanInfo ss []
 
+-- | A bogus `SrcSpanInfo`, the location is @noLoc@.
+-- `noSrcSpan = noInfoSpan (mkSrcSpan noLoc noLoc)`
+noSrcSpan :: SrcSpanInfo
+noSrcSpan = noInfoSpan (mkSrcSpan noLoc noLoc)
+
 -- | Generate a 'SrcSpanInfo' with the supplied positional information for entities.
 infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfo
 infoSpan = SrcSpanInfo
@@ -112,6 +126,13 @@
 combSpanInfo s1 s2 = SrcSpanInfo
     (mergeSrcSpan (srcInfoSpan s1) (srcInfoSpan s2))
     []
+
+-- | Like '(<+?>)', but it also concatenates the 'srcInfoPoints'.
+combSpanMaybe :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfo
+combSpanMaybe s1 Nothing = s1
+combSpanMaybe s1 (Just s2) = SrcSpanInfo
+    (mergeSrcSpan (srcInfoSpan s1) (srcInfoSpan s2))
+    (srcInfoPoints s1 ++ srcInfoPoints s2)
 
 -- | Short name for 'combSpanInfo'
 (<++>) :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo
diff --git a/src/Language/Haskell/Exts/Syntax.hs b/src/Language/Haskell/Exts/Syntax.hs
--- a/src/Language/Haskell/Exts/Syntax.hs
+++ b/src/Language/Haskell/Exts/Syntax.hs
@@ -1,840 +1,1952 @@
-{-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Language.Haskell.Exts.Syntax
--- Copyright   :  (c) Niklas Broberg 2004-2009,
---                (c) The GHC Team, 1997-2000
--- License     :  BSD-style (see the file LICENSE.txt)
---
--- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
--- Stability   :  stable
--- Portability :  portable
---
--- A suite of datatypes describing the abstract syntax of Haskell 98
--- <http://www.haskell.org/onlinereport/> plus registered extensions, including:
---
---   * multi-parameter type classes with functional dependencies (MultiParamTypeClasses, FunctionalDependencies)
---
---   * parameters of type class assertions are unrestricted (FlexibleContexts)
---
---   * 'forall' types as universal and existential quantification (RankNTypes, ExistentialQuantification, etc)
---
---   * pattern guards (PatternGuards)
---
---   * implicit parameters (ImplicitParameters)
---
---   * generalised algebraic data types (GADTs)
---
---   * template haskell (TemplateHaskell)
---
---   * empty data type declarations (EmptyDataDecls)
---
---   * unboxed tuples (UnboxedTuples)
---
---   * regular patterns (RegularPatterns)
---
---   * HSP-style XML expressions and patterns (XmlSyntax)
---
------------------------------------------------------------------------------
-
-module Language.Haskell.Exts.Syntax (
-    -- * Modules
-    Module(..), WarningText(..), ExportSpec(..),
-    ImportDecl(..), ImportSpec(..), Assoc(..), Namespace(..),
-    -- * Declarations
-    Decl(..), Binds(..), IPBind(..),
-    -- ** Type classes and instances
-    ClassDecl(..), InstDecl(..), Deriving,
-    -- ** Data type declarations
-    DataOrNew(..), ConDecl(..), QualConDecl(..), GadtDecl(..), BangType(..),
-    -- ** Function bindings
-    Match(..), Rhs(..), GuardedRhs(..),
-    -- * Class Assertions and Contexts
-    Context, FunDep(..), Asst(..),
-    -- * Types
-    Type(..), Boxed(..), Kind(..), TyVarBind(..), Promoted(..),
-    TypeEqn (..),
-    -- * Expressions
-    Exp(..), Stmt(..), QualStmt(..), FieldUpdate(..),
-    Alt(..), XAttr(..),
-    -- * Patterns
-    Pat(..), PatField(..), PXAttr(..), RPat(..), RPatOp(..),
-    -- * Literals
-    Literal(..), Sign(..),
-    -- * Variables, Constructors and Operators
-    ModuleName(..), QName(..), Name(..), QOp(..), Op(..),
-    SpecialCon(..), CName(..), IPName(..), XName(..),
-
-    -- * Template Haskell
-    Bracket(..), Splice(..),
-
-    -- * FFI
-    Safety(..), CallConv(..),
-
-    -- * Pragmas
-    ModulePragma(..), Tool(..), Overlap(..),
-    Rule(..), RuleVar(..), Activation(..),
-    Annotation(..), BooleanFormula(..),
-
-    -- * Builtin names
-
-    -- ** Modules
-    prelude_mod, main_mod,
-    -- ** Main function of a program
-    main_name,
-    -- ** Constructors
-    unit_con_name, tuple_con_name, list_cons_name, unboxed_singleton_con_name,
-    unit_con, tuple_con, unboxed_singleton_con,
-    -- ** Special identifiers
-    as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name,
-    export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
-    stdcall_name, ccall_name, cplusplus_name, dotnet_name, jvm_name, js_name,
-    capi_name, forall_name, family_name,
-    -- ** Type constructors
-    unit_tycon_name, fun_tycon_name, list_tycon_name, tuple_tycon_name, unboxed_singleton_tycon_name,
-    unit_tycon, fun_tycon, list_tycon, tuple_tycon, unboxed_singleton_tycon,
-
-    -- * Source coordinates
-    SrcLoc(..),
-  ) where
-
-
-import Data.Data
-import GHC.Generics (Generic)
-import Language.Haskell.Exts.SrcLoc (SrcLoc(..))
-import Language.Haskell.Exts.Annotated.Syntax (Boxed(..), Tool(..))
-
-
--- | The name of a Haskell module.
-newtype ModuleName = ModuleName String
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Constructors with special syntax.
--- These names are never qualified, and always refer to builtin type or
--- data constructors.
-data SpecialCon
-    = UnitCon               -- ^ unit type and data constructor @()@
-    | ListCon               -- ^ list type constructor @[]@
-    | FunCon                -- ^ function type constructor @->@
-    | TupleCon Boxed Int    -- ^ /n/-ary tuple type and data
-                            --   constructors @(,)@ etc, possibly boxed @(\#,\#)@
-    | Cons                  -- ^ list data constructor @(:)@
-    | UnboxedSingleCon      -- ^ unboxed singleton tuple constructor @(\# \#)@
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | This type is used to represent qualified variables, and also
---   qualified constructors.
-data QName
-    = Qual ModuleName Name    -- ^ name qualified with a module name
-    | UnQual Name             -- ^ unqualified local name
-    | Special SpecialCon      -- ^ built-in constructor with special syntax
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | This type is used to represent variables, and also constructors.
-data Name
-    = Ident String    -- ^ /varid/ or /conid/.
-    | Symbol String   -- ^ /varsym/ or /consym/
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An implicit parameter name.
-data IPName
-    = IPDup String -- ^ ?/ident/, non-linear implicit parameter
-    | IPLin String -- ^ %/ident/, linear implicit parameter
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Possibly qualified infix operators (/qop/), appearing in expressions.
-data QOp
-    = QVarOp QName  -- ^ variable operator (/qvarop/)
-    | QConOp QName  -- ^ constructor operator (/qconop/)
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Operators appearing in @infix@ declarations are never qualified.
-data Op
-    = VarOp Name    -- ^ variable operator (/varop/)
-    | ConOp Name    -- ^ constructor operator (/conop/)
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A name (/cname/) of a component of a class or data type in an @import@
---   or export specification.
-data CName
-    = VarName Name  -- ^ name of a method or field
-    | ConName Name  -- ^ name of a data constructor
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A complete Haskell source module.
-data Module = Module SrcLoc ModuleName [ModulePragma] (Maybe WarningText)
-                        (Maybe [ExportSpec]) [ImportDecl] [Decl]
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An item in a module's export specification.
-data ExportSpec
-     = EVar Namespace QName         -- ^ variable.
-     | EAbs QName                   -- ^ @T@:
-                                    --   a class or datatype exported abstractly,
-                                    --   or a type synonym.
-     | EThingAll QName              -- ^ @T(..)@:
-                                    --   a class exported with all of its methods, or
-                                    --   a datatype exported with all of its constructors.
-     | EThingWith QName [CName]     -- ^ @T(C_1,...,C_n)@:
-                                    --   a class exported with some of its methods, or
-                                    --   a datatype exported with some of its constructors.
-     | EModuleContents ModuleName   -- ^ @module M@:
-                                    --   re-export a module.
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Namespaces for imports/exports.
-data Namespace = NoNamespace | TypeNamespace
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An import declaration.
-data ImportDecl = ImportDecl
-    { importLoc :: SrcLoc           -- ^ position of the @import@ keyword.
-    , importModule :: ModuleName    -- ^ name of the module imported.
-    , importQualified :: Bool       -- ^ imported @qualified@?
-    , importSrc :: Bool             -- ^ imported with @{-\# SOURCE \#-}@?
-    , importSafe :: Bool            -- ^ Import @safe@?
-    , importPkg :: Maybe String     -- ^ imported with explicit package name
-    , importAs :: Maybe ModuleName  -- ^ optional alias name in an @as@ clause.
-    , importSpecs :: Maybe (Bool,[ImportSpec])
-            -- ^ optional list of import specifications.
-            -- The 'Bool' is 'True' if the names are excluded
-            -- by @hiding@.
-    }
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An import specification, representing a single explicit item imported
---   (or hidden) from a module.
-data ImportSpec
-     = IVar Namespace Name      -- ^ variable.
-     | IAbs Name                -- ^ @T@:
-                                --   the name of a class, datatype or type synonym.
-     | IThingAll Name           -- ^ @T(..)@:
-                                --   a class imported with all of its methods, or
-                                --   a datatype imported with all of its constructors.
-     | IThingWith Name [CName]  -- ^ @T(C_1,...,C_n)@:
-                                --   a class imported with some of its methods, or
-                                --   a datatype imported with some of its constructors.
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Associativity of an operator.
-data Assoc
-     = AssocNone  -- ^ non-associative operator (declared with @infix@)
-     | AssocLeft  -- ^ left-associative operator (declared with @infixl@).
-     | AssocRight -- ^ right-associative operator (declared with @infixr@)
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A single derived instance, which may have arguments since it may be a MPTC.
-type Deriving = (QName, [Type])
-
--- | A top-level declaration.
-data Decl
-     = TypeDecl     SrcLoc Name [TyVarBind] Type
-     -- ^ A type declaration
-     | TypeFamDecl  SrcLoc Name [TyVarBind] (Maybe Kind)
-     -- ^ A type family declaration
-     | ClosedTypeFamDecl  SrcLoc Name [TyVarBind] (Maybe Kind) [TypeEqn]
-     -- ^ A closed type family declaration
-     | DataDecl     SrcLoc DataOrNew Context Name [TyVarBind]              [QualConDecl] [Deriving]
-     -- ^ A data OR newtype declaration
-     | GDataDecl    SrcLoc DataOrNew Context Name [TyVarBind] (Maybe Kind) [GadtDecl]    [Deriving]
-     -- ^ A data OR newtype declaration, GADT style
-     | DataFamDecl  SrcLoc {-data-}  Context Name [TyVarBind] (Maybe Kind)
-     -- ^ A data family declaration
-     | TypeInsDecl  SrcLoc Type Type
-     -- ^ A type family instance declaration
-     | DataInsDecl  SrcLoc DataOrNew Type              [QualConDecl] [Deriving]
-     -- ^ A data family instance declaration
-     | GDataInsDecl SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl]    [Deriving]
-     -- ^ A data family instance declaration, GADT style
-     | ClassDecl    SrcLoc Context Name [TyVarBind] [FunDep] [ClassDecl]
-     -- ^ A declaration of a type class
-     | InstDecl     SrcLoc (Maybe Overlap) [TyVarBind] Context QName [Type] [InstDecl]
-     -- ^ An declaration of a type class instance
-     | DerivDecl    SrcLoc (Maybe Overlap) [TyVarBind] Context QName [Type]
-     -- ^ A standalone deriving declaration
-     | InfixDecl    SrcLoc Assoc Int [Op]
-     -- ^ A declaration of operator fixity
-     | DefaultDecl  SrcLoc [Type]
-     -- ^ A declaration of default types
-     | SpliceDecl   SrcLoc Exp
-     -- ^ A Template Haskell splicing declaration
-     | TypeSig      SrcLoc [Name] Type
-     -- ^ A type signature declaration
-     | FunBind      [Match]
-     -- ^ A set of function binding clauses
-     | PatBind      SrcLoc Pat Rhs {-where-} Binds
-     -- ^ A pattern binding
-     | ForImp   SrcLoc CallConv Safety String Name Type
-     -- ^ A foreign import declaration
-     | ForExp   SrcLoc CallConv          String Name Type
-     -- ^ A foreign export declaration
-
-     | RulePragmaDecl   SrcLoc [Rule]
-     -- ^ A RULES pragma
-     | DeprPragmaDecl   SrcLoc [([Name], String)]
-     -- ^ A DEPRECATED pragma
-     | WarnPragmaDecl   SrcLoc [([Name], String)]
-     -- ^ A WARNING pragma
-     | InlineSig        SrcLoc Bool Activation QName
-     -- ^ An INLINE pragma
-     | InlineConlikeSig SrcLoc      Activation QName
-     -- ^ An INLINE CONLIKE pragma
-     | SpecSig          SrcLoc      Activation QName [Type]
-     -- ^ A SPECIALISE pragma
-     | SpecInlineSig    SrcLoc Bool Activation QName [Type]
-     -- ^ A SPECIALISE INLINE pragma
-     | InstSig          SrcLoc [TyVarBind] Context QName [Type]
-     -- ^ A SPECIALISE instance pragma
-     | AnnPragma        SrcLoc Annotation
-     -- ^ An ANN pragma
-     | MinimalPragma    SrcLoc (Maybe BooleanFormula)
-     -- ^ A MINIMAL pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A type equation of the form @rhs = lhs@ used in closed type families.
-data TypeEqn = TypeEqn Type Type deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An annotation through an ANN pragma.
-data Annotation
-    = Ann       Name Exp
-    -- ^ An annotation for a declared name.
-    | TypeAnn   Name Exp
-    -- ^ An annotation for a declared type.
-    | ModuleAnn      Exp
-    -- ^ An annotation for the defining module.
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A boolean formula for MINIMAL pragmas.
-data BooleanFormula
-    = VarFormula Name                -- ^ A variable.
-    | AndFormula [BooleanFormula]    -- ^ And boolean formulas.
-    | OrFormula [BooleanFormula]     -- ^ Or boolean formulas.
-    | ParenFormula BooleanFormula    -- ^ Parenthesized boolean formulas.
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A flag stating whether a declaration is a data or newtype declaration.
-data DataOrNew = DataType | NewType
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A binding group inside a @let@ or @where@ clause.
-data Binds
-    = BDecls [Decl]     -- ^ An ordinary binding group
-    | IPBinds [IPBind]  -- ^ A binding group for implicit parameters
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A binding of an implicit parameter.
-data IPBind = IPBind SrcLoc IPName Exp
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Clauses of a function binding.
-data Match
-     = Match SrcLoc Name [Pat] (Maybe Type) Rhs {-where-} Binds
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A single constructor declaration within a data type declaration,
---   which may have an existential quantification binding.
-data QualConDecl
-    = QualConDecl SrcLoc
-        {-forall-} [TyVarBind] {- . -} Context
-        {- => -} ConDecl
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Declaration of an ordinary data constructor.
-data ConDecl
-     = ConDecl Name [Type]
-                -- ^ ordinary data constructor
-     | InfixConDecl Type Name Type
-                -- ^ infix data constructor
-     | RecDecl Name [([Name],Type)]
-                -- ^ record constructor
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A single constructor declaration in a GADT data type declaration.
-data GadtDecl
-    = GadtDecl SrcLoc Name [([Name], Type)] Type
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Declarations inside a class declaration.
-data ClassDecl
-    = ClsDecl    Decl
-            -- ^ ordinary declaration
-    | ClsDataFam SrcLoc Context Name [TyVarBind] (Maybe Kind)
-            -- ^ declaration of an associated data type
-    | ClsTyFam   SrcLoc         Name [TyVarBind] (Maybe Kind)
-            -- ^ declaration of an associated type synonym
-    | ClsTyDef   SrcLoc Type    Type
-            -- ^ default choice for an associated type synonym
-    | ClsDefSig  SrcLoc Name Type
-            -- ^ default signature
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Declarations inside an instance declaration.
-data InstDecl
-    = InsDecl   Decl
-            -- ^ ordinary declaration
-    | InsType   SrcLoc Type Type
-            -- ^ an associated type definition
-    | InsData   SrcLoc DataOrNew Type [QualConDecl] [Deriving]
-            -- ^ an associated data type implementation
-    | InsGData  SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl] [Deriving]
-            -- ^ an associated data type implemented using GADT style
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The type of a constructor argument or field, optionally including
---   a strictness annotation.
-data BangType
-     = BangedTy    -- ^ strict component, marked with \"@!@\"
-     | UnpackedTy  -- ^ unboxed component, marked with an UNPACK pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The right hand side of a function binding, pattern binding, or a case
---   alternative.
-data Rhs
-     = UnGuardedRhs Exp -- ^ unguarded right hand side (/exp/)
-     | GuardedRhss  [GuardedRhs]
-                        -- ^ guarded right hand side (/gdrhs/)
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A guarded right hand side @|@ /stmts/ @=@ /exp/, or @|@ /stmts/ @->@ /exp/
---   for case alternatives.
---   The guard is a series of statements when using pattern guards,
---   otherwise it will be a single qualifier expression.
-data GuardedRhs
-     = GuardedRhs SrcLoc [Stmt] Exp
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A type qualified with a context.
---   An unqualified type has an empty context.
-data Type
-     = TyForall
-        (Maybe [TyVarBind])
-        Context
-        Type                    -- ^ qualified type
-     | TyFun   Type Type        -- ^ function type
-     | TyTuple Boxed [Type]     -- ^ tuple type, possibly boxed
-     | TyList  Type             -- ^ list syntax, e.g. [a], as opposed to [] a
-     | TyParArray Type          -- ^ parallel array syntax, e.g. [:a:]
-     | TyApp   Type Type        -- ^ application of a type constructor
-     | TyVar   Name             -- ^ type variable
-     | TyCon   QName            -- ^ named type or type constructor
-     | TyParen Type             -- ^ type surrounded by parentheses
-     | TyInfix Type QName Type  -- ^ infix type constructor
-     | TyKind  Type Kind        -- ^ type with explicit kind signature
-     | TyPromoted Promoted      -- ^ promoted data type (-XDataKinds)
-     | TyEquals Type Type       -- ^ type equality predicate enabled by ConstraintKinds
-     | TySplice Splice          -- ^ template haskell splice type
-     | TyBang BangType Type     -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.
-  deriving (Eq,Ord,Show,Typeable,Data)
-
-data Promoted
-        = PromotedInteger Integer
-        | PromotedString String
-        | PromotedCon Bool QName
-        | PromotedList Bool [Promoted]
-        | PromotedTuple [Promoted]
-        | PromotedUnit
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A type variable declaration, optionally with an explicit kind annotation.
-data TyVarBind
-    = KindedVar Name Kind   -- ^ variable binding with kind annotation
-    | UnkindedVar Name      -- ^ ordinary variable binding
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An explicit kind annotation.
-data Kind
-    = KindStar          -- ^ @*@, the kind of types
-    | KindBang          -- ^ @!@, the kind of unboxed types
-    | KindFn Kind Kind  -- ^ @->@, the kind of a type constructor
-    | KindParen Kind    -- ^ a kind surrounded by parentheses
-    | KindVar QName     -- ^ a kind variable (as of yet unsupported by compilers)
-    | KindApp Kind Kind -- ^ @k1 k2@
-    | KindTuple [Kind]  -- ^ @'(k1,k2,k3)@, a promoted tuple
-    | KindList  [Kind]  -- ^ @'[k1,k2,k3]@, a promoted list literal
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
-
--- | A functional dependency, given on the form
---   l1 l2 ... ln -> r2 r3 .. rn
-data FunDep
-    = FunDep [Name] [Name]
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A context is a set of assertions
-type Context = [Asst]
-
--- | Class assertions.
---   In Haskell 98, the argument would be a /tyvar/, but this definition
---   allows multiple parameters, and allows them to be /type/s.
---   Also extended with support for implicit parameters and equality constraints.
-data Asst = ClassA QName [Type]     -- ^ ordinary class assertion
-          | VarA Name               -- ^ constraint kind assertion, @Dict :: cxt => Dict cxt@
-          | InfixA Type QName Type  -- ^ class assertion where the class name is given infix
-          | IParam IPName Type      -- ^ implicit parameter assertion
-          | EqualP Type   Type      -- ^ type equality constraint
-          | ParenA Asst             -- ^ parenthesised class assertion
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | /literal/
--- Values of this type hold the abstract value of the literal, not the
--- precise string representation used.  For example, @10@, @0o12@ and @0xa@
--- have the same representation.
-data Literal
-    = Char    Char          -- ^ character literal
-    | String  String        -- ^ string literal
-    | Int     Integer       -- ^ integer literal
-    | Frac    Rational      -- ^ floating point literal
-    | PrimInt    Integer    -- ^ unboxed integer literal
-    | PrimWord   Integer    -- ^ unboxed word literal
-    | PrimFloat  Rational   -- ^ unboxed float literal
-    | PrimDouble Rational   -- ^ unboxed double literal
-    | PrimChar   Char       -- ^ unboxed character literal
-    | PrimString String     -- ^ unboxed string literal
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An indication whether a literal pattern has been negated or not.
-data Sign
-    = Signless
-    | Negative
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Haskell expressions.
-data Exp
-    = Var QName                 -- ^ variable
-    | IPVar IPName              -- ^ implicit parameter variable
-    | Con QName                 -- ^ data constructor
-    | Lit Literal               -- ^ literal constant
-    | InfixApp Exp QOp Exp      -- ^ infix application
-    | App Exp Exp               -- ^ ordinary application
-    | NegApp Exp                -- ^ negation expression @-/exp/@ (unary minus)
-    | Lambda SrcLoc [Pat] Exp   -- ^ lambda expression
-    | Let Binds Exp             -- ^ local declarations with @let@ ... @in@ ...
-    | If Exp Exp Exp            -- ^ @if@ /exp/ @then@ /exp/ @else@ /exp/
-    | MultiIf [GuardedRhs]      -- ^ @if@ @|@ /exp/ @->@ /exp/ ...
-    | Case Exp [Alt]            -- ^ @case@ /exp/ @of@ /alts/
-    | Do [Stmt]                 -- ^ @do@-expression:
-                                --   the last statement in the list
-                                --   should be an expression.
-    | MDo [Stmt]                -- ^ @mdo@-expression
-    | Tuple Boxed [Exp]         -- ^ tuple expression
-    | TupleSection Boxed [Maybe Exp]  -- ^ tuple section expression, e.g. @(,,3)@
-    | List [Exp]                -- ^ list expression
-    | ParArray [Exp]            -- ^ parallel array expression
-    | Paren Exp                 -- ^ parenthesised expression
-    | LeftSection Exp QOp       -- ^ left section @(@/exp/ /qop/@)@
-    | RightSection QOp Exp      -- ^ right section @(@/qop/ /exp/@)@
-    | RecConstr QName [FieldUpdate]
-                                -- ^ record construction expression
-    | RecUpdate Exp [FieldUpdate]
-                                -- ^ record update expression
-    | EnumFrom Exp              -- ^ unbounded arithmetic sequence,
-                                --   incrementing by 1: @[from ..]@
-    | EnumFromTo Exp Exp        -- ^ bounded arithmetic sequence,
-                                --   incrementing by 1 @[from .. to]@
-    | EnumFromThen Exp Exp      -- ^ unbounded arithmetic sequence,
-                                --   with first two elements given @[from, then ..]@
-    | EnumFromThenTo Exp Exp Exp
-                                -- ^ bounded arithmetic sequence,
-                                --   with first two elements given @[from, then .. to]@
-    | ParArrayFromTo Exp Exp    -- ^ bounded arithmetic sequence,
-                                --   incrementing by 1 @[from .. to]@
-    | ParArrayFromThenTo Exp Exp Exp
-                                -- ^ bounded arithmetic sequence,
-                                --   with first two elements given @[from, then .. to]@
-    | ListComp Exp  [QualStmt]    -- ^ ordinary list comprehension
-    | ParComp  Exp [[QualStmt]]   -- ^ parallel list comprehension
-    | ParArrayComp  Exp [[QualStmt]]
-                                  -- ^ parallel array comprehension
-    | ExpTypeSig SrcLoc Exp Type  -- ^ expression with explicit type signature
-
-    | VarQuote QName            -- ^ @'x@ for template haskell reifying of expressions
-    | TypQuote QName            -- ^ @''T@ for template haskell reifying of types
-    | BracketExp Bracket        -- ^ template haskell bracket expression
-    | SpliceExp Splice          -- ^ template haskell splice expression
-    | QuasiQuote String String  -- ^ quasi-quotaion: @[$/name/| /string/ |]@
-
--- Hsx
-    | XTag SrcLoc XName [XAttr] (Maybe Exp) [Exp]
-                                -- ^ xml element, with attributes and children
-    | XETag SrcLoc XName [XAttr] (Maybe Exp)
-                                -- ^ empty xml element, with attributes
-    | XPcdata String            -- ^ PCDATA child element
-    | XExpTag Exp               -- ^ escaped haskell expression inside xml
-    | XChildTag SrcLoc [Exp]    -- ^ children of an xml element
-
--- Pragmas
-    | CorePragma        String Exp      -- ^ CORE pragma
-    | SCCPragma         String Exp      -- ^ SCC pragma
-    | GenPragma         String (Int, Int) (Int, Int) Exp
-                                        -- ^ GENERATED pragma
-
--- Arrows
-    | Proc SrcLoc     Pat Exp   -- ^ arrows proc: @proc@ /pat/ @->@ /exp/
-    | LeftArrApp      Exp Exp   -- ^ arrow application (from left): /exp/ @-<@ /exp/
-    | RightArrApp     Exp Exp   -- ^ arrow application (from right): /exp/ @>-@ /exp/
-    | LeftArrHighApp  Exp Exp   -- ^ higher-order arrow application (from left): /exp/ @-<<@ /exp/
-    | RightArrHighApp Exp Exp   -- ^ higher-order arrow application (from right): /exp/ @>>-@ /exp/
-
--- LambdaCase
-    | LCase [Alt] -- ^ @\case@ /alts/
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The name of an xml element or attribute,
---   possibly qualified with a namespace.
-data XName
-    = XName String              -- <name ...
-    | XDomName String String    -- <dom:name ...
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An xml attribute, which is a name-expression pair.
-data XAttr = XAttr XName Exp
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A template haskell bracket expression.
-data Bracket
-    = ExpBracket Exp        -- ^ expression bracket: @[| ... |]@
-    | PatBracket Pat        -- ^ pattern bracket: @[p| ... |]@
-    | TypeBracket Type      -- ^ type bracket: @[t| ... |]@
-    | DeclBracket [Decl]    -- ^ declaration bracket: @[d| ... |]@
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A template haskell splice expression
-data Splice
-    = IdSplice String       -- ^ variable splice: @$var@
-    | ParenSplice Exp       -- ^ parenthesised expression splice: @$(/exp/)@
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The safety of a foreign function call.
-data Safety
-    = PlayRisky         -- ^ unsafe
-    | PlaySafe Bool     -- ^ safe ('False') or threadsafe ('True')
-    | PlayInterruptible -- ^ interruptible
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The calling convention of a foreign function call.
-data CallConv
-    = StdCall
-    | CCall
-    | CPlusPlus
-    | DotNet
-    | Jvm
-    | Js
-    | CApi
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A top level options pragma, preceding the module header.
-data ModulePragma
-    = LanguagePragma   SrcLoc [Name]    -- ^ LANGUAGE pragma
-    | OptionsPragma    SrcLoc (Maybe Tool) String
-                        -- ^ OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
-    | AnnModulePragma  SrcLoc Annotation
-                        -- ^ ANN pragma with module scope
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Recognised overlaps for overlap pragmas.
-data Overlap
-    = NoOverlap   -- ^ NO_OVERLAP pragma
-    | Overlap     -- ^ OVERLAP pragma
-    | Incoherent  -- ^ INCOHERENT pragma
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Activation clause of a RULES pragma.
-data Activation
-    = AlwaysActive
-    | ActiveFrom  Int
-    | ActiveUntil Int
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | The body of a RULES pragma.
-data Rule
-    = Rule String Activation (Maybe [RuleVar]) Exp Exp
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Variables used in a RULES pragma, optionally annotated with types
-data RuleVar
-    = RuleVar Name
-    | TypedRuleVar Name Type
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | Warning text to optionally use in the module header of e.g.
---   a deprecated module.
-data WarningText
-    = DeprText String
-    | WarnText String
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
-
--- | A pattern, to be matched against a value.
-data Pat
-    = PVar Name                     -- ^ variable
-    | PLit Sign Literal             -- ^ literal constant
-    | PNPlusK Name Integer          -- ^ n+k pattern
-    | PInfixApp Pat QName Pat       -- ^ pattern with an infix data constructor
-    | PApp QName [Pat]              -- ^ data constructor and argument patterns
-    | PTuple Boxed [Pat]            -- ^ tuple pattern
-    | PList [Pat]                   -- ^ list pattern
-    | PParen Pat                    -- ^ parenthesized pattern
-    | PRec QName [PatField]         -- ^ labelled pattern, record style
-    | PAsPat Name Pat               -- ^ @\@@-pattern
-    | PWildCard                     -- ^ wildcard pattern: @_@
-    | PIrrPat Pat                   -- ^ irrefutable pattern: @~/pat/@
-    | PatTypeSig SrcLoc Pat Type    -- ^ pattern with type signature
-    | PViewPat Exp Pat              -- ^ view patterns of the form @(/exp/ -> /pat/)@
-    | PRPat [RPat]                  -- ^ regular list pattern
-    | PXTag SrcLoc XName [PXAttr] (Maybe Pat) [Pat]
-                                    -- ^ XML element pattern
-    | PXETag SrcLoc XName [PXAttr] (Maybe Pat)
-                                    -- ^ XML singleton element pattern
-    | PXPcdata String               -- ^ XML PCDATA pattern
-    | PXPatTag Pat                  -- ^ XML embedded pattern
-    | PXRPats [RPat]                -- ^ XML regular list pattern
-    | PQuasiQuote String String     -- ^ quasi quote patter: @[$/name/| /string/ |]@
-    | PBangPat Pat                  -- ^ strict (bang) pattern: @f !x = ...@
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An XML attribute in a pattern.
-data PXAttr = PXAttr XName Pat
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A regular pattern operator.
-data RPatOp
-    = RPStar    -- ^ @*@ = 0 or more
-    | RPStarG   -- ^ @*!@ = 0 or more, greedy
-    | RPPlus    -- ^ @+@ = 1 or more
-    | RPPlusG   -- ^ @+!@ = 1 or more, greedy
-    | RPOpt     -- ^ @?@ = 0 or 1
-    | RPOptG    -- ^ @?!@ = 0 or 1, greedy
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An entity in a regular pattern.
-data RPat
-    = RPOp RPat RPatOp      -- ^ operator pattern, e.g. pat*
-    | RPEither RPat RPat    -- ^ choice pattern, e.g. (1 | 2)
-    | RPSeq [RPat]          -- ^ sequence pattern, e.g. (| 1, 2, 3 |)
-    | RPGuard Pat [Stmt]    -- ^ guarded pattern, e.g. (| p | p < 3 |)
-    | RPCAs Name RPat       -- ^ non-linear variable binding, e.g. (foo\@:(1 | 2))*
-    | RPAs Name RPat        -- ^ linear variable binding, e.g. foo\@(1 | 2)
-    | RPParen RPat          -- ^ parenthesised pattern, e.g. (2*)
-    | RPPat Pat             -- ^ an ordinary pattern
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An /fpat/ in a labeled record pattern.
-data PatField
-    = PFieldPat QName Pat       -- ^ ordinary label-pattern pair
-    | PFieldPun QName           -- ^ record field pun
-    | PFieldWildcard            -- ^ record field wildcard
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A statement, representing both a /stmt/ in a @do@-expression,
---   an ordinary /qual/ in a list comprehension, as well as a /stmt/
---   in a pattern guard.
-data Stmt
-    = Generator SrcLoc Pat Exp
-                        -- ^ a generator: /pat/ @<-@ /exp/
-    | Qualifier Exp     -- ^ an /exp/ by itself: in a @do@-expression,
-                        --   an action whose result is discarded;
-                        --   in a list comprehension and pattern guard,
-                        --   a guard expression
-    | LetStmt Binds     -- ^ local bindings
-    | RecStmt [Stmt]    -- ^ a recursive binding group for arrows
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | A general /transqual/ in a list comprehension,
---   which could potentially be a transform of the kind
---   enabled by TransformListComp.
-data QualStmt
-    = QualStmt     Stmt         -- ^ an ordinary statement
-    | ThenTrans    Exp          -- ^ @then@ /exp/
-    | ThenBy       Exp Exp      -- ^ @then@ /exp/ @by@ /exp/
-    | GroupBy      Exp          -- ^ @then@ @group@ @by@ /exp/
-    | GroupUsing   Exp          -- ^ @then@ @group@ @using@ /exp/
-    | GroupByUsing Exp Exp      -- ^ @then@ @group@ @by@ /exp/ @using@ /exp/
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An /fbind/ in a labeled construction or update expression.
-data FieldUpdate
-    = FieldUpdate QName Exp     -- ^ ordinary label-expresion pair
-    | FieldPun QName            -- ^ record field pun
-    | FieldWildcard             -- ^ record field wildcard
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
--- | An /alt/ alternative in a @case@ expression.
-data Alt
-    = Alt SrcLoc Pat Rhs Binds
-  deriving (Eq,Ord,Show,Typeable,Data,Generic)
-
------------------------------------------------------------------------------
--- Builtin names.
-
-prelude_mod, main_mod :: ModuleName
-prelude_mod = ModuleName "Prelude"
-main_mod    = ModuleName "Main"
-
-main_name :: Name
-main_name = Ident "main"
-
-unit_con_name :: QName
-unit_con_name = Special UnitCon
-
-tuple_con_name :: Boxed -> Int -> QName
-tuple_con_name b i = Special (TupleCon b (i+1))
-
-list_cons_name :: QName
-list_cons_name = Special Cons
-
-unboxed_singleton_con_name :: QName
-unboxed_singleton_con_name = Special UnboxedSingleCon
-
-unit_con :: Exp
-unit_con = Con unit_con_name
-
-tuple_con :: Boxed -> Int -> Exp
-tuple_con b i = Con (tuple_con_name b i)
-
-unboxed_singleton_con :: Exp
-unboxed_singleton_con = Con unboxed_singleton_con_name
-
-as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name :: Name
-as_name        = Ident "as"
-qualified_name = Ident "qualified"
-hiding_name    = Ident "hiding"
-minus_name     = Symbol "-"
-bang_name      = Symbol "!"
-dot_name       = Symbol "."
-star_name      = Symbol "*"
-
-export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
-  stdcall_name, ccall_name, cplusplus_name, dotnet_name,
-  jvm_name, js_name, capi_name, forall_name, family_name :: Name
-export_name     = Ident "export"
-safe_name       = Ident "safe"
-unsafe_name     = Ident "unsafe"
-interruptible_name = Ident "interruptible"
-threadsafe_name = Ident "threadsafe"
-stdcall_name    = Ident "stdcall"
-ccall_name      = Ident "ccall"
-cplusplus_name  = Ident "cplusplus"
-dotnet_name     = Ident "dotnet"
-jvm_name        = Ident "jvm"
-js_name         = Ident "js"
-capi_name       = Ident "capi"
-forall_name     = Ident "forall"
-family_name     = Ident "family"
-
-unit_tycon_name, fun_tycon_name, list_tycon_name, unboxed_singleton_tycon_name :: QName
-unit_tycon_name = unit_con_name
-fun_tycon_name  = Special FunCon
-list_tycon_name = Special ListCon
-unboxed_singleton_tycon_name = Special UnboxedSingleCon
-
-tuple_tycon_name :: Boxed -> Int -> QName
-tuple_tycon_name b i = tuple_con_name b i
-
-unit_tycon, fun_tycon, list_tycon, unboxed_singleton_tycon :: Type
-unit_tycon = TyCon unit_tycon_name
-fun_tycon  = TyCon fun_tycon_name
-list_tycon = TyCon list_tycon_name
-unboxed_singleton_tycon = TyCon unboxed_singleton_tycon_name
-
-tuple_tycon :: Boxed -> Int -> Type
-tuple_tycon b i = TyCon (tuple_tycon_name b i)
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveFoldable #-}
+{-# LANGUAGE DeriveTraversable #-}
+{-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE CPP #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Language.Haskell.Exts.Syntax
+-- Copyright   :  (c) Niklas Broberg 2004-2009,
+--                (c) The GHC Team, 1997-2000
+-- License     :  BSD-style (see the file LICENSE.txt)
+--
+-- Maintainer  :  Niklas Broberg, d00nibro@chalmers.se
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A suite of datatypes describing the (semi-concrete) abstract syntax of Haskell 98
+-- <http://www.haskell.org/onlinereport/> plus registered extensions, including:
+--
+--   * multi-parameter type classes with functional dependencies (MultiParamTypeClasses, FunctionalDependencies)
+--
+--   * parameters of type class assertions are unrestricted (FlexibleContexts)
+--
+--   * 'forall' types as universal and existential quantification (RankNTypes, ExistentialQuantification, etc)
+--
+--   * pattern guards (PatternGuards)
+--
+--   * implicit parameters (ImplicitParameters)
+--
+--   * generalised algebraic data types (GADTs)
+--
+--   * template haskell (TemplateHaskell)
+--
+--   * empty data type declarations (EmptyDataDecls)
+--
+--   * unboxed tuples (UnboxedTuples)
+--
+--   * regular patterns (RegularPatterns)
+--
+--   * HSP-style XML expressions and patterns (XmlSyntax)
+--
+-- All nodes in the syntax tree are annotated with something of a user-definable data type.
+-- When parsing, this annotation will contain information about the source location that the
+-- particular node comes from.
+--
+-----------------------------------------------------------------------------
+
+module Language.Haskell.Exts.Syntax (
+    -- * Modules
+    Module(..), ModuleHead(..), WarningText(..), ExportSpecList(..), ExportSpec(..),
+    EWildcard(..),
+    ImportDecl(..), ImportSpecList(..), ImportSpec(..), Assoc(..), Namespace(..),
+    -- * Declarations
+    Decl(..), DeclHead(..), InstRule(..), InstHead(..), Binds(..), IPBind(..), PatternSynDirection(..),
+    InjectivityInfo(..), ResultSig(..),
+    -- ** Type classes and instances
+    ClassDecl(..), InstDecl(..), Deriving(..), DerivStrategy(..),
+    -- ** Data type declarations
+    DataOrNew(..), ConDecl(..), FieldDecl(..), QualConDecl(..), GadtDecl(..), BangType(..),
+    Unpackedness(..),
+    -- ** Function bindings
+    Match(..), Rhs(..), GuardedRhs(..),
+    -- * Class Assertions and Contexts
+    Context(..), FunDep(..), Asst(..),
+    -- * Types
+    Type(..), Boxed(..), Kind, TyVarBind(..), Promoted(..),
+    TypeEqn (..),
+    -- * Expressions
+    Exp(..), Stmt(..), QualStmt(..), FieldUpdate(..),
+    Alt(..), XAttr(..),
+    -- * Patterns
+    Pat(..), PatField(..), PXAttr(..), RPat(..), RPatOp(..),
+    -- * Literals
+    Literal(..), Sign(..),
+    -- * Variables, Constructors and Operators
+    ModuleName(..), QName(..), Name(..), QOp(..), Op(..),
+    SpecialCon(..), CName(..), IPName(..), XName(..), Role(..),
+    MaybePromotedName(..),
+
+    -- * Template Haskell
+    Bracket(..), Splice(..),
+
+    -- * FFI
+    Safety(..), CallConv(..),
+
+    -- * Pragmas
+    ModulePragma(..), Tool(..), Overlap(..),
+    Rule(..), RuleVar(..), Activation(..),
+    Annotation(..), BooleanFormula(..),
+
+    -- * Builtin names
+
+    -- ** Modules
+    prelude_mod, main_mod,
+    -- ** Main function of a program
+    main_name,
+    -- ** Constructors
+    unit_con_name, tuple_con_name, list_con_name, list_cons_name, unboxed_singleton_con_name,
+    unit_con, tuple_con, unboxed_singleton_con,
+    -- ** Special identifiers
+    as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name,
+    export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
+    stdcall_name, ccall_name, cplusplus_name, dotnet_name, jvm_name, js_name,
+    javascript_name, capi_name, forall_name, family_name, role_name, hole_name,
+    stock_name, anyclass_name, via_name,
+    -- ** Type constructors
+    unit_tycon_name, fun_tycon_name, list_tycon_name, tuple_tycon_name, unboxed_singleton_tycon_name,
+    unit_tycon, fun_tycon, list_tycon, tuple_tycon, unboxed_singleton_tycon,
+
+    -- * Source coordinates
+    -- SrcLoc(..),
+
+    -- * Annotated trees
+    Annotated(..), (=~=),
+  ) where
+
+import Prelude hiding (id)
+
+import Data.Data
+import GHC.Generics (Generic)
+#if __GLASGOW_HASKELL__ < 710
+import Data.Foldable (Foldable)
+import Data.Traversable (Traversable)
+#endif
+
+-- | The name of a Haskell module.
+data ModuleName l = ModuleName l String
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Constructors with special syntax.
+-- These names are never qualified, and always refer to builtin type or
+-- data constructors.
+data SpecialCon l
+    = UnitCon l             -- ^ unit type and data constructor @()@
+    | ListCon l             -- ^ list type and data constructor @[]@
+    | FunCon  l             -- ^ function type constructor @->@
+    | TupleCon l Boxed Int  -- ^ /n/-ary tuple type and data
+                            --   constructors @(,)@ etc, possibly boxed @(\#,\#)@
+    | Cons l                -- ^ list data constructor @(:)@
+    | UnboxedSingleCon l    -- ^ unboxed singleton tuple constructor @(\# \#)@
+    | ExprHole l            -- ^ An expression hole _
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | This type is used to represent qualified variables, and also
+-- qualified constructors.
+data QName l
+    = Qual    l (ModuleName l) (Name l) -- ^ name qualified with a module name
+    | UnQual  l                (Name l) -- ^ unqualified local name
+    | Special l (SpecialCon l)          -- ^ built-in constructor with special syntax
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | This type is used to represent variables, and also constructors.
+data Name l
+    = Ident  l String   -- ^ /varid/ or /conid/.
+    | Symbol l String   -- ^ /varsym/ or /consym/
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An implicit parameter name.
+data IPName l
+    = IPDup l String -- ^ ?/ident/, non-linear implicit parameter
+    | IPLin l String -- ^ %/ident/, linear implicit parameter
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Possibly qualified infix operators (/qop/), appearing in expressions.
+data QOp l
+    = QVarOp l (QName l) -- ^ variable operator (/qvarop/)
+    | QConOp l (QName l) -- ^ constructor operator (/qconop/)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Operators appearing in @infix@ declarations are never qualified.
+data Op l
+    = VarOp l (Name l)    -- ^ variable operator (/varop/)
+    | ConOp l (Name l)    -- ^ constructor operator (/conop/)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A name (/cname/) of a component of a class or data type in an @import@
+-- or export specification.
+data CName l
+    = VarName l (Name l) -- ^ name of a method or field
+    | ConName l (Name l) -- ^ name of a data constructor
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A complete Haskell source module.
+data Module l
+    = Module l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l]
+    -- ^ an ordinary Haskell module
+    | XmlPage l (ModuleName l) [ModulePragma l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
+    -- ^ a module consisting of a single XML document. The ModuleName never appears in the source
+    --   but is needed for semantic purposes, it will be the same as the file name.
+    | XmlHybrid l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l]
+                (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
+    -- ^ a hybrid module combining an XML document with an ordinary module
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The head of a module, including the name and export specification.
+data ModuleHead l = ModuleHead l (ModuleName l) (Maybe (WarningText l)) (Maybe (ExportSpecList l))
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An explicit export specification.
+data ExportSpecList l
+    = ExportSpecList l [ExportSpec l]
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An item in a module's export specification.
+data ExportSpec l
+     = EVar l (QName l)                 -- ^ variable.
+     | EAbs l (Namespace l) (QName l)   -- ^ @T@:
+                                        --   a class or datatype exported abstractly,
+                                        --   or a type synonym.
+     | EThingWith l (EWildcard l) (QName l) [CName l] -- ^ @T(C_1,...,C_n)@:
+                                        --   a class exported with some of its methods, or
+                                        --   a datatype exported with some of its constructors.
+     | EModuleContents l (ModuleName l) -- ^ @module M@:
+                                        --   re-export a module.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Indicates the position of the wildcard in an export list
+data EWildcard l = NoWildcard l | EWildcard l Int
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Namespaces for imports/exports.
+data Namespace l = NoNamespace l | TypeNamespace l | PatternNamespace l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An import declaration.
+data ImportDecl l = ImportDecl
+    { importAnn :: l                   -- ^ annotation, used by parser for position of the @import@ keyword.
+    , importModule :: ModuleName l     -- ^ name of the module imported.
+    , importQualified :: Bool          -- ^ imported @qualified@?
+    , importSrc :: Bool                -- ^ imported with @{-\# SOURCE \#-}@?
+    , importSafe :: Bool               -- ^ Import @safe@?
+    , importPkg :: Maybe String        -- ^ imported with explicit package name
+    , importAs :: Maybe (ModuleName l) -- ^ optional alias name in an @as@ clause.
+    , importSpecs :: Maybe (ImportSpecList l)
+            -- ^ optional list of import specifications.
+    }
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An explicit import specification list.
+data ImportSpecList l
+    = ImportSpecList l Bool [ImportSpec l]
+            -- ^ A list of import specifications.
+            -- The 'Bool' is 'True' if the names are excluded
+            -- by @hiding@.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An import specification, representing a single explicit item imported
+--   (or hidden) from a module.
+data ImportSpec l
+     = IVar l (Name l)                  -- ^ variable
+     | IAbs l (Namespace l) (Name l)    -- ^ @T@:
+                                        --   the name of a class, datatype or type synonym.
+     | IThingAll l (Name l)             -- ^ @T(..)@:
+                                        --   a class imported with all of its methods, or
+                                        --   a datatype imported with all of its constructors.
+     | IThingWith l (Name l) [CName l]  -- ^ @T(C_1,...,C_n)@:
+                                        --   a class imported with some of its methods, or
+                                        --   a datatype imported with some of its constructors.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Associativity of an operator.
+data Assoc l
+     = AssocNone  l -- ^ non-associative operator (declared with @infix@)
+     | AssocLeft  l -- ^ left-associative operator (declared with @infixl@).
+     | AssocRight l -- ^ right-associative operator (declared with @infixr@)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A top-level declaration.
+data Decl l
+     = TypeDecl     l (DeclHead l) (Type l)
+     -- ^ A type declaration
+     | TypeFamDecl  l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l))
+     -- ^ A type family declaration
+     | ClosedTypeFamDecl  l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l)) [TypeEqn l]
+     -- ^ A closed type family declaration
+     | DataDecl     l (DataOrNew l) (Maybe (Context l)) (DeclHead l)                  [QualConDecl l] [Deriving l]
+     -- ^ A data OR newtype declaration
+     | GDataDecl    l (DataOrNew l) (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) [GadtDecl l]    [Deriving l]
+     -- ^ A data OR newtype declaration, GADT style
+     | DataFamDecl  l {-data-}      (Maybe (Context l)) (DeclHead l) (Maybe (ResultSig l))
+     -- ^ A data family declaration
+     | TypeInsDecl  l (Type l) (Type l)
+     -- ^ A type family instance declaration
+     | DataInsDecl  l (DataOrNew l) (Type l)                  [QualConDecl l] [Deriving l]
+     -- ^ A data family instance declaration
+     | GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l]    [Deriving l]
+     -- ^ A data family instance declaration, GADT style
+     | ClassDecl    l (Maybe (Context l)) (DeclHead l) [FunDep l] (Maybe [ClassDecl l])
+     -- ^ A declaration of a type class
+     | InstDecl     l (Maybe (Overlap l)) (InstRule l) (Maybe [InstDecl l])
+     -- ^ An declaration of a type class instance
+     | DerivDecl    l (Maybe (DerivStrategy l)) (Maybe (Overlap l)) (InstRule l)
+     -- ^ A standalone deriving declaration
+     | InfixDecl    l (Assoc l) (Maybe Int) [Op l]
+     -- ^ A declaration of operator fixity
+     | DefaultDecl  l [Type l]
+     -- ^ A declaration of default types
+     | SpliceDecl   l (Exp l)
+     -- ^ A Template Haskell splicing declaration
+     | TSpliceDecl  l (Exp l)
+     -- ^ A typed Template Haskell splicing declaration
+     | TypeSig      l [Name l] (Type l)
+     -- ^ A type signature declaration
+     | PatSynSig    l [Name l] (Maybe [TyVarBind l]) (Maybe (Context l))
+                               (Maybe [TyVarBind l]) (Maybe (Context l))
+                                                     (Type l)
+     -- ^ A pattern synonym signature declation
+     | FunBind      l [Match l]
+     -- ^ A set of function binding clauses
+     | PatBind      l (Pat l) (Rhs l) {-where-} (Maybe (Binds l))
+     -- ^ A pattern binding
+     | PatSyn l (Pat l) (Pat l) (PatternSynDirection l)
+     -- ^ A pattern synonym binding
+     | ForImp       l (CallConv l) (Maybe (Safety l)) (Maybe String) (Name l) (Type l)
+     -- ^ A foreign import declaration
+     | ForExp       l (CallConv l)                    (Maybe String) (Name l) (Type l)
+     -- ^ A foreign export declaration
+     | RulePragmaDecl   l [Rule l]
+     -- ^ A RULES pragma
+     | DeprPragmaDecl   l [([Name l], String)]
+     -- ^ A DEPRECATED pragma
+     | WarnPragmaDecl   l [([Name l], String)]
+     -- ^ A WARNING pragma
+     | InlineSig        l Bool (Maybe (Activation l)) (QName l)
+     -- ^ An INLINE pragma
+     | InlineConlikeSig l      (Maybe (Activation l)) (QName l)
+     -- ^ An INLINE CONLIKE pragma
+     | SpecSig          l      (Maybe (Activation l)) (QName l) [Type l]
+     -- ^ A SPECIALISE pragma
+     | SpecInlineSig    l Bool (Maybe (Activation l)) (QName l) [Type l]
+     -- ^ A SPECIALISE INLINE pragma
+     | InstSig          l      (InstRule l)
+     -- ^ A SPECIALISE instance pragma
+     | AnnPragma        l (Annotation l)
+     -- ^ An ANN pragma
+     | MinimalPragma    l (Maybe (BooleanFormula l))
+     -- ^ A MINIMAL pragma
+     | RoleAnnotDecl    l (QName l) [Role l]
+     -- ^ A role annotation
+     | CompletePragma l [Name l] (Maybe (QName l))
+     -- ^ A COMPLETE pragma
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+data  PatternSynDirection l =
+      Unidirectional -- ^ A unidirectional pattern synonym with "<-"
+    | ImplicitBidirectional  -- ^ A bidirectional pattern synonym with "="
+    | ExplicitBidirectional l [Decl l]  -- ^ A birectional pattern synonym with the construction specified.
+    deriving (Eq, Ord, Show, Data, Typeable, Foldable, Traversable, Functor, Generic)
+
+-- | A type equation as found in closed type families.
+data TypeEqn l = TypeEqn l (Type l) (Type l) deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An annotation through an ANN pragma.
+data Annotation l
+    = Ann       l (Name l)  (Exp l)
+    -- ^ An annotation for a declared name.
+    | TypeAnn   l (Name l)  (Exp l)
+    -- ^ An annotation for a declared type.
+    | ModuleAnn l           (Exp l)
+    -- ^ An annotation for the defining module.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A boolean formula for MINIMAL pragmas.
+data BooleanFormula l
+    = VarFormula l (Name l)              -- ^ A variable.
+    | AndFormula l [BooleanFormula l]    -- ^ And boolean formulas.
+    | OrFormula l [BooleanFormula l]     -- ^ Or boolean formulas.
+    | ParenFormula l (BooleanFormula l)  -- ^ Parenthesized boolean formulas.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+data Role l
+  = Nominal l
+  | Representational l
+  | Phantom l
+  | RoleWildcard l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A flag stating whether a declaration is a data or newtype declaration.
+data DataOrNew l = DataType l | NewType l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+
+-- | Injectivity info for injective type families
+data InjectivityInfo l = InjectivityInfo l (Name l) [Name l]
+  deriving (Eq, Ord, Show, Typeable, Data, Foldable, Traversable, Functor, Generic)
+
+data ResultSig l = KindSig l (Kind l) | TyVarSig l (TyVarBind l)
+  deriving (Eq, Ord, Show, Typeable, Data, Foldable, Traversable, Functor, Generic)
+
+-- | The head of a type or class declaration, which consists of the type
+-- or class name applied to some type variables
+--
+-- @class C a b@ is represented as
+--
+-- >DHApp
+-- >   ()
+-- >   (DHApp
+-- >      () (DHead () (Ident () "C")) (UnkindedVar () (Ident () "a")))
+-- >   (UnkindedVar () (Ident () "b"))
+--
+-- (where the annotation type @l@ is instantiated with @()@)
+--
+-- @class (a :< b) c@ is represented as
+--
+-- >DHApp
+-- >   ()
+-- >   (DHParen
+-- >      ()
+-- >      (DHApp
+-- >         ()
+-- >         (DHInfix () (UnkindedVar () (Ident () "a")) (Symbol () ":<"))
+-- >         (UnkindedVar () (Ident () "b"))))
+-- >   (UnkindedVar () (Ident () "c"))
+data DeclHead l
+    = DHead l (Name l) -- ^ type or class name
+    | DHInfix l (TyVarBind l) (Name l) -- ^ infix application of the type/class name to the left operand
+    | DHParen l (DeclHead l) -- ^ parenthesized declaration head
+    | DHApp   l (DeclHead l) (TyVarBind l) -- ^ application to one more type variable
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The instance declaration rule, which is, roughly, the part of the instance declaration before the @where@ keyword.
+--
+-- Example: @instance Ord a => Ord (Maybe a)@ is represented as
+--
+-- >IRule
+-- >   ()
+-- >   Nothing
+-- >   (Just
+-- >      (CxSingle
+-- >         ()
+-- >         (ClassA
+-- >            () (UnQual () (Ident () "Ord")) [ TyVar () (Ident () "a") ])))
+-- >   (IHApp
+-- >      ()
+-- >      (IHCon () (UnQual () (Ident () "Ord")))
+-- >      (TyParen
+-- >         ()
+-- >         (TyApp
+-- >            ()
+-- >            (TyCon () (UnQual () (Ident () "Maybe")))
+-- >            (TyVar () (Ident () "a")))))
+--
+-- An optional explicit forall after @instance@ is supported:
+-- @instance forall a . Ord a => Ord (Maybe a) where@ becomes
+--
+-- >IRule
+-- >   ()
+-- >   (Just [ UnkindedVar () (Ident () "a") ])
+-- >   ...
+data InstRule l
+    = IRule l (Maybe [TyVarBind l]) (Maybe (Context l)) (InstHead l)
+    | IParen l (InstRule l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- See bugs #7 and #31 for more details and use cases for the rationale
+-- of the split. DeclOrInstHead should be used by DeclHead as the name implies.
+
+-- | The instance head. The split between rule/head allow us to represent
+-- @instance (Bounded a => Bounded [a]) where@ faithfully.
+--
+-- The structure of 'InstHead' follows one of 'DeclHead'.
+--
+-- For example, @instance C (Maybe a) Int where@ is represented as
+--
+-- >IHApp
+-- >   ()
+-- >   (IHApp
+-- >      ()
+-- >      (IHCon () (UnQual () (Ident () "C")))
+-- >      (TyParen
+-- >         ()
+-- >         (TyApp
+-- >            ()
+-- >            (TyCon () (UnQual () (Ident () "Maybe")))
+-- >            (TyVar () (Ident () "a")))))
+-- >   (TyCon () (UnQual () (Ident () "Int")))))
+data InstHead l
+    = IHCon l (QName l) -- ^ type or class name
+    | IHInfix l (Type l) (QName l) -- ^ infix application of the type/class name to the left operand
+    | IHParen l (InstHead l) -- ^ parenthesized instance head
+    | IHApp   l (InstHead l) (Type l) -- ^ application to one more type
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A deriving clause following a data type declaration.
+data Deriving l = Deriving l (Maybe (DerivStrategy l)) [InstRule l]
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Which technique the user explicitly requested when deriving an instance.
+data DerivStrategy l
+  = DerivStock l        -- ^ GHC's \"standard\" strategy, which is to implement a
+                        --   custom instance for the data type. This only works for
+                        --   certain types that GHC knows about (e.g., 'Eq', 'Show',
+                        --   'Functor' when @-XDeriveFunctor@ is enabled, etc.)
+  | DerivAnyclass l     -- ^ @-XDeriveAnyClass@
+  | DerivNewtype l      -- ^ @-XGeneralizedNewtypeDeriving@
+  | DerivVia l (Type l) -- ^ @-XDerivingVia@
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A binding group inside a @let@ or @where@ clause.
+data Binds l
+    = BDecls  l [Decl l]     -- ^ An ordinary binding group
+    | IPBinds l [IPBind l]   -- ^ A binding group for implicit parameters
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A binding of an implicit parameter.
+data IPBind l = IPBind l (IPName l) (Exp l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Clauses of a function binding.
+data Match l
+     = Match l      (Name l) [Pat l]         (Rhs l) {-where-} (Maybe (Binds l))
+        -- ^ A clause defined with prefix notation, i.e. the function name
+        --  followed by its argument patterns, the right-hand side and an
+        --  optional where clause.
+     | InfixMatch l (Pat l) (Name l) [Pat l] (Rhs l) {-where-} (Maybe (Binds l))
+        -- ^ A clause defined with infix notation, i.e. first its first argument
+        --  pattern, then the function name, then its following argument(s),
+        --  the right-hand side and an optional where clause.
+        --  Note that there can be more than two arguments to a function declared
+        --  infix, hence the list of pattern arguments.
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A single constructor declaration within a data type declaration,
+--   which may have an existential quantification binding.
+data QualConDecl l
+    = QualConDecl l
+        {-forall-} (Maybe [TyVarBind l]) {- . -} (Maybe (Context l))
+        {- => -} (ConDecl l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Declaration of an ordinary data constructor.
+data ConDecl l
+     = ConDecl l (Name l) [Type l]
+                -- ^ ordinary data constructor
+     | InfixConDecl l (Type l) (Name l) (Type l)
+                -- ^ infix data constructor
+     | RecDecl l (Name l) [FieldDecl l]
+                -- ^ record constructor
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Declaration of a (list of) named field(s).
+data FieldDecl l = FieldDecl l [Name l] (Type l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+
+-- | A single constructor declaration in a GADT data type declaration.
+--
+-- If the GADT is declared using the record syntax, e.g.
+--
+-- >data Ty where
+-- >  TCon :: { field1 :: Int, field2 :: Bool } -> Ty
+--
+-- then the fields are stored as a list of 'FieldDecl's, and the final type
+-- (@Ty@ in the above example) is stored in the last 'Type' field.
+--
+-- If the GADT is declared using the ordinary syntax, e.g.
+--
+-- >data Ty where
+-- >  TCon :: Int -> Bool -> Ty
+--
+-- then @'Maybe' ['FieldDecl' l]@ is 'Nothing', and the whole constructor's
+-- type (such as @Int -> Bool -> Ty@) is stored in the last 'Type' field.
+data GadtDecl l
+    = GadtDecl l (Name l)
+        {-forall-} (Maybe [TyVarBind l]) {- . -} (Maybe (Context l))
+        {- => -} (Maybe [FieldDecl l]) (Type l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Declarations inside a class declaration.
+data ClassDecl l
+    = ClsDecl    l (Decl l)
+            -- ^ ordinary declaration
+    | ClsDataFam l (Maybe (Context l)) (DeclHead l) (Maybe (ResultSig l))
+            -- ^ declaration of an associated data type
+    | ClsTyFam   l                     (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l))
+            -- ^ declaration of an associated type synonym
+    | ClsTyDef   l (TypeEqn l)
+            -- ^ default choice for an associated type synonym
+    | ClsDefSig  l (Name l) (Type l)
+            -- ^ default signature
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Declarations inside an instance declaration.
+data InstDecl l
+    = InsDecl   l (Decl l)
+            -- ^ ordinary declaration
+    | InsType   l (Type l) (Type l)
+            -- ^ an associated type definition
+    | InsData   l (DataOrNew l) (Type l) [QualConDecl l] [Deriving l]
+            -- ^ an associated data type implementation
+    | InsGData  l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] [Deriving l]
+            -- ^ an associated data type implemented using GADT style
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The type of a constructor argument or field, optionally including
+--   a strictness annotation.
+data BangType l
+     = BangedTy   l -- ^ strict component, marked with \"@!@\"
+     | LazyTy     l -- ^ lazy component, marked with \"@~@\"
+     | NoStrictAnnot l -- ^ No strictness information
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+data Unpackedness l
+    = Unpack l -- ^ \"@{-\# UNPACK \#-}@\"
+    | NoUnpack l -- ^ \"@{-\# NOUNPACK \#-}@\"
+    | NoUnpackPragma l -- ^ No unpack pragma
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The right hand side of a function binding, pattern binding, or a case
+--   alternative.
+data Rhs l
+     = UnGuardedRhs l (Exp l) -- ^ unguarded right hand side (/exp/)
+     | GuardedRhss  l [GuardedRhs l]
+                -- ^ guarded right hand side (/gdrhs/)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A guarded right hand side @|@ /stmts/ @=@ /exp/, or @|@ /stmts/ @->@ /exp/
+--   for case alternatives.
+--   The guard is a series of statements when using pattern guards,
+--   otherwise it will be a single qualifier expression.
+data GuardedRhs l
+     = GuardedRhs l [Stmt l] (Exp l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A type qualified with a context.
+--   An unqualified type has an empty context.
+data Type l
+     = TyForall l
+        (Maybe [TyVarBind l])
+        (Maybe (Context l))
+        (Type l)                                -- ^ qualified type
+     | TyStar  l                                -- ^ @*@, the type of types
+     | TyFun   l (Type l) (Type l)              -- ^ function type
+     | TyTuple l Boxed [Type l]                 -- ^ tuple type, possibly boxed
+     | TyUnboxedSum l [Type l]                  -- ^ unboxed tuple type
+     | TyList  l (Type l)                       -- ^ list syntax, e.g. [a], as opposed to [] a
+     | TyParArray  l (Type l)                   -- ^ parallel array syntax, e.g. [:a:]
+     | TyApp   l (Type l) (Type l)              -- ^ application of a type constructor
+     | TyVar   l (Name l)                       -- ^ type variable
+     | TyCon   l (QName l)                      -- ^ named type or type constructor
+     | TyParen l (Type l)                       -- ^ type surrounded by parentheses
+     | TyInfix l (Type l) (MaybePromotedName l)
+                          (Type l)              -- ^ infix type constructor
+     | TyKind  l (Type l) (Kind l)              -- ^ type with explicit kind signature
+     | TyPromoted l (Promoted l)                -- ^ @'K@, a promoted data type (-XDataKinds).
+     | TyEquals l (Type l) (Type l)             -- ^ type equality predicate enabled by ConstraintKinds
+     | TySplice l (Splice l)                    -- ^ template haskell splice type
+     | TyBang l (BangType l) (Unpackedness l) (Type l)           -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.
+     | TyWildCard l (Maybe (Name l))            -- ^ Either an anonymous of named type wildcard
+     | TyQuasiQuote l String String             -- ^ @[$/name/| /string/ |]@
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+data MaybePromotedName l = PromotedName l (QName l) | UnpromotedName l (QName l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Bools here are True if there was a leading quote which may be
+-- left out. For example @'[k1,k2]@ means the same thing as @[k1,k2]@.
+data Promoted l
+        = PromotedInteger l Integer String -- ^ parsed value and raw string
+        | PromotedString l String String -- ^ parsed value and raw string
+        | PromotedCon l Bool (QName l)
+        | PromotedList l Bool [Type l]
+        | PromotedTuple l [Type l]
+        | PromotedUnit l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Flag denoting whether a tuple is boxed or unboxed.
+data Boxed = Boxed | Unboxed
+  deriving (Eq,Ord,Show,Typeable,Data,Generic)
+
+-- | A type variable declaration, optionally with an explicit kind annotation.
+data TyVarBind l
+    = KindedVar   l (Name l) (Kind l)  -- ^ variable binding with kind annotation
+    | UnkindedVar l (Name l)           -- ^ ordinary variable binding
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An explicit kind annotation.
+type Kind = Type
+
+
+-- | A functional dependency, given on the form
+--   l1 l2 ... ln -> r2 r3 .. rn
+data FunDep l
+    = FunDep l [Name l] [Name l]
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A context is a set of assertions
+data Context l
+    = CxSingle l (Asst l)
+    | CxTuple  l [Asst l]
+    | CxEmpty  l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Class assertions.
+data Asst l
+        = TypeA l (Type l)                      -- ^ type assertion
+        | IParam l (IPName l) (Type l)          -- ^ implicit parameter assertion
+        | ParenA l (Asst l)                     -- ^ parenthesised class assertion
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | /literal/
+-- Values of this type hold the abstract value of the literal, along with the
+-- precise string representation used.  For example, @10@, @0o12@ and @0xa@
+-- have the same value representation, but each carry a different string representation.
+data Literal l
+    = Char       l Char     String     -- ^ character literal
+    | String     l String   String     -- ^ string literal
+    | Int        l Integer  String     -- ^ integer literal
+    | Frac       l Rational String     -- ^ floating point literal
+    | PrimInt    l Integer  String     -- ^ unboxed integer literal
+    | PrimWord   l Integer  String     -- ^ unboxed word literal
+    | PrimFloat  l Rational String     -- ^ unboxed float literal
+    | PrimDouble l Rational String     -- ^ unboxed double literal
+    | PrimChar   l Char     String     -- ^ unboxed character literal
+    | PrimString l String   String     -- ^ unboxed string literal
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An indication whether a literal pattern has been negated or not.
+data Sign l
+    = Signless l
+    | Negative l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Haskell expressions.
+data Exp l
+    = Var l (QName l)                       -- ^ variable
+    | OverloadedLabel l String              -- ^ Overloaded label #foo
+    | IPVar l (IPName l)                    -- ^ implicit parameter variable
+    | Con l (QName l)                       -- ^ data constructor
+    | Lit l (Literal l)                     -- ^ literal constant
+    | InfixApp l (Exp l) (QOp l) (Exp l)    -- ^ infix application
+    | App l (Exp l) (Exp l)                 -- ^ ordinary application
+    | NegApp l (Exp l)                      -- ^ negation expression @-/exp/@ (unary minus)
+    | Lambda l [Pat l] (Exp l)              -- ^ lambda expression
+    | Let l (Binds l) (Exp l)               -- ^ local declarations with @let@ ... @in@ ...
+    | If l (Exp l) (Exp l) (Exp l)          -- ^ @if@ /exp/ @then@ /exp/ @else@ /exp/
+    | MultiIf l [GuardedRhs l]              -- ^ @if@ @|@ /stmts/ @->@ /exp/ ...
+    | Case l (Exp l) [Alt l]                -- ^ @case@ /exp/ @of@ /alts/
+    | Do l [Stmt l]                         -- ^ @do@-expression:
+                                            --   the last statement in the list
+                                            --   should be an expression.
+    | MDo l [Stmt l]                        -- ^ @mdo@-expression
+    | Tuple l Boxed [Exp l]                 -- ^ tuple expression
+    | UnboxedSum l Int Int (Exp l)          -- ^ unboxed sum
+    | TupleSection l Boxed [Maybe (Exp l)]  -- ^ tuple section expression, e.g. @(,,3)@
+    | List l [Exp l]                        -- ^ list expression
+    | ParArray l [Exp l]                    -- ^ parallel array expression
+    | Paren l (Exp l)                       -- ^ parenthesised expression
+    | LeftSection l (Exp l) (QOp l)         -- ^ left section @(@/exp/ /qop/@)@
+    | RightSection l (QOp l) (Exp l)        -- ^ right section @(@/qop/ /exp/@)@
+    | RecConstr l (QName l) [FieldUpdate l] -- ^ record construction expression
+    | RecUpdate l (Exp l)   [FieldUpdate l] -- ^ record update expression
+    | EnumFrom l (Exp l)                    -- ^ unbounded arithmetic sequence,
+                                            --   incrementing by 1: @[from ..]@
+    | EnumFromTo l (Exp l) (Exp l)          -- ^ bounded arithmetic sequence,
+                                            --   incrementing by 1 @[from .. to]@
+    | EnumFromThen l (Exp l) (Exp l)        -- ^ unbounded arithmetic sequence,
+                                            --   with first two elements given @[from, then ..]@
+    | EnumFromThenTo l (Exp l) (Exp l) (Exp l)
+                                            -- ^ bounded arithmetic sequence,
+                                            --   with first two elements given @[from, then .. to]@
+    | ParArrayFromTo l (Exp l) (Exp l)      -- ^ Parallel array bounded arithmetic sequence,
+                                            --   incrementing by 1 @[:from .. to:]@
+    | ParArrayFromThenTo l (Exp l) (Exp l) (Exp l)
+                                            -- ^ bounded arithmetic sequence,
+                                            --   with first two elements given @[:from, then .. to:]@
+    | ListComp l (Exp l) [QualStmt l]       -- ^ ordinary list comprehension
+    | ParComp  l (Exp l) [[QualStmt l]]     -- ^ parallel list comprehension
+    | ParArrayComp  l (Exp l) [[QualStmt l]] -- ^ parallel array comprehension
+    | ExpTypeSig l (Exp l) (Type l)         -- ^ expression with explicit type signature
+
+    | VarQuote l (QName l)                  -- ^ @'x@ for template haskell reifying of expressions
+    | TypQuote l (QName l)                  -- ^ @''T@ for template haskell reifying of types
+    | BracketExp l (Bracket l)              -- ^ template haskell bracket expression
+    | SpliceExp l (Splice l)                -- ^ template haskell splice expression
+    | QuasiQuote l String String            -- ^ quasi-quotaion: @[$/name/| /string/ |]@
+    | TypeApp l (Type l)                    -- ^ Visible type application
+
+-- Hsx
+    | XTag l (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
+                                            -- ^ xml element, with attributes and children
+    | XETag l (XName l) [XAttr l] (Maybe (Exp l))
+                                            -- ^ empty xml element, with attributes
+    | XPcdata l String                      -- ^ PCDATA child element
+    | XExpTag l (Exp l)                     -- ^ escaped haskell expression inside xml
+    | XChildTag l [Exp l]                   -- ^ children of an xml element
+
+
+-- Pragmas
+    | CorePragma l      String (Exp l)      -- ^ CORE pragma
+    | SCCPragma  l      String (Exp l)      -- ^ SCC pragma
+    | GenPragma  l      String (Int, Int) (Int, Int) (Exp l)
+                                            -- ^ GENERATED pragma
+
+-- Arrows
+    | Proc            l (Pat l) (Exp l)     -- ^ arrows proc: @proc@ /pat/ @->@ /exp/
+    | LeftArrApp      l (Exp l) (Exp l)     -- ^ arrow application (from left): /exp/ @-<@ /exp/
+    | RightArrApp     l (Exp l) (Exp l)     -- ^ arrow application (from right): /exp/ @>-@ /exp/
+    | LeftArrHighApp  l (Exp l) (Exp l)     -- ^ higher-order arrow application (from left): /exp/ @-<<@ /exp/
+    | RightArrHighApp l (Exp l) (Exp l)     -- ^ higher-order arrow application (from right): /exp/ @>>-@ /exp/
+    | ArrOp           l (Exp l)             -- ^ arrow control operators: @(| /exp/ |)@
+
+-- LambdaCase
+    | LCase l [Alt l]                       -- ^ @\case@ /alts/
+
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The name of an xml element or attribute,
+--   possibly qualified with a namespace.
+data XName l
+    = XName l String              -- <name ...
+    | XDomName l String String    -- <dom:name ...
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An xml attribute, which is a name-expression pair.
+data XAttr l = XAttr l (XName l) (Exp l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A template haskell bracket expression.
+data Bracket l
+    = ExpBracket l (Exp l)        -- ^ expression bracket: @[| ... |]@
+    | TExpBracket l (Exp l)       -- ^ typed expression bracket: @[|| ... ||]@
+    | PatBracket l (Pat l)        -- ^ pattern bracket: @[p| ... |]@
+    | TypeBracket l (Type l)      -- ^ type bracket: @[t| ... |]@
+    | DeclBracket l [Decl l]      -- ^ declaration bracket: @[d| ... |]@
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A template haskell splice expression
+data Splice l
+    = IdSplice l String           -- ^ variable splice: @$var@
+    | TIdSplice l String          -- ^ typed variable splice: @$$var@
+    | ParenSplice l (Exp l)       -- ^ parenthesised expression splice: @$(/exp/)@
+    | TParenSplice l (Exp l)      -- ^ parenthesised typed expression splice: @$$(/exp/)@
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The safety of a foreign function call.
+data Safety l
+    = PlayRisky l         -- ^ unsafe
+    | PlaySafe l Bool     -- ^ safe ('False') or threadsafe ('True')
+    | PlayInterruptible l -- ^ interruptible
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The calling convention of a foreign function call.
+data CallConv l
+    = StdCall l
+    | CCall l
+    | CPlusPlus l
+    | DotNet l
+    | Jvm l
+    | Js l
+    | JavaScript l
+    | CApi l
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A top level options pragma, preceding the module header.
+data ModulePragma l
+    = LanguagePragma   l [Name l]  -- ^ LANGUAGE pragma
+    | OptionsPragma    l (Maybe Tool) String
+                        -- ^ OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
+    | AnnModulePragma  l (Annotation l)
+                        -- ^ ANN pragma with module scope
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Recognised tools for OPTIONS pragmas.
+data Tool = GHC | HUGS | NHC98 | YHC | HADDOCK | UnknownTool String
+  deriving (Eq,Ord,Show,Typeable,Data,Generic)
+
+-- | Recognised overlaps for overlap pragmas.
+data Overlap l
+    = NoOverlap l   -- ^ NO_OVERLAP pragma
+    | Overlap l     -- ^ OVERLAP pragma
+    | Overlapping l
+    | Overlaps l
+    | Overlappable l
+    | Incoherent l  -- ^ INCOHERENT pragma
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Activation clause of a RULES pragma.
+data Activation l
+    = ActiveFrom   l Int
+    | ActiveUntil  l Int
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | The body of a RULES pragma.
+data Rule l
+    = Rule l String (Maybe (Activation l)) (Maybe [RuleVar l]) (Exp l) (Exp l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Variables used in a RULES pragma, optionally annotated with types
+data RuleVar l
+    = RuleVar l (Name l)
+    | TypedRuleVar l (Name l) (Type l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | Warning text to optionally use in the module header of e.g.
+--   a deprecated module.
+data WarningText l
+    = DeprText l String
+    | WarnText l String
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+
+-- | A pattern, to be matched against a value.
+data Pat l
+    = PVar l (Name l)                       -- ^ variable
+    | PLit l (Sign l) (Literal l)           -- ^ literal constant
+    | PNPlusK l (Name l) Integer            -- ^ n+k pattern
+    | PInfixApp l (Pat l) (QName l) (Pat l) -- ^ pattern with an infix data constructor
+    | PApp l (QName l) [Pat l]              -- ^ data constructor and argument patterns
+    | PTuple l Boxed [Pat l]                -- ^ tuple pattern
+    | PUnboxedSum l Int Int (Pat l)         -- ^ unboxed sum
+    | PList l [Pat l]                       -- ^ list pattern
+    | PParen l (Pat l)                      -- ^ parenthesized pattern
+    | PRec l (QName l) [PatField l]         -- ^ labelled pattern, record style
+    | PAsPat l (Name l) (Pat l)             -- ^ @\@@-pattern
+    | PWildCard l                           -- ^ wildcard pattern: @_@
+    | PIrrPat l (Pat l)                     -- ^ irrefutable pattern: @~/pat/@
+    | PatTypeSig l (Pat l) (Type l)         -- ^ pattern with type signature
+    | PViewPat l (Exp l) (Pat l)            -- ^ view patterns of the form @(/exp/ -> /pat/)@
+    | PRPat l [RPat l]                      -- ^ regular list pattern
+    | PXTag l (XName l) [PXAttr l] (Maybe (Pat l)) [Pat l]
+                                            -- ^ XML element pattern
+    | PXETag l (XName l) [PXAttr l] (Maybe (Pat l))
+                                            -- ^ XML singleton element pattern
+    | PXPcdata l String                     -- ^ XML PCDATA pattern
+    | PXPatTag l (Pat l)                    -- ^ XML embedded pattern
+    | PXRPats  l [RPat l]                   -- ^ XML regular list pattern
+    | PSplice l (Splice l)                  -- ^ template haskell splice pattern
+    | PQuasiQuote l String String           -- ^ quasi quote pattern: @[$/name/| /string/ |]@
+    | PBangPat l (Pat l)                    -- ^ strict (bang) pattern: @f !x = ...@
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An XML attribute in a pattern.
+data PXAttr l = PXAttr l (XName l) (Pat l)
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A regular pattern operator.
+data RPatOp l
+    = RPStar  l  -- ^ @*@ = 0 or more
+    | RPStarG l  -- ^ @*!@ = 0 or more, greedy
+    | RPPlus  l  -- ^ @+@ = 1 or more
+    | RPPlusG l  -- ^ @+!@ = 1 or more, greedy
+    | RPOpt   l  -- ^ @?@ = 0 or 1
+    | RPOptG  l  -- ^ @?!@ = 0 or 1, greedy
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An entity in a regular pattern.
+data RPat l
+    = RPOp l (RPat l) (RPatOp l)   -- ^ operator pattern, e.g. pat*
+    | RPEither l (RPat l) (RPat l) -- ^ choice pattern, e.g. (1 | 2)
+    | RPSeq l [RPat l]             -- ^ sequence pattern, e.g. (| 1, 2, 3 |)
+    | RPGuard l (Pat l) [Stmt l]   -- ^ guarded pattern, e.g. (| p | p < 3 |)
+    | RPCAs l (Name l) (RPat l)    -- ^ non-linear variable binding, e.g. (foo\@:(1 | 2))*
+    | RPAs l (Name l) (RPat l)     -- ^ linear variable binding, e.g. foo\@(1 | 2)
+    | RPParen l (RPat l)           -- ^ parenthesised pattern, e.g. (2*)
+    | RPPat l (Pat l)              -- ^ an ordinary pattern
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An /fpat/ in a labeled record pattern.
+data PatField l
+    = PFieldPat l (QName l) (Pat l)     -- ^ ordinary label-pattern pair
+    | PFieldPun l (QName l)             -- ^ record field pun
+    | PFieldWildcard l                  -- ^ record field wildcard
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A statement, representing both a /stmt/ in a @do@-expression,
+--   an ordinary /qual/ in a list comprehension, as well as a /stmt/
+--   in a pattern guard.
+data Stmt l
+    = Generator l (Pat l) (Exp l)
+                            -- ^ a generator: /pat/ @<-@ /exp/
+    | Qualifier l (Exp l)   -- ^ an /exp/ by itself: in a @do@-expression,
+                            --   an action whose result is discarded;
+                            --   in a list comprehension and pattern guard,
+                            --   a guard expression
+    | LetStmt l (Binds l)   -- ^ local bindings
+    | RecStmt l [Stmt l]    -- ^ a recursive binding group for arrows
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | A general /transqual/ in a list comprehension,
+--   which could potentially be a transform of the kind
+--   enabled by TransformListComp.
+data QualStmt l
+    = QualStmt     l (Stmt l)         -- ^ an ordinary statement
+    | ThenTrans    l (Exp l)          -- ^ @then@ /exp/
+    | ThenBy       l (Exp l) (Exp l)  -- ^ @then@ /exp/ @by@ /exp/
+    | GroupBy      l (Exp l)          -- ^ @then@ @group@ @by@ /exp/
+    | GroupUsing   l (Exp l)          -- ^ @then@ @group@ @using@ /exp/
+    | GroupByUsing l (Exp l) (Exp l)  -- ^ @then@ @group@ @by@ /exp/ @using@ /exp/
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An /fbind/ in a labeled construction or update expression.
+data FieldUpdate l
+    = FieldUpdate l (QName l) (Exp l)    -- ^ ordinary label-expresion pair
+    | FieldPun l (QName l)               -- ^ record field pun
+    | FieldWildcard l                    -- ^ record field wildcard
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-- | An /alt/ alternative in a @case@ expression.
+data Alt l
+    = Alt l (Pat l) (Rhs l) (Maybe (Binds l))
+  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)
+
+-----------------------------------------------------------------------------
+-- Builtin names.
+
+prelude_mod, main_mod :: l -> ModuleName l
+prelude_mod l = ModuleName l "Prelude"
+main_mod    l = ModuleName l "Main"
+
+main_name :: l -> Name l
+main_name l = Ident l "main"
+
+unit_con_name :: l -> QName l
+unit_con_name l = Special l (UnitCon l)
+
+tuple_con_name :: l -> Boxed -> Int -> QName l
+tuple_con_name l b i = Special l (TupleCon l b (i+1))
+
+list_con_name :: l -> QName l
+list_con_name l = Special l (ListCon l)
+
+list_cons_name :: l -> QName l
+list_cons_name l = Special l (Cons l)
+
+unboxed_singleton_con_name :: l -> QName l
+unboxed_singleton_con_name l = Special l (UnboxedSingleCon l)
+
+unit_con :: l -> Exp l
+unit_con l = Con l $ unit_con_name l
+
+tuple_con :: l -> Boxed -> Int -> Exp l
+tuple_con l b i = Con l (tuple_con_name l b i)
+
+unboxed_singleton_con :: l -> Exp l
+unboxed_singleton_con l = Con l (unboxed_singleton_con_name l)
+
+as_name, qualified_name, hiding_name, minus_name, bang_name, dot_name, star_name :: l -> Name l
+as_name        l = Ident  l "as"
+qualified_name l = Ident  l "qualified"
+hiding_name    l = Ident  l "hiding"
+minus_name     l = Symbol l "-"
+bang_name      l = Symbol l "!"
+dot_name       l = Symbol l "."
+star_name      l = Symbol l "*"
+
+hole_name :: l -> QName l
+hole_name      l = Special l (ExprHole l)
+
+export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name,
+  stdcall_name, ccall_name, cplusplus_name, dotnet_name,
+  jvm_name, js_name, javascript_name, capi_name, forall_name,
+  family_name, role_name, stock_name, anyclass_name, via_name :: l -> Name l
+export_name     l = Ident l "export"
+safe_name       l = Ident l "safe"
+unsafe_name     l = Ident l "unsafe"
+interruptible_name l = Ident l "interruptible"
+threadsafe_name l = Ident l "threadsafe"
+stdcall_name    l = Ident l "stdcall"
+ccall_name      l = Ident l "ccall"
+cplusplus_name  l = Ident l "cplusplus"
+dotnet_name     l = Ident l "dotnet"
+jvm_name        l = Ident l "jvm"
+js_name         l = Ident l "js"
+javascript_name l = Ident l "javascript"
+capi_name       l = Ident l "capi"
+forall_name     l = Ident l "forall"
+family_name     l = Ident l "family"
+role_name       l = Ident l "role"
+stock_name      l = Ident l "stock"
+anyclass_name   l = Ident l "anyclass"
+via_name        l = Ident l "via"
+
+unit_tycon_name, fun_tycon_name, list_tycon_name, unboxed_singleton_tycon_name :: l -> QName l
+unit_tycon_name l = unit_con_name l
+fun_tycon_name  l = Special l (FunCon l)
+list_tycon_name l = Special l (ListCon l)
+unboxed_singleton_tycon_name l = Special l (UnboxedSingleCon l)
+
+tuple_tycon_name :: l -> Boxed -> Int -> QName l
+tuple_tycon_name l b i = tuple_con_name l b i
+
+unit_tycon, fun_tycon, list_tycon, unboxed_singleton_tycon :: l -> Type l
+unit_tycon l = TyCon l $ unit_tycon_name l
+fun_tycon  l = TyCon l $ fun_tycon_name  l
+list_tycon l = TyCon l $ list_tycon_name l
+unboxed_singleton_tycon l = TyCon l $ unboxed_singleton_tycon_name l
+
+tuple_tycon :: l -> Boxed -> Int -> Type l
+tuple_tycon l b i = TyCon l (tuple_tycon_name l b i)
+
+-----------------------------------------------------------------------------
+-- AST traversal, boiler-plate style
+
+-- | Test if two AST elements are equal modulo annotations.
+(=~=) :: (Annotated a, Eq (a ())) => a l1 -> a l2 -> Bool
+a =~= b = fmap (const ()) a == fmap (const ()) b
+
+-----------------------------------------------------------------------------
+-- Reading annotations
+
+-- | AST nodes are annotated, and this class allows manipulation of the annotations.
+class Functor ast => Annotated ast where
+    -- | Retrieve the annotation of an AST node.
+    ann :: ast l -> l
+    -- | Change the annotation of an AST node. Note that only the annotation of
+    --   the node itself is affected, and not the annotations of any child nodes.
+    --   if all nodes in the AST tree are to be affected, use 'fmap'.
+    amap :: (l -> l) -> ast l -> ast l
+
+instance Annotated ModuleName where
+    ann (ModuleName l _) = l
+    amap f (ModuleName l n) = ModuleName (f l) n
+
+instance Annotated SpecialCon where
+    ann sc = case sc of
+        UnitCon l   -> l
+        ListCon l   -> l
+        FunCon  l   -> l
+        TupleCon l _ _  -> l
+        Cons l      -> l
+        UnboxedSingleCon l  -> l
+        ExprHole l  -> l
+    amap = fmap
+
+instance Annotated QName where
+    ann qn = case qn of
+        Qual    l _ _  -> l
+        UnQual  l   _  -> l
+        Special l _    -> l
+    amap f qn = case qn of
+        Qual    l mn n  -> Qual    (f l) mn n
+        UnQual  l    n  -> UnQual  (f l)    n
+        Special l sc    -> Special (f l) sc
+
+instance Annotated Name where
+    ann (Ident  l _) = l
+    ann (Symbol l _) = l
+    amap = fmap
+
+instance Annotated IPName where
+    ann (IPDup l _) = l
+    ann (IPLin l _) = l
+    amap = fmap
+
+instance Annotated QOp where
+    ann (QVarOp l _) = l
+    ann (QConOp l _) = l
+    amap f (QVarOp l qn) = QVarOp (f l) qn
+    amap f (QConOp l qn) = QConOp (f l) qn
+
+instance Annotated Op where
+    ann (VarOp l _) = l
+    ann (ConOp l _) = l
+    amap f (VarOp l n) = VarOp (f l) n
+    amap f (ConOp l n) = ConOp (f l) n
+
+instance Annotated CName where
+    ann (VarName l _) = l
+    ann (ConName l _) = l
+    amap f (VarName l n) = VarName (f l) n
+    amap f (ConName l n) = ConName (f l) n
+
+instance Annotated Module where
+    ann (Module l _ _ _ _)            = l
+    ann (XmlPage l _ _ _ _ _ _)       = l
+    ann (XmlHybrid l _ _ _ _ _ _ _ _) = l
+
+    amap f (Module l mmh ops iss dcls) =
+        Module (f l) mmh ops iss dcls
+    amap f (XmlPage l mn os xn xas me es) =
+        XmlPage (f l) mn os xn xas me es
+    amap f (XmlHybrid l mmh ops iss dcls xn xas me es) =
+        XmlHybrid (f l) mmh ops iss dcls xn xas me es
+
+instance Annotated ModuleHead where
+    ann (ModuleHead l _ _ _)         = l
+    amap f (ModuleHead l n mwt mesl) = ModuleHead (f l) n mwt mesl
+
+instance Annotated ExportSpecList where
+    ann (ExportSpecList l _)      = l
+    amap f (ExportSpecList l ess) = ExportSpecList (f l) ess
+
+instance Annotated ExportSpec where
+    ann es = case es of
+        EVar l _            -> l
+        EAbs l _ _          -> l
+        EThingWith l _ _ _    -> l
+        EModuleContents l _ -> l
+    amap f es = case es of
+        EVar l qn     -> EVar (f l) qn
+        EAbs l n qn       -> EAbs (f l) n qn
+        EThingWith l wc qn cns -> EThingWith (f l) wc qn cns
+        EModuleContents l mn    -> EModuleContents (f l) mn
+
+instance Annotated EWildcard where
+  ann ewc = case ewc of
+      NoWildcard l  -> l
+      EWildcard l _ -> l
+  amap f ewc = case ewc of
+      NoWildcard l  -> NoWildcard (f l)
+      EWildcard l n -> EWildcard (f l) n
+
+
+
+instance Annotated Namespace where
+    ann es = case es of
+        NoNamespace l   -> l
+        TypeNamespace l -> l
+        PatternNamespace l -> l
+    amap f es = case es of
+        NoNamespace l   -> NoNamespace (f l)
+        TypeNamespace l -> TypeNamespace (f l)
+        PatternNamespace l -> PatternNamespace (f l)
+
+instance Annotated ImportDecl where
+    ann (ImportDecl l _ _ _ _ _ _ _) = l
+    amap f (ImportDecl l mn qual src safe pkg mmn mis) =
+        ImportDecl (f l) mn qual src safe pkg mmn mis
+
+instance Annotated ImportSpecList where
+    ann (ImportSpecList l _ _)      = l
+    amap f (ImportSpecList l b iss) = ImportSpecList (f l) b iss
+
+instance Annotated ImportSpec where
+    ann is = case is of
+        IVar l _         -> l
+        IAbs l _ _       -> l
+        IThingAll l _    -> l
+        IThingWith l _ _ -> l
+    amap f is = case is of
+        IVar l n        -> IVar (f l) n
+        IAbs l ns n     -> IAbs (f l) ns n
+        IThingAll l n   -> IThingAll (f l) n
+        IThingWith l n cns  -> IThingWith (f l) n cns
+
+instance Annotated Assoc where
+    ann (AssocNone  l) = l
+    ann (AssocLeft  l) = l
+    ann (AssocRight l) = l
+    amap = fmap
+
+instance Annotated Deriving where
+    ann (Deriving l _ _)        = l
+    amap f (Deriving l mds ihs) = Deriving (f l) mds ihs
+
+instance Annotated DerivStrategy where
+    ann (DerivStock l)    = l
+    ann (DerivAnyclass l) = l
+    ann (DerivNewtype l)  = l
+    ann (DerivVia l _)    = l
+
+    amap f (DerivStock l)    = DerivStock (f l)
+    amap f (DerivAnyclass l) = DerivAnyclass (f l)
+    amap f (DerivNewtype l)  = DerivNewtype (f l)
+    amap f (DerivVia l t)    = DerivVia (f l) t
+
+instance Annotated TypeEqn where
+    ann (TypeEqn l _ _) = l
+    amap f (TypeEqn l a b) = TypeEqn (f l) a b
+
+instance Annotated InjectivityInfo where
+  ann (InjectivityInfo l _ _) = l
+  amap f (InjectivityInfo l to from) = InjectivityInfo (f l) to from
+
+instance Annotated ResultSig where
+  ann (KindSig l _) = l
+  ann (TyVarSig l _) = l
+
+  amap f (KindSig l k) = KindSig (f l) k
+  amap f (TyVarSig l tv) = TyVarSig (f l) tv
+
+instance Annotated Decl where
+    ann decl = case decl of
+        TypeDecl     l _ _              -> l
+        TypeFamDecl  l _ _ _            -> l
+        ClosedTypeFamDecl  l _ _ _ _    -> l
+        DataDecl     l _ _ _ _ _        -> l
+        GDataDecl    l _ _ _ _ _ _      -> l
+        DataFamDecl  l    _ _ _         -> l
+        TypeInsDecl  l _  _             -> l
+        DataInsDecl  l _ _ _ _          -> l
+        GDataInsDecl l _ _ _ _ _        -> l
+        ClassDecl    l _ _ _ _          -> l
+        InstDecl     l _ _ _            -> l
+        DerivDecl    l _ _ _            -> l
+        InfixDecl    l _ _ _            -> l
+        DefaultDecl  l _                -> l
+        SpliceDecl   l _                -> l
+        TSpliceDecl  l _                -> l
+        TypeSig      l _ _              -> l
+        PatSynSig    l _ _ _ _ _ _      -> l
+        FunBind      l _                -> l
+        PatBind      l _ _ _            -> l
+        ForImp       l _ _ _ _ _        -> l
+        ForExp       l _ _ _ _          -> l
+        RulePragmaDecl   l _            -> l
+        DeprPragmaDecl   l _            -> l
+        WarnPragmaDecl   l _            -> l
+        InlineSig        l _ _ _        -> l
+        InlineConlikeSig l   _ _        -> l
+        SpecSig          l   _ _ _      -> l
+        SpecInlineSig    l _ _ _ _      -> l
+        InstSig          l _            -> l
+        AnnPragma        l _            -> l
+        MinimalPragma    l _            -> l
+        RoleAnnotDecl    l _ _          -> l
+        PatSyn           l _ _ _        -> l
+        CompletePragma l _ _            -> l
+    amap f decl = case decl of
+        TypeDecl     l dh t      -> TypeDecl    (f l) dh t
+        TypeFamDecl  l dh mk mi  -> TypeFamDecl (f l) dh mk mi
+        ClosedTypeFamDecl  l dh mk mi eqns  -> ClosedTypeFamDecl (f l) dh mk mi eqns
+        DataDecl     l dn mcx dh cds ders ->
+            DataDecl (f l) dn mcx dh cds ders
+        GDataDecl    l dn mcx dh mk gds ders ->
+            GDataDecl (f l) dn mcx dh mk gds ders
+        DataFamDecl  l mcx dh mk         -> DataFamDecl (f l) mcx dh mk
+        TypeInsDecl  l t1 t2             -> TypeInsDecl (f l) t1 t2
+        DataInsDecl  l dn t cds ders     -> DataInsDecl (f l) dn t cds ders
+        GDataInsDecl l dn t mk gds ders  -> GDataInsDecl (f l) dn t mk gds ders
+        ClassDecl    l mcx dh fds cds    -> ClassDecl (f l) mcx dh fds cds
+        InstDecl     l mo ih ids         -> InstDecl (f l) mo ih ids
+        DerivDecl    l mds mo ih         -> DerivDecl (f l) mds mo ih
+        InfixDecl    l a k ops           -> InfixDecl (f l) a k ops
+        DefaultDecl  l ts                -> DefaultDecl (f l) ts
+        SpliceDecl   l sp                -> SpliceDecl (f l) sp
+        TSpliceDecl  l sp                -> TSpliceDecl (f l) sp
+        TypeSig      l ns t              -> TypeSig (f l) ns t
+        PatSynSig    l n dh c1 dh2 c2 t      -> PatSynSig (f l) n dh c1 dh2 c2 t
+        FunBind      l ms                -> FunBind (f l) ms
+        PatBind      l p rhs bs          -> PatBind (f l) p rhs bs
+        ForImp       l cc msf s n t      -> ForImp (f l) cc msf s n t
+        ForExp       l cc     s n t      -> ForExp (f l) cc     s n t
+        RulePragmaDecl   l rs            -> RulePragmaDecl (f l) rs
+        DeprPragmaDecl   l nss           -> DeprPragmaDecl (f l) nss
+        WarnPragmaDecl   l nss           -> WarnPragmaDecl (f l) nss
+        InlineSig        l b act qn      -> InlineSig (f l) b act qn
+        InlineConlikeSig l   act qn      -> InlineConlikeSig (f l) act qn
+        SpecSig          l   act qn ts   -> SpecSig       (f l)   act qn ts
+        SpecInlineSig    l b act qn ts   -> SpecInlineSig (f l) b act qn ts
+        InstSig          l ih            -> InstSig (f l) ih
+        AnnPragma        l ann'          -> AnnPragma (f l) ann'
+        MinimalPragma    l b             -> MinimalPragma (f l) b
+        RoleAnnotDecl    l t rs          -> RoleAnnotDecl (f l) t rs
+        PatSyn           l p r d         -> PatSyn (f l) p r d
+        CompletePragma   l cs ty         -> CompletePragma (f l) cs ty
+
+instance Annotated Role where
+    ann r = case r of
+      RoleWildcard l -> l
+      Representational l -> l
+      Phantom l -> l
+      Nominal l -> l
+    amap f r = case r of
+      RoleWildcard l -> RoleWildcard (f l)
+      Representational l -> Representational (f l)
+      Phantom l -> Phantom (f l)
+      Nominal l -> Nominal (f l)
+
+instance Annotated Annotation where
+    ann (Ann     l _ _) = l
+    ann (TypeAnn l _ _) = l
+    ann (ModuleAnn l _) = l
+    amap f (Ann     l n e) = Ann     (f l) n e
+    amap f (TypeAnn l n e) = TypeAnn (f l) n e
+    amap f (ModuleAnn l e) = ModuleAnn (f l) e
+
+instance Annotated BooleanFormula where
+    ann (VarFormula l _)   = l
+    ann (AndFormula l _)   = l
+    ann (OrFormula l _)    = l
+    ann (ParenFormula l _) = l
+    amap f (VarFormula l n)   = VarFormula (f l) n
+    amap f (AndFormula l bs)  = AndFormula (f l) bs
+    amap f (OrFormula l bs)   = OrFormula (f l) bs
+    amap f (ParenFormula l b) = ParenFormula (f l) b
+
+instance Annotated DataOrNew where
+    ann (DataType l) = l
+    ann (NewType  l) = l
+    amap = fmap
+
+instance Annotated DeclHead where
+    ann (DHead l _)              = l
+    ann (DHInfix l _ _)          = l
+    ann (DHParen l _)            = l
+    ann (DHApp l _ _)            = l
+    amap f (DHead l n)           = DHead (f l) n
+    amap f (DHInfix l tva n)     = DHInfix (f l) tva n
+    amap f (DHParen l dh)        = DHParen (f l) dh
+    amap f (DHApp l dh t)        = DHApp (f l) dh t
+
+instance Annotated InstRule where
+    ann (IRule l _ _ _)         = l
+    ann (IParen l _)            = l
+    amap f (IRule l mtv cxt qn) = IRule (f l) mtv cxt qn
+    amap f (IParen l ih)        = IParen (f l) ih
+
+instance Annotated InstHead where
+    ann (IHCon l _)              = l
+    ann (IHInfix l _ _)          = l
+    ann (IHParen l _)            = l
+    ann (IHApp l _ _)            = l
+    amap f (IHCon l n)           = IHCon (f l) n
+    amap f (IHInfix l tva n)     = IHInfix (f l) tva n
+    amap f (IHParen l dh)        = IHParen (f l) dh
+    amap f (IHApp l dh t)        = IHApp (f l) dh t
+
+instance Annotated Binds where
+    ann (BDecls  l _) = l
+    ann (IPBinds l _) = l
+    amap f (BDecls  l decls) = BDecls (f l) decls
+    amap f (IPBinds l ibs)   = IPBinds (f l) ibs
+
+instance Annotated IPBind where
+    ann (IPBind l _ _) = l
+    amap f (IPBind l ipn e) = IPBind (f l) ipn e
+
+instance Annotated Match where
+    ann (Match l _ _ _ _)        = l
+    ann (InfixMatch l _ _ _ _ _) = l
+    amap f (Match l n ps rhs bs) = Match (f l) n ps rhs bs
+    amap f (InfixMatch l a n b rhs bs) = InfixMatch (f l) a n b rhs bs
+
+instance Annotated QualConDecl where
+    ann (QualConDecl l _ _ _) = l
+    amap f (QualConDecl l tvs cx cd) = QualConDecl (f l) tvs cx cd
+
+instance Annotated ConDecl where
+    ann (ConDecl l _ _)        = l
+    ann (InfixConDecl l _ _ _) = l
+    ann (RecDecl l _ _)        = l
+    amap f (ConDecl l n bts) = ConDecl (f l) n bts
+    amap f (InfixConDecl l ta n tb) = InfixConDecl (f l) ta n tb
+    amap f (RecDecl l n fds) = RecDecl (f l) n fds
+
+instance Annotated FieldDecl where
+    ann (FieldDecl l _ _) = l
+    amap f (FieldDecl l ns t) = FieldDecl (f l) ns t
+
+instance Annotated GadtDecl where
+    ann (GadtDecl l _ _ _ _ _) = l
+    amap f (GadtDecl l n t1 t2 t3 t4) = GadtDecl (f l) n t1 t2 t3 t4
+
+instance Annotated ClassDecl where
+    ann (ClsDecl    l _)      = l
+    ann (ClsDataFam l _ _ _)  = l
+    ann (ClsTyFam   l _ _ _) = l
+    ann (ClsTyDef   l _)    = l
+    ann (ClsDefSig  l _ _)    = l
+    amap f (ClsDecl    l d) = ClsDecl (f l) d
+    amap f (ClsDataFam l mcx dh mk) = ClsDataFam (f l) mcx dh mk
+    amap f (ClsTyFam   l dh mk mi) = ClsTyFam (f l) dh mk mi
+    amap f (ClsTyDef   l t ) = ClsTyDef (f l) t
+    amap f (ClsDefSig  l n t) = ClsDefSig (f l) n t
+
+instance Annotated InstDecl where
+    ann id = case id of
+        InsDecl   l _            -> l
+        InsType   l _ _          -> l
+        InsData   l _ _  _ _     -> l
+        InsGData  l _ _ _ _ _    -> l
+--        InsInline l _ _ _    -> l
+    amap f id = case id of
+        InsDecl   l d           -> InsDecl (f l) d
+        InsType   l t1 t2       -> InsType (f l) t1 t2
+        InsData   l dn t    cds ders -> InsData  (f l) dn t    cds ders
+        InsGData  l dn t mk gds ders -> InsGData (f l) dn t mk gds ders
+--        InsInline l b act qn    -> InsInline (f l) b act qn
+
+instance Annotated BangType where
+     ann (BangedTy   l)       = l
+     ann (LazyTy   l)         = l
+     ann (NoStrictAnnot l)    = l
+
+     amap f (BangedTy   l) = BangedTy (f l)
+     amap f (LazyTy   l)   = LazyTy (f l)
+     amap f (NoStrictAnnot l) = NoStrictAnnot (f l)
+
+instance Annotated Unpackedness where
+    ann (Unpack l) = l
+    ann (NoUnpack l) = l
+    ann (NoUnpackPragma l) = l
+
+    amap f (Unpack l) = Unpack (f l)
+    amap f (NoUnpack l) = Unpack (f l)
+    amap f (NoUnpackPragma l) = Unpack (f l)
+
+instance Annotated Rhs where
+     ann (UnGuardedRhs l _) = l
+     ann (GuardedRhss  l _) = l
+     amap f (UnGuardedRhs l e)     = UnGuardedRhs (f l) e
+     amap f (GuardedRhss  l grhss) = GuardedRhss  (f l) grhss
+
+instance Annotated GuardedRhs where
+     ann (GuardedRhs l _ _) = l
+     amap f (GuardedRhs l ss e) = GuardedRhs (f l) ss e
+
+instance Annotated Type where
+    ann t = case t of
+      TyForall l _ _ _              -> l
+      TyStar  l                     -> l
+      TyFun   l _ _                 -> l
+      TyTuple l _ _                 -> l
+      TyUnboxedSum l _              -> l
+      TyList  l _                   -> l
+      TyParArray  l _               -> l
+      TyApp   l _ _                 -> l
+      TyVar   l _                   -> l
+      TyCon   l _                   -> l
+      TyParen l _                   -> l
+      TyInfix l _ _ _               -> l
+      TyKind  l _ _                 -> l
+      TyPromoted l   _              -> l
+      TyEquals l _ _                -> l
+      TySplice l _                  -> l
+      TyBang l _ _ _                  -> l
+      TyWildCard l _                -> l
+      TyQuasiQuote l _ _            -> l
+    amap f t1 = case t1 of
+      TyForall l mtvs mcx t         -> TyForall (f l) mtvs mcx t
+      TyStar  l                     -> TyStar (f l)
+      TyFun   l t1' t2              -> TyFun (f l) t1' t2
+      TyTuple l b ts                -> TyTuple (f l) b ts
+      TyUnboxedSum l s              -> TyUnboxedSum (f l) s
+      TyList  l t                   -> TyList (f l) t
+      TyParArray  l t               -> TyParArray (f l) t
+      TyApp   l t1' t2              -> TyApp (f l) t1' t2
+      TyVar   l n                   -> TyVar (f l) n
+      TyCon   l qn                  -> TyCon (f l) qn
+      TyParen l t                   -> TyParen (f l) t
+      TyInfix l ta qn tb            -> TyInfix (f l) ta qn tb
+      TyKind  l t k                 -> TyKind (f l) t k
+      TyPromoted l   p              -> TyPromoted (f l)   p
+      TyEquals l a b                -> TyEquals (f l) a b
+      TySplice l s                  -> TySplice (f l) s
+      TyBang l b u t                  -> TyBang (f l) b u t
+      TyWildCard l n                -> TyWildCard (f l) n
+      TyQuasiQuote l n s            -> TyQuasiQuote (f l) n s
+
+instance Annotated MaybePromotedName where
+  ann t = case t of
+    PromotedName l _ -> l
+    UnpromotedName l _ -> l
+  amap f tl =  case tl of
+    PromotedName l q -> PromotedName (f l)     q
+    UnpromotedName l q -> UnpromotedName (f l) q
+
+instance Annotated TyVarBind where
+    ann (KindedVar   l _ _) = l
+    ann (UnkindedVar l _)   = l
+    amap f (KindedVar   l n k) = KindedVar   (f l) n k
+    amap f (UnkindedVar l n)   = UnkindedVar (f l) n
+
+instance Annotated FunDep where
+    ann (FunDep l _ _) = l
+    amap f (FunDep l ns1 ns2) = FunDep (f l) ns1 ns2
+
+instance Annotated Context where
+    ann (CxSingle l _) = l
+    ann (CxTuple  l _) = l
+    ann (CxEmpty  l)   = l
+    amap f (CxSingle l asst ) = CxSingle (f l) asst
+    amap f (CxTuple  l assts) = CxTuple  (f l) assts
+    amap f (CxEmpty l) = CxEmpty (f l)
+
+instance Annotated Asst where
+    ann asst = case asst of
+        TypeA l _        -> l
+        IParam l _ _     -> l
+        ParenA l _       -> l
+    amap f asst = case asst of
+        TypeA l t           -> TypeA (f l) t
+        IParam l ipn t      -> IParam (f l) ipn t
+        ParenA l a          -> ParenA (f l) a
+
+instance Annotated Literal where
+    ann lit = case lit of
+        Char    l _    _  -> l
+        String  l _    _  -> l
+        Int     l _    _  -> l
+        Frac    l _    _  -> l
+        PrimInt    l _ _  -> l
+        PrimWord   l _ _  -> l
+        PrimFloat  l _ _  -> l
+        PrimDouble l _ _  -> l
+        PrimChar   l _ _  -> l
+        PrimString l _ _  -> l
+    amap = fmap
+
+instance Annotated Sign where
+    ann sg = case sg of
+        Signless l -> l
+        Negative l -> l
+    amap = fmap
+
+instance Annotated Exp where
+    ann e = case e of
+        Var l _                -> l
+        OverloadedLabel l _    -> l
+        IPVar l _              -> l
+        Con l _                -> l
+        Lit l _                -> l
+        InfixApp l _ _ _       -> l
+        App l _ _              -> l
+        NegApp l _             -> l
+        Lambda l _ _           -> l
+        Let l _ _              -> l
+        If l _ _ _             -> l
+        MultiIf l _            -> l
+        Case l _ _             -> l
+        Do l _                 -> l
+        MDo l _                -> l
+        Tuple l _ _            -> l
+        UnboxedSum l _ _ _     -> l
+        TupleSection l _ _     -> l
+        List l _               -> l
+        ParArray l _           -> l
+        Paren l _              -> l
+        LeftSection l _ _      -> l
+        RightSection l _ _     -> l
+        RecConstr l _ _        -> l
+        RecUpdate l _ _        -> l
+        EnumFrom l _           -> l
+        EnumFromTo l _ _       -> l
+        EnumFromThen l _ _     -> l
+        EnumFromThenTo l _ _ _ -> l
+        ParArrayFromTo l _ _   -> l
+        ParArrayFromThenTo l _ _ _ -> l
+        ListComp l _ _         -> l
+        ParComp  l _ _         -> l
+        ParArrayComp  l _ _    -> l
+        ExpTypeSig l _ _       -> l
+        VarQuote l _           -> l
+        TypQuote l _           -> l
+        BracketExp l _         -> l
+        SpliceExp l _          -> l
+        QuasiQuote l _ _       -> l
+        TypeApp l _            -> l
+
+        XTag  l _ _ _ _        -> l
+        XETag l _ _ _          -> l
+        XPcdata l _            -> l
+        XExpTag l _            -> l
+        XChildTag l _          -> l
+
+        CorePragma l _ _       -> l
+        SCCPragma  l _ _       -> l
+        GenPragma  l _ _ _ _   -> l
+
+        Proc            l _ _  -> l
+        LeftArrApp      l _ _  -> l
+        RightArrApp     l _ _  -> l
+        LeftArrHighApp  l _ _  -> l
+        RightArrHighApp l _ _  -> l
+        ArrOp           l _    -> l
+
+        LCase l _              -> l
+
+    amap f e1 = case e1 of
+        Var l qn        -> Var (f l) qn
+        OverloadedLabel l qn -> OverloadedLabel (f l) qn
+        IPVar l ipn     -> IPVar (f l) ipn
+        Con l qn        -> Con (f l) qn
+        Lit l lit       -> Lit (f l) lit
+        InfixApp l e1' qop e2    -> InfixApp (f l) e1' qop e2
+        App l e1' e2    -> App (f l) e1' e2
+        NegApp l e      -> NegApp (f l) e
+        Lambda l ps e   -> Lambda (f l) ps e
+        Let l bs e      -> Let (f l) bs e
+        If l ec et ee   -> If (f l) ec et ee
+        Case l e alts   -> Case (f l) e alts
+        Do l ss         -> Do (f l) ss
+        MDo l ss        -> MDo (f l) ss
+        Tuple l bx es   -> Tuple (f l) bx es
+        UnboxedSum l b a es -> UnboxedSum (f l) b a es
+        TupleSection l bx mes -> TupleSection (f l) bx mes
+        List l es       -> List (f l) es
+        ParArray l es   -> ParArray (f l) es
+        Paren l e       -> Paren (f l) e
+        LeftSection l e qop     -> LeftSection (f l) e qop
+        RightSection l qop e    -> RightSection (f l) qop e
+        RecConstr l qn fups     -> RecConstr (f l) qn fups
+        RecUpdate l e  fups     -> RecUpdate (f l) e  fups
+        EnumFrom l e            -> EnumFrom (f l) e
+        EnumFromTo l ef et      -> EnumFromTo (f l) ef et
+        EnumFromThen l ef et    -> EnumFromThen (f l) ef et
+        EnumFromThenTo l ef eth eto -> EnumFromThenTo (f l) ef eth eto
+        ParArrayFromTo l ef et  -> ParArrayFromTo (f l) ef et
+        ParArrayFromThenTo l ef eth eto -> ParArrayFromThenTo (f l) ef eth eto
+        ListComp l e qss        -> ListComp (f l) e qss
+        ParComp  l e qsss       -> ParComp  (f l) e qsss
+        ParArrayComp  l e qsss  -> ParArrayComp  (f l) e qsss
+        ExpTypeSig l e t        -> ExpTypeSig (f l) e t
+        VarQuote l qn           -> VarQuote (f l) qn
+        TypQuote l qn           -> TypQuote (f l) qn
+        BracketExp l br         -> BracketExp (f l) br
+        SpliceExp l sp          -> SpliceExp (f l) sp
+        QuasiQuote l sn se      -> QuasiQuote (f l) sn se
+        TypeApp l t             -> TypeApp (f l) t
+
+        XTag  l xn xas me es     -> XTag  (f l) xn xas me es
+        XETag l xn xas me        -> XETag (f l) xn xas me
+        XPcdata l s              -> XPcdata (f l) s
+        XExpTag l e              -> XExpTag (f l) e
+        XChildTag l es           -> XChildTag (f l) es
+
+        CorePragma l s e   -> CorePragma (f l) s e
+        SCCPragma  l s e   -> SCCPragma (f l) s e
+        GenPragma  l s n12 n34 e -> GenPragma (f l) s n12 n34 e
+
+        Proc            l p e  -> Proc (f l) p e
+        LeftArrApp      l e1' e2 -> LeftArrApp      (f l) e1' e2
+        RightArrApp     l e1' e2 -> RightArrApp     (f l) e1' e2
+        LeftArrHighApp  l e1' e2 -> LeftArrHighApp  (f l) e1' e2
+        RightArrHighApp l e1' e2 -> RightArrHighApp (f l) e1' e2
+        ArrOp           l e      -> ArrOp           (f l) e
+
+        LCase l alts -> LCase (f l) alts
+        MultiIf l alts -> MultiIf (f l) alts
+
+
+instance Annotated XName where
+    ann (XName l _)      = l
+    ann (XDomName l _ _) = l
+    amap = fmap
+
+instance Annotated XAttr where
+    ann (XAttr l _ _) = l
+    amap f (XAttr l xn e) = XAttr (f l) xn e
+
+instance Annotated Bracket where
+    ann (ExpBracket l _)  = l
+    ann (TExpBracket l _) = l
+    ann (PatBracket l _)  = l
+    ann (TypeBracket l _) = l
+    ann (DeclBracket l _) = l
+    amap f (ExpBracket l e) = ExpBracket (f l) e
+    amap f (TExpBracket l e) = TExpBracket (f l) e
+    amap f (PatBracket l p) = PatBracket (f l) p
+    amap f (TypeBracket l t) = TypeBracket (f l) t
+    amap f (DeclBracket l ds) = DeclBracket (f l) ds
+
+instance Annotated Splice where
+    ann (IdSplice l _)    = l
+    ann (TIdSplice l _)   = l
+    ann (ParenSplice l _) = l
+    ann (TParenSplice l _) = l
+    amap f (IdSplice l s) = IdSplice (f l) s
+    amap f (TIdSplice l s) = TIdSplice (f l) s
+    amap f (ParenSplice l e) = ParenSplice (f l) e
+    amap f (TParenSplice l e) = TParenSplice (f l) e
+
+instance Annotated Safety where
+    ann (PlayRisky l) = l
+    ann (PlaySafe l _) = l
+    ann (PlayInterruptible l) = l
+    amap = fmap
+
+instance Annotated CallConv where
+    ann (StdCall l) = l
+    ann (CCall l) = l
+    ann (CPlusPlus l) = l
+    ann (DotNet l) = l
+    ann (Jvm l) = l
+    ann (Js l) = l
+    ann (JavaScript l) = l
+    ann (CApi l) = l
+    amap = fmap
+
+instance Annotated ModulePragma where
+    ann (LanguagePragma   l _)   = l
+    ann (OptionsPragma    l _ _) = l
+    ann (AnnModulePragma  l _)   = l
+    amap f (LanguagePragma   l ns) = LanguagePragma (f l) ns
+    amap f (AnnModulePragma  l a) = AnnModulePragma (f l) a
+    amap f p = fmap f p
+
+instance Annotated Overlap where
+    ann (NoOverlap l)  = l
+    ann (Overlap l)    = l
+    ann (Overlaps l)   = l
+    ann (Overlappable l) = l
+    ann (Overlapping l)  = l
+    ann (Incoherent l) = l
+    amap = fmap
+
+instance Annotated Activation where
+    ann (ActiveFrom   l _) = l
+    ann (ActiveUntil  l _) = l
+    amap = fmap
+
+instance Annotated Rule where
+    ann (Rule l _ _ _ _ _) = l
+    amap f (Rule l s act mrvs e1 e2) = Rule (f l) s act mrvs e1 e2
+
+instance Annotated RuleVar where
+    ann (RuleVar l _)        = l
+    ann (TypedRuleVar l _ _) = l
+    amap f (RuleVar l n) = RuleVar (f l) n
+    amap f (TypedRuleVar l n t) = TypedRuleVar (f l) n t
+
+instance Annotated WarningText where
+    ann (DeprText l _) = l
+    ann (WarnText l _) = l
+    amap = fmap
+
+instance Annotated Pat where
+    ann p = case p of
+      PVar l _          -> l
+      PLit l _ _        -> l
+      PNPlusK l _ _     -> l
+      PInfixApp l _ _ _ -> l
+      PApp l _ _        -> l
+      PTuple l _ _      -> l
+      PUnboxedSum l _ _ _ -> l
+      PList l _         -> l
+      PParen l _        -> l
+      PRec l _ _        -> l
+      PAsPat l _ _      -> l
+      PWildCard l       -> l
+      PIrrPat l _       -> l
+      PatTypeSig l _ _  -> l
+      PViewPat l _ _    -> l
+      PRPat l _         -> l
+      PXTag l _ _ _ _   -> l
+      PXETag l _ _ _    -> l
+      PXPcdata l _      -> l
+      PXPatTag l _      -> l
+      PXRPats  l _      -> l
+      PSplice l _       -> l
+      PQuasiQuote l _ _ -> l
+      PBangPat l _      -> l
+    amap f p1 = case p1 of
+      PVar l n          -> PVar (f l) n
+      PLit l sg lit     -> PLit (f l) sg lit
+      PNPlusK l n k     -> PNPlusK (f l) n k
+      PInfixApp l pa qn pb  -> PInfixApp (f l) pa qn pb
+      PApp l qn ps      -> PApp (f l) qn ps
+      PTuple l bx ps    -> PTuple (f l) bx ps
+      PUnboxedSum l b a ps -> PUnboxedSum (f l) b a ps
+      PList l ps        -> PList (f l) ps
+      PParen l p        -> PParen (f l) p
+      PRec l qn pfs     -> PRec (f l) qn pfs
+      PAsPat l n p      -> PAsPat (f l) n p
+      PWildCard l       -> PWildCard (f l)
+      PIrrPat l p       -> PIrrPat (f l) p
+      PatTypeSig l p t  -> PatTypeSig (f l) p t
+      PViewPat l e p    -> PViewPat (f l) e p
+      PRPat l rps       -> PRPat (f l) rps
+      PXTag l xn pxas mp ps -> PXTag  (f l) xn pxas mp ps
+      PXETag l xn pxas mp   -> PXETag (f l) xn pxas mp
+      PXPcdata l s      -> PXPcdata (f l) s
+      PXPatTag l p      -> PXPatTag (f l) p
+      PXRPats  l rps    -> PXRPats  (f l) rps
+      PSplice l sp      -> PSplice (f l) sp
+      PQuasiQuote l sn st   -> PQuasiQuote (f l) sn st
+      PBangPat l p          -> PBangPat (f l) p
+
+instance Annotated PXAttr where
+    ann (PXAttr l _ _) = l
+    amap f (PXAttr l xn p) = PXAttr (f l) xn p
+
+instance Annotated RPatOp where
+    ann (RPStar  l) = l
+    ann (RPStarG l) = l
+    ann (RPPlus  l) = l
+    ann (RPPlusG l) = l
+    ann (RPOpt   l) = l
+    ann (RPOptG  l) = l
+    amap = fmap
+
+instance Annotated RPat where
+    ann rp = case rp of
+      RPOp l _ _            -> l
+      RPEither l _ _        -> l
+      RPSeq l _             -> l
+      RPGuard l _ _         -> l
+      RPCAs l _ _           -> l
+      RPAs l _ _            -> l
+      RPParen l _           -> l
+      RPPat l _             -> l
+    amap f rp1 = case rp1 of
+      RPOp l rp rop         -> RPOp (f l) rp rop
+      RPEither l rp1' rp2   -> RPEither (f l) rp1' rp2
+      RPSeq l rps           -> RPSeq (f l) rps
+      RPGuard l p ss        -> RPGuard (f l) p ss
+      RPCAs l n rp          -> RPCAs (f l) n rp
+      RPAs l n rp           -> RPAs (f l) n rp
+      RPParen l rp          -> RPParen (f l) rp
+      RPPat l p             -> RPPat (f l) p
+
+instance Annotated PatField where
+    ann (PFieldPat l _ _)  = l
+    ann (PFieldPun l _)    = l
+    ann (PFieldWildcard l) = l
+    amap f (PFieldPat l qn p) = PFieldPat (f l) qn p
+    amap f (PFieldPun l n) = PFieldPun (f l) n
+    amap f (PFieldWildcard l) = PFieldWildcard (f l)
+
+instance Annotated Stmt where
+    ann (Generator l _ _) = l
+    ann (Qualifier l _)   = l
+    ann (LetStmt l _)     = l
+    ann (RecStmt l _)     = l
+    amap f (Generator l p e) = Generator (f l) p e
+    amap f (Qualifier l e)   = Qualifier (f l) e
+    amap f (LetStmt l bs)    = LetStmt (f l) bs
+    amap f (RecStmt l ss)    = RecStmt (f l) ss
+
+instance Annotated QualStmt where
+    ann (QualStmt     l _)   = l
+    ann (ThenTrans    l _)   = l
+    ann (ThenBy       l _ _) = l
+    ann (GroupBy      l _)   = l
+    ann (GroupUsing   l _)   = l
+    ann (GroupByUsing l _ _) = l
+    amap f (QualStmt     l s) = QualStmt (f l) s
+    amap f (ThenTrans    l e) = ThenTrans (f l) e
+    amap f (ThenBy       l e1 e2) = ThenBy (f l) e1 e2
+    amap f (GroupBy      l e) = GroupBy (f l) e
+    amap f (GroupUsing   l e) = GroupUsing (f l) e
+    amap f (GroupByUsing l e1 e2) = GroupByUsing (f l) e1 e2
+
+instance Annotated FieldUpdate where
+    ann (FieldUpdate l _ _)  = l
+    ann (FieldPun l _)       = l
+    ann (FieldWildcard l)    = l
+    amap f (FieldUpdate l qn e) = FieldUpdate (f l) qn e
+    amap f (FieldPun l n)       = FieldPun (f l) n
+    amap f (FieldWildcard l)    = FieldWildcard (f l)
+
+instance Annotated Alt where
+    ann (Alt l _ _ _) = l
+    amap f (Alt l p gs bs) = Alt (f l) p gs bs
+
+instance Annotated Promoted where
+    ann (PromotedInteger l _ _) = l
+    ann (PromotedString l _ _)  = l
+    ann (PromotedCon l _ _)     = l
+    ann (PromotedList l _ _)    = l
+    ann (PromotedTuple l _)     = l
+    ann (PromotedUnit l)        = l
+    amap f (PromotedInteger l int raw) = PromotedInteger (f l) int raw
+    amap f (PromotedString l str raw) = PromotedString (f l) str raw
+    amap f (PromotedCon l b qn)   = PromotedCon (f l) b qn
+    amap f (PromotedList l b ps)  = PromotedList  (f l) b ps
+    amap f (PromotedTuple l ps) = PromotedTuple (f l) ps
+    amap f (PromotedUnit l)     = PromotedUnit (f l)
diff --git a/src/Language/Preprocessor/Unlit.hs b/src/Language/Preprocessor/Unlit.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Preprocessor/Unlit.hs
@@ -0,0 +1,72 @@
+-- | Part of this code is from "Report on the Programming Language Haskell",
+--   version 1.2, appendix C.
+{-# OPTIONS_GHC -Wwarn #-}
+module Language.Preprocessor.Unlit (unlit) where
+
+import Data.Char
+import Data.List (isPrefixOf)
+
+data Classified = Program String | Blank | Comment
+                | Include Int String | Pre String
+
+classify :: [String] -> [Classified]
+classify []                = []
+classify (('\\':x):xs) | x == "begin{code}" = Blank : allProg xs
+   where allProg [] = []  -- Should give an error message,
+                          -- but I have no good position information.
+         allProg (('\\':y):ys) |  "end{code}" `isPrefixOf` y = Blank : classify ys
+         allProg (y:ys) = Program y : allProg ys
+classify (('>':x):xs)      = Program (' ' : x) : classify xs
+classify (('#':x):xs)      = (case words x of
+                                (line:rest) | all isDigit line
+                                   -> Include (read line) (unwords rest)
+                                _  -> Pre x
+                             ) : classify xs
+--classify (x:xs) | "{-# LINE" `isPrefixOf` x = Program x: classify xs
+classify (x:xs) | all isSpace x = Blank : classify xs
+classify (_:xs)                 = Comment : classify xs
+
+unclassify :: Classified -> String
+unclassify (Program s) = s
+unclassify (Pre s)     = '#':s
+unclassify (Include i f) = '#':' ':show i ++ ' ':f
+unclassify Blank       = ""
+unclassify Comment     = ""
+
+-- | 'unlit' takes a filename (for error reports), and transforms the
+--   given string, to eliminate the literate comments from the program text.
+unlit :: FilePath -> String -> String
+unlit file lhs = (unlines
+                 . map unclassify
+                 . adjacent file (0::Int) Blank
+                 . classify) (inlines lhs)
+
+adjacent :: FilePath -> Int -> Classified -> [Classified] -> [Classified]
+adjacent file 0 _             (x              :xs) = x : adjacent file 1 x xs -- force evaluation of line number
+adjacent file n   (Program _) (Comment        :_ ) = error (message file n "program" "comment")
+adjacent _    _ y@(Program _) (x@(Include i f):xs) = x: adjacent f    i     y xs
+adjacent file n y@(Program _) (x@(Pre _)      :xs) = x: adjacent file (n+1) y xs
+adjacent file n   Comment     (  (Program _)  :_ ) = error (message file n "comment" "program")
+adjacent _    _ y@Comment     (x@(Include i f):xs) = x: adjacent f    i     y xs
+adjacent file n y@Comment     (x@(Pre _)      :xs) = x: adjacent file (n+1) y xs
+adjacent _    _ y@Blank       (x@(Include i f):xs) = x: adjacent f    i     y xs
+adjacent file n y@Blank       (x@(Pre _)      :xs) = x: adjacent file (n+1) y xs
+adjacent file n _             (x              :xs) = x: adjacent file (n+1) x xs
+adjacent _    _ _             []                   = []
+
+message :: String -> Int -> String -> String -> String
+message "\"\"" n p c = "Line "++show n++": "++p++ " line before "++c++" line.\n"
+message []     n p c = "Line "++show n++": "++p++ " line before "++c++" line.\n"
+message file   n p c = "In file " ++ file ++ " at line "++show n++": "++p++ " line before "++c++" line.\n"
+
+
+-- Re-implementation of 'lines', for better efficiency (but decreased laziness).
+-- Also, importantly, accepts non-standard DOS and Mac line ending characters.
+inlines :: String -> [String]
+inlines = (`lines'` id)
+  where
+  lines' []             acc = [acc []]
+  lines' ('\^M':'\n':s) acc = acc [] : lines' s id      -- DOS
+  lines' ('\^M':s)      acc = acc [] : lines' s id      -- MacOS
+  lines' ('\n':s)       acc = acc [] : lines' s id      -- Unix
+  lines' (c:s)          acc = lines' s (acc . (c:))
diff --git a/tests/Extensions.hs b/tests/Extensions.hs
--- a/tests/Extensions.hs
+++ b/tests/Extensions.hs
@@ -5,7 +5,7 @@
 import Test.Tasty
 import Test.Tasty.SmallCheck
 import Test.SmallCheck.Series
-import Language.Haskell.Exts.Annotated
+import Language.Haskell.Exts
 import Data.Function
 import Data.List
 
@@ -22,12 +22,30 @@
 (~~) :: Monad m => [Extension] -> [Extension] -> Property m
 xts1 ~~ xts2 = forAll $ \lang -> ((==) `on` sort . toExtensionList lang) xts1 xts2
 
+-- arbitrary examples
+e1 :: KnownExtension
+e1 = OverlappingInstances
+
+e2 :: KnownExtension
+e2 = UndecidableInstances
+
 extensionProperties :: TestTree
 extensionProperties =
   localOption (SmallCheckDepth 2) $ testGroup "Properties of LANGUAGE extensions" $
   [ testProperty "identity" $ \x -> x ~~ x
   , testProperty "idempotence" $ \x -> x ++ x ~~ x
-  , testProperty "right bias" $ \x y -> x ++ y ++ x ~~ y ++ x
+  -- Actually, let's not exhaustively check n^2 cases
+  -- , testProperty "right bias" $ \x y -> x ++ y ++ x ~~ y ++ x
+  , testProperty "right bias - override to disabled" $
+      [EnableExtension e1, DisableExtension e1] ~~ [DisableExtension e1]
+  , testProperty "right bias - override to enabled" $
+      [DisableExtension e1, EnableExtension e1] ~~ [EnableExtension e1]
+  , testProperty "right bias - interleaved override to disabled" $
+      [EnableExtension e1, EnableExtension e2, DisableExtension e1]
+        ~~ [EnableExtension e2, DisableExtension e1]
+  , testProperty "right bias - interleaved override to enabled" $
+      [DisableExtension e1, EnableExtension e2, EnableExtension e1]
+        ~~ [EnableExtension e2, EnableExtension e1]
   , testProperty "closedness of implication" $ \x -> impliesExts (impliesExts x) == impliesExts x
   , testProperty "closedness of toExtensionList" $ \l x -> let es = toExtensionList l x in es == impliesExts es
   , testProperty "opposite extensions 1" $ \x -> [EnableExtension x, DisableExtension x] ~~ [DisableExtension x]
diff --git a/tests/Runner.hs b/tests/Runner.hs
--- a/tests/Runner.hs
+++ b/tests/Runner.hs
@@ -2,8 +2,7 @@
 -- | Use "runhaskell Setup.hs test" or "cabal test" to run these tests.
 module Main where
 
-import Language.Haskell.Exts.Annotated
-import qualified Language.Haskell.Exts as S -- S for "Simple", i.e. not annotated
+import Language.Haskell.Exts
 
 import Test.Tasty hiding (defaultMain)
 import Test.Tasty.Golden
@@ -12,9 +11,10 @@
 import System.IO
 import Control.Monad.Trans
 import Control.Applicative
-import Data.Generics
 import Extensions
+import Text.Show.Pretty
 
+
 main :: IO ()
 main = do
   sources <- getTestFiles examplesDir
@@ -24,6 +24,7 @@
     , prettyPrinterTests sources
     , prettyParserTests sources
     , extensionProperties
+    , commentsTests examplesDir
     ]
 
 -- | Where all the tests are to be found
@@ -45,7 +46,7 @@
         parseUTF8FileWithComments
           (defaultParseMode { parseFilename = file })
           file
-      writeBinaryFile out $ show ast ++ "\n"
+      writeBinaryFile out $ ppShow ast ++ "\n"
   return $ goldenVsFile (takeBaseName file) golden out run
 -- }}}
 
@@ -91,7 +92,7 @@
       let
         -- parse
         mbAst =
-          S.parseFileContentsWithMode
+          parseFileContentsWithMode
             (defaultParseMode { parseFilename = file })
             contents
         -- try to pretty-print; summarize the test result
@@ -114,22 +115,22 @@
       contents <- readUTF8File file
       let
         -- parse
-        parse1Result :: ParseResult S.Module
+        parse1Result :: ParseResult (Module SrcSpanInfo)
         parse1Result =
-          S.parseFileContentsWithMode
+          parseFileContentsWithMode
             (defaultParseMode { parseFilename = file })
             contents
 
         prettyResult :: ParseResult String
         prettyResult = prettyPrint <$> parse1Result
 
-        parse2Result :: ParseResult (ParseResult S.Module)
-        parse2Result = S.parseFileContents <$> prettyResult
+        parse2Result :: ParseResult (ParseResult (Module SrcSpanInfo))
+        parse2Result = parseFileContents <$> prettyResult
 
         -- Even the un-annotated AST contains certain locations.
         -- Obviously, they may differ, so we have to erase them.
-        eraseLocs :: S.Module -> S.Module
-        eraseLocs = everywhere $ mkT $ const noLoc
+        eraseLocs :: Module l -> Module ()
+        eraseLocs = (() <$)
 
         summary =
           case liftA3 (,,) parse1Result prettyResult parse2Result of
@@ -155,11 +156,33 @@
   return $ goldenVsFile (takeBaseName file) golden out run
 -- }}}
 
+commentsTests :: FilePath -> TestTree  -- {{{
+commentsTests dir = testGroup "Comments tests" $ do
+    let file = dir ++ "/HaddockComments.hs"
+        out = file <.> "comments" <.> "out"
+        golden = file <.> "comments" <.> "golden"
+        run = do
+            contents <- readUTF8File file
+            let
+              -- parse
+              parse1Result :: ParseResult (Module SrcSpanInfo,[Comment])
+              parse1Result =
+                parseFileContentsWithComments
+                 (defaultParseMode { parseFilename = file })
+                  contents
+              withC = case parse1Result of
+                        ParseOk res         -> ParseOk $ associateHaddock res
+                        ParseFailed sloc msg -> ParseFailed sloc msg
+            writeBinaryFile out $ show withC ++ "\n"
+    return $ goldenVsFile (takeBaseName file) golden out run
+
 -- UTF8 utils {{{
 readUTF8File :: FilePath -> IO String
 readUTF8File fp = openFile fp ReadMode >>= \h -> do
         hSetEncoding h utf8
-        hGetContents h
+        c <- hGetContents h >>= \s -> length s `seq` return s
+        hClose h
+        return c
 
 parseUTF8FileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))
 parseUTF8FileWithComments p fp = readUTF8File fp >>= (return . parseFileContentsWithComments p)
diff --git a/tests/examples/AmbiguousFixities.hs.exactprinter.golden b/tests/examples/AmbiguousFixities.hs.exactprinter.golden
--- a/tests/examples/AmbiguousFixities.hs.exactprinter.golden
+++ b/tests/examples/AmbiguousFixities.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/AmbiguousFixities.hs.parser.golden b/tests/examples/AmbiguousFixities.hs.parser.golden
--- a/tests/examples/AmbiguousFixities.hs.parser.golden
+++ b/tests/examples/AmbiguousFixities.hs.parser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/AmbiguousFixities.hs.prettyparser.golden b/tests/examples/AmbiguousFixities.hs.prettyparser.golden
--- a/tests/examples/AmbiguousFixities.hs.prettyparser.golden
+++ b/tests/examples/AmbiguousFixities.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/AmbiguousFixities.hs.prettyprinter.golden b/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
--- a/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
+++ b/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/ArityMismatch.hs.parser.golden b/tests/examples/ArityMismatch.hs.parser.golden
--- a/tests/examples/ArityMismatch.hs.parser.golden
+++ b/tests/examples/ArityMismatch.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/ArityMismatch.hs" 3 1) "arity mismatch for 'foo'"
+ParseFailed
+  (SrcLoc "tests/examples/ArityMismatch.hs" 3 1)
+  "arity mismatch for 'foo'"
diff --git a/tests/examples/ArrowBrackets.hs b/tests/examples/ArrowBrackets.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ArrowBrackets.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE Arrows #-}
+module ArrowBrackets where
+
+foo = proc (x, y) -> (| f (g -< x) |) y
+
+bar = proc (x, y) -> do
+  z <- (| f (g -< x) |) y
+  (| f (h -< z) |) y
diff --git a/tests/examples/ArrowBrackets.hs.exactprinter.golden b/tests/examples/ArrowBrackets.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ArrowBrackets.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ArrowBrackets.hs.parser.golden b/tests/examples/ArrowBrackets.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ArrowBrackets.hs.parser.golden
@@ -0,0 +1,541 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ArrowBrackets.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 9 1 9 1
+            , SrcSpan "tests/examples/ArrowBrackets.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ArrowBrackets.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ArrowBrackets.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "ArrowBrackets")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 1 1 1 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ArrowBrackets.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ArrowBrackets.hs" 1 21 1 24
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 1 14 1 20
+                , srcInfoPoints = []
+                }
+              "Arrows"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 1 4 40
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 5 4 40
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 5 4 6 ]
+               }
+             (Proc
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 7 4 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 7 4 11
+                      , SrcSpan "tests/examples/ArrowBrackets.hs" 4 19 4 21
+                      ]
+                  }
+                (PTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 12 4 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 12 4 13
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 4 14 4 15
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 4 17 4 18
+                         ]
+                     }
+                   Boxed
+                   [ PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 13 4 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 13 4 14
+                            , srcInfoPoints = []
+                            }
+                          "x")
+                   , PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 16 4 17
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 16 4 17
+                            , srcInfoPoints = []
+                            }
+                          "y")
+                   ])
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 22 4 40
+                     , srcInfoPoints = []
+                     }
+                   (ArrOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 22 4 38
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 22 4 24
+                            , SrcSpan "tests/examples/ArrowBrackets.hs" 4 36 4 38
+                            ]
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 25 4 35
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 25 4 26
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 25 4 26
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ArrowBrackets.hs" 4 25 4 26
+                                    , srcInfoPoints = []
+                                    }
+                                  "f")))
+                         (Paren
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 27 4 35
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 27 4 28
+                                  , SrcSpan "tests/examples/ArrowBrackets.hs" 4 34 4 35
+                                  ]
+                              }
+                            (LeftArrApp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 28 4 34
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/ArrowBrackets.hs" 4 30 4 32 ]
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ArrowBrackets.hs" 4 28 4 29
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ArrowBrackets.hs" 4 28 4 29
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ArrowBrackets.hs" 4 28 4 29
+                                          , srcInfoPoints = []
+                                          }
+                                        "g")))
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ArrowBrackets.hs" 4 33 4 34
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ArrowBrackets.hs" 4 33 4 34
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ArrowBrackets.hs" 4 33 4 34
+                                          , srcInfoPoints = []
+                                          }
+                                        "x")))))))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 39 4 40
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 39 4 40
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 4 39 4 40
+                              , srcInfoPoints = []
+                              }
+                            "y"))))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 1 8 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 1 6 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 1 6 4
+                  , srcInfoPoints = []
+                  }
+                "bar"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 5 8 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ArrowBrackets.hs" 6 5 6 6 ]
+               }
+             (Proc
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 7 8 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ArrowBrackets.hs" 6 7 6 11
+                      , SrcSpan "tests/examples/ArrowBrackets.hs" 6 19 6 21
+                      ]
+                  }
+                (PTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 12 6 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ArrowBrackets.hs" 6 12 6 13
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 6 14 6 15
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 6 17 6 18
+                         ]
+                     }
+                   Boxed
+                   [ PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 13 6 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 13 6 14
+                            , srcInfoPoints = []
+                            }
+                          "x")
+                   , PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 16 6 17
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 16 6 17
+                            , srcInfoPoints = []
+                            }
+                          "y")
+                   ])
+                (Do
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 6 22 8 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ArrowBrackets.hs" 6 22 6 24
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 7 3 7 3
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 8 3 8 3
+                         , SrcSpan "tests/examples/ArrowBrackets.hs" 9 1 9 0
+                         ]
+                     }
+                   [ Generator
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 3 7 26
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ArrowBrackets.hs" 7 5 7 7 ]
+                         }
+                       (PVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 3 7 4
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 3 7 4
+                               , srcInfoPoints = []
+                               }
+                             "z"))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 8 7 26
+                            , srcInfoPoints = []
+                            }
+                          (ArrOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 8 7 24
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ArrowBrackets.hs" 7 8 7 10
+                                   , SrcSpan "tests/examples/ArrowBrackets.hs" 7 22 7 24
+                                   ]
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ArrowBrackets.hs" 7 11 7 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 7 11 7 12
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ArrowBrackets.hs" 7 11 7 12
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 7 11 7 12
+                                           , srcInfoPoints = []
+                                           }
+                                         "f")))
+                                (Paren
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 7 13 7 21
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/ArrowBrackets.hs" 7 13 7 14
+                                         , SrcSpan "tests/examples/ArrowBrackets.hs" 7 20 7 21
+                                         ]
+                                     }
+                                   (LeftArrApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ArrowBrackets.hs" 7 14 7 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/ArrowBrackets.hs" 7 16 7 18 ]
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 7 14 7 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ArrowBrackets.hs" 7 14 7 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ArrowBrackets.hs" 7 14 7 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "g")))
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 7 19 7 20
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ArrowBrackets.hs" 7 19 7 20
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ArrowBrackets.hs" 7 19 7 20
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "x")))))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 7 25 7 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ArrowBrackets.hs" 7 25 7 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 7 25 7 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "y"))))
+                   , Qualifier
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 8 3 8 21
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 8 3 8 21
+                            , srcInfoPoints = []
+                            }
+                          (ArrOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 8 3 8 19
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ArrowBrackets.hs" 8 3 8 5
+                                   , SrcSpan "tests/examples/ArrowBrackets.hs" 8 17 8 19
+                                   ]
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 8 6 8 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 8 6 8 7
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ArrowBrackets.hs" 8 6 8 7
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 8 6 8 7
+                                           , srcInfoPoints = []
+                                           }
+                                         "f")))
+                                (Paren
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 8 8 8 16
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/ArrowBrackets.hs" 8 8 8 9
+                                         , SrcSpan "tests/examples/ArrowBrackets.hs" 8 15 8 16
+                                         ]
+                                     }
+                                   (LeftArrApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ArrowBrackets.hs" 8 9 8 15
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/ArrowBrackets.hs" 8 11 8 13 ]
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 8 9 8 10
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/ArrowBrackets.hs" 8 9 8 10
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ArrowBrackets.hs" 8 9 8 10
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "h")))
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ArrowBrackets.hs" 8 14 8 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ArrowBrackets.hs" 8 14 8 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ArrowBrackets.hs" 8 14 8 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "z")))))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowBrackets.hs" 8 20 8 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ArrowBrackets.hs" 8 20 8 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowBrackets.hs" 8 20 8 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "y"))))
+                   ])))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ArrowBrackets.hs.prettyparser.golden b/tests/examples/ArrowBrackets.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ArrowBrackets.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ArrowBrackets.hs.prettyprinter.golden b/tests/examples/ArrowBrackets.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ArrowBrackets.hs.prettyprinter.golden
@@ -0,0 +1,7 @@
+{-# LANGUAGE Arrows #-}
+module ArrowBrackets where
+foo = proc (x, y) -> (| f (g -< x) |) y
+bar
+  = proc (x, y) ->
+      do z <- (| f (g -< x) |) y
+         (| f (h -< z) |) y
diff --git a/tests/examples/ArrowLayout.hs.parser.golden b/tests/examples/ArrowLayout.hs.parser.golden
--- a/tests/examples/ArrowLayout.hs.parser.golden
+++ b/tests/examples/ArrowLayout.hs.parser.golden
@@ -1,1 +1,338 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 1,SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 1,SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 1,SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 1,SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 1,SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 7,SrcSpan "tests/examples/ArrowLayout.hs" 2 20 2 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 2 8 2 19, srcInfoPoints = []}) "ArrowLayout") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 24, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 13,SrcSpan "tests/examples/ArrowLayout.hs" 1 21 1 24]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 14 1 20, srcInfoPoints = []}) "Arrows"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 7 15, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 4, srcInfoPoints = []}) "exp")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 5 7 15, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 5 4 6]}) (Proc (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 7 7 15, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 7 4 11,SrcSpan "tests/examples/ArrowLayout.hs" 4 15 4 17]}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13,SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13,SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13,SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14]}))) []) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 18 7 15, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 4 18 4 20,SrcSpan "tests/examples/ArrowLayout.hs" 5 3 5 3,SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 3,SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 0]}) [RecStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 3 6 25, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 5 3 5 6,SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 7,SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 7,SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 0]}) [LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 20, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 10]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 20, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 11,SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 12, srcInfoPoints = []}) "e")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 13 5 20, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 5 13 5 14]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 15 5 20, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 15 5 16, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 15 5 16, srcInfoPoints = []}) 1 "1")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 17 5 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 17 5 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 17 5 18, srcInfoPoints = []}) "+"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 19 5 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 19 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 19 5 20, srcInfoPoints = []}) "i"))))) Nothing]),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 25, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 6 9 6 11]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 8, srcInfoPoints = []}) "i")) (LeftArrApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 25, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 6 21 6 23]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20, srcInfoPoints = []}) "integral"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25, srcInfoPoints = []}) "e"))))],Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 15, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 7 11 7 13]}) (LeftArrApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 15, srcInfoPoints = [SrcSpan "tests/examples/ArrowLayout.hs" 7 11 7 13]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10, srcInfoPoints = []}) "returnA"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15, srcInfoPoints = []}) "e"))))]))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 1
+            , SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ArrowLayout.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ArrowLayout.hs" 2 20 2 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 2 8 2 19
+                 , srcInfoPoints = []
+                 }
+               "ArrowLayout")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ArrowLayout.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ArrowLayout.hs" 1 21 1 24
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 1 14 1 20
+                , srcInfoPoints = []
+                }
+              "Arrows"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 7 15
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "exp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 5 7 15
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ArrowLayout.hs" 4 5 4 6 ]
+               }
+             (Proc
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 7 7 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ArrowLayout.hs" 4 7 4 11
+                      , SrcSpan "tests/examples/ArrowLayout.hs" 4 15 4 17
+                      ]
+                  }
+                (PApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13
+                         , SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13
+                            , SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 14
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ArrowLayout.hs" 4 12 4 13
+                               , SrcSpan "tests/examples/ArrowLayout.hs" 4 13 4 14
+                               ]
+                           }))
+                   [])
+                (Do
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 4 18 7 15
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ArrowLayout.hs" 4 18 4 20
+                         , SrcSpan "tests/examples/ArrowLayout.hs" 5 3 5 3
+                         , SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 3
+                         , SrcSpan "tests/examples/ArrowLayout.hs" 8 1 8 0
+                         ]
+                     }
+                   [ RecStmt
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 3 6 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ArrowLayout.hs" 5 3 5 6
+                             , SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 7
+                             , SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 7
+                             , SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 0
+                             ]
+                         }
+                       [ LetStmt
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 20
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/ArrowLayout.hs" 5 7 5 10 ]
+                             }
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 20
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 11
+                                    , SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 0
+                                    ]
+                                }
+                              [ PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 20
+                                    , srcInfoPoints = []
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 12
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ArrowLayout.hs" 5 11 5 12
+                                          , srcInfoPoints = []
+                                          }
+                                        "e"))
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ArrowLayout.hs" 5 13 5 20
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/ArrowLayout.hs" 5 13 5 14 ]
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ArrowLayout.hs" 5 15 5 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Lit
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/ArrowLayout.hs" 5 15 5 16
+                                             , srcInfoPoints = []
+                                             }
+                                           (Int
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ArrowLayout.hs" 5 15 5 16
+                                                , srcInfoPoints = []
+                                                }
+                                              1
+                                              "1"))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/ArrowLayout.hs" 5 17 5 18
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ArrowLayout.hs" 5 17 5 18
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ArrowLayout.hs" 5 17 5 18
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "+")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/ArrowLayout.hs" 5 19 5 20
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ArrowLayout.hs" 5 19 5 20
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ArrowLayout.hs" 5 19 5 20
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "i")))))
+                                  Nothing
+                              ])
+                       , Generator
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 25
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/ArrowLayout.hs" 6 9 6 11 ]
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 8
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 7 6 8
+                                   , srcInfoPoints = []
+                                   }
+                                 "i"))
+                           (LeftArrApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 25
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/ArrowLayout.hs" 6 21 6 23 ]
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/ArrowLayout.hs" 6 12 6 20
+                                         , srcInfoPoints = []
+                                         }
+                                       "integral")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/ArrowLayout.hs" 6 24 6 25
+                                         , srcInfoPoints = []
+                                         }
+                                       "e"))))
+                       ]
+                   , Qualifier
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ArrowLayout.hs" 7 11 7 13 ]
+                         }
+                       (LeftArrApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ArrowLayout.hs" 7 11 7 13 ]
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowLayout.hs" 7 3 7 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "returnA")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ArrowLayout.hs" 7 14 7 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "e"))))
+                   ])))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/AtOperator.hs b/tests/examples/AtOperator.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtOperator.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeOperators #-}
+
+data a :+: b = Proxy
+
+foo = id @(Int :+: Int)
+
+_ @> m = m
diff --git a/tests/examples/AtOperator.hs.exactprinter.golden b/tests/examples/AtOperator.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtOperator.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/AtOperator.hs.parser.golden b/tests/examples/AtOperator.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtOperator.hs.parser.golden
@@ -0,0 +1,291 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/AtOperator.hs" 1 1 1 1
+            , SrcSpan "tests/examples/AtOperator.hs" 2 1 2 1
+            , SrcSpan "tests/examples/AtOperator.hs" 4 1 4 1
+            , SrcSpan "tests/examples/AtOperator.hs" 4 1 4 1
+            , SrcSpan "tests/examples/AtOperator.hs" 4 1 4 1
+            , SrcSpan "tests/examples/AtOperator.hs" 6 1 6 1
+            , SrcSpan "tests/examples/AtOperator.hs" 8 1 8 1
+            , SrcSpan "tests/examples/AtOperator.hs" 9 1 9 1
+            , SrcSpan "tests/examples/AtOperator.hs" 9 1 9 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtOperator.hs" 1 1 1 13
+                , SrcSpan "tests/examples/AtOperator.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 2 1 2 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtOperator.hs" 2 1 2 13
+                , SrcSpan "tests/examples/AtOperator.hs" 2 28 2 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 2 14 2 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 1 4 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtOperator.hs" 4 14 4 15 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 1 4 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 6 4 13
+               , srcInfoPoints = []
+               }
+             (DHInfix
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 6 4 13
+                  , srcInfoPoints = []
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 6 4 7
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 6 4 7
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 8 4 11
+                     , srcInfoPoints = []
+                     }
+                   ":+:"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 12 4 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 12 4 13
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 16 4 21
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 16 4 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 4 16 4 21
+                      , srcInfoPoints = []
+                      }
+                    "Proxy")
+                 [])
+          ]
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 1 6 24
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 1 6 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 1 6 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 5 6 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/AtOperator.hs" 6 5 6 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 7 6 24
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 7 6 9
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 7 6 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 7 6 9
+                           , srcInfoPoints = []
+                           }
+                         "id")))
+                (TypeApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 10 6 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/AtOperator.hs" 6 10 6 11 ]
+                     }
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 11 6 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/AtOperator.hs" 6 11 6 12
+                            , SrcSpan "tests/examples/AtOperator.hs" 6 23 6 24
+                            ]
+                        }
+                      (TyInfix
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 12 6 23
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 12 6 15
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 12 6 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 12 6 15
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))
+                         (UnpromotedName
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 16 6 19
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 16 6 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 16 6 19
+                                    , srcInfoPoints = []
+                                    }
+                                  ":+:")))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 20 6 23
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 20 6 23
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 6 20 6 23
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int"))))))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 1 8 11
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 1 8 11
+                , srcInfoPoints = []
+                }
+              (PWildCard
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 1 8 2
+                   , srcInfoPoints = []
+                   })
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 3 8 5
+                   , srcInfoPoints = []
+                   }
+                 "@>")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 6 8 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 6 8 7
+                       , srcInfoPoints = []
+                       }
+                     "m")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 8 8 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/AtOperator.hs" 8 8 8 9 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 10 8 11
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 10 8 11
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtOperator.hs" 8 10 8 11
+                            , srcInfoPoints = []
+                            }
+                          "m"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/AtOperator.hs.prettyparser.golden b/tests/examples/AtOperator.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtOperator.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/AtOperator.hs.prettyprinter.golden b/tests/examples/AtOperator.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtOperator.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeOperators #-}
+
+data a :+: b = Proxy
+foo = id @(Int :+: Int)
+_ @> m = m
diff --git a/tests/examples/AtSign.hs b/tests/examples/AtSign.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtSign.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE TypeApplications #-}
+{- |
+Accelerate interface to the native CUDA implementation
+of the Fourier Transform provided by the CUFFT library.
+-}
+module Data.Array.Accelerate.CUFFT.Private where
+
+
+transform hndl@(Handle fallback mode width _) =
+   wrap mode (A.constant width) $
+   A.foreignAcc
+      (AF.CUDAForeignAcc "transformForeign" $ transformForeign hndl)
+      (unwrap mode (A.constant width) fallback)
+
+
diff --git a/tests/examples/AtSign.hs.exactprinter.golden b/tests/examples/AtSign.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtSign.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/AtSign.hs.parser.golden b/tests/examples/AtSign.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtSign.hs.parser.golden
@@ -0,0 +1,591 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 1 1 18 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/AtSign.hs" 1 1 1 1
+            , SrcSpan "tests/examples/AtSign.hs" 2 1 2 1
+            , SrcSpan "tests/examples/AtSign.hs" 3 1 3 1
+            , SrcSpan "tests/examples/AtSign.hs" 8 1 8 1
+            , SrcSpan "tests/examples/AtSign.hs" 8 1 8 1
+            , SrcSpan "tests/examples/AtSign.hs" 11 1 11 1
+            , SrcSpan "tests/examples/AtSign.hs" 18 1 18 1
+            , SrcSpan "tests/examples/AtSign.hs" 18 1 18 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 8 1 8 49
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/AtSign.hs" 8 1 8 7
+                  , SrcSpan "tests/examples/AtSign.hs" 8 44 8 49
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 8 8 8 43
+                 , srcInfoPoints = []
+                 }
+               "Data.Array.Accelerate.CUFFT.Private")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtSign.hs" 1 1 1 13
+                , SrcSpan "tests/examples/AtSign.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 2 1 2 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtSign.hs" 2 1 2 13
+                , SrcSpan "tests/examples/AtSign.hs" 2 28 2 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 2 14 2 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 3 1 3 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/AtSign.hs" 3 1 3 13
+                , SrcSpan "tests/examples/AtSign.hs" 3 31 3 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 3 14 3 30
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 1 15 48
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 1 15 48
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 1 11 10
+                   , srcInfoPoints = []
+                   }
+                 "transform")
+              [ PAsPat
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 11 11 46
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/AtSign.hs" 11 15 11 16 ]
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 11 11 15
+                       , srcInfoPoints = []
+                       }
+                     "hndl")
+                  (PParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 16 11 46
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/AtSign.hs" 11 16 11 17
+                           , SrcSpan "tests/examples/AtSign.hs" 11 45 11 46
+                           ]
+                       }
+                     (PApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 17 11 45
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 17 11 23
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 17 11 23
+                                , srcInfoPoints = []
+                                }
+                              "Handle"))
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 24 11 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 24 11 32
+                                 , srcInfoPoints = []
+                                 }
+                               "fallback")
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 33 11 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 33 11 37
+                                 , srcInfoPoints = []
+                                 }
+                               "mode")
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 38 11 43
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 38 11 43
+                                 , srcInfoPoints = []
+                                 }
+                               "width")
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 44 11 45
+                              , srcInfoPoints = []
+                              }
+                        ]))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 11 47 15 48
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/AtSign.hs" 11 47 11 48 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 15 48
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 12 32
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 12 13
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 12 8
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 12 8
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 4 12 8
+                                     , srcInfoPoints = []
+                                     }
+                                   "wrap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 9 12 13
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 9 12 13
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 9 12 13
+                                     , srcInfoPoints = []
+                                     }
+                                   "mode"))))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 14 12 32
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/AtSign.hs" 12 14 12 15
+                                , SrcSpan "tests/examples/AtSign.hs" 12 31 12 32
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 15 12 31
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 15 12 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Qual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 15 12 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (ModuleName
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 12 15 12 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "A")
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 12 15 12 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "constant")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 26 12 31
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 26 12 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 12 26 12 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "width"))))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 33 12 34
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 33 12 34
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 12 33 12 34
+                               , srcInfoPoints = []
+                               }
+                             "$")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 15 48
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 14 69
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 13 16
+                               , srcInfoPoints = []
+                               }
+                             (Qual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 13 16
+                                  , srcInfoPoints = []
+                                  }
+                                (ModuleName
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 13 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "A")
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 13 4 13 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "foreignAcc")))
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 14 7 14 69
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/AtSign.hs" 14 7 14 8
+                                   , SrcSpan "tests/examples/AtSign.hs" 14 68 14 69
+                                   ]
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 14 8 14 68
+                                  , srcInfoPoints = []
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 14 8 14 44
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 14 8 14 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Qual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 14 8 14 25
+                                           , srcInfoPoints = []
+                                           }
+                                         (ModuleName
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 14 8 14 25
+                                              , srcInfoPoints = []
+                                              }
+                                            "AF")
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 14 8 14 25
+                                              , srcInfoPoints = []
+                                              }
+                                            "CUDAForeignAcc")))
+                                   (Lit
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 14 26 14 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (String
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 14 26 14 44
+                                           , srcInfoPoints = []
+                                           }
+                                         "transformForeign"
+                                         "transformForeign")))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 14 45 14 46
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 14 45 14 46
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 14 45 14 46
+                                           , srcInfoPoints = []
+                                           }
+                                         "$")))
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 14 47 14 68
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 14 47 14 63
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 14 47 14 63
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 14 47 14 63
+                                              , srcInfoPoints = []
+                                              }
+                                            "transformForeign")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 14 64 14 68
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 14 64 14 68
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 14 64 14 68
+                                              , srcInfoPoints = []
+                                              }
+                                            "hndl")))))))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 7 15 48
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/AtSign.hs" 15 7 15 8
+                                , SrcSpan "tests/examples/AtSign.hs" 15 47 15 48
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 8 15 47
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 8 15 38
+                                  , srcInfoPoints = []
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 8 15 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 15 8 15 14
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 15 8 15 14
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 15 8 15 14
+                                              , srcInfoPoints = []
+                                              }
+                                            "unwrap")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 15 15 15 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 15 15 15 19
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 15 15 15 19
+                                              , srcInfoPoints = []
+                                              }
+                                            "mode"))))
+                                (Paren
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 20 15 38
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/AtSign.hs" 15 20 15 21
+                                         , SrcSpan "tests/examples/AtSign.hs" 15 37 15 38
+                                         ]
+                                     }
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 15 21 15 37
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 15 21 15 31
+                                           , srcInfoPoints = []
+                                           }
+                                         (Qual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 15 21 15 31
+                                              , srcInfoPoints = []
+                                              }
+                                            (ModuleName
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/AtSign.hs" 15 21 15 31
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "A")
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/AtSign.hs" 15 21 15 31
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "constant")))
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/AtSign.hs" 15 32 15 37
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/AtSign.hs" 15 32 15 37
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/AtSign.hs" 15 32 15 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "width"))))))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 39 15 47
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/AtSign.hs" 15 39 15 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/AtSign.hs" 15 39 15 47
+                                        , srcInfoPoints = []
+                                        }
+                                      "fallback"))))))))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/AtSign.hs" 4 1 7 3)
+        " |\nAccelerate interface to the native CUDA implementation\nof the Fourier Transform provided by the CUFFT library.\n"
+    ]
+  )
diff --git a/tests/examples/AtSign.hs.prettyparser.golden b/tests/examples/AtSign.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtSign.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/AtSign.hs.prettyprinter.golden b/tests/examples/AtSign.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/AtSign.hs.prettyprinter.golden
@@ -0,0 +1,9 @@
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE TypeApplications #-}
+module Data.Array.Accelerate.CUFFT.Private where
+transform hndl@(Handle fallback mode width _)
+  = wrap mode (A.constant width) $
+      A.foreignAcc
+        (AF.CUDAForeignAcc "transformForeign" $ transformForeign hndl)
+        (unwrap mode (A.constant width) fallback)
diff --git a/tests/examples/Attributes.hs.parser.golden b/tests/examples/Attributes.hs.parser.golden
# file too large to diff: tests/examples/Attributes.hs.parser.golden
diff --git a/tests/examples/Attributes.hs.prettyprinter.golden b/tests/examples/Attributes.hs.prettyprinter.golden
--- a/tests/examples/Attributes.hs.prettyprinter.golden
+++ b/tests/examples/Attributes.hs.prettyprinter.golden
@@ -24,7 +24,7 @@
 import Data.Maybe (isJust)
 import Control.Arrow (first)
 import Control.Monad (liftM, liftM2)
- 
+
 data Attribute = Damping Double
                | K Double
                | URL URL
@@ -169,10 +169,10 @@
                | Weight Double
                | Width Double
                | Z Double
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 type Attributes = [Attribute]
- 
+
 instance PrintDot Attribute where
         unqtDot (Damping v) = printField "Damping" v
         unqtDot (K v) = printField "K" v
@@ -319,7 +319,7 @@
         unqtDot (Width v) = printField "width" v
         unqtDot (Z v) = printField "z" v
         listToDot = unqtListToDot
- 
+
 instance ParseDot Attribute where
         parseUnqt
           = oneOf
@@ -458,7 +458,7 @@
                liftM Width $ parseField "width", liftM Z $ parseField "z"]
         parse = parseUnqt
         parseList = parseUnqtList
- 
+
 usedByGraphs :: Attribute -> Bool
 usedByGraphs Damping{} = True
 usedByGraphs K{} = True
@@ -540,7 +540,7 @@
 usedByGraphs ViewPort{} = True
 usedByGraphs VoroMargin{} = True
 usedByGraphs _ = False
- 
+
 usedByClusters :: Attribute -> Bool
 usedByClusters K{} = True
 usedByClusters URL{} = True
@@ -565,11 +565,11 @@
 usedByClusters Target{} = True
 usedByClusters Tooltip{} = True
 usedByClusters _ = False
- 
+
 usedBySubGraphs :: Attribute -> Bool
 usedBySubGraphs Rank{} = True
 usedBySubGraphs _ = False
- 
+
 usedByNodes :: Attribute -> Bool
 usedByNodes URL{} = True
 usedByNodes ColorScheme{} = True
@@ -613,7 +613,7 @@
 usedByNodes Width{} = True
 usedByNodes Z{} = True
 usedByNodes _ = False
- 
+
 usedByEdges :: Attribute -> Bool
 usedByEdges URL{} = True
 usedByEdges ArrowHead{} = True
@@ -671,15 +671,15 @@
 usedByEdges Tooltip{} = True
 usedByEdges Weight{} = True
 usedByEdges _ = False
- 
+
 type EscString = String
- 
+
 newtype URL = UStr{urlString :: EscString}
-            deriving (Eq, Ord, Show, Read)
- 
+                deriving (Eq, Ord, Show, Read)
+
 instance PrintDot URL where
         unqtDot = wrap (char '<') (char '>') . text . urlString
- 
+
 instance ParseDot URL where
         parseUnqt
           = liftM UStr $
@@ -688,15 +688,15 @@
           where open = '<'
                 close = '>'
         parse = parseUnqt
- 
+
 newtype ArrowType = AType [(ArrowModifier, ArrowShape)]
-                  deriving (Eq, Ord, Show, Read)
- 
+                      deriving (Eq, Ord, Show, Read)
+
 box, crow, diamond, dotArrow, inv, noArrow, normal, tee, vee ::
      ArrowType
- 
+
 oDot, invDot, invODot, oBox, oDiamond :: ArrowType
- 
+
 eDiamond, openArr, halfOpen, emptyArr, invEmpty :: ArrowType
 normal = AType [(noMods, Normal)]
 inv = AType [(noMods, Inv)]
@@ -717,11 +717,11 @@
 openArr = vee
 halfOpen = AType [(ArrMod FilledArrow LeftSide, Vee)]
 vee = AType [(noMods, Vee)]
- 
+
 instance PrintDot ArrowType where
         unqtDot (AType mas) = hcat $ map appMod mas
           where appMod (m, a) = unqtDot m <> unqtDot a
- 
+
 instance ParseDot ArrowType where
         parseUnqt
           = do mas <- many1 $
@@ -730,14 +730,14 @@
                            return (m, a)
                return $ AType mas
               `onFail` specialArrowParse
- 
+
 specialArrowParse :: Parse ArrowType
 specialArrowParse
   = oneOf
       [stringRep eDiamond "ediamond", stringRep openArr "open",
        stringRep halfOpen "halfopen", stringRep emptyArr "empty",
        stringRep invEmpty "invempty"]
- 
+
 data ArrowShape = Box
                 | Crow
                 | Diamond
@@ -747,8 +747,8 @@
                 | Normal
                 | Tee
                 | Vee
-                deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                    deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ArrowShape where
         unqtDot Box = unqtDot "box"
         unqtDot Crow = unqtDot "crow"
@@ -759,7 +759,7 @@
         unqtDot Normal = unqtDot "normal"
         unqtDot Tee = unqtDot "tee"
         unqtDot Vee = unqtDot "vee"
- 
+
 instance ParseDot ArrowShape where
         parseUnqt
           = oneOf
@@ -768,67 +768,67 @@
                stringRep Inv "inv", stringRep NoArrow "none",
                stringRep Normal "normal", stringRep Tee "tee",
                stringRep Vee "vee"]
- 
+
 data ArrowModifier = ArrMod{arrowFill :: ArrowFill,
                             arrowSide :: ArrowSide}
-                   deriving (Eq, Ord, Show, Read)
- 
+                       deriving (Eq, Ord, Show, Read)
+
 noMods :: ArrowModifier
 noMods = ArrMod FilledArrow BothSides
- 
+
 openMod :: ArrowModifier
 openMod = ArrMod OpenArrow BothSides
- 
+
 instance PrintDot ArrowModifier where
         unqtDot (ArrMod f s) = unqtDot f <> unqtDot s
- 
+
 instance ParseDot ArrowModifier where
         parseUnqt
           = do f <- parseUnqt
                s <- parseUnqt
                return $ ArrMod f s
- 
+
 data ArrowFill = OpenArrow
                | FilledArrow
-               deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                   deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ArrowFill where
         unqtDot OpenArrow = char 'o'
         unqtDot FilledArrow = empty
- 
+
 instance ParseDot ArrowFill where
         parseUnqt
           = liftM (bool FilledArrow OpenArrow . isJust) $
               optional (character 'o')
         parse = parseUnqt
- 
+
 data ArrowSide = LeftSide
                | RightSide
                | BothSides
-               deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                   deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ArrowSide where
         unqtDot LeftSide = char 'l'
         unqtDot RightSide = char 'r'
         unqtDot BothSides = empty
- 
+
 instance ParseDot ArrowSide where
         parseUnqt
           = liftM getSideType $ optional (oneOf $ map character ['l', 'r'])
           where getSideType
                   = maybe BothSides (bool RightSide LeftSide . (==) 'l')
         parse = parseUnqt
- 
+
 data AspectType = RatioOnly Double
                 | RatioPassCount Double Int
-                deriving (Eq, Ord, Show, Read)
- 
+                    deriving (Eq, Ord, Show, Read)
+
 instance PrintDot AspectType where
         unqtDot (RatioOnly r) = unqtDot r
         unqtDot (RatioPassCount r p) = commaDel r p
         toDot at@RatioOnly{} = unqtDot at
         toDot at@RatioPassCount{} = doubleQuotes $ unqtDot at
- 
+
 instance ParseDot AspectType where
         parseUnqt
           = liftM (uncurry RatioPassCount) commaSepUnqt `onFail`
@@ -836,141 +836,141 @@
         parse
           = quotedParse (liftM (uncurry RatioPassCount) commaSepUnqt)
               `onFail` liftM RatioOnly parse
- 
+
 data Rect = Rect Point Point
-          deriving (Eq, Ord, Show, Read)
- 
+              deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Rect where
         unqtDot (Rect p1 p2) = commaDel p1 p2
         toDot = doubleQuotes . unqtDot
- 
+
 instance ParseDot Rect where
         parseUnqt = liftM (uncurry Rect) commaSepUnqt
         parse = quotedParse parseUnqt
- 
+
 data ClusterMode = Local
                  | Global
                  | NoCluster
-                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                     deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ClusterMode where
         unqtDot Local = unqtDot "local"
         unqtDot Global = unqtDot "global"
         unqtDot NoCluster = unqtDot "none"
- 
+
 instance ParseDot ClusterMode where
         parseUnqt
           = oneOf
               [stringRep Local "local", stringRep Global "global",
                stringRep NoCluster "none"]
- 
+
 data DirType = Forward
              | Back
              | Both
              | NoDir
-             deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot DirType where
         unqtDot Forward = unqtDot "forward"
         unqtDot Back = unqtDot "back"
         unqtDot Both = unqtDot "both"
         unqtDot NoDir = unqtDot "none"
- 
+
 instance ParseDot DirType where
         parseUnqt
           = oneOf
               [stringRep Forward "forward", stringRep Back "back",
                stringRep Both "both", stringRep NoDir "none"]
- 
+
 data DEConstraints = EdgeConstraints
                    | NoConstraints
                    | HierConstraints
-                   deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                       deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot DEConstraints where
         unqtDot EdgeConstraints = unqtDot True
         unqtDot NoConstraints = unqtDot False
         unqtDot HierConstraints = text "hier"
- 
+
 instance ParseDot DEConstraints where
         parseUnqt
           = liftM (bool NoConstraints EdgeConstraints) parse `onFail`
               stringRep HierConstraints "hier"
- 
+
 data DPoint = DVal Double
             | PVal Point
-            deriving (Eq, Ord, Show, Read)
- 
+                deriving (Eq, Ord, Show, Read)
+
 instance PrintDot DPoint where
         unqtDot (DVal d) = unqtDot d
         unqtDot (PVal p) = unqtDot p
         toDot (DVal d) = toDot d
         toDot (PVal p) = toDot p
- 
+
 instance ParseDot DPoint where
         parseUnqt = liftM PVal parseUnqt `onFail` liftM DVal parseUnqt
         parse = liftM PVal parse `onFail` liftM DVal parse
- 
+
 data ModeType = Major
               | KK
               | Hier
               | IpSep
-              deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                  deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ModeType where
         unqtDot Major = text "major"
         unqtDot KK = text "KK"
         unqtDot Hier = text "hier"
         unqtDot IpSep = text "ipsep"
- 
+
 instance ParseDot ModeType where
         parseUnqt
           = oneOf
               [stringRep Major "major", stringRep KK "KK", stringRep Hier "hier",
                stringRep IpSep "ipsep"]
- 
+
 data Model = ShortPath
            | SubSet
            | Circuit
-           deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+               deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot Model where
         unqtDot ShortPath = text "shortpath"
         unqtDot SubSet = text "subset"
         unqtDot Circuit = text "circuit"
- 
+
 instance ParseDot Model where
         parseUnqt
           = oneOf
               [stringRep ShortPath "shortpath", stringRep SubSet "subset",
                stringRep Circuit "circuit"]
- 
+
 data Label = StrLabel EscString
            | URLLabel URL
-           deriving (Eq, Ord, Show, Read)
- 
+               deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Label where
         unqtDot (StrLabel s) = unqtDot s
         unqtDot (URLLabel u) = unqtDot u
         toDot (StrLabel s) = toDot s
         toDot (URLLabel u) = toDot u
- 
+
 instance ParseDot Label where
         parseUnqt
           = liftM StrLabel parseUnqt `onFail` liftM URLLabel parseUnqt
         parse = liftM StrLabel parse `onFail` liftM URLLabel parse
- 
+
 data Point = Point Int Int
            | PointD Double Double
-           deriving (Eq, Ord, Show, Read)
- 
+               deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Point where
         unqtDot (Point x y) = commaDel x y
         unqtDot (PointD x y) = commaDel x y
         toDot = doubleQuotes . unqtDot
         unqtListToDot = hsep . map unqtDot
         listToDot = doubleQuotes . unqtListToDot
- 
+
 instance ParseDot Point where
         parseUnqt
           = intDblPoint `onFail` liftM (uncurry Point) commaSepUnqt `onFail`
@@ -978,12 +978,12 @@
           where intDblPoint
                   = liftM (uncurry PointD . first fI) $
                       commaSep' parseUnqt parseStrictFloat
-                 
+                
                 fI :: Int -> Double
                 fI = fromIntegral
         parse = quotedParse parseUnqt
         parseUnqtList = sepBy1 parseUnqt whitespace
- 
+
 data Overlap = KeepOverlaps
              | RemoveOverlaps
              | ScaleOverlaps
@@ -992,8 +992,8 @@
              | CompressOverlap
              | VpscOverlap
              | IpsepOverlap
-             deriving (Eq, Ord, Show, Read)
- 
+                 deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Overlap where
         unqtDot KeepOverlaps = unqtDot True
         unqtDot RemoveOverlaps = unqtDot False
@@ -1004,7 +1004,7 @@
         unqtDot CompressOverlap = text "compress"
         unqtDot VpscOverlap = text "vpsc"
         unqtDot IpsepOverlap = text "ipsep"
- 
+
 instance ParseDot Overlap where
         parseUnqt
           = oneOf
@@ -1014,17 +1014,17 @@
                string "prism" >> liftM PrismOverlap (optional parse),
                stringRep CompressOverlap "compress", stringRep VpscOverlap "vpsc",
                stringRep IpsepOverlap "ipsep"]
- 
+
 data LayerRange = LRID LayerID
                 | LRS LayerID String LayerID
-                deriving (Eq, Ord, Show, Read)
- 
+                    deriving (Eq, Ord, Show, Read)
+
 instance PrintDot LayerRange where
         unqtDot (LRID lid) = unqtDot lid
         unqtDot (LRS id1 s id2) = unqtDot id1 <> unqtDot s <> unqtDot id2
         toDot (LRID lid) = toDot lid
         toDot lrs = doubleQuotes $ unqtDot lrs
- 
+
 instance ParseDot LayerRange where
         parseUnqt
           = do id1 <- parseUnqt
@@ -1039,55 +1039,55 @@
                   id2 <- parseUnqt
                   return $ LRS id1 s id2)
               `onFail` liftM LRID parse
- 
+
 parseLayerSep :: Parse String
 parseLayerSep = many1 . oneOf $ map character defLayerSep
- 
+
 defLayerSep :: [Char]
 defLayerSep = [' ', ':', '\t']
- 
+
 parseLayerName :: Parse String
 parseLayerName
   = many1 . orQuote $
       satisfy (liftM2 (&&) notLayerSep ((/=) quoteChar))
- 
+
 parseLayerName' :: Parse String
 parseLayerName' = stringBlock `onFail` quotedParse parseLayerName
- 
+
 notLayerSep :: Char -> Bool
 notLayerSep = flip notElem defLayerSep
- 
+
 data LayerID = AllLayers
              | LRInt Int
              | LRName String
-             deriving (Eq, Ord, Show, Read)
- 
+                 deriving (Eq, Ord, Show, Read)
+
 instance PrintDot LayerID where
         unqtDot AllLayers = text "all"
         unqtDot (LRInt n) = unqtDot n
         unqtDot (LRName nm) = unqtDot nm
         toDot (LRName nm) = toDot nm
         toDot li = unqtDot li
- 
+
 instance ParseDot LayerID where
         parseUnqt = liftM checkLayerName parseLayerName
         parse
           = oneOf [liftM checkLayerName parseLayerName', liftM LRInt parse]
- 
+
 checkLayerName :: String -> LayerID
 checkLayerName str = maybe checkAll LRInt $ stringToInt str
   where checkAll
           = if map toLower str == "all" then AllLayers else LRName str
- 
+
 data LayerList = LL String [(String, String)]
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 instance PrintDot LayerList where
         unqtDot (LL l1 ols) = unqtDot l1 <> hcat (map subLL ols)
           where subLL (s, l) = unqtDot s <> unqtDot l
         toDot (LL l1 []) = toDot l1
         toDot ll = doubleQuotes $ unqtDot ll
- 
+
 instance ParseDot LayerList where
         parseUnqt
           = do l1 <- parseLayerName
@@ -1099,45 +1099,45 @@
         parse
           = quotedParse parseUnqt `onFail`
               liftM (flip LL []) (parseLayerName' `onFail` numString)
- 
+
 data OutputMode = BreadthFirst
                 | NodesFirst
                 | EdgesFirst
-                deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                    deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot OutputMode where
         unqtDot BreadthFirst = text "breadthfirst"
         unqtDot NodesFirst = text "nodesfirst"
         unqtDot EdgesFirst = text "edgesfirst"
- 
+
 instance ParseDot OutputMode where
         parseUnqt
           = oneOf
               [stringRep BreadthFirst "breadthfirst",
                stringRep NodesFirst "nodesfirst",
                stringRep EdgesFirst "edgesfirst"]
- 
+
 data Pack = DoPack
           | DontPack
           | PackMargin Int
-          deriving (Eq, Ord, Show, Read)
- 
+              deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Pack where
         unqtDot DoPack = unqtDot True
         unqtDot DontPack = unqtDot False
         unqtDot (PackMargin m) = unqtDot m
- 
+
 instance ParseDot Pack where
         parseUnqt
           = oneOf
               [liftM PackMargin parseUnqt, liftM (bool DontPack DoPack) onlyBool]
- 
+
 data PackMode = PackNode
               | PackClust
               | PackGraph
               | PackArray Bool Bool (Maybe Int)
-              deriving (Eq, Ord, Show, Read)
- 
+                  deriving (Eq, Ord, Show, Read)
+
 instance PrintDot PackMode where
         unqtDot PackNode = text "node"
         unqtDot PackClust = text "clust"
@@ -1148,7 +1148,7 @@
                 isUnder = if c || u then flip (<>) $ char '_' else id
                 isC = if c then flip (<>) $ char 'c' else id
                 isU = if u then flip (<>) $ char 'u' else id
- 
+
 instance ParseDot PackMode where
         parseUnqt
           = oneOf
@@ -1164,17 +1164,17 @@
                   return $ PackArray c u mi]
           where hasCharacter ms c = maybe False (elem c) ms
                 isCU = flip elem ['c', 'u']
- 
+
 data Pos = PointPos Point
          | SplinePos [Spline]
-         deriving (Eq, Ord, Show, Read)
- 
+             deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Pos where
         unqtDot (PointPos p) = unqtDot p
         unqtDot (SplinePos ss) = unqtDot ss
         toDot (PointPos p) = toDot p
         toDot (SplinePos ss) = toDot ss
- 
+
 instance ParseDot Pos where
         parseUnqt
           = do splns <- parseUnqt
@@ -1182,14 +1182,14 @@
                    [Spline Nothing Nothing [p]] -> return $ PointPos p
                    _ -> return $ SplinePos splns
         parse = quotedParse parseUnqt
- 
+
 data EdgeType = SplineEdges
               | LineEdges
               | NoEdges
               | PolyLine
               | CompoundEdge
-              deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                  deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot EdgeType where
         unqtDot SplineEdges = toDot True
         unqtDot LineEdges = toDot False
@@ -1198,7 +1198,7 @@
         unqtDot CompoundEdge = text "compound"
         toDot NoEdges = doubleQuotes empty
         toDot et = unqtDot et
- 
+
 instance ParseDot EdgeType where
         parseUnqt
           = oneOf
@@ -1206,7 +1206,7 @@
                stringRep SplineEdges "spline", stringRep LineEdges "line",
                stringRep PolyLine "polyline", stringRep CompoundEdge "compound"]
         parse = stringRep NoEdges "\"\"" `onFail` optionalQuoted parseUnqt
- 
+
 data PageDir = Bl
              | Br
              | Tl
@@ -1215,8 +1215,8 @@
              | Rt
              | Lb
              | Lt
-             deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot PageDir where
         unqtDot Bl = text "BL"
         unqtDot Br = text "BR"
@@ -1226,17 +1226,17 @@
         unqtDot Rt = text "RT"
         unqtDot Lb = text "LB"
         unqtDot Lt = text "LT"
- 
+
 instance ParseDot PageDir where
         parseUnqt
           = oneOf
               [stringRep Bl "BL", stringRep Br "BR", stringRep Tl "TL",
                stringRep Tr "TR", stringRep Rb "RB", stringRep Rt "RT",
                stringRep Lb "LB", stringRep Lt "LT"]
- 
+
 data Spline = Spline (Maybe Point) (Maybe Point) [Point]
-            deriving (Eq, Ord, Show, Read)
- 
+                deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Spline where
         unqtDot (Spline ms me ps) = addS . addE . hsep $ map unqtDot ps
           where addP t = maybe id ((<+>) . commaDel t)
@@ -1245,7 +1245,7 @@
         toDot = doubleQuotes . unqtDot
         unqtListToDot = hcat . punctuate semi . map unqtDot
         listToDot = doubleQuotes . unqtListToDot
- 
+
 instance ParseDot Spline where
         parseUnqt
           = do ms <- parseP 's'
@@ -1259,36 +1259,36 @@
                          parseUnqt `discard` whitespace
         parse = quotedParse parseUnqt
         parseUnqtList = sepBy1 parseUnqt (character ';')
- 
+
 data QuadType = NormalQT
               | FastQT
               | NoQT
-              deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                  deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot QuadType where
         unqtDot NormalQT = text "normal"
         unqtDot FastQT = text "fast"
         unqtDot NoQT = text "none"
- 
+
 instance ParseDot QuadType where
         parseUnqt
           = oneOf
               [stringRep NormalQT "normal", stringRep FastQT "fast",
                stringRep NoQT "none", character '2' >> return FastQT,
                liftM (bool NoQT NormalQT) parse]
- 
+
 data Root = IsCentral
           | NotCentral
           | NodeName String
-          deriving (Eq, Ord, Show, Read)
- 
+              deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Root where
         unqtDot IsCentral = unqtDot True
         unqtDot NotCentral = unqtDot False
         unqtDot (NodeName n) = unqtDot n
         toDot (NodeName n) = toDot n
         toDot r = unqtDot r
- 
+
 instance ParseDot Root where
         parseUnqt
           = liftM (bool NotCentral IsCentral) onlyBool `onFail`
@@ -1296,46 +1296,46 @@
         parse
           = optionalQuoted (liftM (bool NotCentral IsCentral) onlyBool)
               `onFail` liftM NodeName parse
- 
+
 data RankType = SameRank
               | MinRank
               | SourceRank
               | MaxRank
               | SinkRank
-              deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                  deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot RankType where
         unqtDot SameRank = text "same"
         unqtDot MinRank = text "min"
         unqtDot SourceRank = text "source"
         unqtDot MaxRank = text "max"
         unqtDot SinkRank = text "sink"
- 
+
 instance ParseDot RankType where
         parseUnqt
           = oneOf
               [stringRep SameRank "same", stringRep MinRank "min",
                stringRep SourceRank "source", stringRep MaxRank "max",
                stringRep SinkRank "sink"]
- 
+
 data RankDir = FromTop
              | FromLeft
              | FromBottom
              | FromRight
-             deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot RankDir where
         unqtDot FromTop = text "TB"
         unqtDot FromLeft = text "LR"
         unqtDot FromBottom = text "BT"
         unqtDot FromRight = text "RL"
- 
+
 instance ParseDot RankDir where
         parseUnqt
           = oneOf
               [stringRep FromTop "TB", stringRep FromLeft "LR",
                stringRep FromBottom "BT", stringRep FromRight "RL"]
- 
+
 data Shape = BoxShape
            | Polygon
            | Ellipse
@@ -1366,8 +1366,8 @@
            | Folder
            | Box3D
            | Component
-           deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+               deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot Shape where
         unqtDot BoxShape = text "box"
         unqtDot Polygon = text "polygon"
@@ -1399,7 +1399,7 @@
         unqtDot Folder = text "folder"
         unqtDot Box3D = text "box3d"
         unqtDot Component = text "component"
- 
+
 instance ParseDot Shape where
         parseUnqt
           = oneOf
@@ -1422,7 +1422,7 @@
                stringRep MSquare "Msquare", stringRep MCircle "Mcircle",
                stringRep Note "note", stringRep Tab "tab",
                stringRep Folder "folder", stringRep Component "component"]
- 
+
 data SmoothType = NoSmooth
                 | AvgDist
                 | GraphDist
@@ -1430,8 +1430,8 @@
                 | RNG
                 | Spring
                 | TriangleSmooth
-                deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                    deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot SmoothType where
         unqtDot NoSmooth = text "none"
         unqtDot AvgDist = text "avg_dist"
@@ -1440,7 +1440,7 @@
         unqtDot RNG = text "rng"
         unqtDot Spring = text "spring"
         unqtDot TriangleSmooth = text "triangle"
- 
+
 instance ParseDot SmoothType where
         parseUnqt
           = oneOf
@@ -1448,17 +1448,17 @@
                stringRep GraphDist "graph_dist", stringRep PowerDist "power_dist",
                stringRep RNG "rng", stringRep Spring "spring",
                stringRep TriangleSmooth "triangle"]
- 
+
 data StartType = StartStyle STStyle
                | StartSeed Int
                | StartStyleSeed STStyle Int
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 instance PrintDot StartType where
         unqtDot (StartStyle ss) = unqtDot ss
         unqtDot (StartSeed s) = unqtDot s
         unqtDot (StartStyleSeed ss s) = unqtDot ss <> unqtDot s
- 
+
 instance ParseDot StartType where
         parseUnqt
           = oneOf
@@ -1466,26 +1466,26 @@
                   s <- parseUnqt
                   return $ StartStyleSeed ss s,
                liftM StartStyle parseUnqt, liftM StartSeed parseUnqt]
- 
+
 data STStyle = RegularStyle
              | SelfStyle
              | RandomStyle
-             deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot STStyle where
         unqtDot RegularStyle = text "regular"
         unqtDot SelfStyle = text "self"
         unqtDot RandomStyle = text "random"
- 
+
 instance ParseDot STStyle where
         parseUnqt
           = oneOf
               [stringRep RegularStyle "regular", stringRep SelfStyle "self",
                stringRep RandomStyle "random"]
- 
+
 data StyleItem = SItem StyleName [String]
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 instance PrintDot StyleItem where
         unqtDot (SItem nm args)
           | null args = dnm
@@ -1498,7 +1498,7 @@
         unqtListToDot = hcat . punctuate comma . map unqtDot
         listToDot [SItem nm []] = toDot nm
         listToDot sis = doubleQuotes $ unqtListToDot sis
- 
+
 instance ParseDot StyleItem where
         parseUnqt
           = do nm <- parseUnqt
@@ -1509,12 +1509,12 @@
               liftM (flip SItem []) parse
         parseUnqtList = sepBy1 parseUnqt parseComma
         parseList = quotedParse parseUnqtList `onFail` liftM return parse
- 
+
 parseArgs :: Parse [String]
 parseArgs
   = bracketSep (character '(') parseComma (character ')')
       parseStyleName
- 
+
 data StyleName = Dashed
                | Dotted
                | Solid
@@ -1524,8 +1524,8 @@
                | Diagonals
                | Rounded
                | DD String
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 instance PrintDot StyleName where
         unqtDot Dashed = text "dashed"
         unqtDot Dotted = text "dotted"
@@ -1538,7 +1538,7 @@
         unqtDot (DD nm) = unqtDot nm
         toDot (DD nm) = toDot nm
         toDot sn = unqtDot sn
- 
+
 instance ParseDot StyleName where
         parseUnqt = liftM checkDD parseStyleName
         parse
@@ -1547,7 +1547,7 @@
                 do f <- orQuote $ noneOf [quoteChar, '(', ')', ',', ' ', ']']
                    r <- many (orQuote $ noneOf [quoteChar, '(', ')', ',', ']'])
                    return $ f : r
- 
+
 checkDD :: String -> StyleName
 checkDD str
   = case map toLower str of
@@ -1560,23 +1560,23 @@
         "diagonals" -> Diagonals
         "rounded" -> Rounded
         _ -> DD str
- 
+
 parseStyleName :: Parse String
 parseStyleName
   = do f <- orQuote $ noneOf [quoteChar, '(', ')', ',', ' ']
        r <- many (orQuote $ noneOf [quoteChar, '(', ')', ','])
        return $ f : r
- 
+
 newtype PortPos = PP CompassPoint
-                deriving (Eq, Ord, Show, Read)
- 
+                    deriving (Eq, Ord, Show, Read)
+
 instance PrintDot PortPos where
         unqtDot (PP cp) = unqtDot cp
         toDot (PP cp) = toDot cp
- 
+
 instance ParseDot PortPos where
         parseUnqt = liftM PP parseUnqt
- 
+
 data CompassPoint = North
                   | NorthEast
                   | East
@@ -1587,8 +1587,8 @@
                   | NorthWest
                   | CenterPoint
                   | NoCP
-                  deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                      deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot CompassPoint where
         unqtDot NorthEast = text "ne"
         unqtDot NorthWest = text "nw"
@@ -1600,7 +1600,7 @@
         unqtDot West = text "w"
         unqtDot CenterPoint = text "c"
         unqtDot NoCP = text "_"
- 
+
 instance ParseDot CompassPoint where
         parseUnqt
           = oneOf
@@ -1608,18 +1608,18 @@
                stringRep North "n", stringRep SouthEast "se",
                stringRep SouthWest "sw", stringRep South "s", stringRep East "e",
                stringRep West "w", stringRep CenterPoint "c", stringRep NoCP "_"]
- 
+
 data ViewPort = VP{wVal :: Double, hVal :: Double, zVal :: Double,
                    focus :: Maybe FocusType}
-              deriving (Eq, Ord, Show, Read)
- 
+                  deriving (Eq, Ord, Show, Read)
+
 instance PrintDot ViewPort where
         unqtDot vp = maybe vs ((<>) (vs <> comma) . unqtDot) $ focus vp
           where vs
                   = hcat . punctuate comma $
                       map (unqtDot . flip ($) vp) [wVal, hVal, zVal]
         toDot = doubleQuotes . unqtDot
- 
+
 instance ParseDot ViewPort where
         parseUnqt
           = do wv <- parseUnqt
@@ -1630,86 +1630,86 @@
                mf <- optional $ parseComma >> parseUnqt
                return $ VP wv hv zv mf
         parse = quotedParse parseUnqt
- 
+
 data FocusType = XY Point
                | NodeFocus String
-               deriving (Eq, Ord, Show, Read)
- 
+                   deriving (Eq, Ord, Show, Read)
+
 instance PrintDot FocusType where
         unqtDot (XY p) = unqtDot p
         unqtDot (NodeFocus nm) = unqtDot nm
         toDot (XY p) = toDot p
         toDot (NodeFocus nm) = toDot nm
- 
+
 instance ParseDot FocusType where
         parseUnqt = liftM XY parseUnqt `onFail` liftM NodeFocus parseUnqt
         parse = liftM XY parse `onFail` liftM NodeFocus parse
- 
+
 data VerticalPlacement = VTop
                        | VCenter
                        | VBottom
-                       deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                           deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot VerticalPlacement where
         unqtDot VTop = char 't'
         unqtDot VCenter = char 'c'
         unqtDot VBottom = char 'b'
- 
+
 instance ParseDot VerticalPlacement where
         parseUnqt
           = oneOf
               [stringRep VTop "t", stringRep VCenter "c", stringRep VBottom "b"]
- 
+
 data ScaleType = UniformScale
                | NoScale
                | FillWidth
                | FillHeight
                | FillBoth
-               deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                   deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot ScaleType where
         unqtDot UniformScale = unqtDot True
         unqtDot NoScale = unqtDot False
         unqtDot FillWidth = text "width"
         unqtDot FillHeight = text "height"
         unqtDot FillBoth = text "both"
- 
+
 instance ParseDot ScaleType where
         parseUnqt
           = oneOf
               [stringRep UniformScale "true", stringRep NoScale "false",
                stringRep FillWidth "width", stringRep FillHeight "height",
                stringRep FillBoth "both"]
- 
+
 data Justification = JLeft
                    | JRight
                    | JCenter
-                   deriving (Eq, Ord, Bounded, Enum, Show, Read)
- 
+                       deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
 instance PrintDot Justification where
         unqtDot JLeft = char 'l'
         unqtDot JRight = char 'r'
         unqtDot JCenter = char 'c'
- 
+
 instance ParseDot Justification where
         parseUnqt
           = oneOf
               [stringRep JLeft "l", stringRep JRight "r", stringRep JCenter "c"]
- 
+
 data Ratios = AspectRatio Double
             | FillRatio
             | CompressRatio
             | ExpandRatio
             | AutoRatio
-            deriving (Eq, Ord, Show, Read)
- 
+                deriving (Eq, Ord, Show, Read)
+
 instance PrintDot Ratios where
         unqtDot (AspectRatio r) = unqtDot r
         unqtDot FillRatio = text "fill"
         unqtDot CompressRatio = text "compress"
         unqtDot ExpandRatio = text "expand"
         unqtDot AutoRatio = text "auto"
- 
+
 instance ParseDot Ratios where
         parseUnqt
           = oneOf
diff --git a/tests/examples/BadStringLineBreak.hs.parser.golden b/tests/examples/BadStringLineBreak.hs.parser.golden
--- a/tests/examples/BadStringLineBreak.hs.parser.golden
+++ b/tests/examples/BadStringLineBreak.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/BadStringLineBreak.hs" 3 27) "Improperly terminated string"
+ParseFailed
+  (SrcLoc "tests/examples/BadStringLineBreak.hs" 3 27)
+  "Improperly terminated string"
diff --git a/tests/examples/BangPatterns.hs.parser.golden b/tests/examples/BangPatterns.hs.parser.golden
--- a/tests/examples/BangPatterns.hs.parser.golden
+++ b/tests/examples/BangPatterns.hs.parser.golden
@@ -1,1 +1,768 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 1 9 1, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 1,SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 1,SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 1,SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 1,SrcSpan "tests/examples/BangPatterns.hs" 5 1 5 1,SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 1,SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 26, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 7,SrcSpan "tests/examples/BangPatterns.hs" 2 21 2 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 2 8 2 20, srcInfoPoints = []}) "BangPatterns") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 13,SrcSpan "tests/examples/BangPatterns.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 14 1 26, srcInfoPoints = []}) "BangPatterns"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 51, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 4 15 4 17]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 14, srcInfoPoints = []}) "firstnonspace"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 51, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 4 28 4 30]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 27, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27, srcInfoPoints = []}) "Word8")))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 51, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 4 35 4 37]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34, srcInfoPoints = []}) "Int"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 51, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 4 42 4 44]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41, srcInfoPoints = []}) "Int"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 51, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51, srcInfoPoints = []}) "Int"))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 8 84, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 8 84, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 5 14, srcInfoPoints = []}) "firstnonspace") [PBangPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 15 5 16, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 16 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 16 5 19, srcInfoPoints = []}) "ptr")),PBangPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 20 5 21, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 21 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 21 5 22, srcInfoPoints = []}) "n")),PBangPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 23 5 24, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 24 5 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 24 5 25, srcInfoPoints = []}) "m"))] (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 5 8 84, srcInfoPoints = []}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 5 6 27, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 6 5 6 6,SrcSpan "tests/examples/BangPatterns.hs" 6 17 6 18]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 13, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 13, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11, srcInfoPoints = []}) ">="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13, srcInfoPoints = []}) "m"))))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27, srcInfoPoints = []}) "n")))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 5 8 84, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 7 5 7 6,SrcSpan "tests/examples/BangPatterns.hs" 7 17 7 18]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16, srcInfoPoints = []}) "otherwise")))] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 19 8 84, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 7 19 7 21,SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 22,SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 22,SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 44, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 7 24 7 26]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 23, srcInfoPoints = []}) "w")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 44, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38, srcInfoPoints = []}) "peekElemOff"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42, srcInfoPoints = []}) "ptr")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44, srcInfoPoints = []}) "n")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 84, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 24,SrcSpan "tests/examples/BangPatterns.hs" 8 40 8 44,SrcSpan "tests/examples/BangPatterns.hs" 8 71 8 75]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 84, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 24,SrcSpan "tests/examples/BangPatterns.hs" 8 40 8 44,SrcSpan "tests/examples/BangPatterns.hs" 8 71 8 75]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 39, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37, srcInfoPoints = []}) "isSpaceWord8"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39, srcInfoPoints = []}) "w")))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 70, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 68, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 62, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 58, srcInfoPoints = []}) "firstnonspace"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 59 8 62, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 59 8 62, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 59 8 62, srcInfoPoints = []}) "ptr")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 63 8 68, srcInfoPoints = [SrcSpan "tests/examples/BangPatterns.hs" 8 63 8 64,SrcSpan "tests/examples/BangPatterns.hs" 8 67 8 68]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 64 8 67, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 64 8 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 64 8 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 64 8 65, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 65 8 66, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 65 8 66, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 65 8 66, srcInfoPoints = []}) "+"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 66 8 67, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 66 8 67, srcInfoPoints = []}) 1 "1"))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70, srcInfoPoints = []}) "m")))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 84, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84, srcInfoPoints = []}) "n")))))])]) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 5 1 5 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 1
+            , SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/BangPatterns.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/BangPatterns.hs" 2 21 2 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 2 8 2 20
+                 , srcInfoPoints = []
+                 }
+               "BangPatterns")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BangPatterns.hs" 1 1 1 13
+                , SrcSpan "tests/examples/BangPatterns.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "BangPatterns"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 51
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BangPatterns.hs" 4 15 4 17 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 1 4 14
+                , srcInfoPoints = []
+                }
+              "firstnonspace"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 51
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/BangPatterns.hs" 4 28 4 30 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 27
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 18 4 21
+                           , srcInfoPoints = []
+                           }
+                         "Ptr")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 22 4 27
+                           , srcInfoPoints = []
+                           }
+                         "Word8"))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 51
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/BangPatterns.hs" 4 35 4 37 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 31 4 34
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 51
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/BangPatterns.hs" 4 42 4 44 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 38 4 41
+                              , srcInfoPoints = []
+                              }
+                            "Int")))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 51
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 45 4 47
+                                 , srcInfoPoints = []
+                                 }
+                               "IO")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 4 48 4 51
+                                 , srcInfoPoints = []
+                                 }
+                               "Int")))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 8 84
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 8 84
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 1 5 14
+                   , srcInfoPoints = []
+                   }
+                 "firstnonspace")
+              [ PBangPat
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 15 5 19
+                    , srcInfoPoints = []
+                    }
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 16 5 19
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 16 5 19
+                          , srcInfoPoints = []
+                          }
+                        "ptr"))
+              , PBangPat
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 20 5 22
+                    , srcInfoPoints = []
+                    }
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 21 5 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 21 5 22
+                          , srcInfoPoints = []
+                          }
+                        "n"))
+              , PBangPat
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 23 5 25
+                    , srcInfoPoints = []
+                    }
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 24 5 25
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 5 24 5 25
+                          , srcInfoPoints = []
+                          }
+                        "m"))
+              ]
+              (GuardedRhss
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 5 8 84
+                   , srcInfoPoints = []
+                   }
+                 [ GuardedRhs
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 5 6 27
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/BangPatterns.hs" 6 5 6 6
+                           , SrcSpan "tests/examples/BangPatterns.hs" 6 17 6 18
+                           ]
+                       }
+                     [ Qualifier
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 13
+                           , srcInfoPoints = []
+                           }
+                         (InfixApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 13
+                              , srcInfoPoints = []
+                              }
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 6 7 6 8
+                                       , srcInfoPoints = []
+                                       }
+                                     "n")))
+                            (QVarOp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11
+                                    , srcInfoPoints = []
+                                    }
+                                  (Symbol
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 6 9 6 11
+                                       , srcInfoPoints = []
+                                       }
+                                     ">=")))
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 6 12 6 13
+                                       , srcInfoPoints = []
+                                       }
+                                     "m"))))
+                     ]
+                     (App
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 27
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BangPatterns.hs" 6 19 6 25
+                                   , srcInfoPoints = []
+                                   }
+                                 "return")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BangPatterns.hs" 6 26 6 27
+                                   , srcInfoPoints = []
+                                   }
+                                 "n"))))
+                 , GuardedRhs
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 5 8 84
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/BangPatterns.hs" 7 5 7 6
+                           , SrcSpan "tests/examples/BangPatterns.hs" 7 17 7 18
+                           ]
+                       }
+                     [ Qualifier
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 7 7 7 16
+                                    , srcInfoPoints = []
+                                    }
+                                  "otherwise")))
+                     ]
+                     (Do
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 19 8 84
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/BangPatterns.hs" 7 19 7 21
+                              , SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 22
+                              , SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 22
+                              , SrcSpan "tests/examples/BangPatterns.hs" 9 1 9 0
+                              ]
+                          }
+                        [ Generator
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 44
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/BangPatterns.hs" 7 24 7 26 ]
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 23
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 7 22 7 23
+                                    , srcInfoPoints = []
+                                    }
+                                  "w"))
+                            (App
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 44
+                                 , srcInfoPoints = []
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 42
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 7 27 7 38
+                                             , srcInfoPoints = []
+                                             }
+                                           "peekElemOff")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 7 39 7 42
+                                             , srcInfoPoints = []
+                                             }
+                                           "ptr"))))
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 7 43 7 44
+                                          , srcInfoPoints = []
+                                          }
+                                        "n"))))
+                        , Qualifier
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 84
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 24
+                                  , SrcSpan "tests/examples/BangPatterns.hs" 8 40 8 44
+                                  , SrcSpan "tests/examples/BangPatterns.hs" 8 71 8 75
+                                  ]
+                              }
+                            (If
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 84
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/BangPatterns.hs" 8 22 8 24
+                                     , SrcSpan "tests/examples/BangPatterns.hs" 8 40 8 44
+                                     , SrcSpan "tests/examples/BangPatterns.hs" 8 71 8 75
+                                     ]
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 39
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 25 8 37
+                                             , srcInfoPoints = []
+                                             }
+                                           "isSpaceWord8")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 38 8 39
+                                             , srcInfoPoints = []
+                                             }
+                                           "w"))))
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 70
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 68
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 62
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 45 8 58
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/BangPatterns.hs" 8 45 8 58
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/BangPatterns.hs" 8 45 8 58
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "firstnonspace")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 59 8 62
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/BangPatterns.hs" 8 59 8 62
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/BangPatterns.hs" 8 59 8 62
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "ptr"))))
+                                     (Paren
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 63 8 68
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/BangPatterns.hs" 8 63 8 64
+                                              , SrcSpan "tests/examples/BangPatterns.hs" 8 67 8 68
+                                              ]
+                                          }
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 64 8 67
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/BangPatterns.hs" 8 64 8 65
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/BangPatterns.hs" 8 64 8 65
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/BangPatterns.hs"
+                                                            8
+                                                            64
+                                                            8
+                                                            65
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "n")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/BangPatterns.hs" 8 65 8 66
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/BangPatterns.hs" 8 65 8 66
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/BangPatterns.hs"
+                                                            8
+                                                            65
+                                                            8
+                                                            66
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "+")))
+                                           (Lit
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/BangPatterns.hs" 8 66 8 67
+                                                , srcInfoPoints = []
+                                                }
+                                              (Int
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/BangPatterns.hs" 8 66 8 67
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 1
+                                                 "1")))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 69 8 70
+                                             , srcInfoPoints = []
+                                             }
+                                           "m"))))
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 84
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 76 8 82
+                                             , srcInfoPoints = []
+                                             }
+                                           "return")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/BangPatterns.hs" 8 83 8 84
+                                             , srcInfoPoints = []
+                                             }
+                                           "n")))))
+                        ])
+                 ])
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/BangPatterns.hs.prettyprinter.golden b/tests/examples/BangPatterns.hs.prettyprinter.golden
--- a/tests/examples/BangPatterns.hs.prettyprinter.golden
+++ b/tests/examples/BangPatterns.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 {-# LANGUAGE BangPatterns #-}
 module BangPatterns where
- 
+
 firstnonspace :: Ptr Word8 -> Int -> Int -> IO Int
 firstnonspace !ptr !n !m
   | n >= m = return n
diff --git a/tests/examples/BangViewPat.hs b/tests/examples/BangViewPat.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/BangViewPat.hs
@@ -0,0 +1,2 @@
+{-# LANGUAGE BangPatterns, ViewPatterns #-}
+someFun (id -> !arg) = undefined
diff --git a/tests/examples/BangViewPat.hs.exactprinter.golden b/tests/examples/BangViewPat.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BangViewPat.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/BangViewPat.hs.parser.golden b/tests/examples/BangViewPat.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BangViewPat.hs.parser.golden
@@ -0,0 +1,129 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/BangViewPat.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BangViewPat.hs" 3 1 3 1
+            , SrcSpan "tests/examples/BangViewPat.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 1 1 1 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BangViewPat.hs" 1 1 1 13
+                , SrcSpan "tests/examples/BangViewPat.hs" 1 26 1 27
+                , SrcSpan "tests/examples/BangViewPat.hs" 1 41 1 44
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "BangPatterns"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 1 28 1 40
+                , srcInfoPoints = []
+                }
+              "ViewPatterns"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 33
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 33
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 1 2 8
+                   , srcInfoPoints = []
+                   }
+                 "someFun")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 9 2 21
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/BangViewPat.hs" 2 9 2 10
+                        , SrcSpan "tests/examples/BangViewPat.hs" 2 20 2 21
+                        ]
+                    }
+                  (PViewPat
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 10 2 20
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/BangViewPat.hs" 2 13 2 15 ]
+                       }
+                     (Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 10 2 12
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 10 2 12
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 10 2 12
+                                , srcInfoPoints = []
+                                }
+                              "id")))
+                     (PBangPat
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 16 2 20
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/BangViewPat.hs" 2 16 2 17 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 17 2 20
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 17 2 20
+                                , srcInfoPoints = []
+                                }
+                              "arg"))))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 22 2 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/BangViewPat.hs" 2 22 2 23 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 24 2 33
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 24 2 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/BangViewPat.hs" 2 24 2 33
+                            , srcInfoPoints = []
+                            }
+                          "undefined"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/BangViewPat.hs.prettyparser.golden b/tests/examples/BangViewPat.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BangViewPat.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/BangViewPat.hs.prettyprinter.golden b/tests/examples/BangViewPat.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BangViewPat.hs.prettyprinter.golden
@@ -0,0 +1,2 @@
+{-# LANGUAGE BangPatterns, ViewPatterns #-}
+someFun (id -> !arg) = undefined
diff --git a/tests/examples/BinaryLiteralsBad.hs.parser.golden b/tests/examples/BinaryLiteralsBad.hs.parser.golden
--- a/tests/examples/BinaryLiteralsBad.hs.parser.golden
+++ b/tests/examples/BinaryLiteralsBad.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/BinaryLiteralsBad.hs" 3 1) "arity mismatch for 'f'"
+ParseFailed
+  (SrcLoc "tests/examples/BinaryLiteralsBad.hs" 3 1)
+  "arity mismatch for 'f'"
diff --git a/tests/examples/BinaryLiteralsGood.hs.parser.golden b/tests/examples/BinaryLiteralsGood.hs.parser.golden
--- a/tests/examples/BinaryLiteralsGood.hs.parser.golden
+++ b/tests/examples/BinaryLiteralsGood.hs.parser.golden
@@ -1,1 +1,1539 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 24 1, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 1,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 13,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 14 1 28, srcInfoPoints = []}) "BinaryLiterals"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 13,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 24 2 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 14 2 23, srcInfoPoints = []}) "MagicHash"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 17, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 8 4 17, srcInfoPoints = []}) "GHC.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 23 47, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 6 23 47, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 6 6 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 8 23 47, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 8 6 10,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 5,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 5,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 5,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 5,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 12 12, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 12 12, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10, srcInfoPoints = []}) "print"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 11 12 12, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 11 7 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 20 7 21,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 30 7 31,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 39 7 40,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 11 8 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 11 9 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 11 10 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 28 10 29,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 11 11 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 28 11 29,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 12 11 12 12]}) [App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 20, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15, srcInfoPoints = []}) "I#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 16 7 20, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 16 7 20, srcInfoPoints = []}) 0 "0b0")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 30, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 26 7 30, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 26 7 30, srcInfoPoints = []}) 0 "0b0")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 39, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34, srcInfoPoints = []}) "I#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 35 7 39, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 35 7 39, srcInfoPoints = []}) 1 "0b1")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 49, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 45 7 49, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 45 7 49, srcInfoPoints = []}) 1 "0b1")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 96, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15, srcInfoPoints = []}) "I#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 16 8 96, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 16 8 96, srcInfoPoints = []}) 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 97, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 17 9 97, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 17 9 97, srcInfoPoints = []}) 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 28, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 17 10 28, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 17 10 28, srcInfoPoints = []}) 201 "0b11001001")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 45, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 34 10 45, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 34 10 45, srcInfoPoints = []}) 201 "0b11001001")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 28, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 17 11 28, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 17 11 28, srcInfoPoints = []}) 255 "0b11111111")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 45, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32, srcInfoPoints = []}) "I#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 34 11 45, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 34 11 45, srcInfoPoints = []}) 255 "0b11111111"))])),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 15 12, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 15 12, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10, srcInfoPoints = []}) "print"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 11 15 12, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 11 13 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 21 13 22,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 31 13 32,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 48 13 49,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 59 13 60,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 11 14 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 15 11 15 12]}) [App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 21, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 16 13 21, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 16 13 21, srcInfoPoints = []}) 0 "0b0")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 31, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 26 13 31, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 26 13 31, srcInfoPoints = []}) 1 "0b1")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 48, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 36 13 48, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 36 13 48, srcInfoPoints = []}) 201 "0b11001001")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 59, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 53 13 59, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 53 13 59, srcInfoPoints = []}) 3 "0b11")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 76, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 64 13 76, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 64 13 76, srcInfoPoints = []}) 255 "0b11111111")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 97, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15, srcInfoPoints = []}) "W#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 16 14 97, srcInfoPoints = []}) (PrimWord (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 16 14 97, srcInfoPoints = []}) 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001"))])),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 21 12, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 21 12, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10, srcInfoPoints = []}) "print"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 11 21 12, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 11 17 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 16 17 17,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 21 17 22,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 27 17 28,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 33 17 34,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 40 17 41,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 47 17 48,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 54 17 55,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 11 18 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 17 18 18,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 23 18 24,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 30 18 31,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 37 18 38,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 45 18 46,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 53 18 54,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 61 18 62,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 11 19 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 11 20 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 21 11 21 12]}) [Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 13 17 16, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 13 17 16, srcInfoPoints = []}) 0 "0b0"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 18 17 21, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 18 17 21, srcInfoPoints = []}) 1 "0b1"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 23 17 27, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 23 17 27, srcInfoPoints = []}) 2 "0b10"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 29 17 33, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 29 17 33, srcInfoPoints = []}) 3 "0b11"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 35 17 40, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 35 17 40, srcInfoPoints = []}) 4 "0b100"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 42 17 47, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 42 17 47, srcInfoPoints = []}) 5 "0b101"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 49 17 54, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 49 17 54, srcInfoPoints = []}) 6 "0b110"),ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 72, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 62 17 64]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 61, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 61, srcInfoPoints = []}) 7 "0b111")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72, srcInfoPoints = []}) "Integer"))),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 13 18 17, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 13 18 14]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 14 18 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 14 18 17, srcInfoPoints = []}) 0 "0b0")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 19 18 23, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 19 18 20]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 20 18 23, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 20 18 23, srcInfoPoints = []}) 1 "0b1")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 25 18 30, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 25 18 26]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 26 18 30, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 26 18 30, srcInfoPoints = []}) 2 "0b10")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 32 18 37, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 32 18 33]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 33 18 37, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 33 18 37, srcInfoPoints = []}) 3 "0b11")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 39 18 45, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 39 18 40]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 40 18 45, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 40 18 45, srcInfoPoints = []}) 4 "0b100")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 47 18 53, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 47 18 48]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 48 18 53, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 48 18 53, srcInfoPoints = []}) 5 "0b101")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 55 18 61, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 55 18 56]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 56 18 61, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 56 18 61, srcInfoPoints = []}) 6 "0b110")),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 63 18 69, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 63 18 64]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 64 18 69, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 64 18 69, srcInfoPoints = []}) 7 "0b111")),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 13 19 143, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 13 19 143, srcInfoPoints = []}) 340282366920938463463374607431768211455 "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"),NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 13 20 144, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 13 20 14]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 14 20 144, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 14 20 144, srcInfoPoints = []}) 340282366920938463463374607431768211455 "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"))])),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 47, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 47, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10, srcInfoPoints = []}) "print"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 11 23 47, srcInfoPoints = [SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 11 23 12,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 29 23 30,SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 46 23 47]}) [InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 29, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16, srcInfoPoints = []}) "I8#"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18, srcInfoPoints = []}) "-"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 18 23 29, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 18 23 29, srcInfoPoints = []}) 128 "0B10000000")),App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 45, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34, srcInfoPoints = []}) "I8#"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 35 23 45, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 35 23 45, srcInfoPoints = []}) 127 "0B1111111"))]))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 24 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 1
+            , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 1 1 13
+                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "BinaryLiterals"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 1 2 13
+                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 24 2 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 2 14 2 23
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 4 8 4 17
+                  , srcInfoPoints = []
+                  }
+                "GHC.Types"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 23 47
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 1 6 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 6 23 47
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 6 6 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 8 23 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 6 8 6 10
+                      , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 5
+                      , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 5
+                      , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 5
+                      , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 5
+                      , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 24 1 24 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 12 12
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 12 12
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 5 7 10
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 11 12 12
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 11 7 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 20 7 21
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 30 7 31
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 39 7 40
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 11 8 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 11 9 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 11 10 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 28 10 29
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 11 11 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 28 11 29
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 12 11 12 12
+                                ]
+                            }
+                          [ App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 20
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 13 7 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 16 7 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 16 7 20
+                                      , srcInfoPoints = []
+                                      }
+                                    0
+                                    "0b0"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 30
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 22 7 24
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 25 7 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 26 7 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 26 7 30
+                                      , srcInfoPoints = []
+                                      }
+                                    0
+                                    "0b0"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 39
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 32 7 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 35 7 39
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 35 7 39
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b1"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 49
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 41 7 43
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 7 44 7 45
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 45 7 49
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 7 45 7 49
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b1"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 96
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 8 13 8 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 16 8 96
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 8 16 8 96
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b00000000000000000000000000000000000000000000000000000000000000000000000000001"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 97
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 9 13 9 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 9 16 9 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 17 9 97
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 9 17 9 97
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b00000000000000000000000000000000000000000000000000000000000000000000000000001"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 28
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 10 13 10 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 10 16 10 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 17 10 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 17 10 28
+                                      , srcInfoPoints = []
+                                      }
+                                    201
+                                    "0b11001001"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 45
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 10 30 10 32
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 10 33 10 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 34 10 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 10 34 10 45
+                                      , srcInfoPoints = []
+                                      }
+                                    201
+                                    "0b11001001"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 28
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 11 13 11 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 11 16 11 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 17 11 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 17 11 28
+                                      , srcInfoPoints = []
+                                      }
+                                    255
+                                    "0b11111111"))
+                          , InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 45
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 11 30 11 32
+                                         , srcInfoPoints = []
+                                         }
+                                       "I#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 11 33 11 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 34 11 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 11 34 11 45
+                                      , srcInfoPoints = []
+                                      }
+                                    255
+                                    "0b11111111"))
+                          ]))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 15 12
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 15 12
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 5 13 10
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 11 15 12
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 11 13 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 21 13 22
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 31 13 32
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 48 13 49
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 59 13 60
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 11 14 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 15 11 15 12
+                                ]
+                            }
+                          [ App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 21
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 13 13 13 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 16 13 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 16 13 21
+                                      , srcInfoPoints = []
+                                      }
+                                    0
+                                    "0b0"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 31
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 13 23 13 25
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 26 13 31
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 26 13 31
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b1"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 48
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 13 33 13 35
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 36 13 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 36 13 48
+                                      , srcInfoPoints = []
+                                      }
+                                    201
+                                    "0b11001001"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 59
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 13 50 13 52
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 53 13 59
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 53 13 59
+                                      , srcInfoPoints = []
+                                      }
+                                    3
+                                    "0b11"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 76
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 13 61 13 63
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 64 13 76
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 13 64 13 76
+                                      , srcInfoPoints = []
+                                      }
+                                    255
+                                    "0b11111111"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 97
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 14 13 14 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "W#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 16 14 97
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimWord
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 14 16 14 97
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b00000000000000000000000000000000000000000000000000000000000000000000000000001"))
+                          ]))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 21 12
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 21 12
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 5 17 10
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 11 21 12
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 11 17 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 16 17 17
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 21 17 22
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 27 17 28
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 33 17 34
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 40 17 41
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 47 17 48
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 54 17 55
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 11 18 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 17 18 18
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 23 18 24
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 30 18 31
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 37 18 38
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 45 18 46
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 53 18 54
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 61 18 62
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 11 19 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 11 20 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 21 11 21 12
+                                ]
+                            }
+                          [ Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 13 17 16
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 13 17 16
+                                   , srcInfoPoints = []
+                                   }
+                                 0
+                                 "0b0")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 18 17 21
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 18 17 21
+                                   , srcInfoPoints = []
+                                   }
+                                 1
+                                 "0b1")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 23 17 27
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 23 17 27
+                                   , srcInfoPoints = []
+                                   }
+                                 2
+                                 "0b10")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 29 17 33
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 29 17 33
+                                   , srcInfoPoints = []
+                                   }
+                                 3
+                                 "0b11")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 35 17 40
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 35 17 40
+                                   , srcInfoPoints = []
+                                   }
+                                 4
+                                 "0b100")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 42 17 47
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 42 17 47
+                                   , srcInfoPoints = []
+                                   }
+                                 5
+                                 "0b101")
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 49 17 54
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 49 17 54
+                                   , srcInfoPoints = []
+                                   }
+                                 6
+                                 "0b110")
+                          , ExpTypeSig
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 72
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 62 17 64 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 61
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 56 17 61
+                                      , srcInfoPoints = []
+                                      }
+                                    7
+                                    "0b111"))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 17 65 17 72
+                                         , srcInfoPoints = []
+                                         }
+                                       "Integer")))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 13 18 17
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 13 18 14 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 14 18 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 14 18 17
+                                      , srcInfoPoints = []
+                                      }
+                                    0
+                                    "0b0"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 19 18 23
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 19 18 20 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 20 18 23
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 20 18 23
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "0b1"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 25 18 30
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 25 18 26 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 26 18 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 26 18 30
+                                      , srcInfoPoints = []
+                                      }
+                                    2
+                                    "0b10"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 32 18 37
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 32 18 33 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 33 18 37
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 33 18 37
+                                      , srcInfoPoints = []
+                                      }
+                                    3
+                                    "0b11"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 39 18 45
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 39 18 40 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 40 18 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 40 18 45
+                                      , srcInfoPoints = []
+                                      }
+                                    4
+                                    "0b100"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 47 18 53
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 47 18 48 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 48 18 53
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 48 18 53
+                                      , srcInfoPoints = []
+                                      }
+                                    5
+                                    "0b101"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 55 18 61
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 55 18 56 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 56 18 61
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 56 18 61
+                                      , srcInfoPoints = []
+                                      }
+                                    6
+                                    "0b110"))
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 63 18 69
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 63 18 64 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 64 18 69
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 18 64 18 69
+                                      , srcInfoPoints = []
+                                      }
+                                    7
+                                    "0b111"))
+                          , Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 13 19 143
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 19 13 19 143
+                                   , srcInfoPoints = []
+                                   }
+                                 340282366920938463463374607431768211455
+                                 "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")
+                          , NegApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 13 20 144
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 13 20 14 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 20 14 20 144
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/BinaryLiteralsGood.hs" 20 14 20 144
+                                      , srcInfoPoints = []
+                                      }
+                                    340282366920938463463374607431768211455
+                                    "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"))
+                          ]))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 47
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 47
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 5 23 10
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 11 23 47
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 11 23 12
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 29 23 30
+                                , SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 46 23 47
+                                ]
+                            }
+                          [ InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 29
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 23 13 23 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "I8#")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 23 17 23 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "-")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 18 23 29
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 18 23 29
+                                      , srcInfoPoints = []
+                                      }
+                                    128
+                                    "0B10000000"))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 45
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/BinaryLiteralsGood.hs" 23 31 23 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "I8#")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 35 23 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (PrimInt
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BinaryLiteralsGood.hs" 23 35 23 45
+                                      , srcInfoPoints = []
+                                      }
+                                    127
+                                    "0B1111111"))
+                          ]))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/BinaryLiteralsGood.hs.prettyparser.golden b/tests/examples/BinaryLiteralsGood.hs.prettyparser.golden
--- a/tests/examples/BinaryLiteralsGood.hs.prettyparser.golden
+++ b/tests/examples/BinaryLiteralsGood.hs.prettyparser.golden
@@ -1,1 +1,10 @@
-Match
+Roundtrip test failed
+
+AST 1:
+
+Module () Nothing [LanguagePragma () [Ident () "BinaryLiterals"],LanguagePragma () [Ident () "MagicHash"]] [ImportDecl {importAnn = (), importModule = ModuleName () "GHC.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [PatBind () (PVar () (Ident () "main")) (UnGuardedRhs () (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 0 "0b0")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 0 "0b0")),App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 1 "0b1")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 1 "0b1")),App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 201 "0b11001001")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 201 "0b11001001")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 255 "0b11111111")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 255 "0b11111111"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 0 "0b0")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 1 "0b1")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 201 "0b11001001")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 3 "0b11")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 255 "0b11111111")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 1 "0b00000000000000000000000000000000000000000000000000000000000000000000000000001"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [Lit () (Int () 0 "0b0"),Lit () (Int () 1 "0b1"),Lit () (Int () 2 "0b10"),Lit () (Int () 3 "0b11"),Lit () (Int () 4 "0b100"),Lit () (Int () 5 "0b101"),Lit () (Int () 6 "0b110"),ExpTypeSig () (Lit () (Int () 7 "0b111")) (TyCon () (UnQual () (Ident () "Integer"))),NegApp () (Lit () (Int () 0 "0b0")),NegApp () (Lit () (Int () 1 "0b1")),NegApp () (Lit () (Int () 2 "0b10")),NegApp () (Lit () (Int () 3 "0b11")),NegApp () (Lit () (Int () 4 "0b100")),NegApp () (Lit () (Int () 5 "0b101")),NegApp () (Lit () (Int () 6 "0b110")),NegApp () (Lit () (Int () 7 "0b111")),Lit () (Int () 340282366920938463463374607431768211455 "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"),NegApp () (Lit () (Int () 340282366920938463463374607431768211455 "0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [InfixApp () (Con () (UnQual () (Ident () "I8#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 128 "0B10000000")),App () (Con () (UnQual () (Ident () "I8#"))) (Lit () (PrimInt () 127 "0B1111111"))]))])) Nothing]
+
+AST 2:
+
+Module () Nothing [LanguagePragma () [Ident () "BinaryLiterals"],LanguagePragma () [Ident () "MagicHash"]] [ImportDecl {importAnn = (), importModule = ModuleName () "GHC.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [PatBind () (PVar () (Ident () "main")) (UnGuardedRhs () (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 0 "0")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 0 "0")),App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 1 "1")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 1 "1")),App () (Con () (UnQual () (Ident () "I#"))) (Lit () (PrimInt () 1 "1")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 1 "1")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 201 "201")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 201 "201")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 255 "255")),InfixApp () (Con () (UnQual () (Ident () "I#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 255 "255"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 0 "0")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 1 "1")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 201 "201")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 3 "3")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 255 "255")),App () (Con () (UnQual () (Ident () "W#"))) (Lit () (PrimWord () 1 "1"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [Lit () (Int () 0 "0"),Lit () (Int () 1 "1"),Lit () (Int () 2 "2"),Lit () (Int () 3 "3"),Lit () (Int () 4 "4"),Lit () (Int () 5 "5"),Lit () (Int () 6 "6"),ExpTypeSig () (Lit () (Int () 7 "7")) (TyCon () (UnQual () (Ident () "Integer"))),NegApp () (Lit () (Int () 0 "0")),NegApp () (Lit () (Int () 1 "1")),NegApp () (Lit () (Int () 2 "2")),NegApp () (Lit () (Int () 3 "3")),NegApp () (Lit () (Int () 4 "4")),NegApp () (Lit () (Int () 5 "5")),NegApp () (Lit () (Int () 6 "6")),NegApp () (Lit () (Int () 7 "7")),Lit () (Int () 340282366920938463463374607431768211455 "340282366920938463463374607431768211455"),NegApp () (Lit () (Int () 340282366920938463463374607431768211455 "340282366920938463463374607431768211455"))])),Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (List () [InfixApp () (Con () (UnQual () (Ident () "I8#"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (PrimInt () 128 "128")),App () (Con () (UnQual () (Ident () "I8#"))) (Lit () (PrimInt () 127 "127"))]))])) Nothing]
+
diff --git a/tests/examples/BinaryLiteralsGood.hs.prettyprinter.golden b/tests/examples/BinaryLiteralsGood.hs.prettyprinter.golden
--- a/tests/examples/BinaryLiteralsGood.hs.prettyprinter.golden
+++ b/tests/examples/BinaryLiteralsGood.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE BinaryLiterals #-}
 {-# LANGUAGE MagicHash #-}
-module Main (main) where
 import GHC.Types
 main
   = do print
diff --git a/tests/examples/BlockArguments.hs b/tests/examples/BlockArguments.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/BlockArguments.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE BlockArguments #-}
+module BlockArguments where
+
+foo = when (x > 0) do
+  print x
+  exitFailure
+
+bar = withForeignPtr fptr \ptr -> c_memcpy buf ptr size
+
+baz arg1 arg2 arg3 arg4 = initialValue
+  &   someFunction arg1 arg2
+  >>= traverse \(x, y) -> do
+        a <- f x
+        b <- g y
+        h a b
+  >>= anotherFunction arg3 arg4
diff --git a/tests/examples/BlockArguments.hs.exactprinter.golden b/tests/examples/BlockArguments.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BlockArguments.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/BlockArguments.hs.parser.golden b/tests/examples/BlockArguments.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BlockArguments.hs.parser.golden
@@ -0,0 +1,1099 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 1 1 17 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/BlockArguments.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 4 1 4 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 8 1 8 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 10 1 10 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 17 1 17 1
+            , SrcSpan "tests/examples/BlockArguments.hs" 17 1 17 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 2 1 2 28
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/BlockArguments.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/BlockArguments.hs" 2 23 2 28
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 2 8 2 22
+                 , srcInfoPoints = []
+                 }
+               "BlockArguments")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BlockArguments.hs" 1 1 1 13
+                , SrcSpan "tests/examples/BlockArguments.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/BlockArguments.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "BlockArguments"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 1 6 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 5 6 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/BlockArguments.hs" 4 5 4 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 7 6 14
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 7 4 19
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 7 4 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 7 4 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 4 7 4 11
+                              , srcInfoPoints = []
+                              }
+                            "when")))
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BlockArguments.hs" 4 12 4 19
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/BlockArguments.hs" 4 12 4 13
+                            , SrcSpan "tests/examples/BlockArguments.hs" 4 18 4 19
+                            ]
+                        }
+                      (InfixApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BlockArguments.hs" 4 13 4 18
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 4 13 4 14
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 4 13 4 14
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 4 13 4 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "x")))
+                         (QVarOp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 4 15 4 16
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 4 15 4 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 4 15 4 16
+                                    , srcInfoPoints = []
+                                    }
+                                  ">")))
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 4 17 4 18
+                              , srcInfoPoints = []
+                              }
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 4 17 4 18
+                                 , srcInfoPoints = []
+                                 }
+                               0
+                               "0")))))
+                (Do
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/BlockArguments.hs" 4 20 6 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/BlockArguments.hs" 4 20 4 22
+                         , SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 3
+                         , SrcSpan "tests/examples/BlockArguments.hs" 6 3 6 3
+                         , SrcSpan "tests/examples/BlockArguments.hs" 8 1 8 0
+                         ]
+                     }
+                   [ Qualifier
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 10
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 10
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 8
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 8
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 5 3 5 8
+                                     , srcInfoPoints = []
+                                     }
+                                   "print")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 5 9 5 10
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 5 9 5 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 5 9 5 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "x"))))
+                   , Qualifier
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 6 3 6 14
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 6 3 6 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 6 3 6 14
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 6 3 6 14
+                                  , srcInfoPoints = []
+                                  }
+                                "exitFailure")))
+                   ])))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 1 8 56
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 1 8 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 1 8 4
+                  , srcInfoPoints = []
+                  }
+                "bar"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 5 8 56
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/BlockArguments.hs" 8 5 8 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 7 8 56
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 7 8 26
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 7 8 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 7 8 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/BlockArguments.hs" 8 7 8 21
+                              , srcInfoPoints = []
+                              }
+                            "withForeignPtr")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BlockArguments.hs" 8 22 8 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BlockArguments.hs" 8 22 8 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 8 22 8 26
+                              , srcInfoPoints = []
+                              }
+                            "fptr"))))
+                (Lambda
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/BlockArguments.hs" 8 27 8 56
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/BlockArguments.hs" 8 27 8 28
+                         , SrcSpan "tests/examples/BlockArguments.hs" 8 32 8 34
+                         ]
+                     }
+                   [ PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BlockArguments.hs" 8 28 8 31
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 8 28 8 31
+                            , srcInfoPoints = []
+                            }
+                          "ptr")
+                   ]
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 56
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 51
+                           , srcInfoPoints = []
+                           }
+                         (App
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 47
+                              , srcInfoPoints = []
+                              }
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 43
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 43
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BlockArguments.hs" 8 35 8 43
+                                       , srcInfoPoints = []
+                                       }
+                                     "c_memcpy")))
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 8 44 8 47
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 8 44 8 47
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BlockArguments.hs" 8 44 8 47
+                                       , srcInfoPoints = []
+                                       }
+                                     "buf"))))
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 8 48 8 51
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 8 48 8 51
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 8 48 8 51
+                                    , srcInfoPoints = []
+                                    }
+                                  "ptr"))))
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BlockArguments.hs" 8 52 8 56
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BlockArguments.hs" 8 52 8 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BlockArguments.hs" 8 52 8 56
+                                 , srcInfoPoints = []
+                                 }
+                               "size")))))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/BlockArguments.hs" 10 1 16 32
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/BlockArguments.hs" 10 1 16 32
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/BlockArguments.hs" 10 1 10 4
+                   , srcInfoPoints = []
+                   }
+                 "baz")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/BlockArguments.hs" 10 5 10 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/BlockArguments.hs" 10 5 10 9
+                       , srcInfoPoints = []
+                       }
+                     "arg1")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/BlockArguments.hs" 10 10 10 14
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/BlockArguments.hs" 10 10 10 14
+                       , srcInfoPoints = []
+                       }
+                     "arg2")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/BlockArguments.hs" 10 15 10 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/BlockArguments.hs" 10 15 10 19
+                       , srcInfoPoints = []
+                       }
+                     "arg3")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/BlockArguments.hs" 10 20 10 24
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/BlockArguments.hs" 10 20 10 24
+                       , srcInfoPoints = []
+                       }
+                     "arg4")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/BlockArguments.hs" 10 25 16 32
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/BlockArguments.hs" 10 25 10 26 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/BlockArguments.hs" 10 27 16 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BlockArguments.hs" 10 27 11 29
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 10 27 10 39
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 10 27 10 39
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 10 27 10 39
+                                  , srcInfoPoints = []
+                                  }
+                                "initialValue")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 11 3 11 4
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 11 3 11 4
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 11 3 11 4
+                                  , srcInfoPoints = []
+                                  }
+                                "&")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 11 7 11 29
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 11 7 11 24
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 11 7 11 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 11 7 11 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 11 7 11 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "someFunction")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 11 20 11 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 11 20 11 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 11 20 11 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "arg1"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 11 25 11 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 11 25 11 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 11 25 11 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "arg2")))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BlockArguments.hs" 12 3 12 6
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 12 3 12 6
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 12 3 12 6
+                               , srcInfoPoints = []
+                               }
+                             ">>=")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/BlockArguments.hs" 12 7 16 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 12 7 12 15
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 12 7 12 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 12 7 12 15
+                                  , srcInfoPoints = []
+                                  }
+                                "traverse")))
+                       (Lambda
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/BlockArguments.hs" 12 16 16 32
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/BlockArguments.hs" 12 16 12 17
+                                , SrcSpan "tests/examples/BlockArguments.hs" 12 24 12 26
+                                ]
+                            }
+                          [ PTuple
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/BlockArguments.hs" 12 17 12 23
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/BlockArguments.hs" 12 17 12 18
+                                    , SrcSpan "tests/examples/BlockArguments.hs" 12 19 12 20
+                                    , SrcSpan "tests/examples/BlockArguments.hs" 12 22 12 23
+                                    ]
+                                }
+                              Boxed
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 12 18 12 19
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BlockArguments.hs" 12 18 12 19
+                                       , srcInfoPoints = []
+                                       }
+                                     "x")
+                              , PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BlockArguments.hs" 12 21 12 22
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BlockArguments.hs" 12 21 12 22
+                                       , srcInfoPoints = []
+                                       }
+                                     "y")
+                              ]
+                          ]
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/BlockArguments.hs" 12 27 16 32
+                               , srcInfoPoints = []
+                               }
+                             (Do
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 12 27 15 14
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/BlockArguments.hs" 12 27 12 29
+                                      , SrcSpan "tests/examples/BlockArguments.hs" 13 9 13 9
+                                      , SrcSpan "tests/examples/BlockArguments.hs" 14 9 14 9
+                                      , SrcSpan "tests/examples/BlockArguments.hs" 15 9 15 9
+                                      , SrcSpan "tests/examples/BlockArguments.hs" 16 3 16 0
+                                      ]
+                                  }
+                                [ Generator
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BlockArguments.hs" 13 9 13 17
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/BlockArguments.hs" 13 11 13 13 ]
+                                      }
+                                    (PVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/BlockArguments.hs" 13 9 13 10
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 13 9 13 10
+                                            , srcInfoPoints = []
+                                            }
+                                          "a"))
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/BlockArguments.hs" 13 14 13 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 13 14 13 15
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 13 14 13 15
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        13
+                                                        14
+                                                        13
+                                                        15
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "f")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 13 16 13 17
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 13 16 13 17
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        13
+                                                        16
+                                                        13
+                                                        17
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "x"))))
+                                , Generator
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BlockArguments.hs" 14 9 14 17
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/BlockArguments.hs" 14 11 14 13 ]
+                                      }
+                                    (PVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/BlockArguments.hs" 14 9 14 10
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 14 9 14 10
+                                            , srcInfoPoints = []
+                                            }
+                                          "b"))
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/BlockArguments.hs" 14 14 14 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 14 14 14 15
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 14 14 14 15
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        14
+                                                        14
+                                                        14
+                                                        15
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "g")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 14 16 14 17
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 14 16 14 17
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        14
+                                                        16
+                                                        14
+                                                        17
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "y"))))
+                                , Qualifier
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/BlockArguments.hs" 15 9 15 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/BlockArguments.hs" 15 9 15 14
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 15 9 15 12
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 15 9 15 10
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        15
+                                                        9
+                                                        15
+                                                        10
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/BlockArguments.hs"
+                                                           15
+                                                           9
+                                                           15
+                                                           10
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "h")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 15 11 15 12
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        15
+                                                        11
+                                                        15
+                                                        12
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/BlockArguments.hs"
+                                                           15
+                                                           11
+                                                           15
+                                                           12
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "a"))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/BlockArguments.hs" 15 13 15 14
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/BlockArguments.hs" 15 13 15 14
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/BlockArguments.hs"
+                                                        15
+                                                        13
+                                                        15
+                                                        14
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "b"))))
+                                ])
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 16 3 16 6
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 16 3 16 6
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 16 3 16 6
+                                        , srcInfoPoints = []
+                                        }
+                                      ">>=")))
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/BlockArguments.hs" 16 7 16 32
+                                  , srcInfoPoints = []
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 16 7 16 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 16 7 16 22
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/BlockArguments.hs" 16 7 16 22
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/BlockArguments.hs" 16 7 16 22
+                                              , srcInfoPoints = []
+                                              }
+                                            "anotherFunction")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 16 23 16 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/BlockArguments.hs" 16 23 16 27
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/BlockArguments.hs" 16 23 16 27
+                                              , srcInfoPoints = []
+                                              }
+                                            "arg3"))))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/BlockArguments.hs" 16 28 16 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/BlockArguments.hs" 16 28 16 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/BlockArguments.hs" 16 28 16 32
+                                           , srcInfoPoints = []
+                                           }
+                                         "arg4")))))))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/BlockArguments.hs.prettyparser.golden b/tests/examples/BlockArguments.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BlockArguments.hs.prettyparser.golden
@@ -0,0 +1,10 @@
+Roundtrip test failed
+
+AST 1:
+
+Module () (Just (ModuleHead () (ModuleName () "BlockArguments") Nothing Nothing)) [LanguagePragma () [Ident () "BlockArguments"]] [] [PatBind () (PVar () (Ident () "foo")) (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "x"))) (QVarOp () (UnQual () (Symbol () ">"))) (Lit () (Int () 0 "0"))))) (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (Var () (UnQual () (Ident () "x")))),Qualifier () (Var () (UnQual () (Ident () "exitFailure")))]))) Nothing,PatBind () (PVar () (Ident () "bar")) (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fptr")))) (Lambda () [PVar () (Ident () "ptr")] (App () (App () (App () (Var () (UnQual () (Ident () "c_memcpy"))) (Var () (UnQual () (Ident () "buf")))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "size"))))))) Nothing,FunBind () [Match () (Ident () "baz") [PVar () (Ident () "arg1"),PVar () (Ident () "arg2"),PVar () (Ident () "arg3"),PVar () (Ident () "arg4")] (UnGuardedRhs () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "initialValue"))) (QVarOp () (UnQual () (Symbol () "&"))) (App () (App () (Var () (UnQual () (Ident () "someFunction"))) (Var () (UnQual () (Ident () "arg1")))) (Var () (UnQual () (Ident () "arg2"))))) (QVarOp () (UnQual () (Symbol () ">>="))) (App () (Var () (UnQual () (Ident () "traverse"))) (Lambda () [PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "y")]] (InfixApp () (Do () [Generator () (PVar () (Ident () "a")) (App () (Var () (UnQual () (Ident () "f"))) (Var () (UnQual () (Ident () "x")))),Generator () (PVar () (Ident () "b")) (App () (Var () (UnQual () (Ident () "g"))) (Var () (UnQual () (Ident () "y")))),Qualifier () (App () (App () (Var () (UnQual () (Ident () "h"))) (Var () (UnQual () (Ident () "a")))) (Var () (UnQual () (Ident () "b"))))]) (QVarOp () (UnQual () (Symbol () ">>="))) (App () (App () (Var () (UnQual () (Ident () "anotherFunction"))) (Var () (UnQual () (Ident () "arg3")))) (Var () (UnQual () (Ident () "arg4"))))))))) Nothing]]
+
+AST 2:
+
+Module () (Just (ModuleHead () (ModuleName () "BlockArguments") Nothing Nothing)) [LanguagePragma () [Ident () "BlockArguments"]] [] [PatBind () (PVar () (Ident () "foo")) (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "x"))) (QVarOp () (UnQual () (Symbol () ">"))) (Lit () (Int () 0 "0"))))) (Paren () (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "print"))) (Var () (UnQual () (Ident () "x")))),Qualifier () (Var () (UnQual () (Ident () "exitFailure")))])))) Nothing,PatBind () (PVar () (Ident () "bar")) (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fptr")))) (Paren () (Lambda () [PVar () (Ident () "ptr")] (App () (App () (App () (Var () (UnQual () (Ident () "c_memcpy"))) (Var () (UnQual () (Ident () "buf")))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "size")))))))) Nothing,FunBind () [Match () (Ident () "baz") [PVar () (Ident () "arg1"),PVar () (Ident () "arg2"),PVar () (Ident () "arg3"),PVar () (Ident () "arg4")] (UnGuardedRhs () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "initialValue"))) (QVarOp () (UnQual () (Symbol () "&"))) (App () (App () (Var () (UnQual () (Ident () "someFunction"))) (Var () (UnQual () (Ident () "arg1")))) (Var () (UnQual () (Ident () "arg2"))))) (QVarOp () (UnQual () (Symbol () ">>="))) (App () (Var () (UnQual () (Ident () "traverse"))) (Paren () (Lambda () [PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "y")]] (InfixApp () (Do () [Generator () (PVar () (Ident () "a")) (App () (Var () (UnQual () (Ident () "f"))) (Var () (UnQual () (Ident () "x")))),Generator () (PVar () (Ident () "b")) (App () (Var () (UnQual () (Ident () "g"))) (Var () (UnQual () (Ident () "y")))),Qualifier () (App () (App () (Var () (UnQual () (Ident () "h"))) (Var () (UnQual () (Ident () "a")))) (Var () (UnQual () (Ident () "b"))))]) (QVarOp () (UnQual () (Symbol () ">>="))) (App () (App () (Var () (UnQual () (Ident () "anotherFunction"))) (Var () (UnQual () (Ident () "arg3")))) (Var () (UnQual () (Ident () "arg4")))))))))) Nothing]]
+
diff --git a/tests/examples/BlockArguments.hs.prettyprinter.golden b/tests/examples/BlockArguments.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/BlockArguments.hs.prettyprinter.golden
@@ -0,0 +1,15 @@
+{-# LANGUAGE BlockArguments #-}
+module BlockArguments where
+foo
+  = when (x > 0)
+      (do print x
+          exitFailure)
+bar = withForeignPtr fptr (\ ptr -> c_memcpy buf ptr size)
+baz arg1 arg2 arg3 arg4
+  = initialValue & someFunction arg1 arg2 >>=
+      traverse
+        (\ (x, y) ->
+           do a <- f x
+              b <- g y
+              h a b
+             >>= anotherFunction arg3 arg4)
diff --git a/tests/examples/BracketInstanceHead.hs.parser.golden b/tests/examples/BracketInstanceHead.hs.parser.golden
--- a/tests/examples/BracketInstanceHead.hs.parser.golden
+++ b/tests/examples/BracketInstanceHead.hs.parser.golden
@@ -1,1 +1,151 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1]}) Nothing [] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 2 0, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 9,SrcSpan "tests/examples/BracketInstanceHead.hs" 1 37 1 42,SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1,SrcSpan "tests/examples/BracketInstanceHead.hs" 2 0 2 0]}) Nothing (IParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 10 1 36, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 10 1 11,SrcSpan "tests/examples/BracketInstanceHead.hs" 1 35 1 36]}) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 35, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18, srcInfoPoints = []}) "Bounded")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 19 1 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 19 1 20, srcInfoPoints = []}) "a")]))) (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 35, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31, srcInfoPoints = []}) "Bounded"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 32 1 35, srcInfoPoints = [SrcSpan "tests/examples/BracketInstanceHead.hs" 1 32 1 33,SrcSpan "tests/examples/BracketInstanceHead.hs" 1 34 1 35]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 33 1 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/BracketInstanceHead.hs" 1 33 1 34, srcInfoPoints = []}) "a")))))) (Just [])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 1
+            , SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1
+            , SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 2 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 1 1 9
+                , SrcSpan "tests/examples/BracketInstanceHead.hs" 1 37 1 42
+                , SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1
+                , SrcSpan "tests/examples/BracketInstanceHead.hs" 2 1 2 1
+                , SrcSpan "tests/examples/BracketInstanceHead.hs" 2 0 2 0
+                ]
+            }
+          Nothing
+          (IParen
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/BracketInstanceHead.hs" 1 10 1 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 10 1 11
+                   , SrcSpan "tests/examples/BracketInstanceHead.hs" 1 35 1 36
+                   ]
+               }
+             (IRule
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 35
+                  , srcInfoPoints = []
+                  }
+                Nothing
+                (Just
+                   (CxSingle
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18
+                                       , srcInfoPoints = []
+                                       }
+                                     "Bounded")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/BracketInstanceHead.hs" 1 19 1 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/BracketInstanceHead.hs" 1 19 1 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "a"))))))
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 35
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BracketInstanceHead.hs" 1 24 1 31
+                              , srcInfoPoints = []
+                              }
+                            "Bounded")))
+                   (TyList
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/BracketInstanceHead.hs" 1 32 1 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 32 1 33
+                            , SrcSpan "tests/examples/BracketInstanceHead.hs" 1 34 1 35
+                            ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/BracketInstanceHead.hs" 1 33 1 34
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/BracketInstanceHead.hs" 1 33 1 34
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just [])
+      ]
+  , []
+  )
diff --git a/tests/examples/BracketInstanceHead.hs.prettyprinter.golden b/tests/examples/BracketInstanceHead.hs.prettyprinter.golden
--- a/tests/examples/BracketInstanceHead.hs.prettyprinter.golden
+++ b/tests/examples/BracketInstanceHead.hs.prettyprinter.golden
@@ -1,3 +1,1 @@
-module Main (main) where
- 
-instance Bounded a => Bounded [a]
+instance (Bounded a => Bounded [a]) where
diff --git a/tests/examples/Bug.hs.parser.golden b/tests/examples/Bug.hs.parser.golden
--- a/tests/examples/Bug.hs.parser.golden
+++ b/tests/examples/Bug.hs.parser.golden
@@ -1,1 +1,42 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/Bug.hs" 1 1 1 1,SrcSpan "tests/examples/Bug.hs" 1 1 1 1,SrcSpan "tests/examples/Bug.hs" 1 1 1 1,SrcSpan "tests/examples/Bug.hs" 3 1 3 1,SrcSpan "tests/examples/Bug.hs" 3 1 3 1]}) Nothing [] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/Bug.hs" 1 1 1 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 8 1 23, srcInfoPoints = []}) "Test.QuickCheck", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [],[Comment False (SrcSpan "tests/examples/Bug.hs" 2 1 2 39) " prop_susShortest = 2 > 1 ==> 1 /= 2"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Bug.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Bug.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Bug.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Bug.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Bug.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 1 1 23
+                , srcInfoPoints = [ SrcSpan "tests/examples/Bug.hs" 1 1 1 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Bug.hs" 1 8 1 23
+                  , srcInfoPoints = []
+                  }
+                "Test.QuickCheck"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/Bug.hs" 2 1 2 39)
+        " prop_susShortest = 2 > 1 ==> 1 /= 2"
+    ]
+  )
diff --git a/tests/examples/Bug.hs.prettyprinter.golden b/tests/examples/Bug.hs.prettyprinter.golden
--- a/tests/examples/Bug.hs.prettyprinter.golden
+++ b/tests/examples/Bug.hs.prettyprinter.golden
@@ -1,2 +1,1 @@
-module Main (main) where
 import Test.QuickCheck
diff --git a/tests/examples/Bundles.hs b/tests/examples/Bundles.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Bundles.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE PatternSynonyms #-}
+module Bundles(Foo(..), Baz(..,Q), Qux(F,..), Tux(Q,..,F)) where
+
+main = main
diff --git a/tests/examples/Bundles.hs.exactprinter.golden b/tests/examples/Bundles.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Bundles.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Bundles.hs.parser.golden b/tests/examples/Bundles.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Bundles.hs.parser.golden
@@ -0,0 +1,252 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Bundles.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Bundles.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Bundles.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Bundles.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Bundles.hs" 5 1 5 1
+            , SrcSpan "tests/examples/Bundles.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 1 2 65
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Bundles.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/Bundles.hs" 2 60 2 65
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 8 2 15
+                 , srcInfoPoints = []
+                 }
+               "Bundles")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 15 2 59
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Bundles.hs" 2 15 2 16
+                        , SrcSpan "tests/examples/Bundles.hs" 2 23 2 24
+                        , SrcSpan "tests/examples/Bundles.hs" 2 34 2 35
+                        , SrcSpan "tests/examples/Bundles.hs" 2 45 2 46
+                        , SrcSpan "tests/examples/Bundles.hs" 2 58 2 59
+                        ]
+                    }
+                  [ EThingWith
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 16 2 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Bundles.hs" 2 19 2 20
+                            , SrcSpan "tests/examples/Bundles.hs" 2 22 2 23
+                            ]
+                        }
+                      (EWildcard
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 20 2 22
+                           , srcInfoPoints = []
+                           }
+                         0)
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 16 2 19
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 16 2 19
+                              , srcInfoPoints = []
+                              }
+                            "Foo"))
+                      []
+                  , EThingWith
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 25 2 34
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Bundles.hs" 2 28 2 29
+                            , SrcSpan "tests/examples/Bundles.hs" 2 31 2 32
+                            , SrcSpan "tests/examples/Bundles.hs" 2 33 2 34
+                            ]
+                        }
+                      (EWildcard
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 29 2 31
+                           , srcInfoPoints = []
+                           }
+                         0)
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 25 2 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 25 2 28
+                              , srcInfoPoints = []
+                              }
+                            "Baz"))
+                      [ ConName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 32 2 33
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 32 2 33
+                               , srcInfoPoints = []
+                               }
+                             "Q")
+                      ]
+                  , EThingWith
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 36 2 45
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Bundles.hs" 2 39 2 40
+                            , SrcSpan "tests/examples/Bundles.hs" 2 41 2 42
+                            , SrcSpan "tests/examples/Bundles.hs" 2 44 2 45
+                            ]
+                        }
+                      (EWildcard
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 42 2 44
+                           , srcInfoPoints = []
+                           }
+                         1)
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 36 2 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 36 2 39
+                              , srcInfoPoints = []
+                              }
+                            "Qux"))
+                      [ ConName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 40 2 41
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 40 2 41
+                               , srcInfoPoints = []
+                               }
+                             "F")
+                      ]
+                  , EThingWith
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 47 2 58
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Bundles.hs" 2 50 2 51
+                            , SrcSpan "tests/examples/Bundles.hs" 2 52 2 53
+                            , SrcSpan "tests/examples/Bundles.hs" 2 55 2 56
+                            , SrcSpan "tests/examples/Bundles.hs" 2 57 2 58
+                            ]
+                        }
+                      (EWildcard
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 53 2 55
+                           , srcInfoPoints = []
+                           }
+                         1)
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 47 2 50
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 47 2 50
+                              , srcInfoPoints = []
+                              }
+                            "Tux"))
+                      [ ConName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 51 2 52
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 51 2 52
+                               , srcInfoPoints = []
+                               }
+                             "Q")
+                      , ConName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 56 2 57
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 2 56 2 57
+                               , srcInfoPoints = []
+                               }
+                             "F")
+                      ]
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Bundles.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Bundles.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 1 4 12
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 1 4 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 1 4 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 6 4 12
+               , srcInfoPoints = [ SrcSpan "tests/examples/Bundles.hs" 4 6 4 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 8 4 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 8 4 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Bundles.hs" 4 8 4 12
+                        , srcInfoPoints = []
+                        }
+                      "main"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/Bundles.hs.prettyparser.golden b/tests/examples/Bundles.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Bundles.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Bundles.hs.prettyprinter.golden b/tests/examples/Bundles.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Bundles.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE PatternSynonyms #-}
+module Bundles (Foo(..), Baz(.., Q), Qux(F, ..), Tux(Q, .., F))
+       where
+main = main
diff --git a/tests/examples/ByteStringUtils.hs.parser.golden b/tests/examples/ByteStringUtils.hs.parser.golden
# file too large to diff: tests/examples/ByteStringUtils.hs.parser.golden
diff --git a/tests/examples/ByteStringUtils.hs.prettyparser.golden b/tests/examples/ByteStringUtils.hs.prettyparser.golden
--- a/tests/examples/ByteStringUtils.hs.prettyparser.golden
+++ b/tests/examples/ByteStringUtils.hs.prettyparser.golden
@@ -1,1 +1,10 @@
-Match
+Roundtrip test failed
+
+AST 1:
+
+Module () (Just (ModuleHead () (ModuleName () "ByteStringUtils") Nothing (Just (ExportSpecList () [EVar () (UnQual () (Ident () "unsafeWithInternals")),EVar () (UnQual () (Ident () "unpackPSfromUTF8")),EVar () (UnQual () (Ident () "gzReadFilePS")),EVar () (UnQual () (Ident () "mmapFilePS")),EVar () (UnQual () (Ident () "gzWriteFilePS")),EVar () (UnQual () (Ident () "gzWriteFilePSs")),EVar () (UnQual () (Ident () "ifHeadThenTail")),EVar () (UnQual () (Ident () "dropSpace")),EVar () (UnQual () (Ident () "breakSpace")),EVar () (UnQual () (Ident () "linesPS")),EVar () (UnQual () (Ident () "unlinesPS")),EVar () (UnQual () (Ident () "hashPS")),EVar () (UnQual () (Ident () "breakFirstPS")),EVar () (UnQual () (Ident () "breakLastPS")),EVar () (UnQual () (Ident () "substrPS")),EVar () (UnQual () (Ident () "readIntPS")),EVar () (UnQual () (Ident () "is_funky")),EVar () (UnQual () (Ident () "fromHex2PS")),EVar () (UnQual () (Ident () "fromPS2Hex")),EVar () (UnQual () (Ident () "betweenLinesPS")),EVar () (UnQual () (Ident () "break_after_nth_newline")),EVar () (UnQual () (Ident () "break_before_nth_newline")),EVar () (UnQual () (Ident () "intercalate"))])))) [LanguagePragma () [Ident () "BangPatterns",Ident () "ForeignFunctionInterface",Ident () "CPP"]] [ImportDecl {importAnn = (), importModule = ModuleName () "Prelude", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () True [IVar () (Ident () "catch")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "B"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Char8", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BC"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Internal", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BI"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "intercalate"),IVar () (Ident () "uncons")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Internal", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "fromForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Control.Exception", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "catch")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO.Unsafe", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "unsafePerformIO")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Storable", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "peekElemOff"),IVar () (Ident () "peek")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Marshal.Alloc", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "free")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Marshal.Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "mallocArray"),IVar () (Ident () "peekArray"),IVar () (Ident () "advancePtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.C.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "CInt")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Bits", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "rotateL")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Char", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "chr"),IVar () (Ident () "ord"),IVar () (Ident () "isSpace")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Word", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "Word8")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Int", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "Int32")])},ImportDecl {importAnn = (), importModule = ModuleName () "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "when")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "nullPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "ForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "plusPtr"),IAbs () (NoNamespace ()) (Ident () "Ptr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "withForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "addForeignPtrFinalizer")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "FunPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Lazy", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BL"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Codec.Compression.GZip", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "GZ"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.C.String", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "CString"),IVar () (Ident () "withCString")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO.MMap", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "mmapFileByteString")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.Mem", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "performGC")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.Posix.Files", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "fileSize"),IVar () (Ident () "getSymbolicLinkStatus")])}] [TypeSig () [Ident () "debugForeignPtr"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "ForeignPtr"))) (TyVar () (Ident () "a"))) (TyFun () (TyCon () (UnQual () (Ident () "String"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h debug_alloc") (Ident () "debug_alloc") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyVar () (Ident () "a"))) (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h & debug_free") (Ident () "debug_free") (TyApp () (TyCon () (UnQual () (Ident () "FunPtr"))) (TyParen () (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyVar () (Ident () "a"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),FunBind () [Match () (Ident () "debugForeignPtr") [PVar () (Ident () "fp"),PVar () (Ident () "n")] (UnGuardedRhs () (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Var () (UnQual () (Ident () "n")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "cname")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Qualifier () (App () (App () (Var () (UnQual () (Ident () "debug_alloc"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "cname")))),Qualifier () (App () (App () (Var () (UnQual () (Ident () "addForeignPtrFinalizer"))) (Var () (UnQual () (Ident () "debug_free")))) (Var () (UnQual () (Ident () "fp"))))])))))) Nothing,Match () (Ident () "debugForeignPtr") [PWildCard (),PWildCard ()] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Con () (Special () (UnitCon ()))))) Nothing],TypeSig () [Ident () "unsafeWithInternals"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyParen () (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyVar () (Ident () "a")))))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyVar () (Ident () "a"))))),FunBind () [Match () (Ident () "unsafeWithInternals") [PVar () (Ident () "ps"),PVar () (Ident () "f")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (Var () (UnQual () (Ident () "f"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Var () (UnQual () (Ident () "l"))))))) Nothing])) Nothing],TypeSig () [Ident () "readIntPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (UnQual () (Ident () "Int")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))]))),PatBind () (PVar () (Ident () "readIntPS")) (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BC") (Ident () "readInt"))) (QVarOp () (UnQual () (Symbol () "."))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "dropWhile"))) (Var () (UnQual () (Ident () "isSpace")))))) Nothing,TypeSig () [Ident () "unpackPSfromUTF8"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "String")))),FunBind () [Match () (Ident () "unpackPSfromUTF8") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PWildCard (),PWildCard (),PLit () (Signless ()) (Int () 0 "0")]) (UnGuardedRhs () (Lit () (String () "" ""))) Nothing,Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "outbuf")) (App () (Var () (UnQual () (Ident () "mallocArray"))) (Var () (UnQual () (Ident () "l")))),Generator () (PVar () (Ident () "lout")) (InfixApp () (Var () (UnQual () (Ident () "fromIntegral"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (App () (Var () (UnQual () (Ident () "utf8_to_ints"))) (Var () (UnQual () (Ident () "outbuf")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l"))))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "lout"))) (QVarOp () (UnQual () (Symbol () "<"))) (Lit () (Int () 0 "0"))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (UnQual () (Ident () "error"))) (Lit () (String () "Bad UTF8!" "Bad UTF8!")))),Generator () (PVar () (Ident () "str")) (InfixApp () (Paren () (App () (Var () (UnQual () (Ident () "map"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "chr"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "fromIntegral"))))))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "peekArray"))) (Var () (UnQual () (Ident () "lout")))) (Var () (UnQual () (Ident () "outbuf"))))),Qualifier () (App () (Var () (UnQual () (Ident () "free"))) (Var () (UnQual () (Ident () "outbuf")))),Qualifier () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "str"))))]))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h utf8_to_ints") (Ident () "utf8_to_ints") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Int")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),InlineSig () True Nothing (UnQual () (Ident () "ifHeadThenTail")),TypeSig () [Ident () "ifHeadThenTail"] (TyFun () (TyCon () (UnQual () (Ident () "Word8"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))))),FunBind () [Match () (Ident () "ifHeadThenTail") [PVar () (Ident () "c"),PVar () (Ident () "s")] (UnGuardedRhs () (Case () (App () (Var () (UnQual () (Ident () "uncons"))) (Var () (UnQual () (Ident () "s")))) [Alt () (PApp () (UnQual () (Ident () "Just")) [PTuple () Boxed [PVar () (Ident () "w"),PVar () (Ident () "t")]]) (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "c"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "t"))))]) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing],TypeSig () [Ident () "isSpaceWord8"] (TyFun () (TyCon () (UnQual () (Ident () "Word8"))) (TyCon () (UnQual () (Ident () "Bool")))),FunBind () [Match () (Ident () "isSpaceWord8") [PVar () (Ident () "w")] (UnGuardedRhs () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 32 "0x20"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 9 "0x09"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 10 "0x0A"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 13 "0x0D"))))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "isSpaceWord8")),TypeSig () [Ident () "firstnonspace"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))))),FunBind () [Match () (Ident () "firstnonspace") [PBangPat () (PVar () (Ident () "ptr")),PBangPat () (PVar () (Ident () "n")),PBangPat () (PVar () (Ident () "m"))] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () ">="))) (Var () (UnQual () (Ident () "m"))))] (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "n")))),Qualifier () (If () (App () (Var () (UnQual () (Ident () "isSpaceWord8"))) (Var () (UnQual () (Ident () "w")))) (App () (App () (App () (Var () (UnQual () (Ident () "firstnonspace"))) (Var () (UnQual () (Ident () "ptr")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "m")))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))))])]) Nothing],TypeSig () [Ident () "firstspace"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))))),FunBind () [Match () (Ident () "firstspace") [PBangPat () (PVar () (Ident () "ptr")),PBangPat () (PVar () (Ident () "n")),PBangPat () (PVar () (Ident () "m"))] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () ">="))) (Var () (UnQual () (Ident () "m"))))] (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "n")))),Qualifier () (If () (App () (Paren () (InfixApp () (Var () (UnQual () (Ident () "not"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "isSpaceWord8"))))) (Var () (UnQual () (Ident () "w")))) (App () (App () (App () (Var () (UnQual () (Ident () "firstspace"))) (Var () (UnQual () (Ident () "ptr")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "m")))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))))])]) Nothing],TypeSig () [Ident () "dropSpace"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "dropSpace") [PParen () (PApp () (Qual () (ModuleName () "BI") (Ident () "PS")) [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")])] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BI") (Ident () "inlinePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "i")) (App () (App () (App () (Var () (UnQual () (Ident () "firstnonspace"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "l")))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$!"))) (If () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "l")))) (Var () (Qual () (ModuleName () "B") (Ident () "empty"))) (App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "i")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "i"))))))))]))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "dropSpace")),TypeSig () [Ident () "breakSpace"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])),FunBind () [Match () (Ident () "breakSpace") [PParen () (PApp () (Qual () (ModuleName () "BI") (Ident () "PS")) [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")])] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BI") (Ident () "inlinePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "i")) (App () (App () (App () (Var () (UnQual () (Ident () "firstspace"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "l")))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$!"))) (Case () (Con () (Special () (UnitCon ()))) [Alt () (PWildCard ()) (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0")))] (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "l")))]),GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "l"))))] (Tuple () Boxed [App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "l"))),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Tuple () Boxed [App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "i"))),App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "i")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "i")))))])]) Nothing]))]))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakSpace")),InlineSig () True Nothing (UnQual () (Ident () "is_funky")),TypeSig () [Ident () "is_funky"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "Bool")))),FunBind () [Match () (Ident () "is_funky") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (RightSection () (QVarOp () (UnQual () (Symbol () "/="))) (Lit () (Int () 0 "0"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "has_funky_char"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l"))))))))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "fpstring.h has_funky_char") (Ident () "has_funky_char") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt")))))),InlineSig () True Nothing (UnQual () (Ident () "hashPS")),TypeSig () [Ident () "hashPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "Int32")))),FunBind () [Match () (Ident () "hashPS") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Qualifier () (App () (App () (Var () (UnQual () (Ident () "hash"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Var () (UnQual () (Ident () "l"))))]))))) Nothing])) Nothing],TypeSig () [Ident () "hash"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int32")))))),FunBind () [Match () (Ident () "hash") [PVar () (Ident () "ptr"),PVar () (Ident () "len")] (UnGuardedRhs () (App () (App () (App () (Var () (UnQual () (Ident () "f"))) (Paren () (ExpTypeSig () (Lit () (Int () 0 "0")) (TyCon () (UnQual () (Ident () "Int32")))))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "len"))))) (Just (BDecls () [FunBind () [Match () (Ident () "f") [PVar () (Ident () "h"),PWildCard (),PLit () (Signless ()) (Int () 0 "0")] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "h"))))) Nothing,Match () (Ident () "f") [PVar () (Ident () "h"),PVar () (Ident () "p"),PVar () (Ident () "n")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "x")) (App () (Var () (UnQual () (Ident () "peek"))) (Var () (UnQual () (Ident () "p")))),LetStmt () (BDecls () [PatBind () (PBangPat () (PVar () (Ident () "h'"))) (UnGuardedRhs () (InfixApp () (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "x"))))) (QVarOp () (UnQual () (Symbol () "+"))) (Paren () (App () (App () (Var () (UnQual () (Ident () "rotateL"))) (Var () (UnQual () (Ident () "h")))) (Lit () (Int () 8 "8")))))) Nothing]),Qualifier () (App () (App () (App () (Var () (UnQual () (Ident () "f"))) (Var () (UnQual () (Ident () "h'")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "advancePtr"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1")))))])) Nothing]]))],InlineSig () True Nothing (UnQual () (Ident () "substrPS")),TypeSig () [Ident () "substrPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyCon () (UnQual () (Ident () "Int")))))),FunBind () [Match () (Ident () "substrPS") [PVar () (Ident () "tok"),PVar () (Ident () "str")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "tok"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Lit () (Int () 0 "0"))),GuardedRhs () [Qualifier () (InfixApp () (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "tok")))) (QVarOp () (UnQual () (Symbol () ">"))) (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "str")))))] (Con () (UnQual () (Ident () "Nothing"))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "n")) (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndex"))) (Paren () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "head"))) (Var () (UnQual () (Ident () "tok")))))) (Var () (UnQual () (Ident () "str")))),LetStmt () (BDecls () [PatBind () (PVar () (Ident () "ttok")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "B") (Ident () "tail"))) (Var () (UnQual () (Ident () "tok"))))) Nothing,PatBind () (PVar () (Ident () "reststr")) (UnGuardedRhs () (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "str"))))) Nothing]),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "ttok"))) (QVarOp () (UnQual () (Symbol () "=="))) (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Paren () (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "ttok")))))) (Var () (UnQual () (Ident () "reststr"))))) (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "n")))) (InfixApp () (LeftSection () (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1")))) (QVarOp () (UnQual () (Symbol () "+")))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "substrPS"))) (Var () (UnQual () (Ident () "tok")))) (Var () (UnQual () (Ident () "reststr"))))))])]) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakFirstPS")),TypeSig () [Ident () "breakFirstPS"] (TyFun () (TyCon () (UnQual () (Ident () "Char"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "breakFirstPS") [PVar () (Ident () "c"),PVar () (Ident () "p")] (UnGuardedRhs () (Case () (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndex"))) (Var () (UnQual () (Ident () "c")))) (Var () (UnQual () (Ident () "p")))) [Alt () (PApp () (UnQual () (Ident () "Nothing")) []) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing,Alt () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "n")]) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "p"))),App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "p")))]))) Nothing])) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakLastPS")),TypeSig () [Ident () "breakLastPS"] (TyFun () (TyCon () (UnQual () (Ident () "Char"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "breakLastPS") [PVar () (Ident () "c"),PVar () (Ident () "p")] (UnGuardedRhs () (Case () (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndexEnd"))) (Var () (UnQual () (Ident () "c")))) (Var () (UnQual () (Ident () "p")))) [Alt () (PApp () (UnQual () (Ident () "Nothing")) []) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing,Alt () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "n")]) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "p"))),App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "p")))]))) Nothing])) Nothing],InlineSig () True Nothing (UnQual () (Ident () "linesPS")),TypeSig () [Ident () "linesPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "linesPS") [PVar () (Ident () "ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "ps"))))] (List () [Var () (Qual () (ModuleName () "B") (Ident () "empty"))]),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "split"))) (Lit () (Char () '\n' "\\n"))) (Var () (UnQual () (Ident () "ps"))))]) Nothing],TypeSig () [Ident () "unlinesPS"] (TyFun () (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "unlinesPS") [PList () []] (UnGuardedRhs () (Var () (Qual () (ModuleName () "BC") (Ident () "empty")))) Nothing,Match () (Ident () "unlinesPS") [PVar () (Ident () "x")] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BC") (Ident () "init"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "unlines"))) (Var () (UnQual () (Ident () "x")))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "unlinesPS")),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzopen") (Ident () "c_gzopen") (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyParen () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzclose") (Ident () "c_gzclose") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzread") (Ident () "c_gzread") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzwrite") (Ident () "c_gzwrite") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),TypeSig () [Ident () "gzReadFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "gzReadFilePS") [PVar () (Ident () "f")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "h")) (App () (App () (Var () (UnQual () (Ident () "openBinaryFile"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "ReadMode")))),Generator () (PVar () (Ident () "header")) (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "hGet"))) (Var () (UnQual () (Ident () "h")))) (Lit () (Int () 2 "2"))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "header"))) (QVarOp () (UnQual () (Symbol () "/="))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "pack"))) (Lit () (String () "\US\139" "\\31\\139")))) (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "hClose"))) (Var () (UnQual () (Ident () "h")))),Qualifier () (App () (Var () (UnQual () (Ident () "mmapFilePS"))) (Var () (UnQual () (Ident () "f"))))]) (Do () [Qualifier () (App () (App () (App () (Var () (UnQual () (Ident () "hSeek"))) (Var () (UnQual () (Ident () "h")))) (Con () (UnQual () (Ident () "SeekFromEnd")))) (Paren () (NegApp () (Lit () (Int () 4 "4"))))),Generator () (PVar () (Ident () "len")) (App () (Var () (UnQual () (Ident () "hGetLittleEndInt"))) (Var () (UnQual () (Ident () "h")))),Qualifier () (App () (Var () (UnQual () (Ident () "hClose"))) (Var () (UnQual () (Ident () "h")))),LetStmt () (BDecls () [PatBind () (PVar () (Ident () "decompress")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "GZ") (Ident () "decompressWith"))) (RecUpdate () (Var () (Qual () (ModuleName () "GZ") (Ident () "defaultDecompressParams"))) [FieldUpdate () (Qual () (ModuleName () "GZ") (Ident () "decompressBufferSize")) (Var () (UnQual () (Ident () "len")))]))) Nothing]),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "fmap"))) (Paren () (InfixApp () (Var () (Qual () (ModuleName () "B") (Ident () "concat"))) (QVarOp () (UnQual () (Symbol () "."))) (InfixApp () (Var () (Qual () (ModuleName () "BL") (Ident () "toChunks"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "decompress"))))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "fmap"))) (Paren () (InfixApp () (Var () (Qual () (ModuleName () "BL") (Ident () "fromChunks"))) (QVarOp () (UnQual () (Symbol () "."))) (RightSection () (QConOp () (Special () (Cons ()))) (List () []))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "readFile"))) (Var () (UnQual () (Ident () "f")))) (Var () (Qual () (ModuleName () "BL") (Ident () "readFile")))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "fstr")] (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Lit () (String () "rb" "rb"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "rb")] (Do () [Generator () (PVar () (Ident () "gzf")) (App () (App () (Var () (UnQual () (Ident () "c_gzopen"))) (Var () (UnQual () (Ident () "fstr")))) (Var () (UnQual () (Ident () "rb")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "gzf"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nullPtr")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem opening file " "problem opening file ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Generator () (PVar () (Ident () "fp")) (App () (Var () (Qual () (ModuleName () "BI") (Ident () "mallocByteString"))) (Var () (UnQual () (Ident () "len")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "debugForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "gzReadFilePS " "gzReadFilePS ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f"))))),Generator () (PVar () (Ident () "lread")) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (App () (Var () (UnQual () (Ident () "c_gzread"))) (Var () (UnQual () (Ident () "gzf")))) (Var () (UnQual () (Ident () "p")))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "len")))))))),Qualifier () (App () (Var () (UnQual () (Ident () "c_gzclose"))) (Var () (UnQual () (Ident () "gzf")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "lread")))) (QVarOp () (UnQual () (Symbol () "/="))) (Var () (UnQual () (Ident () "len")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzreading file " "problem gzreading file ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "len")))))])))))]))])) Nothing],TypeSig () [Ident () "hGetLittleEndInt"] (TyFun () (TyCon () (UnQual () (Ident () "Handle"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))),FunBind () [Match () (Ident () "hGetLittleEndInt") [PVar () (Ident () "h")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "b1")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b2")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b3")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b4")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "b1"))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 256 "256")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b2"))))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 65536 "65536")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b3"))))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 16777216 "16777216")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b4"))))))])) Nothing],TypeSig () [Ident () "gzWriteFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteFilePS") [PVar () (Ident () "f"),PVar () (Ident () "ps")] (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "gzWriteFilePSs"))) (Var () (UnQual () (Ident () "f")))) (List () [Var () (UnQual () (Ident () "ps"))]))) Nothing],TypeSig () [Ident () "gzWriteFilePSs"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyFun () (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteFilePSs") [PVar () (Ident () "f"),PVar () (Ident () "pss")] (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BL") (Ident () "writeFile"))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (Qual () (ModuleName () "GZ") (Ident () "compress"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (App () (App () (Var () (Qual () (ModuleName () "BL") (Ident () "fromChunks"))) (Var () (UnQual () (Ident () "pss")))) (Var () (UnQual () (Ident () "withCString")))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "fstr")] (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Lit () (String () "wb" "wb"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "wb")] (Do () [Generator () (PVar () (Ident () "gzf")) (App () (App () (Var () (UnQual () (Ident () "c_gzopen"))) (Var () (UnQual () (Ident () "fstr")))) (Var () (UnQual () (Ident () "wb")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "gzf"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nullPtr")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzopening file for write: " "problem gzopening file for write: ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (App () (App () (Var () (UnQual () (Ident () "mapM_"))) (Paren () (App () (Var () (UnQual () (Ident () "gzWriteToGzf"))) (Var () (UnQual () (Ident () "gzf")))))) (Var () (UnQual () (Ident () "pss")))) (QVarOp () (UnQual () (Ident () "catch"))) (Lambda () [PWildCard ()] (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzwriting file: " "problem gzwriting file: ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f"))))))),Qualifier () (App () (Var () (UnQual () (Ident () "c_gzclose"))) (Var () (UnQual () (Ident () "gzf"))))])))))))) Nothing],TypeSig () [Ident () "gzWriteToGzf"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteToGzf") [PVar () (Ident () "gzf"),PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PWildCard (),PWildCard (),PLit () (Signless ()) (Int () 0 "0")]) (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Con () (Special () (UnitCon ()))))) Nothing,Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "lw")) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (App () (Var () (UnQual () (Ident () "c_gzwrite"))) (Var () (UnQual () (Ident () "gzf")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l")))))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "lw")))) (QVarOp () (UnQual () (Symbol () "/="))) (Var () (UnQual () (Ident () "l")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lit () (String () "problem in gzWriteToGzf" "problem in gzWriteToGzf"))))])) Nothing])) Nothing],TypeSig () [Ident () "mmapFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "mmapFilePS") [PVar () (Ident () "f")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "x")) (InfixApp () (App () (App () (Var () (UnQual () (Ident () "mmapFileByteString"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "Nothing")))) (QVarOp () (UnQual () (Ident () "catch"))) (Paren () (Lambda () [PWildCard ()] (Do () [Generator () (PVar () (Ident () "size")) (InfixApp () (Var () (UnQual () (Ident () "fileSize"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "getSymbolicLinkStatus"))) (Var () (UnQual () (Ident () "f"))))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "size"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0"))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (Qual () (ModuleName () "B") (Ident () "empty")))) (InfixApp () (Var () (UnQual () (Ident () "performGC"))) (QVarOp () (UnQual () (Symbol () ">>"))) (App () (App () (Var () (UnQual () (Ident () "mmapFileByteString"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "Nothing"))))))])))),Qualifier () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "x"))))])) Nothing],PatBind () (PVar () (Ident () "mmapFilePS")) (UnGuardedRhs () (Var () (Qual () (ModuleName () "B") (Ident () "readFile")))) Nothing,ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h conv_to_hex") (Ident () "conv_to_hex") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),TypeSig () [Ident () "fromPS2Hex"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "fromPS2Hex") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "unsafeCreate"))) (Paren () (InfixApp () (Lit () (Int () 2 "2")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "l")))))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "f")] (InfixApp () (App () (App () (Var () (UnQual () (Ident () "conv_to_hex"))) (Var () (UnQual () (Ident () "p")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "f"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l")))))))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h conv_from_hex") (Ident () "conv_from_hex") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),TypeSig () [Ident () "fromHex2PS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "fromHex2PS") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "unsafeCreate"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Ident () "div"))) (Lit () (Int () 2 "2"))))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "f")] (App () (App () (App () (Var () (UnQual () (Ident () "conv_from_hex"))) (Var () (UnQual () (Ident () "p")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "f"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "fromIntegral"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Ident () "div"))) (Lit () (Int () 2 "2"))))))))))) Nothing])) Nothing],TypeSig () [Ident () "betweenLinesPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyParen () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))))))),FunBind () [Match () (Ident () "betweenLinesPS") [PVar () (Ident () "start"),PVar () (Ident () "end"),PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (App () (Var () (UnQual () (Ident () "break"))) (LeftSection () (Var () (UnQual () (Ident () "start"))) (QVarOp () (UnQual () (Symbol () "=="))))) (Paren () (App () (Var () (UnQual () (Ident () "linesPS"))) (Var () (UnQual () (Ident () "ps")))))) [Alt () (PTuple () Boxed [PWildCard (),PInfixApp () (PWildCard ()) (Special () (Cons ())) (PAsPat () (Ident () "rest") (PParen () (PInfixApp () (PVar () (Ident () "bs1")) (Special () (Cons ())) (PWildCard ()))))]) (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "bs1")))) [Alt () (PTuple () Boxed [PVar () (Ident () "ps1"),PVar () (Ident () "s1"),PWildCard ()]) (UnGuardedRhs () (Case () (App () (App () (Var () (UnQual () (Ident () "break"))) (LeftSection () (Var () (UnQual () (Ident () "end"))) (QVarOp () (UnQual () (Symbol () "=="))))) (Var () (UnQual () (Ident () "rest")))) [Alt () (PTuple () Boxed [PWildCard (),PInfixApp () (PVar () (Ident () "bs2")) (Special () (Cons ())) (PWildCard ())]) (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "bs2")))) [Alt () (PTuple () Boxed [PWildCard (),PVar () (Ident () "s2"),PWildCard ()]) (UnGuardedRhs () (InfixApp () (Con () (UnQual () (Ident () "Just"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "ps1")))) (Var () (UnQual () (Ident () "s1")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s2"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "s1")))))))) Nothing])) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing])) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing],TypeSig () [Ident () "break_after_nth_newline"] (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "break_after_nth_newline") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "the_ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "the_ps"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]))]) Nothing,Match () (Ident () "break_after_nth_newline") [PVar () (Ident () "n"),PVar () (Ident () "the_ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "the_ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "the_s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [LetStmt () (BDecls () [FunBind () [Match () (Ident () "findit") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [Var () (UnQual () (Ident () "the_ps")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))])))]) Nothing,Match () (Ident () "findit") [PWildCard (),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (App () (Var () (UnQual () (Ident () "return"))) (Con () (UnQual () (Ident () "Nothing"))))]) Nothing,Match () (Ident () "findit") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "s")] (UnGuardedRhs () (Let () (BDecls () [PatBind () (PVar () (Ident () "left_l")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "the_s"))))) Nothing]) (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "the_s")))) (Var () (UnQual () (Ident () "left_l"))),App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "s")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "left_l")))))]))))) Nothing,Match () (Ident () "findit") [PVar () (Ident () "i"),PVar () (Ident () "s")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "s")))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nl")))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "i")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))))])) Nothing],PatBind () (PVar () (Ident () "nl")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "c2w"))) (Lit () (Char () '\n' "\\n")))) Nothing,PatBind () (PVar () (Ident () "end")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "the_s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "l"))))) Nothing]),Qualifier () (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "the_s"))))]))))) Nothing])) Nothing],TypeSig () [Ident () "break_before_nth_newline"] (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))]))),FunBind () [Match () (Ident () "break_before_nth_newline") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "the_ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "the_ps"))))] (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))])]) Nothing,Match () (Ident () "break_before_nth_newline") [PVar () (Ident () "n"),PVar () (Ident () "the_ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "the_ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "the_s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [LetStmt () (BDecls () [FunBind () [Match () (Ident () "findit") [PWildCard (),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (App () (Var () (UnQual () (Ident () "return"))) (Tuple () Boxed [Var () (UnQual () (Ident () "the_ps")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]))]) Nothing,Match () (Ident () "findit") [PVar () (Ident () "i"),PVar () (Ident () "s")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "s")))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nl")))) (If () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0"))) (Let () (BDecls () [PatBind () (PVar () (Ident () "left_l")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "the_s"))))) Nothing]) (App () (Var () (UnQual () (Ident () "return"))) (Tuple () Boxed [App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "the_s")))) (Var () (UnQual () (Ident () "left_l"))),App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "s")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "left_l")))))]))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1")))))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "i")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))))])) Nothing],PatBind () (PVar () (Ident () "nl")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "c2w"))) (Lit () (Char () '\n' "\\n")))) Nothing,PatBind () (PVar () (Ident () "end")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "the_s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "l"))))) Nothing]),Qualifier () (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "the_s"))))]))))) Nothing])) Nothing]]
+
+AST 2:
+
+Module () (Just (ModuleHead () (ModuleName () "ByteStringUtils") Nothing (Just (ExportSpecList () [EVar () (UnQual () (Ident () "unsafeWithInternals")),EVar () (UnQual () (Ident () "unpackPSfromUTF8")),EVar () (UnQual () (Ident () "gzReadFilePS")),EVar () (UnQual () (Ident () "mmapFilePS")),EVar () (UnQual () (Ident () "gzWriteFilePS")),EVar () (UnQual () (Ident () "gzWriteFilePSs")),EVar () (UnQual () (Ident () "ifHeadThenTail")),EVar () (UnQual () (Ident () "dropSpace")),EVar () (UnQual () (Ident () "breakSpace")),EVar () (UnQual () (Ident () "linesPS")),EVar () (UnQual () (Ident () "unlinesPS")),EVar () (UnQual () (Ident () "hashPS")),EVar () (UnQual () (Ident () "breakFirstPS")),EVar () (UnQual () (Ident () "breakLastPS")),EVar () (UnQual () (Ident () "substrPS")),EVar () (UnQual () (Ident () "readIntPS")),EVar () (UnQual () (Ident () "is_funky")),EVar () (UnQual () (Ident () "fromHex2PS")),EVar () (UnQual () (Ident () "fromPS2Hex")),EVar () (UnQual () (Ident () "betweenLinesPS")),EVar () (UnQual () (Ident () "break_after_nth_newline")),EVar () (UnQual () (Ident () "break_before_nth_newline")),EVar () (UnQual () (Ident () "intercalate"))])))) [LanguagePragma () [Ident () "BangPatterns",Ident () "ForeignFunctionInterface",Ident () "CPP"]] [ImportDecl {importAnn = (), importModule = ModuleName () "Prelude", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () True [IVar () (Ident () "catch")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "B"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Char8", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BC"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Internal", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BI"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "intercalate"),IVar () (Ident () "uncons")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Internal", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "fromForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Control.Exception", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "catch")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO.Unsafe", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "unsafePerformIO")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Storable", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "peekElemOff"),IVar () (Ident () "peek")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Marshal.Alloc", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "free")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Marshal.Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "mallocArray"),IVar () (Ident () "peekArray"),IVar () (Ident () "advancePtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.C.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "CInt")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Bits", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "rotateL")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Char", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "chr"),IVar () (Ident () "ord"),IVar () (Ident () "isSpace")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Word", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "Word8")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.Int", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "Int32")])},ImportDecl {importAnn = (), importModule = ModuleName () "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "when")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "nullPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "ForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "plusPtr"),IAbs () (NoNamespace ()) (Ident () "Ptr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "withForeignPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.ForeignPtr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "addForeignPtrFinalizer")])},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.Ptr", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "FunPtr")])},ImportDecl {importAnn = (), importModule = ModuleName () "Data.ByteString.Lazy", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "BL"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Codec.Compression.GZip", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName () "GZ"), importSpecs = Nothing},ImportDecl {importAnn = (), importModule = ModuleName () "Foreign.C.String", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IAbs () (NoNamespace ()) (Ident () "CString"),IVar () (Ident () "withCString")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.IO.MMap", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "mmapFileByteString")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.Mem", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "performGC")])},ImportDecl {importAnn = (), importModule = ModuleName () "System.Posix.Files", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList () False [IVar () (Ident () "fileSize"),IVar () (Ident () "getSymbolicLinkStatus")])}] [TypeSig () [Ident () "debugForeignPtr"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "ForeignPtr"))) (TyVar () (Ident () "a"))) (TyFun () (TyCon () (UnQual () (Ident () "String"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h debug_alloc") (Ident () "debug_alloc") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyVar () (Ident () "a"))) (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h & debug_free") (Ident () "debug_free") (TyApp () (TyCon () (UnQual () (Ident () "FunPtr"))) (TyParen () (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyVar () (Ident () "a"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),FunBind () [Match () (Ident () "debugForeignPtr") [PVar () (Ident () "fp"),PVar () (Ident () "n")] (UnGuardedRhs () (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Var () (UnQual () (Ident () "n")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "cname")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Qualifier () (App () (App () (Var () (UnQual () (Ident () "debug_alloc"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "cname")))),Qualifier () (App () (App () (Var () (UnQual () (Ident () "addForeignPtrFinalizer"))) (Var () (UnQual () (Ident () "debug_free")))) (Var () (UnQual () (Ident () "fp"))))])))))) Nothing,Match () (Ident () "debugForeignPtr") [PWildCard (),PWildCard ()] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Con () (Special () (UnitCon ()))))) Nothing],TypeSig () [Ident () "unsafeWithInternals"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyParen () (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyVar () (Ident () "a")))))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyVar () (Ident () "a"))))),FunBind () [Match () (Ident () "unsafeWithInternals") [PVar () (Ident () "ps"),PVar () (Ident () "f")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (Var () (UnQual () (Ident () "f"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Var () (UnQual () (Ident () "l"))))))) Nothing])) Nothing],TypeSig () [Ident () "readIntPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (UnQual () (Ident () "Int")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))]))),PatBind () (PVar () (Ident () "readIntPS")) (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BC") (Ident () "readInt"))) (QVarOp () (UnQual () (Symbol () "."))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "dropWhile"))) (Var () (UnQual () (Ident () "isSpace")))))) Nothing,TypeSig () [Ident () "unpackPSfromUTF8"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "String")))),FunBind () [Match () (Ident () "unpackPSfromUTF8") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PWildCard (),PWildCard (),PLit () (Signless ()) (Int () 0 "0")]) (UnGuardedRhs () (Lit () (String () "" ""))) Nothing,Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "outbuf")) (App () (Var () (UnQual () (Ident () "mallocArray"))) (Var () (UnQual () (Ident () "l")))),Generator () (PVar () (Ident () "lout")) (InfixApp () (Var () (UnQual () (Ident () "fromIntegral"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (App () (Var () (UnQual () (Ident () "utf8_to_ints"))) (Var () (UnQual () (Ident () "outbuf")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l"))))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "lout"))) (QVarOp () (UnQual () (Symbol () "<"))) (Lit () (Int () 0 "0"))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (UnQual () (Ident () "error"))) (Lit () (String () "Bad UTF8!" "Bad UTF8!")))),Generator () (PVar () (Ident () "str")) (InfixApp () (Paren () (App () (Var () (UnQual () (Ident () "map"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "chr"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "fromIntegral"))))))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "peekArray"))) (Var () (UnQual () (Ident () "lout")))) (Var () (UnQual () (Ident () "outbuf"))))),Qualifier () (App () (Var () (UnQual () (Ident () "free"))) (Var () (UnQual () (Ident () "outbuf")))),Qualifier () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "str"))))]))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h utf8_to_ints") (Ident () "utf8_to_ints") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Int")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),InlineSig () True Nothing (UnQual () (Ident () "ifHeadThenTail")),TypeSig () [Ident () "ifHeadThenTail"] (TyFun () (TyCon () (UnQual () (Ident () "Word8"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))))),FunBind () [Match () (Ident () "ifHeadThenTail") [PVar () (Ident () "c"),PVar () (Ident () "s")] (UnGuardedRhs () (Case () (App () (Var () (UnQual () (Ident () "uncons"))) (Var () (UnQual () (Ident () "s")))) [Alt () (PApp () (UnQual () (Ident () "Just")) [PTuple () Boxed [PVar () (Ident () "w"),PVar () (Ident () "t")]]) (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "c"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "t"))))]) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing],TypeSig () [Ident () "isSpaceWord8"] (TyFun () (TyCon () (UnQual () (Ident () "Word8"))) (TyCon () (UnQual () (Ident () "Bool")))),FunBind () [Match () (Ident () "isSpaceWord8") [PVar () (Ident () "w")] (UnGuardedRhs () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 32 "32"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 9 "9"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 10 "10"))) (QVarOp () (UnQual () (Symbol () "||"))) (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 13 "13"))))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "isSpaceWord8")),TypeSig () [Ident () "firstnonspace"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))))),FunBind () [Match () (Ident () "firstnonspace") [PBangPat () (PVar () (Ident () "ptr")),PBangPat () (PVar () (Ident () "n")),PBangPat () (PVar () (Ident () "m"))] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () ">="))) (Var () (UnQual () (Ident () "m"))))] (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "n")))),Qualifier () (If () (App () (Var () (UnQual () (Ident () "isSpaceWord8"))) (Var () (UnQual () (Ident () "w")))) (App () (App () (App () (Var () (UnQual () (Ident () "firstnonspace"))) (Var () (UnQual () (Ident () "ptr")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "m")))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))))])]) Nothing],TypeSig () [Ident () "firstspace"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))))),FunBind () [Match () (Ident () "firstspace") [PBangPat () (PVar () (Ident () "ptr")),PBangPat () (PVar () (Ident () "n")),PBangPat () (PVar () (Ident () "m"))] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () ">="))) (Var () (UnQual () (Ident () "m"))))] (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "n")))),Qualifier () (If () (App () (Paren () (InfixApp () (Var () (UnQual () (Ident () "not"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "isSpaceWord8"))))) (Var () (UnQual () (Ident () "w")))) (App () (App () (App () (Var () (UnQual () (Ident () "firstspace"))) (Var () (UnQual () (Ident () "ptr")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "m")))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "n")))))])]) Nothing],TypeSig () [Ident () "dropSpace"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "dropSpace") [PParen () (PApp () (Qual () (ModuleName () "BI") (Ident () "PS")) [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")])] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BI") (Ident () "inlinePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "i")) (App () (App () (App () (Var () (UnQual () (Ident () "firstnonspace"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "l")))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$!"))) (If () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "l")))) (Var () (Qual () (ModuleName () "B") (Ident () "empty"))) (App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "i")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "i"))))))))]))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "dropSpace")),TypeSig () [Ident () "breakSpace"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])),FunBind () [Match () (Ident () "breakSpace") [PParen () (PApp () (Qual () (ModuleName () "BI") (Ident () "PS")) [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")])] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BI") (Ident () "inlinePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Generator () (PVar () (Ident () "i")) (App () (App () (App () (Var () (UnQual () (Ident () "firstspace"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "l")))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$!"))) (Case () (Con () (Special () (UnitCon ()))) [Alt () (PWildCard ()) (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0")))] (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "l")))]),GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "l"))))] (Tuple () Boxed [App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "l"))),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Tuple () Boxed [App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Var () (UnQual () (Ident () "s")))) (Var () (UnQual () (Ident () "i"))),App () (App () (App () (Con () (Qual () (ModuleName () "BI") (Ident () "PS"))) (Var () (UnQual () (Ident () "x")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "i")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "i")))))])]) Nothing]))]))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakSpace")),InlineSig () True Nothing (UnQual () (Ident () "is_funky")),TypeSig () [Ident () "is_funky"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "Bool")))),FunBind () [Match () (Ident () "is_funky") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (RightSection () (QVarOp () (UnQual () (Symbol () "/="))) (Lit () (Int () 0 "0"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "has_funky_char"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l"))))))))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "fpstring.h has_funky_char") (Ident () "has_funky_char") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt")))))),InlineSig () True Nothing (UnQual () (Ident () "hashPS")),TypeSig () [Ident () "hashPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (UnQual () (Ident () "Int32")))),FunBind () [Match () (Ident () "hashPS") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [Qualifier () (App () (App () (Var () (UnQual () (Ident () "hash"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Var () (UnQual () (Ident () "l"))))]))))) Nothing])) Nothing],TypeSig () [Ident () "hash"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int32")))))),FunBind () [Match () (Ident () "hash") [PVar () (Ident () "ptr"),PVar () (Ident () "len")] (UnGuardedRhs () (App () (App () (App () (Var () (UnQual () (Ident () "f"))) (Paren () (ExpTypeSig () (Lit () (Int () 0 "0")) (TyCon () (UnQual () (Ident () "Int32")))))) (Var () (UnQual () (Ident () "ptr")))) (Var () (UnQual () (Ident () "len"))))) (Just (BDecls () [FunBind () [Match () (Ident () "f") [PVar () (Ident () "h"),PWildCard (),PLit () (Signless ()) (Int () 0 "0")] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "h"))))) Nothing,Match () (Ident () "f") [PVar () (Ident () "h"),PVar () (Ident () "p"),PVar () (Ident () "n")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "x")) (App () (Var () (UnQual () (Ident () "peek"))) (Var () (UnQual () (Ident () "p")))),LetStmt () (BDecls () [PatBind () (PBangPat () (PVar () (Ident () "h'"))) (UnGuardedRhs () (InfixApp () (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "x"))))) (QVarOp () (UnQual () (Symbol () "+"))) (Paren () (App () (App () (Var () (UnQual () (Ident () "rotateL"))) (Var () (UnQual () (Ident () "h")))) (Lit () (Int () 8 "8")))))) Nothing]),Qualifier () (App () (App () (App () (Var () (UnQual () (Ident () "f"))) (Var () (UnQual () (Ident () "h'")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "advancePtr"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1")))))])) Nothing]]))],InlineSig () True Nothing (UnQual () (Ident () "substrPS")),TypeSig () [Ident () "substrPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyCon () (UnQual () (Ident () "Int")))))),FunBind () [Match () (Ident () "substrPS") [PVar () (Ident () "tok"),PVar () (Ident () "str")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "tok"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Lit () (Int () 0 "0"))),GuardedRhs () [Qualifier () (InfixApp () (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "tok")))) (QVarOp () (UnQual () (Symbol () ">"))) (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "str")))))] (Con () (UnQual () (Ident () "Nothing"))),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (Do () [Generator () (PVar () (Ident () "n")) (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndex"))) (Paren () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "head"))) (Var () (UnQual () (Ident () "tok")))))) (Var () (UnQual () (Ident () "str")))),LetStmt () (BDecls () [PatBind () (PVar () (Ident () "ttok")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "B") (Ident () "tail"))) (Var () (UnQual () (Ident () "tok"))))) Nothing,PatBind () (PVar () (Ident () "reststr")) (UnGuardedRhs () (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "str"))))) Nothing]),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "ttok"))) (QVarOp () (UnQual () (Symbol () "=="))) (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Paren () (App () (Var () (Qual () (ModuleName () "B") (Ident () "length"))) (Var () (UnQual () (Ident () "ttok")))))) (Var () (UnQual () (Ident () "reststr"))))) (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "n")))) (InfixApp () (LeftSection () (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1")))) (QVarOp () (UnQual () (Symbol () "+")))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (App () (Var () (UnQual () (Ident () "substrPS"))) (Var () (UnQual () (Ident () "tok")))) (Var () (UnQual () (Ident () "reststr"))))))])]) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakFirstPS")),TypeSig () [Ident () "breakFirstPS"] (TyFun () (TyCon () (UnQual () (Ident () "Char"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "breakFirstPS") [PVar () (Ident () "c"),PVar () (Ident () "p")] (UnGuardedRhs () (Case () (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndex"))) (Var () (UnQual () (Ident () "c")))) (Var () (UnQual () (Ident () "p")))) [Alt () (PApp () (UnQual () (Ident () "Nothing")) []) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing,Alt () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "n")]) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "p"))),App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "p")))]))) Nothing])) Nothing],InlineSig () True Nothing (UnQual () (Ident () "breakLastPS")),TypeSig () [Ident () "breakLastPS"] (TyFun () (TyCon () (UnQual () (Ident () "Char"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "breakLastPS") [PVar () (Ident () "c"),PVar () (Ident () "p")] (UnGuardedRhs () (Case () (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "elemIndexEnd"))) (Var () (UnQual () (Ident () "c")))) (Var () (UnQual () (Ident () "p")))) [Alt () (PApp () (UnQual () (Ident () "Nothing")) []) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing,Alt () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "n")]) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "take"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "p"))),App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "drop"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "n"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (Var () (UnQual () (Ident () "p")))]))) Nothing])) Nothing],InlineSig () True Nothing (UnQual () (Ident () "linesPS")),TypeSig () [Ident () "linesPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "linesPS") [PVar () (Ident () "ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "ps"))))] (List () [Var () (Qual () (ModuleName () "B") (Ident () "empty"))]),GuardedRhs () [Qualifier () (Var () (UnQual () (Ident () "otherwise")))] (App () (App () (Var () (Qual () (ModuleName () "BC") (Ident () "split"))) (Lit () (Char () '\n' "\\n"))) (Var () (UnQual () (Ident () "ps"))))]) Nothing],TypeSig () [Ident () "unlinesPS"] (TyFun () (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "unlinesPS") [PList () []] (UnGuardedRhs () (Var () (Qual () (ModuleName () "BC") (Ident () "empty")))) Nothing,Match () (Ident () "unlinesPS") [PVar () (Ident () "x")] (UnGuardedRhs () (InfixApp () (Var () (Qual () (ModuleName () "BC") (Ident () "init"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "unlines"))) (Var () (UnQual () (Ident () "x")))))) Nothing],InlineSig () True Nothing (UnQual () (Ident () "unlinesPS")),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzopen") (Ident () "c_gzopen") (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyFun () (TyCon () (UnQual () (Ident () "CString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyParen () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzclose") (Ident () "c_gzclose") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzread") (Ident () "c_gzread") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static zlib.h gzwrite") (Ident () "c_gzwrite") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "CInt"))))))),TypeSig () [Ident () "gzReadFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "gzReadFilePS") [PVar () (Ident () "f")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "h")) (App () (App () (Var () (UnQual () (Ident () "openBinaryFile"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "ReadMode")))),Generator () (PVar () (Ident () "header")) (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "hGet"))) (Var () (UnQual () (Ident () "h")))) (Lit () (Int () 2 "2"))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "header"))) (QVarOp () (UnQual () (Symbol () "/="))) (App () (Var () (Qual () (ModuleName () "BC") (Ident () "pack"))) (Lit () (String () "\US\139" "\\US\\139")))) (Do () [Qualifier () (App () (Var () (UnQual () (Ident () "hClose"))) (Var () (UnQual () (Ident () "h")))),Qualifier () (App () (Var () (UnQual () (Ident () "mmapFilePS"))) (Var () (UnQual () (Ident () "f"))))]) (Do () [Qualifier () (App () (App () (App () (Var () (UnQual () (Ident () "hSeek"))) (Var () (UnQual () (Ident () "h")))) (Con () (UnQual () (Ident () "SeekFromEnd")))) (Paren () (NegApp () (Lit () (Int () 4 "4"))))),Generator () (PVar () (Ident () "len")) (App () (Var () (UnQual () (Ident () "hGetLittleEndInt"))) (Var () (UnQual () (Ident () "h")))),Qualifier () (App () (Var () (UnQual () (Ident () "hClose"))) (Var () (UnQual () (Ident () "h")))),LetStmt () (BDecls () [PatBind () (PVar () (Ident () "decompress")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "GZ") (Ident () "decompressWith"))) (RecUpdate () (Var () (Qual () (ModuleName () "GZ") (Ident () "defaultDecompressParams"))) [FieldUpdate () (Qual () (ModuleName () "GZ") (Ident () "decompressBufferSize")) (Var () (UnQual () (Ident () "len")))]))) Nothing]),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "fmap"))) (Paren () (InfixApp () (Var () (Qual () (ModuleName () "B") (Ident () "concat"))) (QVarOp () (UnQual () (Symbol () "."))) (InfixApp () (Var () (Qual () (ModuleName () "BL") (Ident () "toChunks"))) (QVarOp () (UnQual () (Symbol () "."))) (Var () (UnQual () (Ident () "decompress"))))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "fmap"))) (Paren () (InfixApp () (Var () (Qual () (ModuleName () "BL") (Ident () "fromChunks"))) (QVarOp () (UnQual () (Symbol () "."))) (RightSection () (QConOp () (Special () (Cons ()))) (List () []))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (Qual () (ModuleName () "B") (Ident () "readFile"))) (Var () (UnQual () (Ident () "f")))) (Var () (Qual () (ModuleName () "BL") (Ident () "readFile")))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "fstr")] (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Lit () (String () "rb" "rb"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "rb")] (Do () [Generator () (PVar () (Ident () "gzf")) (App () (App () (Var () (UnQual () (Ident () "c_gzopen"))) (Var () (UnQual () (Ident () "fstr")))) (Var () (UnQual () (Ident () "rb")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "gzf"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nullPtr")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem opening file " "problem opening file ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Generator () (PVar () (Ident () "fp")) (App () (Var () (Qual () (ModuleName () "BI") (Ident () "mallocByteString"))) (Var () (UnQual () (Ident () "len")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "debugForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "gzReadFilePS " "gzReadFilePS ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f"))))),Generator () (PVar () (Ident () "lread")) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (App () (Var () (UnQual () (Ident () "c_gzread"))) (Var () (UnQual () (Ident () "gzf")))) (Var () (UnQual () (Ident () "p")))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "len")))))))),Qualifier () (App () (Var () (UnQual () (Ident () "c_gzclose"))) (Var () (UnQual () (Ident () "gzf")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "lread")))) (QVarOp () (UnQual () (Symbol () "/="))) (Var () (UnQual () (Ident () "len")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzreading file " "problem gzreading file ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Lit () (Int () 0 "0"))) (Var () (UnQual () (Ident () "len")))))])))))]))])) Nothing],TypeSig () [Ident () "hGetLittleEndInt"] (TyFun () (TyCon () (UnQual () (Ident () "Handle"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (UnQual () (Ident () "Int"))))),FunBind () [Match () (Ident () "hGetLittleEndInt") [PVar () (Ident () "h")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "b1")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b2")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b3")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Generator () (PVar () (Ident () "b4")) (InfixApp () (Var () (UnQual () (Ident () "ord"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "hGetChar"))) (Var () (UnQual () (Ident () "h"))))),Qualifier () (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (InfixApp () (InfixApp () (Var () (UnQual () (Ident () "b1"))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 256 "256")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b2"))))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 65536 "65536")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b3"))))) (QVarOp () (UnQual () (Symbol () "+"))) (InfixApp () (Lit () (Int () 16777216 "16777216")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "b4"))))))])) Nothing],TypeSig () [Ident () "gzWriteFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteFilePS") [PVar () (Ident () "f"),PVar () (Ident () "ps")] (UnGuardedRhs () (App () (App () (Var () (UnQual () (Ident () "gzWriteFilePSs"))) (Var () (UnQual () (Ident () "f")))) (List () [Var () (UnQual () (Ident () "ps"))]))) Nothing],TypeSig () [Ident () "gzWriteFilePSs"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyFun () (TyList () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteFilePSs") [PVar () (Ident () "f"),PVar () (Ident () "pss")] (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BL") (Ident () "writeFile"))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (Qual () (ModuleName () "GZ") (Ident () "compress"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (App () (App () (Var () (Qual () (ModuleName () "BL") (Ident () "fromChunks"))) (Var () (UnQual () (Ident () "pss")))) (Var () (UnQual () (Ident () "withCString")))) (Var () (UnQual () (Ident () "f")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "fstr")] (InfixApp () (App () (Var () (UnQual () (Ident () "withCString"))) (Lit () (String () "wb" "wb"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "wb")] (Do () [Generator () (PVar () (Ident () "gzf")) (App () (App () (Var () (UnQual () (Ident () "c_gzopen"))) (Var () (UnQual () (Ident () "fstr")))) (Var () (UnQual () (Ident () "wb")))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "gzf"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nullPtr")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzopening file for write: " "problem gzopening file for write: ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f")))))),Qualifier () (InfixApp () (App () (App () (Var () (UnQual () (Ident () "mapM_"))) (Paren () (App () (Var () (UnQual () (Ident () "gzWriteToGzf"))) (Var () (UnQual () (Ident () "gzf")))))) (Var () (UnQual () (Ident () "pss")))) (QVarOp () (UnQual () (Ident () "catch"))) (Lambda () [PWildCard ()] (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Lit () (String () "problem gzwriting file: " "problem gzwriting file: ")) (QVarOp () (UnQual () (Symbol () "++"))) (Var () (UnQual () (Ident () "f"))))))),Qualifier () (App () (Var () (UnQual () (Ident () "c_gzclose"))) (Var () (UnQual () (Ident () "gzf"))))])))))))) Nothing],TypeSig () [Ident () "gzWriteToGzf"] (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (Special () (UnitCon ())))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ())))))),FunBind () [Match () (Ident () "gzWriteToGzf") [PVar () (Ident () "gzf"),PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PWildCard (),PWildCard (),PLit () (Signless ()) (Int () 0 "0")]) (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "return"))) (Con () (Special () (UnitCon ()))))) Nothing,Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "lw")) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (App () (App () (App () (Var () (UnQual () (Ident () "c_gzwrite"))) (Var () (UnQual () (Ident () "gzf")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "p"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l")))))))),Qualifier () (InfixApp () (App () (Var () (UnQual () (Ident () "when"))) (Paren () (InfixApp () (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "lw")))) (QVarOp () (UnQual () (Symbol () "/="))) (Var () (UnQual () (Ident () "l")))))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "fail"))) (QVarOp () (UnQual () (Symbol () "$"))) (Lit () (String () "problem in gzWriteToGzf" "problem in gzWriteToGzf"))))])) Nothing])) Nothing],TypeSig () [Ident () "mmapFilePS"] (TyFun () (TyCon () (UnQual () (Ident () "FilePath"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))))),FunBind () [Match () (Ident () "mmapFilePS") [PVar () (Ident () "f")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "x")) (InfixApp () (App () (App () (Var () (UnQual () (Ident () "mmapFileByteString"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "Nothing")))) (QVarOp () (UnQual () (Ident () "catch"))) (Paren () (Lambda () [PWildCard ()] (Do () [Generator () (PVar () (Ident () "size")) (InfixApp () (Var () (UnQual () (Ident () "fileSize"))) (QVarOp () (UnQual () (Ident () "fmap"))) (App () (Var () (UnQual () (Ident () "getSymbolicLinkStatus"))) (Var () (UnQual () (Ident () "f"))))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "size"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0"))) (App () (Var () (UnQual () (Ident () "return"))) (Var () (Qual () (ModuleName () "B") (Ident () "empty")))) (InfixApp () (Var () (UnQual () (Ident () "performGC"))) (QVarOp () (UnQual () (Symbol () ">>"))) (App () (App () (Var () (UnQual () (Ident () "mmapFileByteString"))) (Var () (UnQual () (Ident () "f")))) (Con () (UnQual () (Ident () "Nothing"))))))])))),Qualifier () (App () (Var () (UnQual () (Ident () "return"))) (Var () (UnQual () (Ident () "x"))))])) Nothing],PatBind () (PVar () (Ident () "mmapFilePS")) (UnGuardedRhs () (Var () (Qual () (ModuleName () "B") (Ident () "readFile")))) Nothing,ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h conv_to_hex") (Ident () "conv_to_hex") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),TypeSig () [Ident () "fromPS2Hex"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "fromPS2Hex") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "unsafeCreate"))) (Paren () (InfixApp () (Lit () (Int () 2 "2")) (QVarOp () (UnQual () (Symbol () "*"))) (Var () (UnQual () (Ident () "l")))))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "f")] (InfixApp () (App () (App () (Var () (UnQual () (Ident () "conv_to_hex"))) (Var () (UnQual () (Ident () "p")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "f"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Var () (UnQual () (Ident () "fromIntegral"))) (Var () (UnQual () (Ident () "l")))))))))) Nothing])) Nothing],ForImp () (CCall ()) (Just (PlayRisky ())) (Just "static fpstring.h conv_from_hex") (Ident () "conv_from_hex") (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyApp () (TyCon () (UnQual () (Ident () "Ptr"))) (TyCon () (UnQual () (Ident () "Word8")))) (TyFun () (TyCon () (UnQual () (Ident () "CInt"))) (TyApp () (TyCon () (UnQual () (Ident () "IO"))) (TyCon () (Special () (UnitCon ()))))))),TypeSig () [Ident () "fromHex2PS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))),FunBind () [Match () (Ident () "fromHex2PS") [PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "x"),PVar () (Ident () "s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "unsafeCreate"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Ident () "div"))) (Lit () (Int () 2 "2"))))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "x")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "f")] (App () (App () (App () (Var () (UnQual () (Ident () "conv_from_hex"))) (Var () (UnQual () (Ident () "p")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "f"))) (QVarOp () (UnQual () (Ident () "plusPtr"))) (Var () (UnQual () (Ident () "s")))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "fromIntegral"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Ident () "div"))) (Lit () (Int () 2 "2"))))))))))) Nothing])) Nothing],TypeSig () [Ident () "betweenLinesPS"] (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyParen () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")))))))),FunBind () [Match () (Ident () "betweenLinesPS") [PVar () (Ident () "start"),PVar () (Ident () "end"),PVar () (Ident () "ps")] (UnGuardedRhs () (Case () (App () (App () (Var () (UnQual () (Ident () "break"))) (LeftSection () (Var () (UnQual () (Ident () "start"))) (QVarOp () (UnQual () (Symbol () "=="))))) (Paren () (App () (Var () (UnQual () (Ident () "linesPS"))) (Var () (UnQual () (Ident () "ps")))))) [Alt () (PTuple () Boxed [PWildCard (),PInfixApp () (PWildCard ()) (Special () (Cons ())) (PAsPat () (Ident () "rest") (PParen () (PInfixApp () (PVar () (Ident () "bs1")) (Special () (Cons ())) (PWildCard ()))))]) (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "bs1")))) [Alt () (PTuple () Boxed [PVar () (Ident () "ps1"),PVar () (Ident () "s1"),PWildCard ()]) (UnGuardedRhs () (Case () (App () (App () (Var () (UnQual () (Ident () "break"))) (LeftSection () (Var () (UnQual () (Ident () "end"))) (QVarOp () (UnQual () (Symbol () "=="))))) (Var () (UnQual () (Ident () "rest")))) [Alt () (PTuple () Boxed [PWildCard (),PInfixApp () (PVar () (Ident () "bs2")) (Special () (Cons ())) (PWildCard ())]) (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "bs2")))) [Alt () (PTuple () Boxed [PWildCard (),PVar () (Ident () "s2"),PWildCard ()]) (UnGuardedRhs () (InfixApp () (Con () (UnQual () (Ident () "Just"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "ps1")))) (Var () (UnQual () (Ident () "s1")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s2"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "s1")))))))) Nothing])) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing])) Nothing,Alt () (PWildCard ()) (UnGuardedRhs () (Con () (UnQual () (Ident () "Nothing")))) Nothing])) Nothing],TypeSig () [Ident () "break_after_nth_newline"] (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))])))),FunBind () [Match () (Ident () "break_after_nth_newline") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "the_ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "the_ps"))))] (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]))]) Nothing,Match () (Ident () "break_after_nth_newline") [PVar () (Ident () "n"),PVar () (Ident () "the_ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "the_ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "the_s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [LetStmt () (BDecls () [FunBind () [Match () (Ident () "findit") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [Var () (UnQual () (Ident () "the_ps")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))])))]) Nothing,Match () (Ident () "findit") [PWildCard (),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (App () (Var () (UnQual () (Ident () "return"))) (Con () (UnQual () (Ident () "Nothing"))))]) Nothing,Match () (Ident () "findit") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "s")] (UnGuardedRhs () (Let () (BDecls () [PatBind () (PVar () (Ident () "left_l")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "the_s"))))) Nothing]) (InfixApp () (Var () (UnQual () (Ident () "return"))) (QVarOp () (UnQual () (Symbol () "$"))) (App () (Con () (UnQual () (Ident () "Just"))) (Tuple () Boxed [App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "the_s")))) (Var () (UnQual () (Ident () "left_l"))),App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "s")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "left_l")))))]))))) Nothing,Match () (Ident () "findit") [PVar () (Ident () "i"),PVar () (Ident () "s")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "s")))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nl")))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "i")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))))])) Nothing],PatBind () (PVar () (Ident () "nl")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "c2w"))) (Lit () (Char () '\n' "\\n")))) Nothing,PatBind () (PVar () (Ident () "end")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "the_s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "l"))))) Nothing]),Qualifier () (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "the_s"))))]))))) Nothing])) Nothing],TypeSig () [Ident () "break_before_nth_newline"] (TyFun () (TyCon () (UnQual () (Ident () "Int"))) (TyFun () (TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))) (TyTuple () Boxed [TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString")),TyCon () (Qual () (ModuleName () "B") (Ident () "ByteString"))]))),FunBind () [Match () (Ident () "break_before_nth_newline") [PLit () (Signless ()) (Int () 0 "0"),PVar () (Ident () "the_ps")] (GuardedRhss () [GuardedRhs () [Qualifier () (App () (Var () (Qual () (ModuleName () "B") (Ident () "null"))) (Var () (UnQual () (Ident () "the_ps"))))] (Tuple () Boxed [Var () (Qual () (ModuleName () "B") (Ident () "empty")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))])]) Nothing,Match () (Ident () "break_before_nth_newline") [PVar () (Ident () "n"),PVar () (Ident () "the_ps")] (UnGuardedRhs () (Case () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "toForeignPtr"))) (Var () (UnQual () (Ident () "the_ps")))) [Alt () (PTuple () Boxed [PVar () (Ident () "fp"),PVar () (Ident () "the_s"),PVar () (Ident () "l")]) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "unsafePerformIO"))) (QVarOp () (UnQual () (Symbol () "$"))) (InfixApp () (App () (Var () (UnQual () (Ident () "withForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (QVarOp () (UnQual () (Symbol () "$"))) (Lambda () [PVar () (Ident () "p")] (Do () [LetStmt () (BDecls () [FunBind () [Match () (Ident () "findit") [PWildCard (),PVar () (Ident () "s")] (GuardedRhss () [GuardedRhs () [Qualifier () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "end"))))] (App () (Var () (UnQual () (Ident () "return"))) (Tuple () Boxed [Var () (UnQual () (Ident () "the_ps")),Var () (Qual () (ModuleName () "B") (Ident () "empty"))]))]) Nothing,Match () (Ident () "findit") [PVar () (Ident () "i"),PVar () (Ident () "s")] (UnGuardedRhs () (Do () [Generator () (PVar () (Ident () "w")) (App () (App () (Var () (UnQual () (Ident () "peekElemOff"))) (Var () (UnQual () (Ident () "p")))) (Var () (UnQual () (Ident () "s")))),Qualifier () (If () (InfixApp () (Var () (UnQual () (Ident () "w"))) (QVarOp () (UnQual () (Symbol () "=="))) (Var () (UnQual () (Ident () "nl")))) (If () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "=="))) (Lit () (Int () 0 "0"))) (Let () (BDecls () [PatBind () (PVar () (Ident () "left_l")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "the_s"))))) Nothing]) (App () (Var () (UnQual () (Ident () "return"))) (Tuple () Boxed [App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "the_s")))) (Var () (UnQual () (Ident () "left_l"))),App () (App () (App () (Var () (UnQual () (Ident () "fromForeignPtr"))) (Var () (UnQual () (Ident () "fp")))) (Var () (UnQual () (Ident () "s")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "l"))) (QVarOp () (UnQual () (Symbol () "-"))) (Var () (UnQual () (Ident () "left_l")))))]))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "i"))) (QVarOp () (UnQual () (Symbol () "-"))) (Lit () (Int () 1 "1"))))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1")))))) (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "i")))) (Paren () (InfixApp () (Var () (UnQual () (Ident () "s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Lit () (Int () 1 "1"))))))])) Nothing],PatBind () (PVar () (Ident () "nl")) (UnGuardedRhs () (App () (Var () (Qual () (ModuleName () "BI") (Ident () "c2w"))) (Lit () (Char () '\n' "\\n")))) Nothing,PatBind () (PVar () (Ident () "end")) (UnGuardedRhs () (InfixApp () (Var () (UnQual () (Ident () "the_s"))) (QVarOp () (UnQual () (Symbol () "+"))) (Var () (UnQual () (Ident () "l"))))) Nothing]),Qualifier () (App () (App () (Var () (UnQual () (Ident () "findit"))) (Var () (UnQual () (Ident () "n")))) (Var () (UnQual () (Ident () "the_s"))))]))))) Nothing])) Nothing]]
+
diff --git a/tests/examples/ByteStringUtils.hs.prettyprinter.golden b/tests/examples/ByteStringUtils.hs.prettyprinter.golden
--- a/tests/examples/ByteStringUtils.hs.prettyprinter.golden
+++ b/tests/examples/ByteStringUtils.hs.prettyprinter.golden
@@ -37,12 +37,12 @@
 import System.IO.MMap (mmapFileByteString)
 import System.Mem (performGC)
 import System.Posix.Files (fileSize, getSymbolicLinkStatus)
- 
+
 debugForeignPtr :: ForeignPtr a -> String -> IO ()
- 
+
 foreign import ccall unsafe "static fpstring.h debug_alloc"
                debug_alloc :: Ptr a -> CString -> IO ()
- 
+
 foreign import ccall unsafe "static fpstring.h & debug_free"
                debug_free :: FunPtr (Ptr a -> IO ())
 debugForeignPtr fp n
@@ -53,16 +53,16 @@
             do debug_alloc p cname
                addForeignPtrFinalizer debug_free fp
 debugForeignPtr _ _ = return ()
- 
+
 unsafeWithInternals ::
                     B.ByteString -> (Ptr Word8 -> Int -> IO a) -> IO a
 unsafeWithInternals ps f
   = case BI.toForeignPtr ps of
         (fp, s, l) -> withForeignPtr fp $ \ p -> f (p `plusPtr` s) l
- 
+
 readIntPS :: B.ByteString -> Maybe (Int, B.ByteString)
 readIntPS = BC.readInt . BC.dropWhile isSpace
- 
+
 unpackPSfromUTF8 :: B.ByteString -> String
 unpackPSfromUTF8 ps
   = case BI.toForeignPtr ps of
@@ -77,30 +77,30 @@
                               str <- (map (chr . fromIntegral)) `fmap` peekArray lout outbuf
                               free outbuf
                               return str
- 
+
 foreign import ccall unsafe "static fpstring.h utf8_to_ints"
                utf8_to_ints :: Ptr Int -> Ptr Word8 -> CInt -> IO CInt
- 
+
 {-# INLINE ifHeadThenTail #-}
- 
+
 ifHeadThenTail :: Word8 -> B.ByteString -> Maybe B.ByteString
 ifHeadThenTail c s
   = case uncons s of
         Just (w, t) | w == c -> Just t
         _ -> Nothing
- 
+
 isSpaceWord8 :: Word8 -> Bool
 isSpaceWord8 w = w == 32 || w == 9 || w == 10 || w == 13
- 
+
 {-# INLINE isSpaceWord8 #-}
- 
+
 firstnonspace :: Ptr Word8 -> Int -> Int -> IO Int
 firstnonspace !ptr !n !m
   | n >= m = return n
   | otherwise =
     do w <- peekElemOff ptr n
        if isSpaceWord8 w then firstnonspace ptr (n + 1) m else return n
- 
+
 firstspace :: Ptr Word8 -> Int -> Int -> IO Int
 firstspace !ptr !n !m
   | n >= m = return n
@@ -108,7 +108,7 @@
     do w <- peekElemOff ptr n
        if (not . isSpaceWord8) w then firstspace ptr (n + 1) m else
          return n
- 
+
 dropSpace :: B.ByteString -> B.ByteString
 dropSpace (BI.PS x s l)
   = BI.inlinePerformIO $
@@ -116,9 +116,9 @@
         \ p ->
           do i <- firstnonspace (p `plusPtr` s) 0 l
              return $! if i == l then B.empty else BI.PS x (s + i) (l - i)
- 
+
 {-# INLINE dropSpace #-}
- 
+
 breakSpace :: B.ByteString -> (B.ByteString, B.ByteString)
 breakSpace (BI.PS x s l)
   = BI.inlinePerformIO $
@@ -130,11 +130,11 @@
                    _ | i == 0 -> (B.empty, BI.PS x s l)
                      | i == l -> (BI.PS x s l, B.empty)
                      | otherwise -> (BI.PS x s i, BI.PS x (s + i) (l - i))
- 
+
 {-# INLINE breakSpace #-}
- 
+
 {-# INLINE is_funky #-}
- 
+
 is_funky :: B.ByteString -> Bool
 is_funky ps
   = case BI.toForeignPtr ps of
@@ -142,18 +142,18 @@
                        withForeignPtr x $
                          \ p ->
                            (/= 0) `fmap` has_funky_char (p `plusPtr` s) (fromIntegral l)
- 
+
 foreign import ccall unsafe "fpstring.h has_funky_char"
                has_funky_char :: Ptr Word8 -> CInt -> IO CInt
- 
+
 {-# INLINE hashPS #-}
- 
+
 hashPS :: B.ByteString -> Int32
 hashPS ps
   = case BI.toForeignPtr ps of
         (x, s, l) -> unsafePerformIO $
                        withForeignPtr x $ \ p -> do hash (p `plusPtr` s) l
- 
+
 hash :: Ptr Word8 -> Int -> IO Int32
 hash ptr len = f (0 :: Int32) ptr len
   where f h _ 0 = return h
@@ -161,9 +161,9 @@
           = do x <- peek p
                let !h' = (fromIntegral x) + (rotateL h 8)
                f h' (p `advancePtr` 1) (n - 1)
- 
+
 {-# INLINE substrPS #-}
- 
+
 substrPS :: B.ByteString -> B.ByteString -> Maybe Int
 substrPS tok str
   | B.null tok = Just 0
@@ -174,50 +174,50 @@
            reststr = B.drop (n + 1) str
        if ttok == B.take (B.length ttok) reststr then Just n else
          ((n + 1) +) `fmap` substrPS tok reststr
- 
+
 {-# INLINE breakFirstPS #-}
- 
+
 breakFirstPS ::
              Char -> B.ByteString -> Maybe (B.ByteString, B.ByteString)
 breakFirstPS c p
   = case BC.elemIndex c p of
         Nothing -> Nothing
         Just n -> Just (B.take n p, B.drop (n + 1) p)
- 
+
 {-# INLINE breakLastPS #-}
- 
+
 breakLastPS ::
             Char -> B.ByteString -> Maybe (B.ByteString, B.ByteString)
 breakLastPS c p
   = case BC.elemIndexEnd c p of
         Nothing -> Nothing
         Just n -> Just (B.take n p, B.drop (n + 1) p)
- 
+
 {-# INLINE linesPS #-}
- 
+
 linesPS :: B.ByteString -> [B.ByteString]
 linesPS ps
   | B.null ps = [B.empty]
   | otherwise = BC.split '\n' ps
- 
+
 unlinesPS :: [B.ByteString] -> B.ByteString
 unlinesPS [] = BC.empty
 unlinesPS x = BC.init $ BC.unlines x
- 
+
 {-# INLINE unlinesPS #-}
- 
+
 foreign import ccall unsafe "static zlib.h gzopen" c_gzopen ::
                CString -> CString -> IO (Ptr ())
- 
+
 foreign import ccall unsafe "static zlib.h gzclose" c_gzclose ::
                Ptr () -> IO ()
- 
+
 foreign import ccall unsafe "static zlib.h gzread" c_gzread ::
                Ptr () -> Ptr Word8 -> CInt -> IO CInt
- 
+
 foreign import ccall unsafe "static zlib.h gzwrite" c_gzwrite ::
                Ptr () -> Ptr Word8 -> CInt -> IO CInt
- 
+
 gzReadFilePS :: FilePath -> IO B.ByteString
 gzReadFilePS f
   = do h <- openBinaryFile f ReadMode
@@ -248,7 +248,7 @@
                        when (fromIntegral lread /= len) $
                          fail $ "problem gzreading file " ++ f
                        return $ fromForeignPtr fp 0 len
- 
+
 hGetLittleEndInt :: Handle -> IO Int
 hGetLittleEndInt h
   = do b1 <- ord `fmap` hGetChar h
@@ -256,10 +256,10 @@
        b3 <- ord `fmap` hGetChar h
        b4 <- ord `fmap` hGetChar h
        return $ b1 + 256 * b2 + 65536 * b3 + 16777216 * b4
- 
+
 gzWriteFilePS :: FilePath -> B.ByteString -> IO ()
 gzWriteFilePS f ps = gzWriteFilePSs f [ps]
- 
+
 gzWriteFilePSs :: FilePath -> [B.ByteString] -> IO ()
 gzWriteFilePSs f pss
   = BL.writeFile f $
@@ -274,7 +274,7 @@
                    mapM_ (gzWriteToGzf gzf) pss `catch`
                      \ _ -> fail $ "problem gzwriting file: " ++ f
                    c_gzclose gzf
- 
+
 gzWriteToGzf :: Ptr () -> B.ByteString -> IO ()
 gzWriteToGzf gzf ps
   = case BI.toForeignPtr ps of
@@ -282,7 +282,7 @@
         (x, s, l) -> do lw <- withForeignPtr x $
                                 \ p -> c_gzwrite gzf (p `plusPtr` s) (fromIntegral l)
                         when (fromIntegral lw /= l) $ fail $ "problem in gzWriteToGzf"
- 
+
 mmapFilePS :: FilePath -> IO B.ByteString
 mmapFilePS f
   = do x <- mmapFileByteString f Nothing `catch`
@@ -292,10 +292,10 @@
                       performGC >> mmapFileByteString f Nothing)
        return x
 mmapFilePS = B.readFile
- 
+
 foreign import ccall unsafe "static fpstring.h conv_to_hex"
                conv_to_hex :: Ptr Word8 -> Ptr Word8 -> CInt -> IO ()
- 
+
 fromPS2Hex :: B.ByteString -> B.ByteString
 fromPS2Hex ps
   = case BI.toForeignPtr ps of
@@ -303,10 +303,10 @@
                        \ p ->
                          withForeignPtr x $
                            \ f -> conv_to_hex p (f `plusPtr` s) $ fromIntegral l
- 
+
 foreign import ccall unsafe "static fpstring.h conv_from_hex"
                conv_from_hex :: Ptr Word8 -> Ptr Word8 -> CInt -> IO ()
- 
+
 fromHex2PS :: B.ByteString -> B.ByteString
 fromHex2PS ps
   = case BI.toForeignPtr ps of
@@ -314,7 +314,7 @@
                        \ p ->
                          withForeignPtr x $
                            \ f -> conv_from_hex p (f `plusPtr` s) (fromIntegral $ l `div` 2)
- 
+
 betweenLinesPS ::
                B.ByteString ->
                  B.ByteString -> B.ByteString -> Maybe (B.ByteString)
@@ -333,7 +333,7 @@
                                                                                                     s1)
                                                            _ -> Nothing
         _ -> Nothing
- 
+
 break_after_nth_newline ::
                         Int -> B.ByteString -> Maybe (B.ByteString, B.ByteString)
 break_after_nth_newline 0 the_ps
@@ -358,7 +358,7 @@
                                        nl = BI.c2w '\n'
                                        end = the_s + l
                                    findit n the_s
- 
+
 break_before_nth_newline ::
                          Int -> B.ByteString -> (B.ByteString, B.ByteString)
 break_before_nth_newline 0 the_ps
diff --git a/tests/examples/CApiFFI.hs.parser.golden b/tests/examples/CApiFFI.hs.parser.golden
--- a/tests/examples/CApiFFI.hs.parser.golden
+++ b/tests/examples/CApiFFI.hs.parser.golden
@@ -1,1 +1,72 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 1,SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1,SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1,SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1,SrcSpan "tests/examples/CApiFFI.hs" 4 1 4 1,SrcSpan "tests/examples/CApiFFI.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 25, srcInfoPoints = [SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 13,SrcSpan "tests/examples/CApiFFI.hs" 1 22 1 25]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 14 1 21, srcInfoPoints = []}) "CApiFFI"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 4, srcInfoPoints = []}) "foo")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 5 2 11, srcInfoPoints = [SrcSpan "tests/examples/CApiFFI.hs" 2 5 2 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11, srcInfoPoints = []}) "capi")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 1
+            , SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CApiFFI.hs" 4 1 4 1
+            , SrcSpan "tests/examples/CApiFFI.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/CApiFFI.hs" 1 1 1 13
+                , SrcSpan "tests/examples/CApiFFI.hs" 1 22 1 25
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 1 14 1 21
+                , srcInfoPoints = []
+                }
+              "CApiFFI"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 1 2 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 5 2 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/CApiFFI.hs" 2 5 2 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CApiFFI.hs" 2 7 2 11
+                        , srcInfoPoints = []
+                        }
+                      "capi"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/CApiFFI.hs.prettyprinter.golden b/tests/examples/CApiFFI.hs.prettyprinter.golden
--- a/tests/examples/CApiFFI.hs.prettyprinter.golden
+++ b/tests/examples/CApiFFI.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE CApiFFI #-}
-module Main (main) where
 foo = capi
diff --git a/tests/examples/CParser.hs b/tests/examples/CParser.hs
deleted file mode 100644
--- a/tests/examples/CParser.hs
+++ /dev/null
@@ -1,6323 +0,0 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
-{-# LANGUAGE MagicHash #-}
-module Language.C.Parser.Parser (
-  -- * Parse a C translation unit
-  parseC,
-  -- * Exposed Parsers
-  translUnitP, extDeclP, statementP, expressionP
-) where
-
--- Relevant C99 sections:
---
--- 6.5 Expressions .1 - .17 and 6.6 (almost literally)
---  Supported GNU extensions:
---     - Allow a compound statement as an expression
---     - Various __builtin_* forms that take type parameters
---     - `alignof' expression or type
---     - `__extension__' to suppress warnings about extensions
---     - Allow taking address of a label with: && label
---     - Omitting the `then' part of conditional expressions
---     - complex numbers
---
--- 6.7 C Declarations .1 -.8
---  Supported GNU extensions:
---     - '__thread' thread local storage (6.7.1)
---
--- 6.8 Statements .1 - .8
---  Supported GNU extensions:
---    - case ranges (C99 6.8.1)
---    - '__label__ ident;' declarations (C99 6.8.2)
---    - computed gotos (C99 6.8.6)
---
--- 6.9 Translation unit
---  Supported GNU extensions:
---     - allow empty translation_unit
---     - allow redundant ';'
---     - allow extension keyword before external declaration
---     - asm definitions
---
---  Since some of the grammar productions are quite difficult to read,
---  (especially those involved with the decleration syntax) we document them
---  with an extended syntax that allows a more consise representation:
---
---  Ordinary rules
---
---   foo      named terminal or non-terminal
---
---   'c'      terminal, literal character token
---
---   A B      concatenation
---
---   A | B    alternation
---
---   (A)      grouping
---
---  Extended rules
---
---   A?       optional, short hand for (A|) or [A]{ 0==A || 1==A }
---
---   ...      stands for some part of the grammar omitted for clarity
---
---   {A}      represents sequences, 0 or more.
---
---   <permute> modifier which states that any permutation of the immediate subterms is valid
---
---
---- TODO ----------------------------------------------------------------------
---
---  !* We ignore the C99 static keyword (see C99 6.7.5.3)
---  !* We do not distinguish in the AST between incomplete array types and
---      complete variable length arrays ([ '*' ] means the latter). (see C99 6.7.5.2)
---  !* The AST doesn't allow recording __attribute__ of unnamed struct field
---     (see , struct_default_declaring_list, struct_identifier_declarator)
---  !* see `We're being far to liberal here' (... struct definition within structs)
---  * Documentation isn't complete and consistent yet.
-
-import Prelude    hiding (reverse)
-import qualified Data.List as List
-import Control.Monad (mplus)
-import Language.C.Parser.Builtin   (builtinTypeNames)
-import Language.C.Parser.Lexer     (lexC, parseError)
-import Language.C.Parser.Tokens    (CToken(..), GnuCTok(..), posLenOfTok)
-import Language.C.Parser.ParserMonad (P, failP, execParser, getNewName, addTypedef, shadowTypedef, getCurrentPosition,
-                                      enterScope, leaveScope, getLastToken, getSavedToken, ParseError(..))
-
-import Language.C.Data.RList
-import Language.C.Data.InputStream
-import Language.C.Data.Ident
-import Language.C.Data.Name
-import Language.C.Data.Node
-import Language.C.Data.Position
-import Language.C.Syntax
--- #if __GLASGOW_HASKELL__ >= 503
-import Data.Array
--- #else
-import Array
--- #endif
--- #if __GLASGOW_HASKELL__ >= 503
-import GHC.Exts
--- #else
-import GlaExts
--- #endif
-
--- parser produced by Happy Version 1.16
-
-newtype HappyAbsSyn  = HappyAbsSyn (() -> ())
-happyIn7 :: (CTranslUnit) -> (HappyAbsSyn )
-happyIn7 x = unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn ) -> (CTranslUnit)
-happyOut7 x = unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Reversed [CExtDecl]) -> (HappyAbsSyn )
-happyIn8 x = unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn ) -> (Reversed [CExtDecl])
-happyOut8 x = unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (CExtDecl) -> (HappyAbsSyn )
-happyIn9 x = unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn ) -> (CExtDecl)
-happyOut9 x = unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (CFunDef) -> (HappyAbsSyn )
-happyIn10 x = unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn ) -> (CFunDef)
-happyOut10 x = unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (CDeclr) -> (HappyAbsSyn )
-happyIn11 x = unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn ) -> (CDeclr)
-happyOut11 x = unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: (CStat) -> (HappyAbsSyn )
-happyIn12 x = unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn ) -> (CStat)
-happyOut12 x = unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (CStat) -> (HappyAbsSyn )
-happyIn13 x = unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn ) -> (CStat)
-happyOut13 x = unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: (CStat) -> (HappyAbsSyn )
-happyIn14 x = unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn ) -> (CStat)
-happyOut14 x = unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: (()) -> (HappyAbsSyn )
-happyIn15 x = unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn ) -> (())
-happyOut15 x = unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: (()) -> (HappyAbsSyn )
-happyIn16 x = unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn ) -> (())
-happyOut16 x = unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: (Reversed [CBlockItem]) -> (HappyAbsSyn )
-happyIn17 x = unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn ) -> (Reversed [CBlockItem])
-happyOut17 x = unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: (CBlockItem) -> (HappyAbsSyn )
-happyIn18 x = unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn ) -> (CBlockItem)
-happyOut18 x = unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: (CBlockItem) -> (HappyAbsSyn )
-happyIn19 x = unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn ) -> (CBlockItem)
-happyOut19 x = unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (CFunDef) -> (HappyAbsSyn )
-happyIn20 x = unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn ) -> (CFunDef)
-happyOut20 x = unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Reversed [Ident]) -> (HappyAbsSyn )
-happyIn21 x = unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn ) -> (Reversed [Ident])
-happyOut21 x = unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (CStat) -> (HappyAbsSyn )
-happyIn22 x = unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn ) -> (CStat)
-happyOut22 x = unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: (CStat) -> (HappyAbsSyn )
-happyIn23 x = unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn ) -> (CStat)
-happyOut23 x = unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: (CStat) -> (HappyAbsSyn )
-happyIn24 x = unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn ) -> (CStat)
-happyOut24 x = unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: (CStat) -> (HappyAbsSyn )
-happyIn25 x = unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn ) -> (CStat)
-happyOut25 x = unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (CAsmStmt) -> (HappyAbsSyn )
-happyIn26 x = unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn ) -> (CAsmStmt)
-happyOut26 x = unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (Maybe CTypeQual) -> (HappyAbsSyn )
-happyIn27 x = unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn ) -> (Maybe CTypeQual)
-happyOut27 x = unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([CAsmOperand]) -> (HappyAbsSyn )
-happyIn28 x = unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn ) -> ([CAsmOperand])
-happyOut28 x = unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: (Reversed [CAsmOperand]) -> (HappyAbsSyn )
-happyIn29 x = unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn ) -> (Reversed [CAsmOperand])
-happyOut29 x = unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (CAsmOperand) -> (HappyAbsSyn )
-happyIn30 x = unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn ) -> (CAsmOperand)
-happyOut30 x = unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (Reversed [CStrLit]) -> (HappyAbsSyn )
-happyIn31 x = unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn ) -> (Reversed [CStrLit])
-happyOut31 x = unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (CDecl) -> (HappyAbsSyn )
-happyIn32 x = unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn ) -> (CDecl)
-happyOut32 x = unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (Reversed [CDecl]) -> (HappyAbsSyn )
-happyIn33 x = unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn ) -> (Reversed [CDecl])
-happyOut33 x = unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: (CDecl) -> (HappyAbsSyn )
-happyIn34 x = unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn ) -> (CDecl)
-happyOut34 x = unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ((Maybe CStrLit, [CAttr])) -> (HappyAbsSyn )
-happyIn35 x = unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn ) -> ((Maybe CStrLit, [CAttr]))
-happyOut35 x = unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: (CDecl) -> (HappyAbsSyn )
-happyIn36 x = unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn ) -> (CDecl)
-happyOut36 x = unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([CDeclSpec]) -> (HappyAbsSyn )
-happyIn37 x = unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn ) -> ([CDeclSpec])
-happyOut37 x = unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn38 x = unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut38 x = unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: (CDeclSpec) -> (HappyAbsSyn )
-happyIn39 x = unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn ) -> (CDeclSpec)
-happyOut39 x = unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: (CStorageSpec) -> (HappyAbsSyn )
-happyIn40 x = unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn ) -> (CStorageSpec)
-happyOut40 x = unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: ([CDeclSpec]) -> (HappyAbsSyn )
-happyIn41 x = unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn ) -> ([CDeclSpec])
-happyOut41 x = unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: (CTypeSpec) -> (HappyAbsSyn )
-happyIn42 x = unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn ) -> (CTypeSpec)
-happyOut42 x = unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn43 x = unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut43 x = unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn44 x = unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut44 x = unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn45 x = unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut45 x = unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn46 x = unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut46 x = unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn47 x = unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut47 x = unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn )
-happyIn48 x = unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn ) -> (Reversed [CDeclSpec])
-happyOut48 x = unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (CTypeSpec) -> (HappyAbsSyn )
-happyIn49 x = unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn ) -> (CTypeSpec)
-happyOut49 x = unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (CStructUnion) -> (HappyAbsSyn )
-happyIn50 x = unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn ) -> (CStructUnion)
-happyOut50 x = unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (Located CStructTag) -> (HappyAbsSyn )
-happyIn51 x = unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn ) -> (Located CStructTag)
-happyOut51 x = unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: (Reversed [CDecl]) -> (HappyAbsSyn )
-happyIn52 x = unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn ) -> (Reversed [CDecl])
-happyOut52 x = unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: (CDecl) -> (HappyAbsSyn )
-happyIn53 x = unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn ) -> (CDecl)
-happyOut53 x = unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (CDecl) -> (HappyAbsSyn )
-happyIn54 x = unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn ) -> (CDecl)
-happyOut54 x = unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: (CDecl) -> (HappyAbsSyn )
-happyIn55 x = unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn ) -> (CDecl)
-happyOut55 x = unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: ((Maybe CDeclr, Maybe CExpr)) -> (HappyAbsSyn )
-happyIn56 x = unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn ) -> ((Maybe CDeclr, Maybe CExpr))
-happyOut56 x = unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: ((Maybe CDeclr, Maybe CExpr)) -> (HappyAbsSyn )
-happyIn57 x = unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn ) -> ((Maybe CDeclr, Maybe CExpr))
-happyOut57 x = unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: (CEnum) -> (HappyAbsSyn )
-happyIn58 x = unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn ) -> (CEnum)
-happyOut58 x = unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: (Reversed [(Ident, Maybe CExpr)]) -> (HappyAbsSyn )
-happyIn59 x = unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn ) -> (Reversed [(Ident, Maybe CExpr)])
-happyOut59 x = unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ((Ident, Maybe CExpr)) -> (HappyAbsSyn )
-happyIn60 x = unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn ) -> ((Ident, Maybe CExpr))
-happyOut60 x = unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: (CTypeQual) -> (HappyAbsSyn )
-happyIn61 x = unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn ) -> (CTypeQual)
-happyOut61 x = unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: (Reversed [CTypeQual]) -> (HappyAbsSyn )
-happyIn62 x = unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn ) -> (Reversed [CTypeQual])
-happyOut62 x = unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn63 x = unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut63 x = unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: (Maybe CStrLit) -> (HappyAbsSyn )
-happyIn64 x = unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn ) -> (Maybe CStrLit)
-happyOut64 x = unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn65 x = unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut65 x = unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn66 x = unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut66 x = unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn67 x = unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut67 x = unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn68 x = unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut68 x = unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn69 x = unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut69 x = unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn70 x = unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut70 x = unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn71 x = unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut71 x = unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn72 x = unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut72 x = unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn73 x = unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut73 x = unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn74 x = unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut74 x = unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn75 x = unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut75 x = unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (CDeclr) -> (HappyAbsSyn )
-happyIn76 x = unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn ) -> (CDeclr)
-happyOut76 x = unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn77 x = unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut77 x = unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn78 x = unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut78 x = unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyIn79 :: (([CDecl], Bool)) -> (HappyAbsSyn )
-happyIn79 x = unsafeCoerce# x
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn ) -> (([CDecl], Bool))
-happyOut79 x = unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-happyIn80 :: (Reversed [CDecl]) -> (HappyAbsSyn )
-happyIn80 x = unsafeCoerce# x
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn ) -> (Reversed [CDecl])
-happyOut80 x = unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-happyIn81 :: (CDecl) -> (HappyAbsSyn )
-happyIn81 x = unsafeCoerce# x
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn ) -> (CDecl)
-happyOut81 x = unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-happyIn82 :: (Reversed [Ident]) -> (HappyAbsSyn )
-happyIn82 x = unsafeCoerce# x
-{-# INLINE happyIn82 #-}
-happyOut82 :: (HappyAbsSyn ) -> (Reversed [Ident])
-happyOut82 x = unsafeCoerce# x
-{-# INLINE happyOut82 #-}
-happyIn83 :: (CDecl) -> (HappyAbsSyn )
-happyIn83 x = unsafeCoerce# x
-{-# INLINE happyIn83 #-}
-happyOut83 :: (HappyAbsSyn ) -> (CDecl)
-happyOut83 x = unsafeCoerce# x
-{-# INLINE happyOut83 #-}
-happyIn84 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn84 x = unsafeCoerce# x
-{-# INLINE happyIn84 #-}
-happyOut84 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut84 x = unsafeCoerce# x
-{-# INLINE happyOut84 #-}
-happyIn85 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn )
-happyIn85 x = unsafeCoerce# x
-{-# INLINE happyIn85 #-}
-happyOut85 :: (HappyAbsSyn ) -> (CDeclrR -> CDeclrR)
-happyOut85 x = unsafeCoerce# x
-{-# INLINE happyOut85 #-}
-happyIn86 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn )
-happyIn86 x = unsafeCoerce# x
-{-# INLINE happyIn86 #-}
-happyOut86 :: (HappyAbsSyn ) -> (CDeclrR -> CDeclrR)
-happyOut86 x = unsafeCoerce# x
-{-# INLINE happyOut86 #-}
-happyIn87 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn )
-happyIn87 x = unsafeCoerce# x
-{-# INLINE happyIn87 #-}
-happyOut87 :: (HappyAbsSyn ) -> (CDeclrR -> CDeclrR)
-happyOut87 x = unsafeCoerce# x
-{-# INLINE happyOut87 #-}
-happyIn88 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn88 x = unsafeCoerce# x
-{-# INLINE happyIn88 #-}
-happyOut88 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut88 x = unsafeCoerce# x
-{-# INLINE happyOut88 #-}
-happyIn89 :: (CDeclrR) -> (HappyAbsSyn )
-happyIn89 x = unsafeCoerce# x
-{-# INLINE happyIn89 #-}
-happyOut89 :: (HappyAbsSyn ) -> (CDeclrR)
-happyOut89 x = unsafeCoerce# x
-{-# INLINE happyOut89 #-}
-happyIn90 :: (CInit) -> (HappyAbsSyn )
-happyIn90 x = unsafeCoerce# x
-{-# INLINE happyIn90 #-}
-happyOut90 :: (HappyAbsSyn ) -> (CInit)
-happyOut90 x = unsafeCoerce# x
-{-# INLINE happyOut90 #-}
-happyIn91 :: (Maybe CInit) -> (HappyAbsSyn )
-happyIn91 x = unsafeCoerce# x
-{-# INLINE happyIn91 #-}
-happyOut91 :: (HappyAbsSyn ) -> (Maybe CInit)
-happyOut91 x = unsafeCoerce# x
-{-# INLINE happyOut91 #-}
-happyIn92 :: (Reversed CInitList) -> (HappyAbsSyn )
-happyIn92 x = unsafeCoerce# x
-{-# INLINE happyIn92 #-}
-happyOut92 :: (HappyAbsSyn ) -> (Reversed CInitList)
-happyOut92 x = unsafeCoerce# x
-{-# INLINE happyOut92 #-}
-happyIn93 :: ([CDesignator]) -> (HappyAbsSyn )
-happyIn93 x = unsafeCoerce# x
-{-# INLINE happyIn93 #-}
-happyOut93 :: (HappyAbsSyn ) -> ([CDesignator])
-happyOut93 x = unsafeCoerce# x
-{-# INLINE happyOut93 #-}
-happyIn94 :: (Reversed [CDesignator]) -> (HappyAbsSyn )
-happyIn94 x = unsafeCoerce# x
-{-# INLINE happyIn94 #-}
-happyOut94 :: (HappyAbsSyn ) -> (Reversed [CDesignator])
-happyOut94 x = unsafeCoerce# x
-{-# INLINE happyOut94 #-}
-happyIn95 :: (CDesignator) -> (HappyAbsSyn )
-happyIn95 x = unsafeCoerce# x
-{-# INLINE happyIn95 #-}
-happyOut95 :: (HappyAbsSyn ) -> (CDesignator)
-happyOut95 x = unsafeCoerce# x
-{-# INLINE happyOut95 #-}
-happyIn96 :: (CDesignator) -> (HappyAbsSyn )
-happyIn96 x = unsafeCoerce# x
-{-# INLINE happyIn96 #-}
-happyOut96 :: (HappyAbsSyn ) -> (CDesignator)
-happyOut96 x = unsafeCoerce# x
-{-# INLINE happyOut96 #-}
-happyIn97 :: (CExpr) -> (HappyAbsSyn )
-happyIn97 x = unsafeCoerce# x
-{-# INLINE happyIn97 #-}
-happyOut97 :: (HappyAbsSyn ) -> (CExpr)
-happyOut97 x = unsafeCoerce# x
-{-# INLINE happyOut97 #-}
-happyIn98 :: (Reversed [CDesignator]) -> (HappyAbsSyn )
-happyIn98 x = unsafeCoerce# x
-{-# INLINE happyIn98 #-}
-happyOut98 :: (HappyAbsSyn ) -> (Reversed [CDesignator])
-happyOut98 x = unsafeCoerce# x
-{-# INLINE happyOut98 #-}
-happyIn99 :: (CExpr) -> (HappyAbsSyn )
-happyIn99 x = unsafeCoerce# x
-{-# INLINE happyIn99 #-}
-happyOut99 :: (HappyAbsSyn ) -> (CExpr)
-happyOut99 x = unsafeCoerce# x
-{-# INLINE happyOut99 #-}
-happyIn100 :: (Reversed [CExpr]) -> (HappyAbsSyn )
-happyIn100 x = unsafeCoerce# x
-{-# INLINE happyIn100 #-}
-happyOut100 :: (HappyAbsSyn ) -> (Reversed [CExpr])
-happyOut100 x = unsafeCoerce# x
-{-# INLINE happyOut100 #-}
-happyIn101 :: (CExpr) -> (HappyAbsSyn )
-happyIn101 x = unsafeCoerce# x
-{-# INLINE happyIn101 #-}
-happyOut101 :: (HappyAbsSyn ) -> (CExpr)
-happyOut101 x = unsafeCoerce# x
-{-# INLINE happyOut101 #-}
-happyIn102 :: (Located CUnaryOp) -> (HappyAbsSyn )
-happyIn102 x = unsafeCoerce# x
-{-# INLINE happyIn102 #-}
-happyOut102 :: (HappyAbsSyn ) -> (Located CUnaryOp)
-happyOut102 x = unsafeCoerce# x
-{-# INLINE happyOut102 #-}
-happyIn103 :: (CExpr) -> (HappyAbsSyn )
-happyIn103 x = unsafeCoerce# x
-{-# INLINE happyIn103 #-}
-happyOut103 :: (HappyAbsSyn ) -> (CExpr)
-happyOut103 x = unsafeCoerce# x
-{-# INLINE happyOut103 #-}
-happyIn104 :: (CExpr) -> (HappyAbsSyn )
-happyIn104 x = unsafeCoerce# x
-{-# INLINE happyIn104 #-}
-happyOut104 :: (HappyAbsSyn ) -> (CExpr)
-happyOut104 x = unsafeCoerce# x
-{-# INLINE happyOut104 #-}
-happyIn105 :: (CExpr) -> (HappyAbsSyn )
-happyIn105 x = unsafeCoerce# x
-{-# INLINE happyIn105 #-}
-happyOut105 :: (HappyAbsSyn ) -> (CExpr)
-happyOut105 x = unsafeCoerce# x
-{-# INLINE happyOut105 #-}
-happyIn106 :: (CExpr) -> (HappyAbsSyn )
-happyIn106 x = unsafeCoerce# x
-{-# INLINE happyIn106 #-}
-happyOut106 :: (HappyAbsSyn ) -> (CExpr)
-happyOut106 x = unsafeCoerce# x
-{-# INLINE happyOut106 #-}
-happyIn107 :: (CExpr) -> (HappyAbsSyn )
-happyIn107 x = unsafeCoerce# x
-{-# INLINE happyIn107 #-}
-happyOut107 :: (HappyAbsSyn ) -> (CExpr)
-happyOut107 x = unsafeCoerce# x
-{-# INLINE happyOut107 #-}
-happyIn108 :: (CExpr) -> (HappyAbsSyn )
-happyIn108 x = unsafeCoerce# x
-{-# INLINE happyIn108 #-}
-happyOut108 :: (HappyAbsSyn ) -> (CExpr)
-happyOut108 x = unsafeCoerce# x
-{-# INLINE happyOut108 #-}
-happyIn109 :: (CExpr) -> (HappyAbsSyn )
-happyIn109 x = unsafeCoerce# x
-{-# INLINE happyIn109 #-}
-happyOut109 :: (HappyAbsSyn ) -> (CExpr)
-happyOut109 x = unsafeCoerce# x
-{-# INLINE happyOut109 #-}
-happyIn110 :: (CExpr) -> (HappyAbsSyn )
-happyIn110 x = unsafeCoerce# x
-{-# INLINE happyIn110 #-}
-happyOut110 :: (HappyAbsSyn ) -> (CExpr)
-happyOut110 x = unsafeCoerce# x
-{-# INLINE happyOut110 #-}
-happyIn111 :: (CExpr) -> (HappyAbsSyn )
-happyIn111 x = unsafeCoerce# x
-{-# INLINE happyIn111 #-}
-happyOut111 :: (HappyAbsSyn ) -> (CExpr)
-happyOut111 x = unsafeCoerce# x
-{-# INLINE happyOut111 #-}
-happyIn112 :: (CExpr) -> (HappyAbsSyn )
-happyIn112 x = unsafeCoerce# x
-{-# INLINE happyIn112 #-}
-happyOut112 :: (HappyAbsSyn ) -> (CExpr)
-happyOut112 x = unsafeCoerce# x
-{-# INLINE happyOut112 #-}
-happyIn113 :: (CExpr) -> (HappyAbsSyn )
-happyIn113 x = unsafeCoerce# x
-{-# INLINE happyIn113 #-}
-happyOut113 :: (HappyAbsSyn ) -> (CExpr)
-happyOut113 x = unsafeCoerce# x
-{-# INLINE happyOut113 #-}
-happyIn114 :: (CExpr) -> (HappyAbsSyn )
-happyIn114 x = unsafeCoerce# x
-{-# INLINE happyIn114 #-}
-happyOut114 :: (HappyAbsSyn ) -> (CExpr)
-happyOut114 x = unsafeCoerce# x
-{-# INLINE happyOut114 #-}
-happyIn115 :: (CExpr) -> (HappyAbsSyn )
-happyIn115 x = unsafeCoerce# x
-{-# INLINE happyIn115 #-}
-happyOut115 :: (HappyAbsSyn ) -> (CExpr)
-happyOut115 x = unsafeCoerce# x
-{-# INLINE happyOut115 #-}
-happyIn116 :: (Located CAssignOp) -> (HappyAbsSyn )
-happyIn116 x = unsafeCoerce# x
-{-# INLINE happyIn116 #-}
-happyOut116 :: (HappyAbsSyn ) -> (Located CAssignOp)
-happyOut116 x = unsafeCoerce# x
-{-# INLINE happyOut116 #-}
-happyIn117 :: (CExpr) -> (HappyAbsSyn )
-happyIn117 x = unsafeCoerce# x
-{-# INLINE happyIn117 #-}
-happyOut117 :: (HappyAbsSyn ) -> (CExpr)
-happyOut117 x = unsafeCoerce# x
-{-# INLINE happyOut117 #-}
-happyIn118 :: (Reversed [CExpr]) -> (HappyAbsSyn )
-happyIn118 x = unsafeCoerce# x
-{-# INLINE happyIn118 #-}
-happyOut118 :: (HappyAbsSyn ) -> (Reversed [CExpr])
-happyOut118 x = unsafeCoerce# x
-{-# INLINE happyOut118 #-}
-happyIn119 :: (Maybe CExpr) -> (HappyAbsSyn )
-happyIn119 x = unsafeCoerce# x
-{-# INLINE happyIn119 #-}
-happyOut119 :: (HappyAbsSyn ) -> (Maybe CExpr)
-happyOut119 x = unsafeCoerce# x
-{-# INLINE happyOut119 #-}
-happyIn120 :: (Maybe CExpr) -> (HappyAbsSyn )
-happyIn120 x = unsafeCoerce# x
-{-# INLINE happyIn120 #-}
-happyOut120 :: (HappyAbsSyn ) -> (Maybe CExpr)
-happyOut120 x = unsafeCoerce# x
-{-# INLINE happyOut120 #-}
-happyIn121 :: (CExpr) -> (HappyAbsSyn )
-happyIn121 x = unsafeCoerce# x
-{-# INLINE happyIn121 #-}
-happyOut121 :: (HappyAbsSyn ) -> (CExpr)
-happyOut121 x = unsafeCoerce# x
-{-# INLINE happyOut121 #-}
-happyIn122 :: (CConst) -> (HappyAbsSyn )
-happyIn122 x = unsafeCoerce# x
-{-# INLINE happyIn122 #-}
-happyOut122 :: (HappyAbsSyn ) -> (CConst)
-happyOut122 x = unsafeCoerce# x
-{-# INLINE happyOut122 #-}
-happyIn123 :: (CStrLit) -> (HappyAbsSyn )
-happyIn123 x = unsafeCoerce# x
-{-# INLINE happyIn123 #-}
-happyOut123 :: (HappyAbsSyn ) -> (CStrLit)
-happyOut123 x = unsafeCoerce# x
-{-# INLINE happyOut123 #-}
-happyIn124 :: (Reversed [CString]) -> (HappyAbsSyn )
-happyIn124 x = unsafeCoerce# x
-{-# INLINE happyIn124 #-}
-happyOut124 :: (HappyAbsSyn ) -> (Reversed [CString])
-happyOut124 x = unsafeCoerce# x
-{-# INLINE happyOut124 #-}
-happyIn125 :: (Ident) -> (HappyAbsSyn )
-happyIn125 x = unsafeCoerce# x
-{-# INLINE happyIn125 #-}
-happyOut125 :: (HappyAbsSyn ) -> (Ident)
-happyOut125 x = unsafeCoerce# x
-{-# INLINE happyOut125 #-}
-happyIn126 :: ([CAttr]) -> (HappyAbsSyn )
-happyIn126 x = unsafeCoerce# x
-{-# INLINE happyIn126 #-}
-happyOut126 :: (HappyAbsSyn ) -> ([CAttr])
-happyOut126 x = unsafeCoerce# x
-{-# INLINE happyOut126 #-}
-happyIn127 :: ([CAttr]) -> (HappyAbsSyn )
-happyIn127 x = unsafeCoerce# x
-{-# INLINE happyIn127 #-}
-happyOut127 :: (HappyAbsSyn ) -> ([CAttr])
-happyOut127 x = unsafeCoerce# x
-{-# INLINE happyOut127 #-}
-happyIn128 :: ([CAttr]) -> (HappyAbsSyn )
-happyIn128 x = unsafeCoerce# x
-{-# INLINE happyIn128 #-}
-happyOut128 :: (HappyAbsSyn ) -> ([CAttr])
-happyOut128 x = unsafeCoerce# x
-{-# INLINE happyOut128 #-}
-happyIn129 :: (Reversed [CAttr]) -> (HappyAbsSyn )
-happyIn129 x = unsafeCoerce# x
-{-# INLINE happyIn129 #-}
-happyOut129 :: (HappyAbsSyn ) -> (Reversed [CAttr])
-happyOut129 x = unsafeCoerce# x
-{-# INLINE happyOut129 #-}
-happyIn130 :: (Maybe CAttr) -> (HappyAbsSyn )
-happyIn130 x = unsafeCoerce# x
-{-# INLINE happyIn130 #-}
-happyOut130 :: (HappyAbsSyn ) -> (Maybe CAttr)
-happyOut130 x = unsafeCoerce# x
-{-# INLINE happyOut130 #-}
-happyIn131 :: (Reversed [CExpr]) -> (HappyAbsSyn )
-happyIn131 x = unsafeCoerce# x
-{-# INLINE happyIn131 #-}
-happyOut131 :: (HappyAbsSyn ) -> (Reversed [CExpr])
-happyOut131 x = unsafeCoerce# x
-{-# INLINE happyOut131 #-}
-happyInTok :: CToken -> (HappyAbsSyn )
-happyInTok x = unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn ) -> CToken
-happyOutTok x = unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x00\x00\x1d\x0f\xd3\x09\x31\x0f\x00\x00\x80\x07\x00\x00\x7f\x09\x77\x0f\x31\x0f\x00\x00\xc8\x09\x1f\x05\x05\x05\x7f\x03\xf0\x04\x65\x08\x54\x08\x49\x08\x3e\x08\xc6\x04\x00\x00\x2b\x08\xef\x07\x00\x00\x00\x00\x0b\x09\x00\x00\x00\x00\xcd\x0e\xcd\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x82\x04\xaf\x0e\x96\x0e\x00\x00\x00\x00\x00\x00\xf6\x07\x00\x00\x32\x0e\x14\x0e\x14\x0e\x48\x08\x47\x08\x24\x08\xb6\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x07\xe6\x07\x00\x00\x00\x00\x4a\x05\xd2\x07\xfb\x0d\xd0\x07\xd6\x07\xd3\x09\xf5\x07\x24\x00\xed\x07\xfb\x0d\xec\x07\xd5\x07\xc6\x07\x00\x00\x76\x07\x00\x00\xae\x07\x00\x00\x95\x04\x8e\x04\x01\x01\xd5\x11\x00\x00\x01\x01\x00\x00\x9a\x19\x9a\x19\x11\x18\x01\x18\x21\x08\x21\x08\x00\x00\x00\x00\x71\x07\x00\x00\xa6\x11\x00\x00\x00\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x00\x00\x4a\x05\x89\x12\x00\x00\x3d\x01\x3d\x01\xcb\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x07\x1d\x0f\x55\x07\x00\x00\xb8\x07\x6f\x09\x7a\x01\x59\x07\x5b\x07\xb3\x12\x00\x00\x00\x00\x4b\x00\xb2\x07\xb4\x09\xaa\x07\x4b\x00\x86\x07\x00\x00\x00\x00\x00\x00\xed\x01\x00\x00\x00\x00\xa7\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x18\x00\x00\x9d\x07\x00\x00\x94\x18\xff\x0a\x72\x07\x00\x00\x00\x00\x00\x00\x00\x00\xed\x01\x00\x00\x77\x11\x97\x07\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x07\x5f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x07\x00\x00\x6e\x02\x48\x02\x0f\x00\x52\x07\x00\x00\x00\x00\x00\x00\xed\x01\x00\x00\x00\x00\x7b\x07\x00\x00\x4f\x07\x53\x07\x00\x00\x1b\x07\x00\x00\x1b\x07\x00\x00\x00\x00\xfb\x0d\xfb\x0d\x00\x00\x4d\x07\xfb\x0d\x41\x07\xfb\x0d\x00\x00\x43\x08\x14\x07\xd3\x09\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x65\x07\x00\x00\x2e\x07\xf4\x06\x00\x00\xc3\x1a\xc3\x1a\xfb\x0d\x00\x00\x0b\x09\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x0b\x09\x00\x00\x0b\x09\x00\x00\x00\x00\x00\x00\x4e\x07\x97\x03\xe7\x1a\xab\x04\xab\x04\x7a\x0a\x4c\x07\x4b\x07\x9f\x1a\xfb\x0d\xfb\x0d\x97\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\xfb\x0d\x00\x00\xfb\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xfb\x0d\x36\x04\x36\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x07\x6e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x09\xa3\x09\x8a\x04\x8a\x04\x4f\x04\x4f\x04\x4f\x04\x4f\x04\x7f\x03\x7f\x03\x1d\x04\x35\x07\x2b\x07\x16\x07\x0c\x07\xfb\x0d\x25\x07\x00\x00\xfb\x06\x00\x00\x61\x0d\x00\x00\x00\x00\x00\x00\xb7\x06\x57\x1a\x33\x1a\x48\x11\x00\x0f\x00\x00\x00\x00\x0f\x07\x0e\x07\x00\x00\xf3\x06\xdd\x06\xdb\x06\xc7\x06\xd3\x09\xdf\x07\xad\x06\x94\x06\x7c\x06\xd3\x09\xfb\x0d\x00\x00\xcb\x06\x6c\x19\xab\x06\xa7\x06\x00\x00\xc4\x06\x00\x00\xc3\x06\xc1\x06\xea\x00\xd8\x00\x38\x18\xa1\x06\x5d\x06\xaa\x06\x00\x00\x6f\x09\x38\x18\x86\x06\x00\x00\x00\x00\x1e\x19\x5b\x0b\x00\x00\x00\x00\xb1\x01\x93\x01\x8e\x06\x88\x06\x0f\x00\x47\x00\x93\x01\x00\x00\x38\x18\x66\x06\x00\x00\x49\x06\x00\x00\x6f\x09\x3e\x06\x00\x00\x00\x00\x00\x00\x00\x00\xed\x01\x00\x00\x62\x06\x00\x00\x38\x18\x3d\x06\x00\x00\x9b\x0a\x00\x00\x29\x06\xe0\x0b\x09\x00\xce\x05\x74\x02\xff\x0f\x74\x02\x21\x08\x21\x08\xd0\x0f\x24\x06\xfb\x05\x00\x00\x1b\x01\x45\x19\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x19\x11\xd8\x00\xea\x10\x5a\x12\x6f\x09\x38\x18\x04\x06\x00\x00\x19\x06\x9e\x09\x12\x00\x12\x00\x0f\x00\x00\x00\x0f\x00\x00\x00\x0f\x00\x00\x00\x00\x00\xdc\x0c\x09\x06\xf4\x05\xcc\x03\x03\x06\xfe\x05\x77\x00\xca\x00\x00\x00\x00\x00\xef\x05\x00\x00\x00\x00\xcd\x02\x00\x00\xcb\x05\xcc\x03\xaa\x05\x00\x00\x00\x00\x00\x00\xdc\x0c\x4b\x09\x00\x00\x0f\x00\x00\x00\xfd\x0c\x00\x00\xc8\x05\xc1\x05\x8c\x05\x8c\x05\xbb\x10\x00\x00\xf1\x00\xc9\x00\x8c\x05\x00\x00\x56\x05\x66\x18\x00\x00\x53\x05\x00\x00\xf0\x18\xc2\x18\xa1\x0f\xde\x12\x53\x05\x53\x05\x00\x00\x72\x0f\x49\x07\x53\x05\x00\x00\x53\x05\x53\x05\x00\x00\xab\x04\x62\x0c\x9d\x05\x9b\x05\x09\x00\x00\x00\x90\x05\x46\x05\x37\x0a\x09\x00\x00\x00\x00\x00\x6f\x09\x38\x18\x6d\x05\x00\x00\x8f\x05\x8d\x05\xdc\x17\x00\x00\x00\x00\x00\x00\x2f\x09\x84\x05\x0e\x00\xbe\x00\x83\x05\x0f\x00\x0f\x00\x2c\x09\x00\x00\x00\x00\x00\x00\xe3\x0a\x65\x00\x00\x00\x00\x00\x81\x05\x79\x05\x10\x05\x00\x00\x00\x00\x00\x00\x35\x05\x35\x05\xd3\x09\xd3\x09\xd3\x09\x00\x00\xfb\x0d\xfb\x0d\xfb\x0d\x42\x05\x00\x00\xaa\x01\xc9\x03\xdf\x07\xf2\x04\x00\x00\x23\x05\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x8c\x10\xd8\x00\x5d\x10\x2d\x05\xa7\x08\x00\x00\x7b\x1a\x9a\x03\x7b\x1a\x1c\x05\x1c\x05\x1c\x05\x30\x0c\x00\x00\xa2\x09\x31\x05\x2f\x05\x2d\x00\x33\x12\x00\x00\x00\x00\xfe\x0b\xfb\x0d\x00\x00\xfb\x0d\x00\x00\xfb\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x02\xfd\x0c\xdc\x02\x00\x00\x99\x01\x00\x00\xd4\x04\xfb\x0d\x9a\x03\xfe\x0b\x21\x05\x0d\x05\x13\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x04\x09\x05\xed\x02\x00\x00\xf9\x04\x00\x00\xc0\x04\x2e\x10\xc0\x04\xc0\x04\xc0\x04\x00\x00\xa3\x03\x89\x04\x00\x00\xa2\x04\x2a\x00\xd3\x09\xc7\x04\x9c\x04\x97\x04\x7f\x04\x00\x00\x00\x00\x88\x04\x88\x04\xa1\x04\x00\x00\x00\x00\x22\x09\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0a\x0f\x00\x00\x00\xaf\x17\xd4\x02\x00\x00\xa0\x03\x98\x03\x0f\x1a\xc2\x12\x00\x00\x00\x00\xbe\x19\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x04\x9a\x04\x8b\x04\x86\x04\x09\x00\x0a\x04\x00\x00\x7a\x04\x00\x00\x00\x00\x68\x04\xfb\x0d\x00\x00\x00\x00\x00\x00\xb4\x04\x9f\x00\x04\x12\x00\x00\x00\x00\xdc\x0a\x3e\x09\x24\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x2b\x00\x2b\x00\x16\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x02\xfb\x0d\xf4\x00\x00\x00\xe4\x0c\x64\x04\x77\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\x2b\x00\x5f\x01\xcd\x00\x3e\x04\x00\x00\x00\x00\xfb\x0d\x3c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x03\x1b\x04\xfb\x0d\x9e\x00\xeb\x19\xc8\x03\x00\x00\xc8\x03\x00\x00\xc8\x03\x06\x04\xfb\x0d\x00\x00\x00\x00\xcd\x00\x1f\x09\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x09\xfb\x0d\xfb\x0d\xf5\x03\x00\x00\x0a\x01\xef\x03\x00\x00\x1a\x04\x49\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x03\x00\x00\x00\x00\x00\x00\xfb\x0d\x40\x03\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x97\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x00\x00\x00\x00\x80\x0c\x00\x00\x00\x00\xfb\x0d\x63\x0b\x00\x00\x00\x00\x00\x00\x03\x04\x00\x00\x01\x04\xe1\x03\xfb\x0d\x2a\x00\xb6\x03\x2a\x00\x00\x00\xd8\x03\xd3\x03\x00\x00\x00\x00\x00\x00\xfb\x0d\x00\x00\x9e\x00\xd4\x02\x6a\x03\x00\x00\xfb\x0d\x00\x00\x00\x00\xb9\x03\x00\x00\x00\x00\x00\x00\xfb\x0d\x00\x00\x00\x00\x00\x00\x4a\x03\x4a\x03\x00\x00\xd3\x09\xd3\x09\xd5\x00\x00\x00\x00\x00\xa8\x03\x3b\x03\x3b\x03\x00\x00\x00\x00\x7a\x03\x00\x00\x00\x00\x74\x03\x72\x03\x00\x00\x46\x03\x0b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\xfb\x0d\xfb\x0d\x6c\x03\x5b\x03\x17\x03\xe9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x36\x03\x71\x00\xd3\x06\xc6\x1d\x3c\x03\x38\x00\x00\x00\x00\x00\xc5\x02\x35\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x71\x0d\xa4\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x02\xd5\x0a\xb9\x0a\x00\x00\x00\x00\x00\x00\xa7\x02\x00\x00\x20\x0c\xbe\x03\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x03\x1a\x00\x00\x00\x76\x1f\x00\x00\x00\x00\xb8\x06\x00\x00\x95\x02\x00\x00\x4c\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x00\x00\x2a\x06\xc3\x00\x00\x00\x8a\x05\x00\x00\x14\x00\x16\x01\x6c\x02\x7d\x01\xa2\x01\xcb\x00\x00\x00\x00\x00\x96\x08\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x99\x08\xe2\x02\x00\x00\x00\x00\xbb\x02\x15\x01\x00\x00\xa8\x0a\xd7\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\xca\x15\x71\x02\x5d\x02\x6a\x02\x77\x08\x00\x00\x00\x00\x70\x02\x00\x00\x5b\x08\x00\x00\x40\x00\xc6\x02\x00\x00\x00\x00\x00\x00\x52\x02\x9e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x04\x00\x00\x66\x02\x00\x00\xa8\x13\x16\x17\xa9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x51\x02\x90\x02\xec\x00\x00\x00\x00\x00\x1a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x02\x4f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x9a\x13\xe8\x16\x35\x08\x75\x02\x00\x00\x00\x00\x00\x00\x4a\x02\x5c\x02\x00\x00\x00\x00\x00\x00\x62\x02\x31\x02\x56\x02\xf3\x07\x00\x00\xee\x07\x00\x00\x00\x00\xab\x1d\x90\x1d\x00\x00\x00\x00\x75\x1d\x00\x00\x5a\x1d\x00\x00\x98\x06\x00\x00\x4e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x01\xe9\x07\x00\x00\x7b\x16\x53\x16\x5b\x1f\x00\x00\xe7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x02\x00\x00\x5b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x69\x05\x9b\x00\x78\x00\x50\x00\x89\x16\x00\x00\x00\x00\xac\x03\x3f\x1d\xc7\x1f\x24\x1d\xe2\x1f\x08\x15\x84\x15\xfd\x1f\xf1\x0b\x6f\x0b\xf0\x0c\xbb\x0c\x40\x0c\x3a\x0b\x9b\x0c\x1a\x0b\xfc\x07\x26\x07\xc1\x0b\x2c\x0a\x9d\x09\x00\x00\x40\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x1d\xee\x1c\xdb\x01\xcd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x99\x07\x00\x00\x00\x00\x00\x00\xc6\x01\x61\x04\x00\x00\x73\x13\xda\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x06\x35\x02\x33\x02\xea\x01\x7e\x01\x18\x06\x25\x1f\x00\x00\x00\x00\xa6\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x03\x91\x20\x87\x04\xdd\x01\xce\x07\x00\x00\x00\x00\xa6\x15\x4c\x04\xb7\x01\x00\x00\x00\x00\xda\x13\x26\x03\x00\x00\x00\x00\x6c\x05\x30\x13\x00\x00\x00\x00\xa2\x07\x36\x02\xb6\x0b\x00\x00\x26\x04\xa0\x01\x00\x00\x00\x00\xa7\x01\x4e\x15\xc7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x02\xb0\x01\x00\x00\x00\x00\xeb\x03\x60\x01\x00\x00\xa9\x16\x00\x00\x00\x00\xc4\x1b\x6a\x07\x14\x01\x40\x20\x18\x14\x28\x20\x9f\x01\x18\x00\x2c\x14\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x84\x20\x47\x07\x77\x20\x68\x14\xaf\x14\x2a\x15\xc5\x03\x4d\x01\x00\x00\x00\x00\x73\x07\xd3\x01\xeb\x04\x27\x07\x00\x00\x20\x07\x00\x00\x15\x07\x00\x00\x00\x00\xbf\x03\x00\x00\x00\x00\xb9\x01\x00\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\x00\x00\x44\x04\x15\x07\x00\x00\xd9\x06\x00\x00\xa9\x1b\x00\x00\x00\x00\x00\x00\x16\x02\xf7\x01\xa9\x14\x00\x00\x6f\x13\x0d\x0e\xf4\x01\x00\x00\x00\x00\x0a\x14\x00\x00\x96\x06\x00\x00\x00\x04\x00\x00\x3e\x13\x60\x17\x76\x06\x68\x06\x00\x00\x06\x13\x59\x17\x2b\x06\x00\x00\x10\x06\xe2\x05\x00\x00\xdb\x00\x62\x17\x00\x00\x00\x00\xdf\x05\x00\x00\x00\x00\x00\x00\xe0\x16\xd9\x05\x00\x00\x00\x00\xd2\x14\x64\x03\x42\x01\x00\x00\x00\x00\x00\x00\x31\x16\x5c\x01\x00\x00\x00\x00\xff\x05\x00\x00\xf9\x08\x60\x07\x00\x00\xf1\x05\xe4\x05\xe1\x05\x00\x00\x00\x00\x00\x00\x92\x0c\x18\x04\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x00\x00\x00\x00\x5e\x01\x57\x01\xae\x05\x93\x05\x78\x05\x00\x00\x31\x1c\x16\x1c\xd3\x1c\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x09\x43\x01\xc4\x07\x3e\x01\x00\x00\x36\x07\x00\x00\x40\x16\xd5\xff\xe1\x14\x00\x00\x00\x00\x00\x00\xc7\x02\x00\x00\x8a\x02\x00\x00\x00\x00\xf9\x00\x96\x14\x00\x00\x00\x00\x13\x1b\x0a\x1f\x00\x00\x91\x1f\x00\x00\xef\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x1b\x9d\x02\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x1e\xd3\x00\xf1\x1a\x00\x00\x00\x00\x7f\x00\x00\x00\xb4\x05\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x01\x67\x01\x36\x01\x1d\x01\x17\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\xff\x0e\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x80\x00\x00\x00\x00\x00\x00\x00\x99\x05\x00\x00\x00\x00\x6b\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x09\x5c\x05\x00\x00\x31\x16\x6a\x20\x00\x00\x00\x00\x00\x00\x04\x04\xb9\x16\x00\x00\x00\x00\x22\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x04\xb0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x1e\x00\x00\x00\x00\x00\x00\x1a\x17\xfa\x05\x64\x14\x00\x00\x00\x00\x80\x16\x9a\x06\xca\x04\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x02\xaa\x0d\x36\x0d\xfa\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\xd9\xff\x00\x00\x50\x1b\x00\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x91\x06\xbf\x03\x5a\x05\x00\x00\x00\x00\x00\x00\x83\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x68\x1e\x57\x04\x61\x04\x78\x04\x00\x00\x09\x04\x00\x00\x86\x03\x00\x00\x4d\x1e\x00\x00\x00\x00\x5a\x05\xab\x03\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x04\xfb\x1b\xe0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x00\x00\xb8\x1c\x44\x00\x00\x00\x00\x00\x00\x00\x2c\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x1b\x00\x00\x00\x00\x73\x1b\x00\x00\x00\x00\x32\x1e\x35\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x1c\xf5\xff\x00\x00\xf1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x1e\x00\x00\x5f\x03\x5b\x20\xd0\xff\x00\x00\xfc\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x1d\x00\x00\x00\x00\x00\x00\xec\x01\xd0\xff\x00\x00\xd6\x04\x9e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x1c\x67\x1c\x00\x00\x00\x00\x00\x00\x91\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xfa\xff\x3d\xfe\x00\x00\x00\x00\x00\x00\x3d\xfe\x9b\xfe\x8f\xfe\x7d\xfe\x00\x00\x7b\xfe\x77\xfe\x74\xfe\x71\xfe\x6c\xfe\x69\xfe\x67\xfe\x65\xfe\x63\xfe\x61\xfe\x5f\xfe\x5c\xfe\x4f\xfe\x00\x00\xa5\xfe\xa4\xfe\x3d\xfe\x7e\xfe\x7f\xfe\x00\x00\x00\x00\x81\xfe\x80\xfe\x82\xfe\x83\xfe\x00\x00\x00\x00\x00\x00\x45\xfe\x46\xfe\x44\xfe\x43\xfe\xa6\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\x00\x00\x00\x00\xc7\xff\xd7\xff\xb5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xfe\x00\x00\x00\x00\xa6\xfe\x3e\xfe\x00\x00\xf7\xff\x00\x00\xf6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\x00\x00\x77\xff\x9b\xff\x8a\xff\x9a\xff\x89\xff\x99\xff\x88\xff\x6c\xff\x52\xff\x3d\xfe\x51\xff\x00\x00\xe5\xff\x0a\xff\x08\xff\x09\xff\xa6\xff\xfb\xfe\xfa\xfe\x00\x00\x3c\xfe\x3b\xfe\x00\x00\x3d\xfe\x00\x00\x8d\xff\x7e\xff\x86\xff\x7d\xff\x81\xff\x3d\xfe\x8f\xff\x82\xff\x84\xff\x83\xff\x8c\xff\x85\xff\x80\xff\x8e\xff\x4d\xff\x90\xff\x00\x00\x8b\xff\x4c\xff\x7f\xff\x87\xff\xfe\xfe\x60\xff\x00\x00\x3d\xfe\x00\x00\xf5\xff\x00\x00\x3d\xfe\x00\x00\x3c\xfe\x00\x00\x00\x00\x07\xff\xf9\xfe\x3c\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\x76\xff\x6b\xff\x26\xff\xa6\xff\x3a\xfe\x00\x00\x5a\xff\x2b\xff\x2f\xff\x2c\xff\x2d\xff\x2e\xff\x3d\xfe\x03\xff\xd7\xfe\xd5\xfe\xf4\xfe\x49\xfe\x00\x00\x96\xff\x75\xff\x6a\xff\x2a\xff\x26\xff\xa6\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x66\xff\x54\xff\x53\xff\x62\xff\x92\xff\x91\xff\x61\xff\x6f\xff\x68\xff\x67\xff\xa9\xff\x6e\xff\x6d\xff\xaa\xff\x7b\xff\x72\xff\x73\xff\x71\xff\x7a\xff\x79\xff\x78\xff\x00\x00\x26\xff\x27\xff\x23\xff\x20\xff\x1f\xff\x24\xff\x16\xff\x28\xff\xa6\xff\x00\x00\x3d\xfe\x22\xff\x00\x00\x94\xff\x7c\xff\x70\xff\x26\xff\xa6\xff\x93\xff\x00\x00\x65\xff\x00\x00\x26\xff\xa6\xff\x3d\xfe\xa8\xff\x3d\xfe\xa7\xff\xf3\xff\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xfe\x4b\xfe\x00\x00\x00\x00\xbc\xff\x7d\xfe\x47\xfe\x00\x00\xbb\xff\x00\x00\xb4\xff\xd5\xff\x3d\xfe\xc6\xff\x3d\xfe\x3d\xfe\x00\x00\x85\xfe\x3d\xfe\x86\xfe\x8c\xfe\x42\xfe\x41\xfe\x8a\xfe\x3d\xfe\x88\xfe\x3d\xfe\x84\xfe\x8d\xfe\x8e\xfe\x00\x00\xde\xfe\x8a\xff\x89\xff\x88\xff\x00\x00\x00\x00\x00\x00\x3c\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xfe\x00\x00\x5a\xfe\x56\xfe\x55\xfe\x59\xfe\x58\xfe\x57\xfe\x52\xfe\x51\xfe\x50\xfe\x54\xfe\x53\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x95\xfe\x94\xfe\xf8\xff\xf9\xff\x97\xfe\x96\xfe\x00\x00\x00\x00\x91\xfe\x99\xfe\x5b\xfe\x78\xfe\x79\xfe\x7a\xfe\x75\xfe\x76\xfe\x72\xfe\x73\xfe\x6d\xfe\x6f\xfe\x6e\xfe\x70\xfe\x6a\xfe\x6b\xfe\x68\xfe\x66\xfe\x64\xfe\x62\xfe\x00\x00\x00\x00\x60\xfe\x4d\xfe\x4e\xfe\xa3\xfe\x00\x00\xdb\xfe\xd8\xfe\xda\xfe\xd9\xfe\x00\x00\xdc\xfe\xf4\xfe\xc8\xfe\xdd\xfe\xa2\xfe\x00\x00\x00\x00\x40\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\xff\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x3d\xfe\x00\x00\x00\x00\xbe\xff\x00\x00\xba\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\xb6\xfe\x3d\xfe\x00\x00\xf1\xff\x3d\xfe\x3d\xfe\xb6\xfe\xef\xff\x21\xff\xf4\xfe\x00\x00\x1e\xff\x12\xff\x3c\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\xff\x3d\xfe\xb6\xfe\xf0\xff\x4e\xff\x4b\xff\x3d\xfe\x00\x00\x95\xff\x74\xff\x69\xff\x29\xff\x26\xff\xa6\xff\x00\x00\x57\xff\x3d\xfe\xb6\xfe\xee\xff\x49\xfe\x48\xfe\x00\x00\x49\xfe\x82\xfe\x3d\xfe\xef\xfe\xeb\xfe\xe8\xfe\x9a\xff\x89\xff\xe4\xfe\x00\x00\xf3\xfe\xf1\xfe\x00\x00\x3c\xfe\xe0\xfe\xd4\xfe\xec\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xfe\x3d\xfe\x3d\xfe\xb6\xfe\xf2\xff\x00\x00\x00\x00\x00\x00\x3d\xfe\xf6\xfe\xfd\xfe\x02\xff\x06\xff\x09\xff\x05\xff\xf8\xfe\x00\x00\x00\x00\x34\xff\x00\x00\x00\x00\x00\x00\x36\xfe\x00\x00\x38\xfe\x34\xfe\x35\xfe\x5f\xff\x5e\xff\x00\x00\x33\xff\x31\xff\x00\x00\x00\x00\x04\xff\x01\xff\xf5\xfe\x00\x00\x00\x00\xfc\xfe\x00\xff\xa1\xff\x00\x00\xeb\xff\x00\x00\x00\x00\x26\xff\x26\xff\x00\x00\x28\xff\x00\x00\x3d\xfe\x26\xff\xf7\xfe\x00\x00\x3d\xfe\xd6\xfe\x3d\xfe\xe2\xfe\x00\x00\xe3\xfe\xf4\xfe\xc8\xfe\x3d\xfe\x3d\xfe\xe7\xfe\xf4\xfe\xc8\xfe\x3d\xfe\xea\xfe\x3d\xfe\x3d\xfe\xee\xfe\x3d\xfe\x00\x00\x00\x00\x00\x00\x82\xfe\xd3\xfe\x00\x00\x00\x00\x49\xfe\x82\xfe\xa3\xff\xe7\xff\x3d\xfe\x3d\xfe\xb6\xfe\xed\xff\x00\x00\x00\x00\x3d\xfe\x4b\xff\x9d\xff\xe9\xff\x00\x00\x00\x00\x00\x00\x3d\xfe\x00\x00\x0f\xff\x1a\xff\x00\x00\x1d\xff\x1c\xff\x11\xff\x00\x00\x00\x00\xa4\xff\xe8\xff\x00\x00\x00\x00\x00\x00\x9f\xff\x9e\xff\xea\xff\x26\xff\x26\xff\x00\x00\x00\x00\x00\x00\xbd\xff\x4b\xfe\x4b\xfe\x00\x00\x00\x00\xdc\xff\x00\x00\x00\x00\xd6\xff\x00\x00\xd3\xff\x00\x00\xd4\xff\xd2\xff\xd0\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x60\xff\x3d\xfe\xdd\xff\x3d\xfe\x00\x00\x3d\xfe\x00\x00\x89\xfe\x87\xfe\x3d\xfe\xc6\xfe\xc4\xfe\x00\x00\x00\x00\x00\x00\x3c\xfe\xba\xfe\x7c\xfe\xb4\xfe\x00\x00\x5d\xfe\x00\x00\x98\xfe\x00\x00\x9a\xfe\x90\xfe\x5e\xfe\x4c\xfe\xb3\xfe\x00\x00\x00\x00\x00\x00\xac\xfe\xad\xfe\xb9\xfe\x00\x00\x00\x00\x00\x00\xb4\xfe\x00\x00\x00\x00\x00\x00\xc1\xfe\xc2\xfe\xc0\xfe\xc3\xfe\xc5\xfe\xc7\xfe\x3c\xfe\x00\x00\x00\x00\x9e\xfe\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x00\x00\xc9\xff\x00\x00\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc5\xff\xc3\xff\xc2\xff\xb6\xfe\xb6\xfe\x00\x00\x64\xff\x63\xff\x00\x00\x1b\xff\x10\xff\x00\x00\x15\xff\x19\xff\x0d\xff\x0e\xff\x00\x00\x18\xff\x0b\xff\x3d\xfe\x40\xff\x49\xff\x00\x00\x00\x00\x3d\xfe\x3c\xfe\x4a\xff\x4f\xff\x3d\xfe\x5c\xff\x5b\xff\xa2\xff\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x82\xfe\x3d\xfe\xd1\xfe\x00\x00\xd2\xfe\xcc\xfe\x00\x00\x00\x00\xed\xfe\xec\xfe\xe9\xfe\x3d\xfe\xc4\xfe\x3c\xfe\xe6\xfe\xe5\xfe\x3d\xfe\xc4\xfe\x3c\xfe\xe1\xfe\xf0\xfe\xf2\xfe\xdf\xfe\x00\x00\x00\x00\x00\x00\x26\xff\x59\xff\x58\xff\xb5\xfe\xff\xfe\xf4\xff\x00\x00\x00\x00\x00\x00\x38\xff\x00\x00\x00\x00\x36\xfe\x37\xfe\x39\xfe\x31\xfe\x00\x00\x32\xfe\x32\xff\x37\xff\x30\xff\x00\x00\x36\xff\x00\x00\x3c\xfe\x3c\xfe\x00\x00\xcf\xfe\xcb\xfe\x00\x00\x00\x00\xd0\xfe\xca\xfe\x56\xff\x55\xff\x46\xff\x44\xff\x3c\xff\x00\x00\x00\x00\x3c\xfe\x3d\xfe\x48\xff\x3d\xfe\x47\xff\x3d\xfe\x3f\xff\x00\x00\x50\xff\x17\xff\x00\x00\x00\x00\x14\xff\x25\xff\x9c\xff\xa0\xff\x00\x00\x4b\xfe\x4b\xfe\x00\x00\xda\xff\x00\x00\xb2\xff\xb1\xff\x00\x00\x00\x00\xb9\xff\xd8\xff\xc8\xff\xce\xff\xcc\xff\xcd\xff\x00\x00\xcb\xff\x9f\xfe\xa0\xfe\x00\x00\x00\x00\xa1\xfe\xbf\xfe\xbd\xfe\xbe\xfe\xbc\xfe\x00\x00\xa9\xfe\x00\x00\xae\xfe\xab\xfe\xa8\xfe\xaf\xfe\xb2\xfe\x00\x00\x93\xfe\xb1\xfe\x00\x00\x92\xfe\xaa\xfe\x00\x00\x00\x00\xb8\xfe\xbb\xfe\x9d\xfe\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\xc1\xff\x00\x00\x00\x00\xc4\xff\x13\xff\x3e\xff\x00\x00\x42\xff\x00\x00\x00\x00\x45\xff\x3b\xff\x00\x00\x39\xff\xc9\xfe\x00\x00\xce\xfe\x35\xff\x33\xfe\x00\x00\x30\xfe\xcd\xfe\x3a\xff\x3d\xfe\x43\xff\x3d\xff\x00\x00\x00\x00\x00\x00\xb8\xff\xb0\xff\x00\x00\x00\x00\x00\x00\x9c\xfe\xb7\xfe\x00\x00\xb0\xfe\xa7\xfe\x00\x00\x00\x00\xaf\xff\x00\x00\x00\x00\xd6\xff\xc0\xff\x41\xff\xbf\xff\x00\x00\xac\xff\xb7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\xb6\xff\xad\xff\xae\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x02\x00\x03\x00\x04\x00\x36\x00\x74\x00\x15\x00\x16\x00\x17\x00\x15\x00\x16\x00\x17\x00\x17\x00\x04\x00\x35\x00\x01\x00\x01\x00\x18\x00\x03\x00\x01\x00\x04\x00\x02\x00\x1c\x00\x02\x00\x19\x00\x74\x00\x1b\x00\x0d\x00\x1d\x00\x1e\x00\x1f\x00\x0d\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x01\x00\x03\x00\x14\x00\x02\x00\x5b\x00\x0d\x00\x33\x00\x39\x00\x20\x00\x21\x00\x37\x00\x23\x00\x0d\x00\x21\x00\x02\x00\x03\x00\x04\x00\x1e\x00\x2e\x00\x2a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x79\x00\x01\x00\x79\x00\x36\x00\x76\x00\x01\x00\x2e\x00\x36\x00\x76\x00\x36\x00\x19\x00\x09\x00\x1b\x00\x0d\x00\x1d\x00\x1e\x00\x1f\x00\x0d\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x74\x00\x01\x00\x5e\x00\x74\x00\x74\x00\x5c\x00\x33\x00\x5e\x00\x74\x00\x5c\x00\x37\x00\x5e\x00\x5e\x00\x0d\x00\x02\x00\x03\x00\x04\x00\x77\x00\x78\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x5c\x00\x5d\x00\x42\x00\x43\x00\x44\x00\x5b\x00\x36\x00\x5c\x00\x5d\x00\x5e\x00\x19\x00\x5e\x00\x1b\x00\x79\x00\x1d\x00\x1e\x00\x1f\x00\x79\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x01\x00\x01\x00\x79\x00\x03\x00\x5c\x00\x33\x00\x5e\x00\x74\x00\x5c\x00\x37\x00\x5e\x00\x02\x00\x0d\x00\x0d\x00\x36\x00\x36\x00\x77\x00\x78\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x79\x00\x76\x00\x21\x00\x1e\x00\x23\x00\x23\x00\x01\x00\x07\x00\x5c\x00\x5d\x00\x5e\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x7b\x00\x79\x00\x01\x00\x0d\x00\x02\x00\x33\x00\x01\x00\x2c\x00\x36\x00\x36\x00\x2a\x00\x5c\x00\x54\x00\x36\x00\x0d\x00\x02\x00\x54\x00\x01\x00\x0d\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x43\x00\x20\x00\x21\x00\x0d\x00\x23\x00\x48\x00\x77\x00\x78\x00\x79\x00\x01\x00\x21\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x79\x00\x01\x00\x1e\x00\x2a\x00\x56\x00\x33\x00\x0d\x00\x79\x00\x36\x00\x5c\x00\x5c\x00\x5d\x00\x5e\x00\x0d\x00\x5c\x00\x5d\x00\x36\x00\x01\x00\x36\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x2d\x00\x02\x00\x21\x00\x0d\x00\x23\x00\x43\x00\x36\x00\x78\x00\x79\x00\x79\x00\x48\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x5c\x00\x5d\x00\x5e\x00\x02\x00\x07\x00\x33\x00\x01\x00\x2d\x00\x36\x00\x56\x00\x07\x00\x5c\x00\x5d\x00\x5e\x00\x1e\x00\x5c\x00\x5d\x00\x5e\x00\x0d\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x5c\x00\x5d\x00\x21\x00\x21\x00\x23\x00\x23\x00\x5c\x00\x5d\x00\x79\x00\x07\x00\x01\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x07\x00\x79\x00\x2a\x00\x5c\x00\x04\x00\x33\x00\x76\x00\x0d\x00\x37\x00\x36\x00\x5c\x00\x5d\x00\x5e\x00\x5c\x00\x5d\x00\x77\x00\x78\x00\x79\x00\x36\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x5c\x00\x5d\x00\x21\x00\x01\x00\x23\x00\x43\x00\x20\x00\x21\x00\x79\x00\x23\x00\x48\x00\x2a\x00\x2b\x00\x2c\x00\x04\x00\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x02\x00\x33\x00\x79\x00\x1c\x00\x36\x00\x56\x00\x33\x00\x7a\x00\x7b\x00\x36\x00\x1c\x00\x5c\x00\x5d\x00\x5e\x00\x4b\x00\x41\x00\x42\x00\x43\x00\x44\x00\x74\x00\x41\x00\x42\x00\x43\x00\x44\x00\x21\x00\x2d\x00\x23\x00\x77\x00\x78\x00\x79\x00\x79\x00\x79\x00\x39\x00\x2a\x00\x2b\x00\x2c\x00\x01\x00\x36\x00\x54\x00\x39\x00\x2a\x00\x5c\x00\x33\x00\x5e\x00\x03\x00\x36\x00\x21\x00\x06\x00\x0d\x00\x54\x00\x43\x00\x05\x00\x06\x00\x07\x00\x2c\x00\x48\x00\x41\x00\x42\x00\x43\x00\x44\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x01\x00\x36\x00\x54\x00\x56\x00\x78\x00\x79\x00\x1f\x00\x34\x00\x35\x00\x5c\x00\x79\x00\x5e\x00\x0d\x00\x20\x00\x21\x00\x2a\x00\x20\x00\x21\x00\x2d\x00\x05\x00\x06\x00\x07\x00\x1e\x00\x09\x00\x1a\x00\x0b\x00\x0c\x00\x0d\x00\x07\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x2d\x00\x36\x00\x5c\x00\x5d\x00\x36\x00\x19\x00\x01\x00\x1b\x00\x03\x00\x1d\x00\x1e\x00\x1f\x00\x79\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x34\x00\x35\x00\x5c\x00\x5d\x00\x5e\x00\x74\x00\x33\x00\x54\x00\x0a\x00\x79\x00\x37\x00\x5a\x00\x0e\x00\x5c\x00\x76\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x54\x00\x6e\x00\x5c\x00\x5d\x00\x5e\x00\x1c\x00\x73\x00\x74\x00\x1c\x00\x76\x00\x42\x00\x43\x00\x44\x00\x79\x00\x2c\x00\x5a\x00\x79\x00\x5c\x00\x30\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x39\x00\x6e\x00\x76\x00\x39\x00\x54\x00\x1c\x00\x73\x00\x74\x00\x4b\x00\x76\x00\x77\x00\x78\x00\x79\x00\x05\x00\x06\x00\x07\x00\x0a\x00\x09\x00\x79\x00\x0b\x00\x0c\x00\x0d\x00\x76\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x01\x00\x1c\x00\x78\x00\x79\x00\x1c\x00\x19\x00\x39\x00\x1b\x00\x76\x00\x1d\x00\x1e\x00\x1f\x00\x0d\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x77\x00\x78\x00\x79\x00\x1c\x00\x39\x00\x33\x00\x07\x00\x39\x00\x1c\x00\x37\x00\x1c\x00\x1c\x00\x01\x00\x1a\x00\x2a\x00\x3c\x00\x3d\x00\x2d\x00\x01\x00\x1a\x00\x03\x00\x42\x00\x43\x00\x44\x00\x0d\x00\x07\x00\x22\x00\x23\x00\x1a\x00\x25\x00\x0d\x00\x27\x00\x39\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x39\x00\x07\x00\x39\x00\x39\x00\x20\x00\x21\x00\x33\x00\x5a\x00\x76\x00\x5c\x00\x37\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x36\x00\x6e\x00\x5c\x00\x5d\x00\x5e\x00\x4c\x00\x73\x00\x74\x00\x1a\x00\x76\x00\x77\x00\x78\x00\x79\x00\x79\x00\x07\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5a\x00\x50\x00\x5c\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x07\x00\x6e\x00\x5c\x00\x5d\x00\x5e\x00\x07\x00\x73\x00\x74\x00\x5c\x00\x5d\x00\x77\x00\x78\x00\x79\x00\x01\x00\x79\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x2a\x00\x74\x00\x03\x00\x2d\x00\x0d\x00\x06\x00\x22\x00\x23\x00\x79\x00\x25\x00\x76\x00\x27\x00\x79\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x02\x00\x03\x00\x36\x00\x1e\x00\x06\x00\x33\x00\x58\x00\x59\x00\x2a\x00\x37\x00\x36\x00\x2d\x00\x1f\x00\x1a\x00\x36\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\x07\x00\x22\x00\x23\x00\x76\x00\x25\x00\x4c\x00\x27\x00\x08\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x33\x00\x5a\x00\x75\x00\x5c\x00\x37\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x76\x00\x6e\x00\x5c\x00\x5d\x00\x6d\x00\x4c\x00\x73\x00\x74\x00\x00\x00\x01\x00\x77\x00\x78\x00\x79\x00\x78\x00\x79\x00\x01\x00\x77\x00\x78\x00\x79\x00\x5a\x00\x2b\x00\x5c\x00\x5b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x07\x00\x6e\x00\x41\x00\x42\x00\x43\x00\x44\x00\x73\x00\x74\x00\x36\x00\x02\x00\x77\x00\x78\x00\x79\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x5b\x00\x41\x00\x42\x00\x43\x00\x44\x00\x07\x00\x46\x00\x47\x00\x02\x00\x22\x00\x23\x00\x2b\x00\x25\x00\x01\x00\x27\x00\x01\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x4e\x00\x4f\x00\x50\x00\x19\x00\x04\x00\x1b\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x37\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x32\x00\x13\x00\x14\x00\x15\x00\x16\x00\x5b\x00\x33\x00\x01\x00\x4c\x00\x03\x00\x37\x00\x5c\x00\x5d\x00\x78\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\x0d\x00\x5c\x00\x5d\x00\x5a\x00\x5e\x00\x5c\x00\x02\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x5a\x00\x6e\x00\x5c\x00\x04\x00\x5e\x00\x5f\x00\x73\x00\x74\x00\x2a\x00\x2b\x00\x77\x00\x78\x00\x79\x00\x21\x00\x5e\x00\x23\x00\x2a\x00\x2b\x00\x07\x00\x2a\x00\x2b\x00\x23\x00\x2a\x00\x2b\x00\x2c\x00\x73\x00\x74\x00\x02\x00\x2a\x00\x2b\x00\x2c\x00\x33\x00\x02\x00\x77\x00\x78\x00\x79\x00\x19\x00\x33\x00\x1b\x00\x2b\x00\x1d\x00\x1e\x00\x1f\x00\x04\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x2a\x00\x2b\x00\x36\x00\x5c\x00\x5d\x00\x33\x00\x4e\x00\x4f\x00\x50\x00\x37\x00\x77\x00\x78\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\x19\x00\x04\x00\x1b\x00\x04\x00\x1d\x00\x1e\x00\x1f\x00\x2c\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x5a\x00\x2a\x00\x5c\x00\x01\x00\x5e\x00\x5f\x00\x33\x00\x79\x00\x2b\x00\x21\x00\x37\x00\x23\x00\x1e\x00\x79\x00\x5e\x00\x23\x00\x5c\x00\x5d\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x2a\x00\x2b\x00\x2c\x00\x73\x00\x74\x00\x33\x00\x17\x00\x18\x00\x36\x00\x33\x00\x79\x00\x1e\x00\x36\x00\x5e\x00\x77\x00\x78\x00\x79\x00\x19\x00\x04\x00\x1b\x00\x04\x00\x1d\x00\x1e\x00\x1f\x00\x30\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x33\x00\x42\x00\x43\x00\x44\x00\x37\x00\x46\x00\x47\x00\x11\x00\x12\x00\x77\x00\x78\x00\x79\x00\x19\x00\x02\x00\x1b\x00\x5e\x00\x1d\x00\x1e\x00\x1f\x00\x04\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x79\x00\x36\x00\x77\x00\x78\x00\x79\x00\x04\x00\x33\x00\x77\x00\x78\x00\x79\x00\x37\x00\x23\x00\x41\x00\x42\x00\x43\x00\x44\x00\x32\x00\x04\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x04\x00\x78\x00\x79\x00\x5c\x00\x5d\x00\x33\x00\x0b\x00\x0c\x00\x36\x00\x41\x00\x42\x00\x43\x00\x44\x00\x02\x00\x77\x00\x78\x00\x79\x00\x19\x00\x02\x00\x1b\x00\x02\x00\x1d\x00\x1e\x00\x1f\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x07\x00\x01\x00\x2d\x00\x03\x00\x2a\x00\x2b\x00\x33\x00\x3c\x00\x78\x00\x79\x00\x37\x00\x2a\x00\x2b\x00\x0d\x00\x2b\x00\x77\x00\x78\x00\x79\x00\x19\x00\x2b\x00\x1b\x00\x02\x00\x1d\x00\x1e\x00\x1f\x00\x2b\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x79\x00\x05\x00\x06\x00\x07\x00\x5c\x00\x5d\x00\x33\x00\x36\x00\x1c\x00\x1d\x00\x37\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x36\x00\x21\x00\x2c\x00\x23\x00\x43\x00\x77\x00\x78\x00\x79\x00\x1e\x00\x48\x00\x2a\x00\x2b\x00\x2c\x00\x43\x00\x05\x00\x06\x00\x07\x00\x02\x00\x48\x00\x33\x00\x77\x00\x78\x00\x79\x00\x56\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x17\x00\x18\x00\x5e\x00\x56\x00\x02\x00\x42\x00\x43\x00\x44\x00\x02\x00\x5c\x00\x5d\x00\x5e\x00\x05\x00\x06\x00\x07\x00\x11\x00\x12\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x37\x00\x02\x00\x77\x00\x78\x00\x79\x00\x77\x00\x78\x00\x79\x00\x0b\x00\x0c\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5a\x00\x02\x00\x5c\x00\x02\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x79\x00\x6e\x00\x77\x00\x78\x00\x79\x00\x2c\x00\x73\x00\x74\x00\x1e\x00\x76\x00\x5a\x00\x5c\x00\x5c\x00\x2d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x1e\x00\x6e\x00\x77\x00\x78\x00\x79\x00\x30\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x5b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x02\x00\x6e\x00\x05\x00\x06\x00\x07\x00\x36\x00\x73\x00\x74\x00\x02\x00\x76\x00\x02\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x1f\x00\x43\x00\x04\x00\x02\x00\x36\x00\x02\x00\x48\x00\x4d\x00\x04\x00\x3b\x00\x3c\x00\x3d\x00\x05\x00\x06\x00\x07\x00\x41\x00\x42\x00\x43\x00\x44\x00\x04\x00\x56\x00\x04\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x3b\x00\x3c\x00\x3d\x00\x4e\x00\x4f\x00\x50\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5e\x00\x5c\x00\x05\x00\x06\x00\x07\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x30\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x38\x00\x02\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x02\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x5a\x00\x79\x00\x5c\x00\x2b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x79\x00\x6e\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x01\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x02\x00\x6e\x00\x4e\x00\x4f\x00\x50\x00\x02\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x02\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x02\x00\x6e\x00\x05\x00\x06\x00\x07\x00\x2c\x00\x73\x00\x74\x00\x1f\x00\x76\x00\x2a\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x5e\x00\x04\x00\x04\x00\x4e\x00\x4f\x00\x50\x00\x4e\x00\x4f\x00\x50\x00\x3b\x00\x3c\x00\x3d\x00\x05\x00\x06\x00\x07\x00\x41\x00\x42\x00\x43\x00\x44\x00\x4e\x00\x4f\x00\x50\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x4e\x00\x4f\x00\x50\x00\x77\x00\x78\x00\x79\x00\x05\x00\x06\x00\x07\x00\x77\x00\x78\x00\x79\x00\x77\x00\x78\x00\x79\x00\x1f\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x38\x00\x01\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x2c\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x5a\x00\x79\x00\x5c\x00\x2c\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x1f\x00\x6e\x00\x77\x00\x78\x00\x79\x00\x02\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x02\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x08\x00\x6e\x00\x77\x00\x78\x00\x79\x00\x1f\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x01\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x5e\x00\x6e\x00\x05\x00\x06\x00\x07\x00\x1f\x00\x73\x00\x74\x00\x02\x00\x76\x00\x02\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x01\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x2b\x00\x42\x00\x43\x00\x44\x00\x2b\x00\x5b\x00\x05\x00\x06\x00\x07\x00\x41\x00\x42\x00\x43\x00\x44\x00\x77\x00\x78\x00\x79\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x77\x00\x78\x00\x79\x00\x5c\x00\x2a\x00\x5a\x00\x46\x00\x5c\x00\x02\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x2a\x00\x6e\x00\x2a\x00\x70\x00\x78\x00\x79\x00\x73\x00\x74\x00\x77\x00\x78\x00\x79\x00\x02\x00\x02\x00\x5a\x00\x79\x00\x5c\x00\x5e\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x2a\x00\x6e\x00\x4e\x00\x4f\x00\x50\x00\x1e\x00\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\x1a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x1b\x00\x6e\x00\x0c\x00\x0d\x00\x19\x00\x10\x00\x73\x00\x74\x00\x04\x00\x76\x00\x01\x00\x5b\x00\x03\x00\x02\x00\x02\x00\x19\x00\x02\x00\x1b\x00\x5e\x00\x1d\x00\x1e\x00\x1f\x00\x0d\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x4e\x00\x4f\x00\x50\x00\x01\x00\x20\x00\x21\x00\x33\x00\x23\x00\x57\x00\x2b\x00\x37\x00\x4e\x00\x4f\x00\x50\x00\x2a\x00\x2b\x00\x2c\x00\x46\x00\x4e\x00\x4f\x00\x50\x00\x2b\x00\x5e\x00\x33\x00\x2c\x00\x01\x00\x36\x00\x2c\x00\x36\x00\x5a\x00\x01\x00\x5c\x00\x30\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x41\x00\x42\x00\x43\x00\x44\x00\x43\x00\x0d\x00\x2c\x00\x30\x00\x5a\x00\x48\x00\x5c\x00\x2c\x00\x5e\x00\x5f\x00\x60\x00\x37\x00\x01\x00\x73\x00\x74\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x56\x00\x03\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5c\x00\x5d\x00\x5e\x00\x01\x00\x73\x00\x74\x00\x2b\x00\x02\x00\x77\x00\x78\x00\x79\x00\x30\x00\x31\x00\x2c\x00\x33\x00\x02\x00\x35\x00\x5b\x00\x5e\x00\x38\x00\x01\x00\x65\x00\x3b\x00\x01\x00\x3d\x00\x3e\x00\x3f\x00\x79\x00\x4e\x00\x4f\x00\x50\x00\x44\x00\x45\x00\x01\x00\x47\x00\x04\x00\x5e\x00\x4a\x00\x4b\x00\x01\x00\x4d\x00\x4e\x00\x5e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x77\x00\x78\x00\x79\x00\x2c\x00\x65\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x01\x00\x77\x00\x78\x00\x79\x00\x1e\x00\x65\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x01\x00\x01\x00\x10\x00\x4e\x00\x4f\x00\x50\x00\x5a\x00\x1e\x00\x5c\x00\x01\x00\x5e\x00\x5f\x00\x60\x00\x1b\x00\x2b\x00\x38\x00\x2b\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x1e\x00\x41\x00\x42\x00\x43\x00\x44\x00\x2b\x00\x2b\x00\x2c\x00\x73\x00\x74\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x65\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x01\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x77\x00\x78\x00\x79\x00\x01\x00\x01\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x5b\x00\x31\x00\x10\x00\x65\x00\x2a\x00\x5a\x00\x36\x00\x5c\x00\x1b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x1b\x00\x3e\x00\x77\x00\x78\x00\x79\x00\x1a\x00\x43\x00\x77\x00\x78\x00\x79\x00\x47\x00\x48\x00\x77\x00\x78\x00\x79\x00\x19\x00\x4d\x00\x73\x00\x74\x00\x50\x00\x2f\x00\x52\x00\x31\x00\x10\x00\x33\x00\x56\x00\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x5e\x00\x3d\x00\x3e\x00\x3f\x00\x4e\x00\x4f\x00\x50\x00\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x36\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\x47\x00\x19\x00\xff\xff\x1b\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x77\x00\x78\x00\x79\x00\x2f\x00\xff\xff\x31\x00\x33\x00\x33\x00\xff\xff\x35\x00\x37\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\x78\x00\x79\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x77\x00\x78\x00\x79\x00\xff\xff\x37\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x77\x00\x78\x00\x79\x00\x01\x00\x02\x00\x03\x00\x01\x00\x02\x00\x03\x00\x1b\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x01\x00\x02\x00\x03\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x2c\x00\xff\xff\xff\xff\x2f\x00\x42\x00\x43\x00\x44\x00\x33\x00\x01\x00\x35\x00\x03\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\x0d\x00\x01\x00\x02\x00\x03\x00\x44\x00\x45\x00\x77\x00\x78\x00\x79\x00\xff\xff\x4a\x00\x4b\x00\x4c\x00\x04\x00\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x78\x00\x79\x00\xff\xff\x36\x00\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x01\x00\x43\x00\x03\x00\xff\xff\x05\x00\x06\x00\x48\x00\xff\xff\x09\x00\x0a\x00\x1b\x00\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x56\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\xff\xff\x2f\x00\x01\x00\x02\x00\x03\x00\x33\x00\x01\x00\x35\x00\x03\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\x0d\x00\x0d\x00\x0e\x00\x0f\x00\x44\x00\x45\x00\x01\x00\x02\x00\x03\x00\xff\xff\x4a\x00\x4b\x00\x4c\x00\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x0d\x00\x0e\x00\x0f\x00\x36\x00\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x43\x00\x36\x00\xff\xff\xff\xff\xff\xff\x48\x00\x3b\x00\x3c\x00\x3d\x00\x1b\x00\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x5a\x00\x56\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x2b\x00\x2c\x00\x5e\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\x39\x00\x3a\x00\x37\x00\xff\xff\x73\x00\x74\x00\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x49\x00\x46\x00\x47\x00\x4c\x00\xff\xff\xff\xff\x4f\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x78\x00\x79\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x0d\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\x2f\x00\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\x36\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x43\x00\x01\x00\xff\xff\x03\x00\xff\xff\x48\x00\x5c\x00\x5d\x00\x5e\x00\x4c\x00\x4d\x00\xff\xff\x5a\x00\x0d\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x1b\x00\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\x2f\x00\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x43\x00\x03\x00\xff\xff\x01\x00\xff\xff\x48\x00\x01\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x0d\x00\x42\x00\x43\x00\x44\x00\x0d\x00\x46\x00\x47\x00\x0d\x00\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x36\x00\x5a\x00\xff\xff\x5c\x00\x36\x00\x5e\x00\x5f\x00\x36\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x78\x00\x79\x00\xff\xff\x43\x00\x48\x00\xff\xff\x43\x00\xff\xff\x48\x00\xff\xff\xff\xff\x48\x00\x73\x00\x74\x00\x2f\x00\x5a\x00\xff\xff\x5c\x00\x56\x00\x5e\x00\x5f\x00\x36\x00\x56\x00\xff\xff\x5c\x00\x56\x00\x5e\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5c\x00\x5d\x00\x5e\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x73\x00\x74\x00\xff\xff\x4c\x00\x4d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\x03\x00\xff\xff\x0d\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x01\x00\x1b\x00\x03\x00\xff\xff\xff\xff\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x73\x00\x74\x00\x2c\x00\x2d\x00\x36\x00\x2f\x00\xff\xff\x5a\x00\xff\xff\x5c\x00\x1b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\x2f\x00\xff\xff\x73\x00\x74\x00\x4c\x00\xff\xff\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x4c\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x1b\x00\x46\x00\x47\x00\x5a\x00\x01\x00\x5c\x00\x03\x00\x5e\x00\x5f\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x73\x00\x74\x00\x1b\x00\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\x2c\x00\xff\xff\x4c\x00\x2f\x00\x78\x00\x79\x00\xff\xff\x01\x00\xff\xff\x03\x00\x73\x00\x74\x00\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x0d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x73\x00\x74\x00\x36\x00\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\x5a\x00\xff\xff\x5c\x00\x1b\x00\x5e\x00\x5f\x00\x60\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x56\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x5e\x00\xff\xff\x10\x00\x2f\x00\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\x5a\x00\x1b\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\x2c\x00\xff\xff\x4c\x00\x2f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x56\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x4c\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x02\x00\xff\xff\xff\xff\x0d\x00\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x01\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x79\x00\xff\xff\x10\x00\x73\x00\x74\x00\xff\xff\xff\xff\x36\x00\x2f\x00\xff\xff\x5a\x00\xff\xff\x5c\x00\x1b\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\x2f\x00\xff\xff\x73\x00\x74\x00\x4c\x00\xff\xff\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\x5e\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x4c\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x1b\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x2c\x00\xff\xff\x5a\x00\x2f\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\xff\xff\x1b\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x73\x00\x74\x00\xff\xff\x2f\x00\xff\xff\x4c\x00\x78\x00\x79\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x2f\x00\xff\xff\x4c\x00\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\x4c\x00\x73\x00\x74\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x78\x00\x79\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x2f\x00\x37\x00\xff\xff\xff\xff\x4c\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x1b\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x4c\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x01\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x2f\x00\xff\xff\xff\xff\xff\xff\x4c\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x4c\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x0d\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x0d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x01\x00\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x56\x00\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\x5e\x00\xff\xff\x2f\x00\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x4c\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xff\xff\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x01\x00\x31\x00\x03\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\x31\x00\xff\xff\x33\x00\x0d\x00\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x5d\x00\x5e\x00\x38\x00\xff\xff\xff\xff\x3b\x00\x0d\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\x0d\x00\x38\x00\xff\xff\x01\x00\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\x0d\x00\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x1e\x00\x03\x00\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\xff\xff\x36\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x43\x00\x35\x00\xff\xff\xff\xff\x38\x00\x48\x00\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x56\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x5c\x00\x4e\x00\x5e\x00\xff\xff\x51\x00\x36\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x43\x00\xff\xff\xff\xff\x1e\x00\x1f\x00\x48\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x5c\x00\xff\xff\x5e\x00\x37\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x33\x00\x42\x00\x43\x00\x44\x00\x37\x00\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x78\x00\x79\x00\x37\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x33\x00\x42\x00\x43\x00\x44\x00\x37\x00\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x78\x00\x79\x00\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\x1e\x00\x1f\x00\xff\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x20\x00\x21\x00\xff\xff\x23\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x21\x00\x36\x00\x23\x00\xff\xff\x77\x00\x78\x00\x79\x00\x4a\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x79\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\x78\x00\x79\x00\x42\x00\x43\x00\x44\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x21\x00\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x21\x00\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\x21\x00\xff\xff\x23\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x33\x00\x79\x00\xff\xff\x36\x00\x78\x00\x79\x00\x33\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x33\x00\x25\x00\xff\xff\x27\x00\x37\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x5a\x00\x4c\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x4c\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x5a\x00\x37\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x4c\x00\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xff\xff\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x4c\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x5a\x00\x37\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x4c\x00\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\x30\x00\x22\x00\x23\x00\x33\x00\x25\x00\xff\xff\x27\x00\x37\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\x30\x00\x22\x00\x23\x00\x33\x00\x25\x00\xff\xff\x27\x00\x37\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x22\x00\x23\x00\x37\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\x22\x00\x23\x00\x4c\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\x77\x00\x78\x00\x79\x00\xff\xff\x23\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\x37\x00\x2a\x00\x2b\x00\x2c\x00\x36\x00\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x23\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\x78\x00\x79\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x36\x00\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\x73\x00\x74\x00\xff\xff\x37\x00\x77\x00\x78\x00\x79\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\x47\x00\xff\xff\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x37\x00\xff\xff\xff\xff\x36\x00\x71\x00\xff\xff\x73\x00\x74\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\x79\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\x77\x00\x78\x00\x79\x00\x37\x00\x77\x00\x78\x00\x79\x00\x3b\x00\x3c\x00\x3d\x00\x37\x00\x36\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x77\x00\x78\x00\x79\x00\xff\xff\xff\xff\x73\x00\x74\x00\x77\x00\x78\x00\x79\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\x2b\x00\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x2b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\x31\x00\xff\xff\x43\x00\xff\xff\xff\xff\x36\x00\x47\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x3e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x43\x00\xff\xff\xff\xff\x56\x00\x47\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x5e\x00\xff\xff\x50\x00\xff\xff\x52\x00\x2c\x00\xff\xff\xff\xff\x56\x00\xff\xff\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\x5e\x00\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x5d\x00\x5e\x00\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x5d\x00\x5e\x00\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\x47\x00\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\x4e\x00\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x31\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x47\x00\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\xff\xff\x50\x00\xff\xff\x52\x00\xff\xff\x54\x00\x55\x00\x56\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\x56\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\x38\x00\x5d\x00\x5e\x00\x3b\x00\xff\xff\xff\xff\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x53\x00\x5e\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x53\x00\x76\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x53\x00\x76\x00\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\x76\x00\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\xff\xff\x53\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x53\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x53\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\x73\x00\x74\x00\xff\xff\x5a\x00\xff\xff\x5c\x00\x79\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x31\x00\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x88\x00\x4c\x00\x4d\x00\xa2\x01\x7b\x03\x5e\x03\x12\x03\x13\x03\x11\x03\x12\x03\x13\x03\x60\x03\x3d\xfe\xe6\x02\x25\x02\x8d\x01\x72\x03\xaa\x00\xcb\x01\x35\x03\x25\x03\x1a\x02\x7a\x03\x4e\x00\x69\x03\x4f\x00\x26\x02\x50\x00\x51\x00\x52\x00\xcc\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xd4\x02\x16\x03\xf8\x00\x7b\x02\x82\x02\xef\x00\x5f\x00\x84\x01\xc7\x00\xb9\x00\x60\x00\xc8\x00\xf7\x01\xbc\x00\x3d\x01\x4c\x00\x4d\x00\x75\x01\x36\x03\x7b\x03\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9c\x00\x25\x02\x4f\x03\xba\x00\x83\x02\xcb\x01\x76\x01\xbd\x00\xe2\x01\xf9\x00\x4e\x00\x71\x03\x4f\x00\x26\x02\x50\x00\x51\x00\x52\x00\xcc\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x14\x03\x97\x01\x86\x00\x14\x03\x14\x03\x84\x00\x5f\x00\x86\x00\x73\x03\x84\x00\x60\x00\x86\x00\x86\x00\xd6\x00\x4b\x00\x4c\x00\x4d\x00\x68\x00\x69\x00\x6a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xf0\x00\x4b\x00\xc8\x01\x63\x00\xc9\x01\x2a\x00\xb6\x00\x84\x00\x98\x01\x86\x00\x4e\x00\x86\x00\x4f\x00\xc9\x00\x50\x00\x51\x00\x52\x00\xbe\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xaa\x00\xcb\x01\x06\x02\x4f\x03\xaa\x00\x84\x00\x5f\x00\x86\x00\x6a\x03\x84\x00\x60\x00\x86\x00\x55\x03\xcc\x01\x07\x02\xdd\x01\xbd\x00\x68\x00\x69\x00\x6a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9c\x00\x39\x03\xab\x00\xfb\x02\xac\x00\xc4\x00\x25\x02\x3b\x03\x84\x00\x98\x01\x86\x00\xad\x00\x5d\x00\x5e\x00\xd7\x00\xe1\x02\xb7\x00\xd3\x02\x26\x02\xe0\x02\x5f\x00\x25\x02\x9d\x01\xae\x00\xc5\x00\x56\x03\xde\x01\x0a\x03\x3c\xfe\xf7\x01\x6d\x03\x0b\x03\xf6\x01\x26\x02\xaf\x00\x62\x00\x63\x00\x64\x00\xb0\x00\x66\x00\x67\x00\x3c\xfe\xd8\x00\xb9\x00\xf7\x01\xd9\x00\x3c\xfe\x68\x00\x69\x00\x6a\x00\xcb\x01\xb5\x00\xda\x00\x5d\x00\x5e\x00\x9e\x01\xbe\x00\xd4\x02\x6e\x03\xe1\x02\x3c\xfe\x5f\x00\xcc\x01\x60\x02\xba\x00\x84\x00\x84\x00\xd7\x00\x86\x00\xf7\x01\xf0\x00\x4b\x00\xb6\x00\xd5\x00\xa1\x00\xdb\x00\x62\x00\x63\x00\x64\x00\xdc\x00\x66\x00\x67\x00\x54\x03\x41\x03\x9f\x01\xd6\x00\xa0\x01\xa2\x00\xae\x00\xb1\x00\x6a\x00\xc6\x00\xa3\x00\xa1\x01\x5d\x00\x5e\x00\x96\x00\x84\x00\xd7\x00\x86\x00\xf9\x01\x19\x03\x5f\x00\xec\x02\xe8\x02\xa2\x01\xa4\x00\x1a\x03\x84\x00\xd7\x00\x86\x00\x42\x03\x84\x00\xd7\x00\x86\x00\xf7\x01\xa3\x01\x62\x00\x63\x00\x64\x00\xa4\x01\x66\x00\x67\x00\x84\x00\xd7\x00\x97\x00\xc3\x00\x98\x00\xc4\x00\xf0\x00\x4b\x00\xdd\x00\x1b\x03\x6c\x00\x99\x00\x5d\x00\x5e\x00\x86\x02\x1d\x03\xb7\x00\xfa\x01\x84\x00\x89\x02\x5f\x00\x28\x03\x6d\x00\x0c\x02\xc5\x00\x84\x00\x98\x01\x86\x00\xf0\x00\x4b\x00\xc1\x02\x80\x02\x6a\x00\xa1\x00\x9a\x00\x62\x00\x63\x00\x64\x00\x9b\x00\x66\x00\x67\x00\x84\x00\xd7\x00\xab\x00\xcb\x01\xac\x00\xa2\x00\xd8\x00\xb9\x00\x9c\x00\xd9\x00\xa3\x00\xad\x00\x5d\x00\x5e\x00\x1c\x03\xcc\x01\xda\x00\x5d\x00\x5e\x00\x67\x02\x5f\x00\x60\x02\x98\x02\xae\x00\xa4\x00\x5f\x00\xda\x01\xdb\x01\xba\x00\x99\x02\x84\x00\xd7\x00\x86\x00\x8c\x02\xaf\x00\x62\x00\x63\x00\xd0\x01\x9a\x02\xdb\x00\x62\x00\x63\x00\xd0\x01\x9f\x01\xa8\x02\xa0\x01\x0d\x02\x8c\x00\x6a\x00\x9c\x00\xc6\x00\x84\x01\xa1\x01\x5d\x00\x5e\x00\x97\x01\xa1\x00\xb4\x02\x84\x01\x68\x02\x84\x00\x5f\x00\x86\x00\xa8\xfe\xa2\x01\xbc\x00\xa8\xfe\xd6\x00\xec\x01\xa2\x00\x6e\x03\x32\x00\x33\x00\xd7\x01\xa3\x00\xa3\x01\x62\x00\x63\x00\xd0\x01\x90\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x25\x02\xbd\x00\x16\x02\xa4\x00\x87\x02\x6a\x00\xa8\xfe\xda\x02\xe1\x01\x84\x00\xdd\x00\x86\x00\x26\x02\xc0\x00\xb9\x00\x37\x03\xb8\x00\xb9\x00\x38\x03\x46\x02\x32\x00\x33\x00\x91\x02\x8d\x02\x19\x02\x48\x02\x49\x02\x4a\x02\x1b\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x1e\x02\xba\x00\xf0\x00\x4b\x00\xba\x00\x4b\x02\xa9\x00\x4f\x00\xaa\x00\x50\x00\x4c\x02\x4d\x02\x9c\x00\x53\x00\x4e\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xe0\x01\xe1\x01\x84\x00\x98\x01\x86\x00\x42\x02\x5f\x00\x20\x02\x70\x01\xbe\x00\x4f\x02\x06\x00\x71\x01\x07\x00\xe2\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x2f\x02\x39\x00\x84\x00\xd7\x00\x86\x00\x89\x01\x18\x00\x19\x00\xa8\x01\x3a\x00\x92\x00\x63\x00\xe9\x01\xc1\x00\xe5\xff\x06\x00\xbb\x00\x07\x00\x86\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x84\x01\x39\x00\xe2\x01\x84\x01\x35\x02\xc6\x01\x18\x00\x19\x00\x43\x02\x3a\x00\x68\x00\xc3\x01\x6a\x00\x46\x02\x32\x00\x33\x00\x44\x02\x47\x02\x60\x02\x48\x02\x49\x02\x4a\x02\x3f\x01\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x92\x01\x1a\x02\x95\x00\x6a\x00\x83\x01\x4b\x02\x84\x01\x4f\x00\x40\x01\x50\x00\x4c\x02\x4d\x02\xd6\x00\x53\x00\x4e\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x0d\x01\x70\x03\x8c\x00\x6a\x00\x89\x01\x84\x01\x5f\x00\x86\x01\x84\x01\x99\x01\x4f\x02\xa8\x01\xc6\x01\x97\x01\x82\x01\xea\x02\x23\x02\xcf\x00\xeb\x02\x06\x02\x88\x01\xaa\x00\xc8\x01\x63\x00\xc9\x01\xd6\x00\x8a\x01\x0e\x01\x55\x00\x98\x01\x0f\x01\x07\x02\x10\x01\x84\x01\x11\x01\x5c\x00\x5d\x00\x5e\x00\x84\x01\x9a\x01\x84\x01\x84\x01\xc0\x00\xb9\x00\x5f\x00\x06\x00\x9b\x01\x07\x00\x12\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xba\x00\x39\x00\x84\x00\xd7\x00\x86\x00\x68\x01\x18\x00\x19\x00\xa7\x01\x3a\x00\x68\x00\xc3\x01\x6a\x00\x9c\x00\xa9\x01\xcf\x01\x62\x00\x63\x00\xd0\x01\x06\x00\xbc\x01\x07\x00\xc5\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0d\x01\x14\x01\x84\x00\x98\x01\x86\x00\xc7\x01\x18\x00\x19\x00\x84\x00\xd7\x00\x68\x00\x15\x01\x6a\x00\xf6\x01\x9c\x00\x7d\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x30\x03\xd4\x01\x75\x02\x31\x03\xf7\x01\x76\x02\x0e\x01\x55\x00\xc1\x00\x0f\x01\xd5\x01\x10\x01\x9c\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x0d\x01\x20\x03\x21\x03\x9f\x00\x04\x03\x22\x03\x5f\x00\x2b\x03\x2c\x03\xdd\x02\x12\x01\xae\x00\xde\x02\x2e\x03\xa4\x00\xae\x00\x2b\x02\xce\x00\xcf\x00\x2c\x02\xd1\x00\x9c\x00\xd1\x01\x62\x00\x63\x00\xd0\x01\xe7\x00\x0e\x01\x55\x00\xed\x00\x0f\x01\x69\x01\x10\x01\xfa\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x7e\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x5f\x00\x06\x00\x04\x01\x07\x00\x12\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0a\x01\x14\x01\x84\x00\xd7\x00\x2b\x01\x6b\x01\x18\x00\x19\x00\x87\x00\x05\x00\x68\x00\x15\x01\x6a\x00\x2d\x02\x6a\x00\x05\x00\x7f\x02\x80\x02\x6a\x00\x06\x00\x7d\x03\x07\x00\x2a\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0d\x01\x14\x01\x38\x02\x62\x00\x63\x00\xd0\x01\x18\x00\x19\x00\xae\x00\x7e\x03\x68\x00\x15\x01\x6a\x00\x2b\x02\xce\x00\xcf\x00\x2c\x02\xd1\x00\x2a\x00\xd1\x01\x62\x00\x63\x00\x64\x00\xb5\x02\xd2\x01\x67\x00\x7f\x03\x0e\x01\x55\x00\x75\x03\x0f\x01\x76\x03\x10\x01\x77\x03\x11\x01\x5c\x00\x5d\x00\x5e\x00\x38\x03\xa6\x00\xa7\x00\xbe\x01\x69\x03\x4f\x00\x5f\x00\x50\x00\xbf\x01\xc0\x01\x12\x01\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5a\x03\x20\x01\x21\x01\x22\x01\x23\x01\x2a\x00\x5f\x00\x65\x01\x13\x01\xaa\x00\xc2\x01\xf0\x00\x4b\x00\x2d\x02\x6a\x00\xf9\x02\x62\x00\x63\x00\xd0\x01\x66\x01\x3d\x03\x3e\x03\x06\x00\x86\x00\x07\x00\x6c\x03\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x06\x00\x14\x01\x07\x00\x58\x03\x00\x01\x09\x00\x18\x00\x19\x00\xfe\x02\xff\x02\x68\x00\x15\x01\x6a\x00\x97\x00\x86\x00\x98\x00\x00\x03\x01\x03\xee\x01\xfa\x01\x19\x03\x98\x00\x99\x00\x5d\x00\x5e\x00\x18\x00\x19\x00\x5d\x03\x99\x00\x5d\x00\x5e\x00\x5f\x00\x5e\x03\x68\x00\xc3\x01\x6a\x00\xbe\x01\x5f\x00\x4f\x00\x60\x03\x50\x00\xbf\x01\xc0\x01\x63\x03\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x17\x02\xfa\x01\x8f\x02\xa2\x01\xf0\x00\x4b\x00\x5f\x00\x26\x02\xa6\x00\xa7\x00\xc2\x01\x49\x03\x8c\x00\x6a\x00\xe5\x01\x62\x00\x63\x00\xd0\x01\xbe\x01\x64\x03\x4f\x00\x65\x03\x50\x00\xbf\x01\xc0\x01\x3d\x00\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x06\x00\x40\x03\x07\x00\x3f\x03\x02\x01\x09\x00\x5f\x00\x9c\x00\x43\x03\x9f\x01\xc2\x01\xa0\x01\x49\x03\x9c\x00\x86\x00\xac\x00\xf0\x00\x4b\x00\xa1\x01\x5d\x00\x5e\x00\x21\x02\xad\x00\x5d\x00\x5e\x00\x18\x00\x19\x00\x5f\x00\x1e\x01\x1f\x01\xa2\x01\x5f\x00\x9c\x00\x4f\x03\xae\x00\x86\x00\x68\x00\xc3\x01\x6a\x00\xbe\x01\x51\x03\x4f\x00\x53\x03\x50\x00\xbf\x01\xc0\x01\x86\x01\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x30\x02\x92\x01\xcf\x00\x93\x01\xd1\x00\x9d\x02\x5f\x00\x92\x00\x63\x00\x93\x00\xc2\x01\x94\x00\x67\x00\x24\x01\x25\x01\x68\x00\xc3\x01\x6a\x00\xbe\x01\xe3\x02\x4f\x00\x86\x00\x50\x00\xbf\x01\xc0\x01\xf0\x02\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x9c\x00\xae\x00\xfb\x02\xfc\x02\x6a\x00\xf1\x02\x5f\x00\x4a\x03\x8c\x00\x6a\x00\xc2\x01\xa0\x01\xd1\x01\x62\x00\x63\x00\xd0\x01\x4c\x03\xf4\x02\xa1\x01\x5d\x00\x5e\x00\x36\x02\xf5\x02\x95\x01\x6a\x00\xf0\x00\x4b\x00\x5f\x00\x26\x01\x27\x01\xa2\x01\xf9\x02\x62\x00\x63\x00\xd0\x01\xf6\x02\x68\x00\xc3\x01\x6a\x00\xbe\x01\xf7\x02\x4f\x00\x0a\x03\x50\x00\xbf\x01\xc0\x01\xee\x01\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xbd\x01\x06\x02\x18\x03\xaa\x00\xe4\x00\xe5\x00\x5f\x00\x0d\x03\xd3\x01\x6a\x00\xc2\x01\xe6\x00\xe7\x00\x07\x02\x0e\x03\x68\x00\xc3\x01\x6a\x00\xbe\x01\x0f\x03\x4f\x00\x10\x03\x50\x00\xbf\x01\xc0\x01\x17\x03\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x9c\x00\x6f\x03\x32\x00\x33\x00\xf0\x00\x4b\x00\x5f\x00\xa1\x00\x18\x01\x19\x01\xc2\x01\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa1\x00\x97\x00\x3d\x00\x98\x00\xa2\x00\x4b\x03\x8c\x00\x6a\x00\x2b\x03\xa3\x00\x99\x00\x5d\x00\x5e\x00\xa2\x00\x45\x03\x32\x00\x33\x00\x1f\x03\xa3\x00\x5f\x00\x68\x00\xc3\x01\x6a\x00\xa4\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x1e\x01\x1f\x01\x86\x00\xa4\x00\x23\x03\xc8\x01\x63\x00\xc9\x01\x26\x03\x84\x00\xd7\x00\x86\x00\x10\x03\x32\x00\x33\x00\x24\x01\x25\x01\x77\x02\xa6\x00\xa7\x00\x78\x02\x79\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xe8\x01\x27\x03\x68\x00\xc3\x01\x6a\x00\xf1\x02\x8c\x00\x6a\x00\x26\x01\x27\x01\x8f\x00\x62\x00\x63\x00\xd0\x01\x06\x00\x7c\x02\x07\x00\x7d\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x9c\x00\x39\x00\xf2\x02\x8c\x00\x6a\x00\x63\x02\x18\x00\x19\x00\x3e\xfe\x3a\x00\x06\x00\xbc\x01\x07\x00\x8c\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x92\x02\x39\x00\x68\x00\x91\x00\x6a\x00\x86\x01\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\x2a\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x9c\x02\x39\x00\x95\x02\x32\x00\x33\x00\xa1\x00\x18\x00\x19\x00\x9d\x02\x3a\x00\xa5\x02\xa7\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xee\x01\xa2\x00\xca\x00\xb3\x02\xa2\x01\xb4\x02\xa3\x00\xbc\x02\xbd\x02\x9e\x02\xce\x00\xcf\x00\x96\x02\x32\x00\x33\x00\xe5\x01\x62\x00\x63\x00\xd0\x01\xbf\x02\xa4\x00\xc0\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x2a\x02\xce\x00\xcf\x00\x05\x03\xa6\x00\xa7\x00\xcf\x01\x62\x00\x63\x00\xd0\x01\x86\x00\xd1\x02\x97\x02\x32\x00\x33\x00\x66\x01\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x86\x01\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xcb\x00\xd6\x02\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd7\x02\xd2\x00\x62\x00\x63\x00\x64\x00\xd3\x00\x66\x00\x67\x00\x06\x00\x9c\x00\x07\x00\xda\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x9c\x00\x39\x00\x26\x02\xa6\x00\xa7\x00\xdc\x02\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\xdf\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xdf\x01\x39\x00\x23\x03\xa6\x00\xa7\x00\xe0\x01\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\xe5\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xec\x01\x39\x00\x41\x02\x32\x00\x33\x00\xe4\x01\x18\x00\x19\x00\xee\x01\x3a\x00\xfb\x01\xfc\x01\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x86\x00\x12\x02\xe0\x00\x26\x02\xa6\x00\xa7\x00\xa2\x02\xa6\x00\xa7\x00\x2a\x02\xce\x00\xcf\x00\x52\x02\x32\x00\x33\x00\xcf\x01\x62\x00\x63\x00\xd0\x01\xa3\x02\xa6\x00\xa7\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x7d\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x26\x02\xa6\x00\xa7\x00\xb8\x02\x8c\x00\x6a\x00\x76\x01\x32\x00\x33\x00\xbd\x02\x8c\x00\x6a\x00\xc2\x02\x8c\x00\x6a\x00\xee\x01\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xe1\x00\x19\x02\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x3d\x00\xd2\x00\x62\x00\x63\x00\x64\x00\xe2\x00\x66\x00\x67\x00\x06\x00\x9c\x00\x07\x00\x20\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xee\x01\x39\x00\xc3\x02\x8c\x00\x6a\x00\x28\x02\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\x29\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x78\x01\x39\x00\xc4\x02\x8c\x00\x6a\x00\xee\x01\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\x34\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x86\x00\x39\x00\xf1\x00\x32\x00\x33\x00\xee\x01\x18\x00\x19\x00\x3a\x02\x3a\x00\x3b\x02\x3c\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x40\x02\x92\x01\xcf\x00\x93\x01\xd1\x00\x9d\x02\x3d\x02\x92\x00\x63\x00\xe9\x01\x3e\x02\x2a\x00\x31\x00\x32\x00\x33\x00\xcf\x01\x62\x00\x63\x00\xd0\x01\xc8\x02\x8c\x00\x6a\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x7d\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\xc9\x02\x8c\x00\x6a\x00\xbc\x01\x54\x02\x06\x00\x46\x02\x07\x00\x57\x02\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x55\x02\xea\x00\x56\x02\x79\x01\x95\x01\x6a\x00\x18\x00\x19\x00\xcd\x02\x8c\x00\x6a\x00\x58\x02\x59\x02\x06\x00\x9c\x00\x07\x00\x86\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x64\x02\x39\x00\xd8\x02\xa6\x00\xa7\x00\x66\x02\x18\x00\x19\x00\x06\x00\x3a\x00\x07\x00\x1b\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x1a\x01\x39\x00\x85\x02\x4a\x02\x1c\x01\x1d\x01\x18\x00\x19\x00\x69\x02\x3a\x00\x06\x02\x6b\x01\xaa\x00\x5d\x01\x5e\x01\x4b\x02\x68\x01\x4f\x00\x86\x00\x50\x00\x4c\x02\x4d\x02\x07\x02\x53\x00\x4e\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xa5\x00\xa6\x00\xa7\x00\x74\x01\xd8\x00\xb9\x00\x5f\x00\xd9\x00\x78\x01\x7c\x01\x4f\x02\xe6\x01\xa6\x00\xa7\x00\xda\x00\x5d\x00\x5e\x00\x73\x01\xe7\x01\xa6\x00\xa7\x00\x7e\x01\x86\x00\x5f\x00\x3d\x00\x88\x01\xba\x00\x3d\x00\x3d\xfe\x06\x00\x6c\x00\x07\x00\x86\x01\xf4\x00\x09\x00\x0a\x00\x49\x01\xf7\x01\x62\x00\x63\x00\xd0\x01\x3d\xfe\x6d\x00\xe5\xff\x86\x01\x06\x00\x3d\xfe\x07\x00\x3d\x00\xf4\x00\x09\x00\x03\x01\xa5\x02\x9e\x01\x18\x00\x19\x00\x8e\x01\xce\x00\xcf\x00\x3d\x00\x3d\xfe\xaa\x00\x8f\x00\x62\x00\x63\x00\xd0\x01\x84\x00\xd7\x00\x86\x00\xc5\x01\x18\x00\x19\x00\x3f\x01\xcd\x01\x68\x00\xc3\x01\x6a\x00\x6e\x00\x6f\x00\x3d\x00\x70\x00\xcf\x01\x71\x00\x2a\x00\x86\x00\x72\x00\xda\x01\xff\xff\x73\x00\x8a\x00\x74\x00\x75\x00\x76\x00\xdd\x00\xa5\x00\xa6\x00\xa7\x00\x77\x00\x78\x00\x8b\x00\x79\x00\x88\x02\x86\x00\x7a\x00\x7b\x00\x8e\x00\x7c\x00\x7d\x00\x86\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\xe9\x00\x68\x00\x90\x01\x6a\x00\x3d\x00\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x1b\x00\x0e\x02\x8c\x00\x6a\x00\x3f\xfe\xfb\xff\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xea\x00\xed\x00\x23\x00\x26\x02\xa6\x00\xa7\x00\x06\x00\xf3\x00\x07\x00\xf1\x00\xf4\x00\x09\x00\x61\x02\x24\x00\xf4\x00\xcb\x00\xf8\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xfc\x00\xd2\x00\x62\x00\x63\x00\xd0\x01\xfd\x00\x3c\x00\x3d\x00\x18\x00\x19\x00\x25\x00\x3e\x00\x6f\x00\x3f\x00\x70\x00\x40\x00\x71\x00\x3d\xfe\x41\x00\x72\x00\x42\x00\x43\x00\x73\x00\xff\xff\x74\x00\x75\x00\x76\x00\x44\x00\x45\x00\x46\x00\x3d\xfe\x77\x00\x78\x00\xfe\x00\x79\x00\x3d\xfe\x47\x00\x7a\x00\x7b\x00\x26\x00\x7c\x00\x7d\x00\x48\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x49\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x4a\x00\x51\x02\x86\x00\x52\x02\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x34\x02\x8c\x00\x6a\x00\xff\x00\x00\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x06\x01\x6f\x00\x23\x00\xff\xff\x17\x01\x06\x00\xa1\x00\x07\x00\x1a\x01\xf4\x00\x09\x00\x0a\x00\x4a\x01\x24\x00\x75\x00\x6f\x01\x8c\x00\x6a\x00\x1b\x01\xa2\x00\x80\x01\x8c\x00\x6a\x00\x79\x00\xa3\x00\x81\x01\x8c\x00\x6a\x00\x1c\x01\x7c\x00\x18\x00\x19\x00\x7e\x00\x25\x00\x80\x00\xd7\xff\x1d\x01\xd7\xff\xa4\x00\xd7\xff\xd7\xff\x00\x00\xd7\xff\x00\x00\x00\x00\xd7\xff\x86\x00\xd7\xff\xd7\xff\xd7\xff\x8b\x01\xa6\x00\xa7\x00\xd7\xff\xd7\xff\xd7\xff\x00\x00\xd7\xff\xd7\xff\x00\x00\xd7\xff\xd7\xff\x26\x00\xd7\xff\xd7\xff\x00\x00\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xd7\xff\xd7\xff\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\xa5\x00\xa6\x00\xa7\x00\x00\x00\xae\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\xd1\x01\x62\x00\x63\x00\x64\x00\x00\x00\xd2\x01\x67\x00\x3e\x02\x00\x00\x4f\x00\x24\x00\x50\x00\xbf\x01\xc0\x01\x00\x00\x53\x00\xc1\x01\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x8b\x00\x8c\x00\x6a\x00\x25\x00\x00\x00\x6f\x00\x5f\x00\x70\x00\x00\x00\x71\x00\xc2\x01\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\xa5\x00\xa6\x00\xa7\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\xd3\x01\x6a\x00\x7a\x00\x7b\x00\x26\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x85\x00\x86\x00\x52\x02\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\xb4\x00\x8c\x00\x6a\x00\x00\x00\x59\x02\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x68\x00\xc3\x01\x6a\x00\x8d\x01\x47\x03\xaa\x00\x8d\x01\x09\x03\xaa\x00\x24\x00\x5a\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x8d\x01\xa2\x02\xaa\x00\x8d\x01\xa8\x02\xaa\x00\x00\x00\x00\x00\x92\x01\xcf\x00\x3d\x00\x00\x00\x00\x00\x25\x00\x92\x00\x63\x00\xe9\x01\x70\x00\x01\x02\x71\x00\xaa\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x02\x02\x8d\x01\xce\x01\xaa\x00\x77\x00\x78\x00\x68\x00\x5b\x02\x6a\x00\x00\x00\x7a\x00\x7b\x00\x26\x00\x8a\x02\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x85\x00\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x95\x01\x6a\x00\x00\x00\x3c\xfe\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x38\x01\x3c\xfe\x39\x01\x00\x00\x3a\x01\x3b\x01\x3c\xfe\x00\x00\x3c\x01\x3d\x01\x24\x00\x00\x00\xe1\x00\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x3c\xfe\xd2\x00\x62\x00\x63\x00\xd0\x01\x00\x00\x84\x00\x00\x00\x86\x00\x00\x00\x25\x00\x8d\x01\xeb\x01\xaa\x00\x70\x00\x65\x01\x71\x00\xaa\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x66\x01\x28\x01\x29\x01\x2a\x01\x77\x00\x78\x00\xa9\x00\xce\x01\xaa\x00\x00\x00\x7a\x00\x7b\x00\x26\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x85\x00\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x28\x01\x29\x01\x2a\x01\x3c\xfe\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x3c\xfe\xae\x00\x00\x00\x00\x00\x00\x00\x3c\xfe\x2b\x02\xce\x00\xcf\x00\x24\x00\x00\x00\x00\x00\xd1\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x06\x00\x3c\xfe\x07\x00\x00\x00\xf4\x00\x09\x00\x46\x01\x3c\x00\x3d\x00\x86\x00\x00\x00\x25\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x42\x00\x43\x00\x8e\x00\x00\x00\x18\x00\x19\x00\x00\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x8f\x00\x62\x00\x63\x00\x64\x00\x47\x00\x90\x00\x67\x00\x26\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x01\x02\x00\x00\xaa\x00\x06\x03\x6a\x00\x49\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x4a\x00\x4b\x00\x02\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xbb\x02\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x91\x00\x6a\x00\x00\x00\x24\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x25\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\xa1\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa2\x00\x65\x01\x00\x00\xaa\x00\x00\x00\xa3\x00\x84\x00\x9f\x00\x86\x00\x26\x00\x3c\xfe\x00\x00\x06\x00\x66\x01\x07\x00\x00\x00\xf4\x00\x09\x00\x47\x01\xa4\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x16\x02\x00\x00\x00\x00\x23\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x24\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x25\x00\xb3\x00\x00\x00\x81\x00\x82\x00\x83\x00\xa4\x00\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\xa2\x00\xaa\x00\x00\x00\x25\x02\x00\x00\xa3\x00\xa1\x02\x00\x00\x00\x00\x26\x00\x3d\xfe\x02\x02\x92\x00\x63\x00\x93\x00\x26\x02\x94\x00\x67\x00\xf7\x01\xa4\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xaf\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\xa1\x00\x06\x00\x00\x00\x07\x00\xa1\x00\x06\x01\x09\x00\xa1\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x95\x00\x6a\x00\x00\x00\xa2\x00\xa3\x00\x00\x00\xa2\x00\x00\x00\xa3\x00\x00\x00\x00\x00\xa3\x00\x18\x00\x19\x00\x25\x00\x06\x00\x00\x00\x07\x00\xa4\x00\x08\x01\x09\x00\x3d\xfe\xa4\x00\x00\x00\x84\x00\xa4\x00\x86\x00\x00\x00\x84\x00\xd7\x00\x86\x00\x84\x00\xd7\x00\x86\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x18\x00\x19\x00\x00\x00\x26\x00\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2f\x02\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x75\x02\x00\x00\xd6\x00\x76\x02\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x4b\x01\x1b\x00\x24\x00\x75\x02\x00\x00\x00\x00\x76\x02\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x18\x00\x19\x00\x77\x02\x66\x03\xa1\x00\x25\x00\x00\x00\x06\x00\x00\x00\x07\x00\x24\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x4d\x01\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x34\x03\x00\x00\x25\x00\x00\x00\x18\x00\x19\x00\x26\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xd7\x00\x86\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x4a\x00\x4b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x26\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x51\x01\x27\x00\x28\x00\x29\x00\x2a\x00\x4a\x00\x4b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x11\x02\x00\x00\x00\x00\x23\x00\x00\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x22\x02\x00\x00\x92\x00\x63\x00\x93\x00\x24\x00\x94\x00\x67\x00\x06\x00\x1b\x00\x07\x00\x75\x02\x0b\x01\x09\x00\x76\x02\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xfe\x18\x00\x19\x00\x24\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x48\x01\x00\x00\x3c\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xfe\x00\x00\x77\x02\x00\x00\x26\x00\x25\x00\x95\x01\x6a\x00\x00\x00\x65\x01\x00\x00\xaa\x00\x18\x00\x19\x00\x3c\xfe\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x66\x01\x86\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x52\x01\x27\x00\x28\x00\x29\x00\x2a\x00\x4a\x00\x4b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x18\x00\x19\x00\xa1\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x06\x00\x00\x00\x07\x00\x24\x00\xf4\x00\x09\x00\x03\x01\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x86\x00\x00\x00\x23\x00\x25\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x06\x00\x24\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x4e\x01\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x77\x02\x00\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x00\x00\xa2\x01\x00\x00\x00\x00\x00\x00\x26\x00\x9e\x02\xce\x00\xcf\x00\x9f\x02\xd1\x00\x00\x00\xe5\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xcb\x01\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\xe6\x02\x00\x00\x00\x00\xcc\x01\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x4c\x01\x1b\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x9c\x00\x00\x00\x23\x00\x18\x00\x19\x00\x00\x00\x00\x00\xa1\x00\x25\x00\x00\x00\x06\x00\x00\x00\x07\x00\x24\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x4f\x01\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x00\x00\x00\x00\x25\x00\x00\x00\x18\x00\x19\x00\x26\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x86\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x26\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x50\x01\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x22\x02\x00\x00\x92\x00\x63\x00\xe9\x01\x00\x00\x24\x00\x1b\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x63\x02\x00\x00\x06\x00\x25\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x2a\x01\x00\x00\x24\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x18\x00\x19\x00\x00\x00\x25\x00\x00\x00\x26\x00\x95\x01\x6a\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x59\x01\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x25\x00\x00\x00\x26\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x0c\x01\x09\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x00\x00\x00\x00\x26\x00\x18\x00\x19\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x29\x02\x00\x00\x92\x00\x63\x00\xe9\x01\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x95\x01\x6a\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x25\x00\xd1\x02\x00\x00\x00\x00\x26\x00\x8e\x01\xce\x00\xcf\x00\x8f\x01\xd1\x00\x24\x00\x8f\x00\x62\x00\x63\x00\xd0\x01\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x90\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x07\x03\x00\x00\x92\x00\x63\x00\xe9\x01\x0a\x01\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x95\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x66\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x6d\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x24\x00\x6e\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x3d\xfe\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x86\x00\x00\x00\x25\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x06\x02\x00\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x26\x00\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x2d\x01\x2e\x01\x2f\x01\x30\x01\x31\x01\x32\x01\x33\x01\x34\x01\x35\x01\x36\x01\x37\x01\x00\x00\x01\x02\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\x3d\xfe\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x02\x02\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x77\x00\x78\x00\x00\x00\x79\x00\x3d\xfe\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x01\x02\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\x3d\xfe\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x02\x02\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x77\x00\x78\x00\x00\x00\x79\x00\x3d\xfe\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x01\x02\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x02\x02\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xb3\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xb4\x00\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xdf\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xe0\x00\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xa6\x01\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xa7\x01\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xb3\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xb4\x00\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xdf\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xe0\x00\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xa6\x01\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xa7\x01\x86\x00\xcb\x01\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\xcc\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xb3\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xb4\x00\x86\x00\x65\x01\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x66\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xdf\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xe0\x00\x86\x00\x6c\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x3d\xfe\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x6d\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x77\x00\x78\x00\x00\x00\x79\x00\x3d\xfe\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x00\x86\x00\x6c\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x6d\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xa6\x01\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xa7\x01\x86\x00\x6c\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x6d\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xb3\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xb4\x00\x86\x00\x06\x02\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x07\x02\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xdf\x00\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\xe0\x00\x86\x00\x65\x01\x6f\x00\xaa\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x66\x01\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x9f\x00\x86\x00\x00\x00\x6f\x00\x00\x00\x70\x00\xcc\x01\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x6c\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x9f\x00\x86\x00\x72\x00\x00\x00\x00\x00\x73\x00\x6d\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x84\x00\x9f\x00\x86\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x6d\x00\x72\x00\x00\x00\xcb\x01\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\xcc\x01\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x01\x02\xfb\x02\xaa\x00\x00\x00\x00\x00\x00\x00\x84\x00\x9f\x00\x86\x00\x00\x00\xa1\x00\x00\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\xa2\x00\x71\x00\x00\x00\x00\x00\x72\x00\xa3\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x84\x00\x7d\x00\x86\x00\x00\x00\x9e\x00\x3d\xfe\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x9f\x00\x86\x00\x3d\xfe\x00\x00\x00\x00\xb0\x01\xb1\x01\x3d\xfe\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x84\x00\x00\x00\x86\x00\xb5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x92\x01\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x63\x00\xe9\x01\x00\x00\x00\x00\x00\x00\xb6\x01\xb7\x01\xb8\x01\x00\x00\x00\x00\x00\x00\x5c\x02\xa6\x00\xa7\x00\x5d\x02\x5e\x02\x00\x00\x00\x00\x00\x00\xb0\x01\xb1\x01\x00\x00\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x29\x02\x5f\x00\x92\x00\x63\x00\x93\x00\xb5\x01\x94\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\xc7\x02\x6a\x00\x92\x00\x63\x00\xe9\x01\x00\x00\x00\x00\x00\x00\xb6\x01\xb7\x01\xb8\x01\x00\x00\x00\x00\x00\x00\x5c\x02\xa6\x00\xa7\x00\x5d\x02\x5e\x02\xb0\x01\xb1\x01\x00\x00\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x95\x01\x6a\x00\xb5\x01\x92\x01\xcf\x00\x93\x01\xd1\x00\x94\x01\x00\x00\x92\x00\x63\x00\xe9\x01\x00\x00\x68\x00\xcc\x02\x6a\x00\x00\x00\x00\x00\x00\x00\xb6\x01\xb7\x01\xb8\x01\x00\x00\x00\x00\x00\x00\x5c\x02\xa6\x00\xa7\x00\x5d\x02\x5e\x02\xb0\x01\xb1\x01\x00\x00\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x92\x01\xcf\x00\x93\x01\xd1\x00\x94\x01\x5f\x00\x92\x00\x63\x00\x93\x00\xb5\x01\x94\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x01\x6a\x00\x00\x00\x68\x00\x5f\x02\x6a\x00\x00\x00\x00\x00\x00\x00\xb6\x01\xb7\x01\xb8\x01\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x01\xb1\x01\x00\x00\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\xb5\x01\x95\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\xba\x01\x6a\x00\xb6\x01\xb7\x01\xb8\x01\x00\x00\x00\x00\x00\x00\xb0\x01\xb1\x01\x00\x00\x53\x00\xb2\x01\x55\x00\x56\x00\x57\x00\xb3\x01\xb4\x01\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\xd8\x00\xb9\x00\x00\x00\xd9\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\xb5\x01\xda\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\xab\x00\xba\x00\xac\x00\x00\x00\x68\x00\xba\x01\x6a\x00\xce\x02\x00\x00\xad\x00\x5d\x00\x5e\x00\x07\x02\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x08\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x00\x00\xfc\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x01\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x00\x00\x68\x00\xba\x01\x6a\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xab\x00\x00\x00\xac\x00\x00\x00\x00\x00\x99\x00\x5d\x00\x5e\x00\xdd\x00\xad\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\xae\x00\x00\x00\x23\x02\xcf\x00\x00\x00\x00\x00\xfe\x01\xff\x01\xc8\x01\x63\x00\xc9\x01\xf2\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\xa6\x00\xa7\x00\x78\x02\x79\x02\x97\x00\x00\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x9f\x01\x00\x00\xa0\x01\x00\x00\x00\x00\x00\x00\x97\x00\x00\x00\x98\x00\xa1\x01\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x99\x00\x5d\x00\x5e\x00\x5f\x00\x9c\x00\x00\x00\xa2\x01\xf3\x01\x6a\x00\x5f\x00\x00\x00\x77\x02\xa6\x00\xa7\x00\x78\x02\x79\x02\x00\x00\xd4\x02\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\xf1\x01\x62\x00\x63\x00\xd0\x01\x0e\x01\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x55\x00\x5f\x00\x0f\x01\x00\x00\x10\x01\x12\x01\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x12\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x02\x00\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x06\x00\x81\x02\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xb7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x0e\x01\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x12\x01\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x55\x01\x0e\x01\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\xef\x01\x11\x01\x5c\x00\x5d\x00\x5e\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x06\x00\x12\x01\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xf0\x01\x00\x00\x1c\x02\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x1d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x0e\x01\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x12\x01\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x54\x01\x00\x00\x0e\x01\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\x31\x02\x11\x01\x5c\x00\x5d\x00\x5e\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x06\x00\x12\x01\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x32\x02\x00\x00\xd7\x01\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xd8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\xa9\x02\x55\x00\x00\x00\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\xf7\x02\xab\x02\xac\x02\xa9\x02\x55\x00\x5f\x00\x0f\x01\x00\x00\x10\x01\xad\x02\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\xaa\x02\xab\x02\xac\x02\x0e\x01\x55\x00\x5f\x00\x0f\x01\x00\x00\x10\x01\xad\x02\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x0e\x01\x55\x00\x12\x01\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x12\x01\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\xae\x02\x6a\x00\x00\x00\x0e\x01\x55\x00\x6d\x01\x0f\x01\x00\x00\x10\x01\x00\x00\x11\x01\x5c\x00\x5d\x00\x5e\x00\x68\x00\xae\x02\x6a\x00\x00\x00\xac\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x12\x01\xad\x00\x5d\x00\x5e\x00\xae\x00\x68\x00\x15\x01\x6a\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\xae\x00\x00\x00\xd1\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x6e\x01\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x7e\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x00\x00\x00\x00\x5e\x01\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x98\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x00\x00\x99\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x02\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x15\x01\x6a\x00\x00\x00\x00\x00\x7f\x02\xec\x02\x6a\x00\xf9\x02\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x62\x01\x63\x01\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xab\x01\xa2\x01\x00\x00\x00\x00\x00\x00\x12\x02\x00\x00\x18\x00\x19\x00\x00\x00\x8d\x01\x13\x02\x14\x02\x6a\x00\x8e\x01\xce\x00\xcf\x00\x8f\x01\xd1\x00\x00\x00\x8f\x00\x62\x00\x63\x00\x64\x00\x00\x00\x90\x00\x67\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xab\x01\xaa\x01\x00\x00\x00\x00\xae\x00\xb9\x02\x00\x00\x18\x00\x19\x00\x2b\x02\xce\x00\xcf\x00\x00\x00\x9c\x00\x00\x00\xd1\x01\x62\x00\x63\x00\xd0\x01\x68\x00\x90\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\xac\x01\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x68\x00\xad\x01\x6a\x00\xc5\x02\x7f\x02\xed\x02\x6a\x00\x8e\x01\xce\x00\xcf\x00\xca\x02\x9f\x00\x00\x00\x8f\x00\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x8f\x00\x62\x00\x63\x00\xd0\x01\x00\x00\x5a\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x5a\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xc0\x02\x00\x00\x68\x00\xc6\x02\x6a\x00\x00\x00\x00\x00\x18\x00\x19\x00\x68\x00\xcb\x02\x6a\x00\xb0\x02\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\xb0\x02\x00\x00\xb1\x02\x00\x00\x00\x00\x85\x00\x86\x00\xb2\x02\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\xc0\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x85\x00\x86\x00\xb2\x02\xc3\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x6f\x00\x00\x00\xa2\x00\x00\x00\x00\x00\xa1\x00\x79\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x75\x00\x00\x00\x7e\x00\x00\x00\x80\x00\xa2\x00\x00\x00\x00\x00\xa4\x00\x79\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x86\x00\x00\x00\x7e\x00\x00\x00\x80\x00\x3d\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x86\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x02\x85\x00\x86\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x00\x86\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x3d\xfe\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x77\x00\x78\x00\x00\x00\x79\x00\x3d\xfe\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x01\x85\x00\x86\x00\x3b\xfe\x00\x00\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\x00\x00\x00\x00\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x3b\xfe\x00\x00\x00\x00\x00\x00\x3b\xfe\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x3b\xfe\x3b\xfe\x3b\xfe\x3b\xfe\x3b\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\xfe\x3b\xfe\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\xa6\x01\x80\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x01\x86\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x3d\xfe\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x3d\xfe\x77\x00\x78\x00\x00\x00\x79\x00\x3d\xfe\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x3d\xfe\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x85\x00\x86\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x9e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x9f\x00\x86\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x79\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x00\x86\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x79\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x80\x00\x00\x00\x82\x00\x83\x00\xa4\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x00\x00\x86\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x00\x86\x00\xb2\x02\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x00\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\xa7\x01\x86\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\xb3\x00\x00\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x3b\xfe\xb4\x00\x86\x00\x3b\xfe\x00\x00\x3b\xfe\x00\x00\x3b\xfe\x00\x00\x00\x00\x00\x00\x3b\xfe\x3b\xfe\x3b\xfe\x00\x00\x00\x00\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x00\x00\x00\x00\x3b\xfe\x00\x00\x00\x00\x3b\xfe\x00\x00\x3b\xfe\x3b\xfe\x3b\xfe\x3b\xfe\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x3b\xfe\x3b\xfe\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x81\x00\x82\x00\x83\x00\xa4\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\xa7\x01\x86\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x85\x00\x86\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x00\x00\x72\x00\x9f\x00\x86\x00\x73\x00\x00\x00\x74\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x81\x00\x82\x00\x83\x00\x00\x00\x70\x00\x00\x00\x71\x00\xa1\x00\x00\x00\x72\x00\x85\x00\x86\x00\x73\x00\x00\x00\x00\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x77\x00\x78\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x02\x86\x00\x27\x03\x6e\x02\x6f\x02\x70\x02\x71\x02\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x6c\x02\x73\x02\x6d\x02\x6e\x02\x6f\x02\x70\x02\x71\x02\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x31\x03\x73\x02\x00\x00\x32\x03\x6f\x02\x70\x02\x71\x02\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x73\x02\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x02\x18\x00\x19\x00\x00\x00\x67\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\x2e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x02\x00\x00\x18\x00\x19\x00\x00\x00\x06\x00\x00\x00\x07\x00\x9c\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xea\x00\x00\x00\x43\x03\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xea\x00\x00\x00\x44\x03\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xea\x00\x00\x00\x93\x02\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xea\x00\x00\x00\x94\x02\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\xea\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x77\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x78\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x3a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x92\x02\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x42\x01\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x43\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x57\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x5a\x01\x00\x00\x00\x00\x5b\x01\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x7c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x7e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x7f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x02\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xee\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x03\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x69\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x6b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x02\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x6c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x64\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x59\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x56\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x06\x00\x00\x00\x07\x00\x00\x00\xf4\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x53\x01\x02\x02\xce\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x03\x02\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x04\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x09\x02\xce\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x0a\x02\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x03\x0b\x02\x5f\x01\xa6\x00\xa7\x00\x60\x01\x61\x01\x02\x03\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x01\x03\xf4\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x02\x03\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x00\x00\xf4\x01\x62\x00\x63\x00\xd0\x01\xcb\x00\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x00\x00\xf4\x01\x62\x00\x63\x00\xd0\x01\xe1\x00\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x00\x00\xf4\x01\x62\x00\x63\x00\xd0\x01\x37\x02\x00\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\x00\x00\xf4\x01\x62\x00\x63\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = array (4, 463) [
-    (4 , happyReduce_4),
-    (5 , happyReduce_5),
-    (6 , happyReduce_6),
-    (7 , happyReduce_7),
-    (8 , happyReduce_8),
-    (9 , happyReduce_9),
-    (10 , happyReduce_10),
-    (11 , happyReduce_11),
-    (12 , happyReduce_12),
-    (13 , happyReduce_13),
-    (14 , happyReduce_14),
-    (15 , happyReduce_15),
-    (16 , happyReduce_16),
-    (17 , happyReduce_17),
-    (18 , happyReduce_18),
-    (19 , happyReduce_19),
-    (20 , happyReduce_20),
-    (21 , happyReduce_21),
-    (22 , happyReduce_22),
-    (23 , happyReduce_23),
-    (24 , happyReduce_24),
-    (25 , happyReduce_25),
-    (26 , happyReduce_26),
-    (27 , happyReduce_27),
-    (28 , happyReduce_28),
-    (29 , happyReduce_29),
-    (30 , happyReduce_30),
-    (31 , happyReduce_31),
-    (32 , happyReduce_32),
-    (33 , happyReduce_33),
-    (34 , happyReduce_34),
-    (35 , happyReduce_35),
-    (36 , happyReduce_36),
-    (37 , happyReduce_37),
-    (38 , happyReduce_38),
-    (39 , happyReduce_39),
-    (40 , happyReduce_40),
-    (41 , happyReduce_41),
-    (42 , happyReduce_42),
-    (43 , happyReduce_43),
-    (44 , happyReduce_44),
-    (45 , happyReduce_45),
-    (46 , happyReduce_46),
-    (47 , happyReduce_47),
-    (48 , happyReduce_48),
-    (49 , happyReduce_49),
-    (50 , happyReduce_50),
-    (51 , happyReduce_51),
-    (52 , happyReduce_52),
-    (53 , happyReduce_53),
-    (54 , happyReduce_54),
-    (55 , happyReduce_55),
-    (56 , happyReduce_56),
-    (57 , happyReduce_57),
-    (58 , happyReduce_58),
-    (59 , happyReduce_59),
-    (60 , happyReduce_60),
-    (61 , happyReduce_61),
-    (62 , happyReduce_62),
-    (63 , happyReduce_63),
-    (64 , happyReduce_64),
-    (65 , happyReduce_65),
-    (66 , happyReduce_66),
-    (67 , happyReduce_67),
-    (68 , happyReduce_68),
-    (69 , happyReduce_69),
-    (70 , happyReduce_70),
-    (71 , happyReduce_71),
-    (72 , happyReduce_72),
-    (73 , happyReduce_73),
-    (74 , happyReduce_74),
-    (75 , happyReduce_75),
-    (76 , happyReduce_76),
-    (77 , happyReduce_77),
-    (78 , happyReduce_78),
-    (79 , happyReduce_79),
-    (80 , happyReduce_80),
-    (81 , happyReduce_81),
-    (82 , happyReduce_82),
-    (83 , happyReduce_83),
-    (84 , happyReduce_84),
-    (85 , happyReduce_85),
-    (86 , happyReduce_86),
-    (87 , happyReduce_87),
-    (88 , happyReduce_88),
-    (89 , happyReduce_89),
-    (90 , happyReduce_90),
-    (91 , happyReduce_91),
-    (92 , happyReduce_92),
-    (93 , happyReduce_93),
-    (94 , happyReduce_94),
-    (95 , happyReduce_95),
-    (96 , happyReduce_96),
-    (97 , happyReduce_97),
-    (98 , happyReduce_98),
-    (99 , happyReduce_99),
-    (100 , happyReduce_100),
-    (101 , happyReduce_101),
-    (102 , happyReduce_102),
-    (103 , happyReduce_103),
-    (104 , happyReduce_104),
-    (105 , happyReduce_105),
-    (106 , happyReduce_106),
-    (107 , happyReduce_107),
-    (108 , happyReduce_108),
-    (109 , happyReduce_109),
-    (110 , happyReduce_110),
-    (111 , happyReduce_111),
-    (112 , happyReduce_112),
-    (113 , happyReduce_113),
-    (114 , happyReduce_114),
-    (115 , happyReduce_115),
-    (116 , happyReduce_116),
-    (117 , happyReduce_117),
-    (118 , happyReduce_118),
-    (119 , happyReduce_119),
-    (120 , happyReduce_120),
-    (121 , happyReduce_121),
-    (122 , happyReduce_122),
-    (123 , happyReduce_123),
-    (124 , happyReduce_124),
-    (125 , happyReduce_125),
-    (126 , happyReduce_126),
-    (127 , happyReduce_127),
-    (128 , happyReduce_128),
-    (129 , happyReduce_129),
-    (130 , happyReduce_130),
-    (131 , happyReduce_131),
-    (132 , happyReduce_132),
-    (133 , happyReduce_133),
-    (134 , happyReduce_134),
-    (135 , happyReduce_135),
-    (136 , happyReduce_136),
-    (137 , happyReduce_137),
-    (138 , happyReduce_138),
-    (139 , happyReduce_139),
-    (140 , happyReduce_140),
-    (141 , happyReduce_141),
-    (142 , happyReduce_142),
-    (143 , happyReduce_143),
-    (144 , happyReduce_144),
-    (145 , happyReduce_145),
-    (146 , happyReduce_146),
-    (147 , happyReduce_147),
-    (148 , happyReduce_148),
-    (149 , happyReduce_149),
-    (150 , happyReduce_150),
-    (151 , happyReduce_151),
-    (152 , happyReduce_152),
-    (153 , happyReduce_153),
-    (154 , happyReduce_154),
-    (155 , happyReduce_155),
-    (156 , happyReduce_156),
-    (157 , happyReduce_157),
-    (158 , happyReduce_158),
-    (159 , happyReduce_159),
-    (160 , happyReduce_160),
-    (161 , happyReduce_161),
-    (162 , happyReduce_162),
-    (163 , happyReduce_163),
-    (164 , happyReduce_164),
-    (165 , happyReduce_165),
-    (166 , happyReduce_166),
-    (167 , happyReduce_167),
-    (168 , happyReduce_168),
-    (169 , happyReduce_169),
-    (170 , happyReduce_170),
-    (171 , happyReduce_171),
-    (172 , happyReduce_172),
-    (173 , happyReduce_173),
-    (174 , happyReduce_174),
-    (175 , happyReduce_175),
-    (176 , happyReduce_176),
-    (177 , happyReduce_177),
-    (178 , happyReduce_178),
-    (179 , happyReduce_179),
-    (180 , happyReduce_180),
-    (181 , happyReduce_181),
-    (182 , happyReduce_182),
-    (183 , happyReduce_183),
-    (184 , happyReduce_184),
-    (185 , happyReduce_185),
-    (186 , happyReduce_186),
-    (187 , happyReduce_187),
-    (188 , happyReduce_188),
-    (189 , happyReduce_189),
-    (190 , happyReduce_190),
-    (191 , happyReduce_191),
-    (192 , happyReduce_192),
-    (193 , happyReduce_193),
-    (194 , happyReduce_194),
-    (195 , happyReduce_195),
-    (196 , happyReduce_196),
-    (197 , happyReduce_197),
-    (198 , happyReduce_198),
-    (199 , happyReduce_199),
-    (200 , happyReduce_200),
-    (201 , happyReduce_201),
-    (202 , happyReduce_202),
-    (203 , happyReduce_203),
-    (204 , happyReduce_204),
-    (205 , happyReduce_205),
-    (206 , happyReduce_206),
-    (207 , happyReduce_207),
-    (208 , happyReduce_208),
-    (209 , happyReduce_209),
-    (210 , happyReduce_210),
-    (211 , happyReduce_211),
-    (212 , happyReduce_212),
-    (213 , happyReduce_213),
-    (214 , happyReduce_214),
-    (215 , happyReduce_215),
-    (216 , happyReduce_216),
-    (217 , happyReduce_217),
-    (218 , happyReduce_218),
-    (219 , happyReduce_219),
-    (220 , happyReduce_220),
-    (221 , happyReduce_221),
-    (222 , happyReduce_222),
-    (223 , happyReduce_223),
-    (224 , happyReduce_224),
-    (225 , happyReduce_225),
-    (226 , happyReduce_226),
-    (227 , happyReduce_227),
-    (228 , happyReduce_228),
-    (229 , happyReduce_229),
-    (230 , happyReduce_230),
-    (231 , happyReduce_231),
-    (232 , happyReduce_232),
-    (233 , happyReduce_233),
-    (234 , happyReduce_234),
-    (235 , happyReduce_235),
-    (236 , happyReduce_236),
-    (237 , happyReduce_237),
-    (238 , happyReduce_238),
-    (239 , happyReduce_239),
-    (240 , happyReduce_240),
-    (241 , happyReduce_241),
-    (242 , happyReduce_242),
-    (243 , happyReduce_243),
-    (244 , happyReduce_244),
-    (245 , happyReduce_245),
-    (246 , happyReduce_246),
-    (247 , happyReduce_247),
-    (248 , happyReduce_248),
-    (249 , happyReduce_249),
-    (250 , happyReduce_250),
-    (251 , happyReduce_251),
-    (252 , happyReduce_252),
-    (253 , happyReduce_253),
-    (254 , happyReduce_254),
-    (255 , happyReduce_255),
-    (256 , happyReduce_256),
-    (257 , happyReduce_257),
-    (258 , happyReduce_258),
-    (259 , happyReduce_259),
-    (260 , happyReduce_260),
-    (261 , happyReduce_261),
-    (262 , happyReduce_262),
-    (263 , happyReduce_263),
-    (264 , happyReduce_264),
-    (265 , happyReduce_265),
-    (266 , happyReduce_266),
-    (267 , happyReduce_267),
-    (268 , happyReduce_268),
-    (269 , happyReduce_269),
-    (270 , happyReduce_270),
-    (271 , happyReduce_271),
-    (272 , happyReduce_272),
-    (273 , happyReduce_273),
-    (274 , happyReduce_274),
-    (275 , happyReduce_275),
-    (276 , happyReduce_276),
-    (277 , happyReduce_277),
-    (278 , happyReduce_278),
-    (279 , happyReduce_279),
-    (280 , happyReduce_280),
-    (281 , happyReduce_281),
-    (282 , happyReduce_282),
-    (283 , happyReduce_283),
-    (284 , happyReduce_284),
-    (285 , happyReduce_285),
-    (286 , happyReduce_286),
-    (287 , happyReduce_287),
-    (288 , happyReduce_288),
-    (289 , happyReduce_289),
-    (290 , happyReduce_290),
-    (291 , happyReduce_291),
-    (292 , happyReduce_292),
-    (293 , happyReduce_293),
-    (294 , happyReduce_294),
-    (295 , happyReduce_295),
-    (296 , happyReduce_296),
-    (297 , happyReduce_297),
-    (298 , happyReduce_298),
-    (299 , happyReduce_299),
-    (300 , happyReduce_300),
-    (301 , happyReduce_301),
-    (302 , happyReduce_302),
-    (303 , happyReduce_303),
-    (304 , happyReduce_304),
-    (305 , happyReduce_305),
-    (306 , happyReduce_306),
-    (307 , happyReduce_307),
-    (308 , happyReduce_308),
-    (309 , happyReduce_309),
-    (310 , happyReduce_310),
-    (311 , happyReduce_311),
-    (312 , happyReduce_312),
-    (313 , happyReduce_313),
-    (314 , happyReduce_314),
-    (315 , happyReduce_315),
-    (316 , happyReduce_316),
-    (317 , happyReduce_317),
-    (318 , happyReduce_318),
-    (319 , happyReduce_319),
-    (320 , happyReduce_320),
-    (321 , happyReduce_321),
-    (322 , happyReduce_322),
-    (323 , happyReduce_323),
-    (324 , happyReduce_324),
-    (325 , happyReduce_325),
-    (326 , happyReduce_326),
-    (327 , happyReduce_327),
-    (328 , happyReduce_328),
-    (329 , happyReduce_329),
-    (330 , happyReduce_330),
-    (331 , happyReduce_331),
-    (332 , happyReduce_332),
-    (333 , happyReduce_333),
-    (334 , happyReduce_334),
-    (335 , happyReduce_335),
-    (336 , happyReduce_336),
-    (337 , happyReduce_337),
-    (338 , happyReduce_338),
-    (339 , happyReduce_339),
-    (340 , happyReduce_340),
-    (341 , happyReduce_341),
-    (342 , happyReduce_342),
-    (343 , happyReduce_343),
-    (344 , happyReduce_344),
-    (345 , happyReduce_345),
-    (346 , happyReduce_346),
-    (347 , happyReduce_347),
-    (348 , happyReduce_348),
-    (349 , happyReduce_349),
-    (350 , happyReduce_350),
-    (351 , happyReduce_351),
-    (352 , happyReduce_352),
-    (353 , happyReduce_353),
-    (354 , happyReduce_354),
-    (355 , happyReduce_355),
-    (356 , happyReduce_356),
-    (357 , happyReduce_357),
-    (358 , happyReduce_358),
-    (359 , happyReduce_359),
-    (360 , happyReduce_360),
-    (361 , happyReduce_361),
-    (362 , happyReduce_362),
-    (363 , happyReduce_363),
-    (364 , happyReduce_364),
-    (365 , happyReduce_365),
-    (366 , happyReduce_366),
-    (367 , happyReduce_367),
-    (368 , happyReduce_368),
-    (369 , happyReduce_369),
-    (370 , happyReduce_370),
-    (371 , happyReduce_371),
-    (372 , happyReduce_372),
-    (373 , happyReduce_373),
-    (374 , happyReduce_374),
-    (375 , happyReduce_375),
-    (376 , happyReduce_376),
-    (377 , happyReduce_377),
-    (378 , happyReduce_378),
-    (379 , happyReduce_379),
-    (380 , happyReduce_380),
-    (381 , happyReduce_381),
-    (382 , happyReduce_382),
-    (383 , happyReduce_383),
-    (384 , happyReduce_384),
-    (385 , happyReduce_385),
-    (386 , happyReduce_386),
-    (387 , happyReduce_387),
-    (388 , happyReduce_388),
-    (389 , happyReduce_389),
-    (390 , happyReduce_390),
-    (391 , happyReduce_391),
-    (392 , happyReduce_392),
-    (393 , happyReduce_393),
-    (394 , happyReduce_394),
-    (395 , happyReduce_395),
-    (396 , happyReduce_396),
-    (397 , happyReduce_397),
-    (398 , happyReduce_398),
-    (399 , happyReduce_399),
-    (400 , happyReduce_400),
-    (401 , happyReduce_401),
-    (402 , happyReduce_402),
-    (403 , happyReduce_403),
-    (404 , happyReduce_404),
-    (405 , happyReduce_405),
-    (406 , happyReduce_406),
-    (407 , happyReduce_407),
-    (408 , happyReduce_408),
-    (409 , happyReduce_409),
-    (410 , happyReduce_410),
-    (411 , happyReduce_411),
-    (412 , happyReduce_412),
-    (413 , happyReduce_413),
-    (414 , happyReduce_414),
-    (415 , happyReduce_415),
-    (416 , happyReduce_416),
-    (417 , happyReduce_417),
-    (418 , happyReduce_418),
-    (419 , happyReduce_419),
-    (420 , happyReduce_420),
-    (421 , happyReduce_421),
-    (422 , happyReduce_422),
-    (423 , happyReduce_423),
-    (424 , happyReduce_424),
-    (425 , happyReduce_425),
-    (426 , happyReduce_426),
-    (427 , happyReduce_427),
-    (428 , happyReduce_428),
-    (429 , happyReduce_429),
-    (430 , happyReduce_430),
-    (431 , happyReduce_431),
-    (432 , happyReduce_432),
-    (433 , happyReduce_433),
-    (434 , happyReduce_434),
-    (435 , happyReduce_435),
-    (436 , happyReduce_436),
-    (437 , happyReduce_437),
-    (438 , happyReduce_438),
-    (439 , happyReduce_439),
-    (440 , happyReduce_440),
-    (441 , happyReduce_441),
-    (442 , happyReduce_442),
-    (443 , happyReduce_443),
-    (444 , happyReduce_444),
-    (445 , happyReduce_445),
-    (446 , happyReduce_446),
-    (447 , happyReduce_447),
-    (448 , happyReduce_448),
-    (449 , happyReduce_449),
-    (450 , happyReduce_450),
-    (451 , happyReduce_451),
-    (452 , happyReduce_452),
-    (453 , happyReduce_453),
-    (454 , happyReduce_454),
-    (455 , happyReduce_455),
-    (456 , happyReduce_456),
-    (457 , happyReduce_457),
-    (458 , happyReduce_458),
-    (459 , happyReduce_459),
-    (460 , happyReduce_460),
-    (461 , happyReduce_461),
-    (462 , happyReduce_462),
-    (463 , happyReduce_463)
-    ]
-
-happy_n_terms = 102 :: Int
-happy_n_nonterms = 125 :: Int
-
-happyReduce_4 = happyMonadReduce 1# 0# happyReduction_4
-happyReduction_4 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut8 happy_x_1 of { happy_var_1 ->
-    ( let decls = reverse happy_var_1 in
-                       case decls of
-                           []     -> do{ n <- getNewName; p <- getCurrentPosition; return $ CTranslUnit decls (mkNodeInfo' p (p,0) n) }
-                           (d:ds) -> withNodeInfo d $ CTranslUnit decls)}
-    ) (\r -> happyReturn (happyIn7 r))
-
-happyReduce_5 = happySpecReduce_0  1# happyReduction_5
-happyReduction_5  =  happyIn8
-         (empty
-    )
-
-happyReduce_6 = happySpecReduce_2  1# happyReduction_6
-happyReduction_6 happy_x_2
-    happy_x_1
-     =  case happyOut8 happy_x_1 of { happy_var_1 ->
-    happyIn8
-         (happy_var_1
-    )}
-
-happyReduce_7 = happySpecReduce_2  1# happyReduction_7
-happyReduction_7 happy_x_2
-    happy_x_1
-     =  case happyOut8 happy_x_1 of { happy_var_1 ->
-    case happyOut9 happy_x_2 of { happy_var_2 ->
-    happyIn8
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_8 = happySpecReduce_1  2# happyReduction_8
-happyReduction_8 happy_x_1
-     =  case happyOut10 happy_x_1 of { happy_var_1 ->
-    happyIn9
-         (CFDefExt happy_var_1
-    )}
-
-happyReduce_9 = happySpecReduce_1  2# happyReduction_9
-happyReduction_9 happy_x_1
-     =  case happyOut32 happy_x_1 of { happy_var_1 ->
-    happyIn9
-         (CDeclExt happy_var_1
-    )}
-
-happyReduce_10 = happySpecReduce_2  2# happyReduction_10
-happyReduction_10 happy_x_2
-    happy_x_1
-     =  case happyOut9 happy_x_2 of { happy_var_2 ->
-    happyIn9
-         (happy_var_2
-    )}
-
-happyReduce_11 = happyMonadReduce 5# 2# happyReduction_11
-happyReduction_11 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut123 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CAsmExt happy_var_3)}}
-    ) (\r -> happyReturn (happyIn9 r))
-
-happyReduce_12 = happyMonadReduce 2# 3# happyReduction_12
-happyReduction_12 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut11 happy_x_1 of { happy_var_1 ->
-    case happyOut14 happy_x_2 of { happy_var_2 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef [] happy_var_1 [] happy_var_2))}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_13 = happyMonadReduce 3# 3# happyReduction_13
-happyReduction_13 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (liftCAttrs happy_var_1) happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_14 = happyMonadReduce 3# 3# happyReduction_14
-happyReduction_14 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_15 = happyMonadReduce 3# 3# happyReduction_15
-happyReduction_15 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_16 = happyMonadReduce 3# 3# happyReduction_16
-happyReduction_16 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (reverse happy_var_1) happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_17 = happyMonadReduce 3# 3# happyReduction_17
-happyReduction_17 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1) happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_18 = happyMonadReduce 4# 3# happyReduction_18
-happyReduction_18 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut11 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1 ++ liftCAttrs happy_var_2) happy_var_3 [] happy_var_4))}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_19 = happyMonadReduce 3# 3# happyReduction_19
-happyReduction_19 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut76 happy_x_1 of { happy_var_1 ->
-    case happyOut33 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CFunDef [] happy_var_1 (reverse happy_var_2) happy_var_3)}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_20 = happyMonadReduce 4# 3# happyReduction_20
-happyReduction_20 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut76 happy_x_2 of { happy_var_2 ->
-    case happyOut33 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ CFunDef (liftCAttrs happy_var_1) happy_var_2 (reverse happy_var_3) happy_var_4)}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_21 = happyMonadReduce 4# 3# happyReduction_21
-happyReduction_21 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut76 happy_x_2 of { happy_var_2 ->
-    case happyOut33 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 (reverse happy_var_3) happy_var_4)}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_22 = happyMonadReduce 4# 3# happyReduction_22
-happyReduction_22 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut76 happy_x_2 of { happy_var_2 ->
-    case happyOut33 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 (reverse happy_var_3) happy_var_4)}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_23 = happyMonadReduce 4# 3# happyReduction_23
-happyReduction_23 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut76 happy_x_2 of { happy_var_2 ->
-    case happyOut33 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CFunDef (reverse happy_var_1) happy_var_2 (reverse happy_var_3) happy_var_4)}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_24 = happyMonadReduce 4# 3# happyReduction_24
-happyReduction_24 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut76 happy_x_2 of { happy_var_2 ->
-    case happyOut33 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1) happy_var_2 (reverse happy_var_3) happy_var_4)}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_25 = happyMonadReduce 5# 3# happyReduction_25
-happyReduction_25 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut76 happy_x_3 of { happy_var_3 ->
-    case happyOut33 happy_x_4 of { happy_var_4 ->
-    case happyOut14 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1  ++ liftCAttrs happy_var_2) happy_var_3 (reverse happy_var_4) happy_var_5)}}}}}
-    ) (\r -> happyReturn (happyIn10 r))
-
-happyReduce_26 = happyMonadReduce 1# 4# happyReduction_26
-happyReduction_26 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut72 happy_x_1 of { happy_var_1 ->
-    ( let declr = reverseDeclr happy_var_1 in
-       enterScope >> doFuncParamDeclIdent declr >> return declr)}
-    ) (\r -> happyReturn (happyIn11 r))
-
-happyReduce_27 = happySpecReduce_1  5# happyReduction_27
-happyReduction_27 happy_x_1
-     =  case happyOut13 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_28 = happySpecReduce_1  5# happyReduction_28
-happyReduction_28 happy_x_1
-     =  case happyOut14 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_29 = happySpecReduce_1  5# happyReduction_29
-happyReduction_29 happy_x_1
-     =  case happyOut22 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_30 = happySpecReduce_1  5# happyReduction_30
-happyReduction_30 happy_x_1
-     =  case happyOut23 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_31 = happySpecReduce_1  5# happyReduction_31
-happyReduction_31 happy_x_1
-     =  case happyOut24 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_32 = happySpecReduce_1  5# happyReduction_32
-happyReduction_32 happy_x_1
-     =  case happyOut25 happy_x_1 of { happy_var_1 ->
-    happyIn12
-         (happy_var_1
-    )}
-
-happyReduce_33 = happyMonadReduce 1# 5# happyReduction_33
-happyReduction_33 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut26 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 (CAsm happy_var_1))}
-    ) (\r -> happyReturn (happyIn12 r))
-
-happyReduce_34 = happyMonadReduce 4# 6# happyReduction_34
-happyReduction_34 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut125 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut12 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CLabel happy_var_1 happy_var_4 happy_var_3)}}}
-    ) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_35 = happyMonadReduce 4# 6# happyReduction_35
-happyReduction_35 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_2 of { happy_var_2 ->
-    case happyOut12 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CCase happy_var_2 happy_var_4)}}}
-    ) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_36 = happyMonadReduce 3# 6# happyReduction_36
-happyReduction_36 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut12 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDefault happy_var_3)}}
-    ) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_37 = happyMonadReduce 6# 6# happyReduction_37
-happyReduction_37 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_2 of { happy_var_2 ->
-    case happyOut121 happy_x_4 of { happy_var_4 ->
-    case happyOut12 happy_x_6 of { happy_var_6 ->
-    ( withNodeInfo happy_var_1 $ CCases happy_var_2 happy_var_4 happy_var_6)}}}}
-    ) (\r -> happyReturn (happyIn13 r))
-
-happyReduce_38 = happyMonadReduce 5# 7# happyReduction_38
-happyReduction_38 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut17 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CCompound [] (reverse happy_var_3))}}
-    ) (\r -> happyReturn (happyIn14 r))
-
-happyReduce_39 = happyMonadReduce 6# 7# happyReduction_39
-happyReduction_39 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut21 happy_x_3 of { happy_var_3 ->
-    case happyOut17 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CCompound (reverse happy_var_3) (reverse happy_var_4))}}}
-    ) (\r -> happyReturn (happyIn14 r))
-
-happyReduce_40 = happyMonadReduce 0# 8# happyReduction_40
-happyReduction_40 (happyRest) tk
-     = happyThen (( enterScope)
-    ) (\r -> happyReturn (happyIn15 r))
-
-happyReduce_41 = happyMonadReduce 0# 9# happyReduction_41
-happyReduction_41 (happyRest) tk
-     = happyThen (( leaveScope)
-    ) (\r -> happyReturn (happyIn16 r))
-
-happyReduce_42 = happySpecReduce_0  10# happyReduction_42
-happyReduction_42  =  happyIn17
-         (empty
-    )
-
-happyReduce_43 = happySpecReduce_2  10# happyReduction_43
-happyReduction_43 happy_x_2
-    happy_x_1
-     =  case happyOut17 happy_x_1 of { happy_var_1 ->
-    case happyOut18 happy_x_2 of { happy_var_2 ->
-    happyIn17
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_44 = happySpecReduce_1  11# happyReduction_44
-happyReduction_44 happy_x_1
-     =  case happyOut12 happy_x_1 of { happy_var_1 ->
-    happyIn18
-         (CBlockStmt happy_var_1
-    )}
-
-happyReduce_45 = happySpecReduce_1  11# happyReduction_45
-happyReduction_45 happy_x_1
-     =  case happyOut19 happy_x_1 of { happy_var_1 ->
-    happyIn18
-         (happy_var_1
-    )}
-
-happyReduce_46 = happySpecReduce_1  12# happyReduction_46
-happyReduction_46 happy_x_1
-     =  case happyOut32 happy_x_1 of { happy_var_1 ->
-    happyIn19
-         (CBlockDecl happy_var_1
-    )}
-
-happyReduce_47 = happySpecReduce_1  12# happyReduction_47
-happyReduction_47 happy_x_1
-     =  case happyOut20 happy_x_1 of { happy_var_1 ->
-    happyIn19
-         (CNestedFunDef happy_var_1
-    )}
-
-happyReduce_48 = happySpecReduce_2  12# happyReduction_48
-happyReduction_48 happy_x_2
-    happy_x_1
-     =  case happyOut19 happy_x_2 of { happy_var_2 ->
-    happyIn19
-         (happy_var_2
-    )}
-
-happyReduce_49 = happyMonadReduce 3# 13# happyReduction_49
-happyReduction_49 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn20 r))
-
-happyReduce_50 = happyMonadReduce 3# 13# happyReduction_50
-happyReduction_50 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef happy_var_1 happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn20 r))
-
-happyReduce_51 = happyMonadReduce 3# 13# happyReduction_51
-happyReduction_51 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (reverse happy_var_1) happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn20 r))
-
-happyReduce_52 = happyMonadReduce 3# 13# happyReduction_52
-happyReduction_52 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut11 happy_x_2 of { happy_var_2 ->
-    case happyOut14 happy_x_3 of { happy_var_3 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1) happy_var_2 [] happy_var_3))}}}
-    ) (\r -> happyReturn (happyIn20 r))
-
-happyReduce_53 = happyMonadReduce 4# 13# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut11 happy_x_3 of { happy_var_3 ->
-    case happyOut14 happy_x_4 of { happy_var_4 ->
-    ( leaveScope >> (withNodeInfo happy_var_1 $ CFunDef (liftTypeQuals happy_var_1 ++ liftCAttrs happy_var_2) happy_var_3 [] happy_var_4))}}}}
-    ) (\r -> happyReturn (happyIn20 r))
-
-happyReduce_54 = happySpecReduce_3  14# happyReduction_54
-happyReduction_54 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut82 happy_x_2 of { happy_var_2 ->
-    happyIn21
-         (happy_var_2
-    )}
-
-happyReduce_55 = happyReduce 4# 14# happyReduction_55
-happyReduction_55 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut21 happy_x_1 of { happy_var_1 ->
-    case happyOut82 happy_x_3 of { happy_var_3 ->
-    happyIn21
-         (happy_var_1 `rappendr` happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_56 = happyMonadReduce 1# 15# happyReduction_56
-happyReduction_56 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CExpr Nothing)}
-    ) (\r -> happyReturn (happyIn22 r))
-
-happyReduce_57 = happyMonadReduce 2# 15# happyReduction_57
-happyReduction_57 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut117 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CExpr (Just happy_var_1))}
-    ) (\r -> happyReturn (happyIn22 r))
-
-happyReduce_58 = happyMonadReduce 5# 16# happyReduction_58
-happyReduction_58 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    case happyOut12 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CIf happy_var_3 happy_var_5 Nothing)}}}
-    ) (\r -> happyReturn (happyIn23 r))
-
-happyReduce_59 = happyMonadReduce 7# 16# happyReduction_59
-happyReduction_59 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    case happyOut12 happy_x_5 of { happy_var_5 ->
-    case happyOut12 happy_x_7 of { happy_var_7 ->
-    ( withNodeInfo happy_var_1 $ CIf happy_var_3 happy_var_5 (Just happy_var_7))}}}}
-    ) (\r -> happyReturn (happyIn23 r))
-
-happyReduce_60 = happyMonadReduce 5# 16# happyReduction_60
-happyReduction_60 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    case happyOut12 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CSwitch happy_var_3 happy_var_5)}}}
-    ) (\r -> happyReturn (happyIn23 r))
-
-happyReduce_61 = happyMonadReduce 5# 17# happyReduction_61
-happyReduction_61 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    case happyOut12 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CWhile happy_var_3 happy_var_5 False)}}}
-    ) (\r -> happyReturn (happyIn24 r))
-
-happyReduce_62 = happyMonadReduce 7# 17# happyReduction_62
-happyReduction_62 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut12 happy_x_2 of { happy_var_2 ->
-    case happyOut117 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CWhile happy_var_5 happy_var_2 True)}}}
-    ) (\r -> happyReturn (happyIn24 r))
-
-happyReduce_63 = happyMonadReduce 9# 17# happyReduction_63
-happyReduction_63 (happy_x_9 `HappyStk`
-    happy_x_8 `HappyStk`
-    happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut119 happy_x_3 of { happy_var_3 ->
-    case happyOut119 happy_x_5 of { happy_var_5 ->
-    case happyOut119 happy_x_7 of { happy_var_7 ->
-    case happyOut12 happy_x_9 of { happy_var_9 ->
-    ( withNodeInfo happy_var_1 $ CFor (Left happy_var_3) happy_var_5 happy_var_7 happy_var_9)}}}}}
-    ) (\r -> happyReturn (happyIn24 r))
-
-happyReduce_64 = happyMonadReduce 10# 17# happyReduction_64
-happyReduction_64 (happy_x_10 `HappyStk`
-    happy_x_9 `HappyStk`
-    happy_x_8 `HappyStk`
-    happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut32 happy_x_4 of { happy_var_4 ->
-    case happyOut119 happy_x_5 of { happy_var_5 ->
-    case happyOut119 happy_x_7 of { happy_var_7 ->
-    case happyOut12 happy_x_9 of { happy_var_9 ->
-    ( withNodeInfo happy_var_1 $ CFor (Right happy_var_4) happy_var_5 happy_var_7 happy_var_9)}}}}}
-    ) (\r -> happyReturn (happyIn24 r))
-
-happyReduce_65 = happyMonadReduce 3# 18# happyReduction_65
-happyReduction_65 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CGoto happy_var_2)}}
-    ) (\r -> happyReturn (happyIn25 r))
-
-happyReduce_66 = happyMonadReduce 4# 18# happyReduction_66
-happyReduction_66 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CGotoPtr happy_var_3)}}
-    ) (\r -> happyReturn (happyIn25 r))
-
-happyReduce_67 = happyMonadReduce 2# 18# happyReduction_67
-happyReduction_67 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CCont)}
-    ) (\r -> happyReturn (happyIn25 r))
-
-happyReduce_68 = happyMonadReduce 2# 18# happyReduction_68
-happyReduction_68 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CBreak)}
-    ) (\r -> happyReturn (happyIn25 r))
-
-happyReduce_69 = happyMonadReduce 3# 18# happyReduction_69
-happyReduction_69 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut119 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CReturn happy_var_2)}}
-    ) (\r -> happyReturn (happyIn25 r))
-
-happyReduce_70 = happyMonadReduce 6# 19# happyReduction_70
-happyReduction_70 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut27 happy_x_2 of { happy_var_2 ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CAsmStmt happy_var_2 happy_var_4 [] [] [])}}}
-    ) (\r -> happyReturn (happyIn26 r))
-
-happyReduce_71 = happyMonadReduce 8# 19# happyReduction_71
-happyReduction_71 (happy_x_8 `HappyStk`
-    happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut27 happy_x_2 of { happy_var_2 ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    case happyOut28 happy_x_6 of { happy_var_6 ->
-    ( withNodeInfo happy_var_1 $ CAsmStmt happy_var_2 happy_var_4 happy_var_6 [] [])}}}}
-    ) (\r -> happyReturn (happyIn26 r))
-
-happyReduce_72 = happyMonadReduce 10# 19# happyReduction_72
-happyReduction_72 (happy_x_10 `HappyStk`
-    happy_x_9 `HappyStk`
-    happy_x_8 `HappyStk`
-    happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut27 happy_x_2 of { happy_var_2 ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    case happyOut28 happy_x_6 of { happy_var_6 ->
-    case happyOut28 happy_x_8 of { happy_var_8 ->
-    ( withNodeInfo happy_var_1 $ CAsmStmt happy_var_2 happy_var_4 happy_var_6 happy_var_8 [])}}}}}
-    ) (\r -> happyReturn (happyIn26 r))
-
-happyReduce_73 = happyMonadReduce 12# 19# happyReduction_73
-happyReduction_73 (happy_x_12 `HappyStk`
-    happy_x_11 `HappyStk`
-    happy_x_10 `HappyStk`
-    happy_x_9 `HappyStk`
-    happy_x_8 `HappyStk`
-    happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut27 happy_x_2 of { happy_var_2 ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    case happyOut28 happy_x_6 of { happy_var_6 ->
-    case happyOut28 happy_x_8 of { happy_var_8 ->
-    case happyOut31 happy_x_10 of { happy_var_10 ->
-    ( withNodeInfo happy_var_1 $ CAsmStmt happy_var_2 happy_var_4 happy_var_6 happy_var_8 (reverse happy_var_10))}}}}}}
-    ) (\r -> happyReturn (happyIn26 r))
-
-happyReduce_74 = happySpecReduce_0  20# happyReduction_74
-happyReduction_74  =  happyIn27
-         (Nothing
-    )
-
-happyReduce_75 = happySpecReduce_1  20# happyReduction_75
-happyReduction_75 happy_x_1
-     =  case happyOut61 happy_x_1 of { happy_var_1 ->
-    happyIn27
-         (Just happy_var_1
-    )}
-
-happyReduce_76 = happySpecReduce_0  21# happyReduction_76
-happyReduction_76  =  happyIn28
-         ([]
-    )
-
-happyReduce_77 = happySpecReduce_1  21# happyReduction_77
-happyReduction_77 happy_x_1
-     =  case happyOut29 happy_x_1 of { happy_var_1 ->
-    happyIn28
-         (reverse happy_var_1
-    )}
-
-happyReduce_78 = happySpecReduce_1  22# happyReduction_78
-happyReduction_78 happy_x_1
-     =  case happyOut30 happy_x_1 of { happy_var_1 ->
-    happyIn29
-         (singleton happy_var_1
-    )}
-
-happyReduce_79 = happySpecReduce_3  22# happyReduction_79
-happyReduction_79 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut29 happy_x_1 of { happy_var_1 ->
-    case happyOut30 happy_x_3 of { happy_var_3 ->
-    happyIn29
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_80 = happyMonadReduce 4# 23# happyReduction_80
-happyReduction_80 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut123 happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CAsmOperand Nothing happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn30 r))
-
-happyReduce_81 = happyMonadReduce 7# 23# happyReduction_81
-happyReduction_81 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { (CTokIdent  _ happy_var_2) ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    case happyOut117 happy_x_6 of { happy_var_6 ->
-    ( withNodeInfo happy_var_1 $ CAsmOperand (Just happy_var_2) happy_var_4 happy_var_6)}}}}
-    ) (\r -> happyReturn (happyIn30 r))
-
-happyReduce_82 = happyMonadReduce 7# 23# happyReduction_82
-happyReduction_82 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { (CTokTyIdent _ happy_var_2) ->
-    case happyOut123 happy_x_4 of { happy_var_4 ->
-    case happyOut117 happy_x_6 of { happy_var_6 ->
-    ( withNodeInfo happy_var_1 $ CAsmOperand (Just happy_var_2) happy_var_4 happy_var_6)}}}}
-    ) (\r -> happyReturn (happyIn30 r))
-
-happyReduce_83 = happySpecReduce_1  24# happyReduction_83
-happyReduction_83 happy_x_1
-     =  case happyOut123 happy_x_1 of { happy_var_1 ->
-    happyIn31
-         (singleton happy_var_1
-    )}
-
-happyReduce_84 = happySpecReduce_3  24# happyReduction_84
-happyReduction_84 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut31 happy_x_1 of { happy_var_1 ->
-    case happyOut123 happy_x_3 of { happy_var_3 ->
-    happyIn31
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_85 = happyMonadReduce 2# 25# happyReduction_85
-happyReduction_85 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut45 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl (reverse happy_var_1) [])}
-    ) (\r -> happyReturn (happyIn32 r))
-
-happyReduce_86 = happyMonadReduce 2# 25# happyReduction_86
-happyReduction_86 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut46 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl (reverse happy_var_1) [])}
-    ) (\r -> happyReturn (happyIn32 r))
-
-happyReduce_87 = happyMonadReduce 2# 25# happyReduction_87
-happyReduction_87 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut36 happy_x_1 of { happy_var_1 ->
-    ( case happy_var_1 of CDecl declspecs dies at -> withLength at (CDecl declspecs (List.reverse dies)))}
-    ) (\r -> happyReturn (happyIn32 r))
-
-happyReduce_88 = happyMonadReduce 2# 25# happyReduction_88
-happyReduction_88 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut34 happy_x_1 of { happy_var_1 ->
-    ( case happy_var_1 of CDecl declspecs dies at -> withLength at (CDecl declspecs (List.reverse dies)))}
-    ) (\r -> happyReturn (happyIn32 r))
-
-happyReduce_89 = happySpecReduce_0  26# happyReduction_89
-happyReduction_89  =  happyIn33
-         (empty
-    )
-
-happyReduce_90 = happySpecReduce_2  26# happyReduction_90
-happyReduction_90 happy_x_2
-    happy_x_1
-     =  case happyOut33 happy_x_1 of { happy_var_1 ->
-    case happyOut32 happy_x_2 of { happy_var_2 ->
-    happyIn33
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_91 = happyMonadReduce 4# 27# happyReduction_91
-happyReduction_91 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut35 happy_x_3 of { happy_var_3 ->
-    case happyOut91 happy_x_4 of { happy_var_4 ->
-    ( let declspecs = reverse happy_var_1 in
-       do{ declr <- withAsmNameAttrs happy_var_3 happy_var_2
-           ; doDeclIdent declspecs declr
-           ; withNodeInfo happy_var_1 $
-                CDecl declspecs [(Just (reverseDeclr declr), happy_var_4, Nothing)] })}}}}
-    ) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_92 = happyMonadReduce 4# 27# happyReduction_92
-happyReduction_92 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut35 happy_x_3 of { happy_var_3 ->
-    case happyOut91 happy_x_4 of { happy_var_4 ->
-    ( let declspecs = liftTypeQuals happy_var_1 in
-       do{ declr <- withAsmNameAttrs happy_var_3 happy_var_2
-           ; doDeclIdent declspecs declr
-           ; withNodeInfo happy_var_1 $ CDecl declspecs [(Just (reverseDeclr declr), happy_var_4, Nothing)] })}}}}
-    ) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_93 = happyMonadReduce 5# 27# happyReduction_93
-happyReduction_93 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut72 happy_x_3 of { happy_var_3 ->
-    case happyOut35 happy_x_4 of { happy_var_4 ->
-    case happyOut91 happy_x_5 of { happy_var_5 ->
-    ( let declspecs = liftTypeQuals happy_var_1 in
-       do{ declr <- withAsmNameAttrs happy_var_4 happy_var_3
-           ; doDeclIdent declspecs declr
-           ; withNodeInfo happy_var_1 $ CDecl (declspecs ++ liftCAttrs happy_var_2) [(Just (reverseDeclr declr), happy_var_5, Nothing)] })}}}}}
-    ) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_94 = happyMonadReduce 4# 27# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut35 happy_x_3 of { happy_var_3 ->
-    case happyOut91 happy_x_4 of { happy_var_4 ->
-    ( let declspecs = liftCAttrs happy_var_1 in
-       do{ declr <- withAsmNameAttrs happy_var_3 happy_var_2
-           ; doDeclIdent declspecs declr
-           ; withNodeInfo happy_var_1 $ CDecl declspecs [(Just (reverseDeclr declr), happy_var_4, Nothing)] })}}}}
-    ) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_95 = happyMonadReduce 6# 27# happyReduction_95
-happyReduction_95 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut34 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut72 happy_x_4 of { happy_var_4 ->
-    case happyOut35 happy_x_5 of { happy_var_5 ->
-    case happyOut91 happy_x_6 of { happy_var_6 ->
-    ( case happy_var_1 of
-             CDecl declspecs dies at -> do
-               declr <- withAsmNameAttrs (fst happy_var_5, snd happy_var_5 ++ happy_var_3) happy_var_4
-               doDeclIdent declspecs declr
-               withLength at $ CDecl declspecs ((Just (reverseDeclr declr), happy_var_6, Nothing) : dies))}}}}}
-    ) (\r -> happyReturn (happyIn34 r))
-
-happyReduce_96 = happySpecReduce_2  28# happyReduction_96
-happyReduction_96 happy_x_2
-    happy_x_1
-     =  case happyOut64 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    happyIn35
-         ((happy_var_1,happy_var_2)
-    )}}
-
-happyReduce_97 = happyMonadReduce 4# 29# happyReduction_97
-happyReduction_97 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut63 happy_x_2 of { happy_var_2 ->
-    case happyOut35 happy_x_3 of { happy_var_3 ->
-    case happyOut91 happy_x_4 of { happy_var_4 ->
-    ( do{
-       declr <- withAsmNameAttrs happy_var_3 happy_var_2;
-       doDeclIdent happy_var_1 declr;
-       withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr declr), happy_var_4, Nothing)] })}}}}
-    ) (\r -> happyReturn (happyIn36 r))
-
-happyReduce_98 = happyMonadReduce 4# 29# happyReduction_98
-happyReduction_98 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut63 happy_x_2 of { happy_var_2 ->
-    case happyOut35 happy_x_3 of { happy_var_3 ->
-    case happyOut91 happy_x_4 of { happy_var_4 ->
-    ( do{
-       declr <- withAsmNameAttrs happy_var_3 happy_var_2;
-       doDeclIdent happy_var_1 declr;
-       withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr declr), happy_var_4, Nothing)] })}}}}
-    ) (\r -> happyReturn (happyIn36 r))
-
-happyReduce_99 = happyMonadReduce 6# 29# happyReduction_99
-happyReduction_99 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut36 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut63 happy_x_4 of { happy_var_4 ->
-    case happyOut35 happy_x_5 of { happy_var_5 ->
-    case happyOut91 happy_x_6 of { happy_var_6 ->
-    ( case happy_var_1 of
-             CDecl declspecs dies at -> do
-               declr <- withAsmNameAttrs (fst happy_var_5, snd happy_var_5 ++ happy_var_3) happy_var_4
-               doDeclIdent declspecs declr
-               return (CDecl declspecs ((Just (reverseDeclr declr), happy_var_6, Nothing) : dies) at))}}}}}
-    ) (\r -> happyReturn (happyIn36 r))
-
-happyReduce_100 = happySpecReduce_1  30# happyReduction_100
-happyReduction_100 happy_x_1
-     =  case happyOut43 happy_x_1 of { happy_var_1 ->
-    happyIn37
-         (reverse happy_var_1
-    )}
-
-happyReduce_101 = happySpecReduce_1  30# happyReduction_101
-happyReduction_101 happy_x_1
-     =  case happyOut45 happy_x_1 of { happy_var_1 ->
-    happyIn37
-         (reverse happy_var_1
-    )}
-
-happyReduce_102 = happySpecReduce_1  30# happyReduction_102
-happyReduction_102 happy_x_1
-     =  case happyOut47 happy_x_1 of { happy_var_1 ->
-    happyIn37
-         (reverse happy_var_1
-    )}
-
-happyReduce_103 = happySpecReduce_1  31# happyReduction_103
-happyReduction_103 happy_x_1
-     =  case happyOut40 happy_x_1 of { happy_var_1 ->
-    happyIn38
-         (singleton (CStorageSpec happy_var_1)
-    )}
-
-happyReduce_104 = happySpecReduce_2  31# happyReduction_104
-happyReduction_104 happy_x_2
-    happy_x_1
-     =  case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut40 happy_x_2 of { happy_var_2 ->
-    happyIn38
-         (reverseList (liftCAttrs happy_var_1) `snoc` (CStorageSpec happy_var_2)
-    )}}
-
-happyReduce_105 = happySpecReduce_2  31# happyReduction_105
-happyReduction_105 happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut40 happy_x_2 of { happy_var_2 ->
-    happyIn38
-         (rmap CTypeQual happy_var_1 `snoc` CStorageSpec happy_var_2
-    )}}
-
-happyReduce_106 = happySpecReduce_3  31# happyReduction_106
-happyReduction_106 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut40 happy_x_3 of { happy_var_3 ->
-    happyIn38
-         ((rmap CTypeQual happy_var_1 `rappend` liftCAttrs happy_var_2) `snoc` CStorageSpec happy_var_3
-    )}}}
-
-happyReduce_107 = happySpecReduce_2  31# happyReduction_107
-happyReduction_107 happy_x_2
-    happy_x_1
-     =  case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut39 happy_x_2 of { happy_var_2 ->
-    happyIn38
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_108 = happySpecReduce_2  31# happyReduction_108
-happyReduction_108 happy_x_2
-    happy_x_1
-     =  case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn38
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_109 = happySpecReduce_1  32# happyReduction_109
-happyReduction_109 happy_x_1
-     =  case happyOut40 happy_x_1 of { happy_var_1 ->
-    happyIn39
-         (CStorageSpec happy_var_1
-    )}
-
-happyReduce_110 = happySpecReduce_1  32# happyReduction_110
-happyReduction_110 happy_x_1
-     =  case happyOut61 happy_x_1 of { happy_var_1 ->
-    happyIn39
-         (CTypeQual happy_var_1
-    )}
-
-happyReduce_111 = happyMonadReduce 1# 33# happyReduction_111
-happyReduction_111 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CTypedef)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_112 = happyMonadReduce 1# 33# happyReduction_112
-happyReduction_112 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CExtern)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_113 = happyMonadReduce 1# 33# happyReduction_113
-happyReduction_113 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CStatic)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_114 = happyMonadReduce 1# 33# happyReduction_114
-happyReduction_114 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CAuto)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_115 = happyMonadReduce 1# 33# happyReduction_115
-happyReduction_115 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CRegister)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_116 = happyMonadReduce 1# 33# happyReduction_116
-happyReduction_116 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CThread)}
-    ) (\r -> happyReturn (happyIn40 r))
-
-happyReduce_117 = happySpecReduce_1  34# happyReduction_117
-happyReduction_117 happy_x_1
-     =  case happyOut44 happy_x_1 of { happy_var_1 ->
-    happyIn41
-         (reverse happy_var_1
-    )}
-
-happyReduce_118 = happySpecReduce_1  34# happyReduction_118
-happyReduction_118 happy_x_1
-     =  case happyOut46 happy_x_1 of { happy_var_1 ->
-    happyIn41
-         (reverse happy_var_1
-    )}
-
-happyReduce_119 = happySpecReduce_1  34# happyReduction_119
-happyReduction_119 happy_x_1
-     =  case happyOut48 happy_x_1 of { happy_var_1 ->
-    happyIn41
-         (reverse happy_var_1
-    )}
-
-happyReduce_120 = happyMonadReduce 1# 35# happyReduction_120
-happyReduction_120 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CVoidType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_121 = happyMonadReduce 1# 35# happyReduction_121
-happyReduction_121 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CCharType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_122 = happyMonadReduce 1# 35# happyReduction_122
-happyReduction_122 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CShortType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_123 = happyMonadReduce 1# 35# happyReduction_123
-happyReduction_123 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CIntType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_124 = happyMonadReduce 1# 35# happyReduction_124
-happyReduction_124 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CLongType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_125 = happyMonadReduce 1# 35# happyReduction_125
-happyReduction_125 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CFloatType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_126 = happyMonadReduce 1# 35# happyReduction_126
-happyReduction_126 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDoubleType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_127 = happyMonadReduce 1# 35# happyReduction_127
-happyReduction_127 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CSignedType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_128 = happyMonadReduce 1# 35# happyReduction_128
-happyReduction_128 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CUnsigType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_129 = happyMonadReduce 1# 35# happyReduction_129
-happyReduction_129 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CBoolType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_130 = happyMonadReduce 1# 35# happyReduction_130
-happyReduction_130 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CComplexType)}
-    ) (\r -> happyReturn (happyIn42 r))
-
-happyReduce_131 = happySpecReduce_2  36# happyReduction_131
-happyReduction_131 happy_x_2
-    happy_x_1
-     =  case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut42 happy_x_2 of { happy_var_2 ->
-    happyIn43
-         (happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_132 = happySpecReduce_2  36# happyReduction_132
-happyReduction_132 happy_x_2
-    happy_x_1
-     =  case happyOut44 happy_x_1 of { happy_var_1 ->
-    case happyOut40 happy_x_2 of { happy_var_2 ->
-    happyIn43
-         (happy_var_1 `snoc` CStorageSpec happy_var_2
-    )}}
-
-happyReduce_133 = happySpecReduce_2  36# happyReduction_133
-happyReduction_133 happy_x_2
-    happy_x_1
-     =  case happyOut43 happy_x_1 of { happy_var_1 ->
-    case happyOut39 happy_x_2 of { happy_var_2 ->
-    happyIn43
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_134 = happySpecReduce_2  36# happyReduction_134
-happyReduction_134 happy_x_2
-    happy_x_1
-     =  case happyOut43 happy_x_1 of { happy_var_1 ->
-    case happyOut42 happy_x_2 of { happy_var_2 ->
-    happyIn43
-         (happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_135 = happySpecReduce_2  36# happyReduction_135
-happyReduction_135 happy_x_2
-    happy_x_1
-     =  case happyOut43 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn43
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_136 = happySpecReduce_1  37# happyReduction_136
-happyReduction_136 happy_x_1
-     =  case happyOut42 happy_x_1 of { happy_var_1 ->
-    happyIn44
-         (singleton (CTypeSpec happy_var_1)
-    )}
-
-happyReduce_137 = happySpecReduce_2  37# happyReduction_137
-happyReduction_137 happy_x_2
-    happy_x_1
-     =  case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut42 happy_x_2 of { happy_var_2 ->
-    happyIn44
-         ((reverseList $ liftCAttrs happy_var_1) `snoc` (CTypeSpec happy_var_2)
-    )}}
-
-happyReduce_138 = happySpecReduce_2  37# happyReduction_138
-happyReduction_138 happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut42 happy_x_2 of { happy_var_2 ->
-    happyIn44
-         (rmap CTypeQual happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_139 = happySpecReduce_3  37# happyReduction_139
-happyReduction_139 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut42 happy_x_3 of { happy_var_3 ->
-    happyIn44
-         (rmap CTypeQual happy_var_1 `rappend` (liftCAttrs happy_var_2) `snoc` CTypeSpec happy_var_3
-    )}}}
-
-happyReduce_140 = happySpecReduce_2  37# happyReduction_140
-happyReduction_140 happy_x_2
-    happy_x_1
-     =  case happyOut44 happy_x_1 of { happy_var_1 ->
-    case happyOut61 happy_x_2 of { happy_var_2 ->
-    happyIn44
-         (happy_var_1 `snoc` CTypeQual happy_var_2
-    )}}
-
-happyReduce_141 = happySpecReduce_2  37# happyReduction_141
-happyReduction_141 happy_x_2
-    happy_x_1
-     =  case happyOut44 happy_x_1 of { happy_var_1 ->
-    case happyOut42 happy_x_2 of { happy_var_2 ->
-    happyIn44
-         (happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_142 = happySpecReduce_2  37# happyReduction_142
-happyReduction_142 happy_x_2
-    happy_x_1
-     =  case happyOut44 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn44
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_143 = happySpecReduce_2  38# happyReduction_143
-happyReduction_143 happy_x_2
-    happy_x_1
-     =  case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut49 happy_x_2 of { happy_var_2 ->
-    happyIn45
-         (happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_144 = happySpecReduce_2  38# happyReduction_144
-happyReduction_144 happy_x_2
-    happy_x_1
-     =  case happyOut46 happy_x_1 of { happy_var_1 ->
-    case happyOut40 happy_x_2 of { happy_var_2 ->
-    happyIn45
-         (happy_var_1 `snoc` CStorageSpec happy_var_2
-    )}}
-
-happyReduce_145 = happySpecReduce_2  38# happyReduction_145
-happyReduction_145 happy_x_2
-    happy_x_1
-     =  case happyOut45 happy_x_1 of { happy_var_1 ->
-    case happyOut39 happy_x_2 of { happy_var_2 ->
-    happyIn45
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_146 = happySpecReduce_2  38# happyReduction_146
-happyReduction_146 happy_x_2
-    happy_x_1
-     =  case happyOut45 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn45
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_147 = happySpecReduce_1  39# happyReduction_147
-happyReduction_147 happy_x_1
-     =  case happyOut49 happy_x_1 of { happy_var_1 ->
-    happyIn46
-         (singleton (CTypeSpec happy_var_1)
-    )}
-
-happyReduce_148 = happySpecReduce_2  39# happyReduction_148
-happyReduction_148 happy_x_2
-    happy_x_1
-     =  case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut49 happy_x_2 of { happy_var_2 ->
-    happyIn46
-         ((reverseList $ liftCAttrs happy_var_1) `snoc` (CTypeSpec happy_var_2)
-    )}}
-
-happyReduce_149 = happySpecReduce_2  39# happyReduction_149
-happyReduction_149 happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut49 happy_x_2 of { happy_var_2 ->
-    happyIn46
-         (rmap CTypeQual happy_var_1 `snoc` CTypeSpec happy_var_2
-    )}}
-
-happyReduce_150 = happySpecReduce_3  39# happyReduction_150
-happyReduction_150 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut49 happy_x_3 of { happy_var_3 ->
-    happyIn46
-         (rmap CTypeQual  happy_var_1 `rappend` (liftCAttrs happy_var_2) `snoc` CTypeSpec happy_var_3
-    )}}}
-
-happyReduce_151 = happySpecReduce_2  39# happyReduction_151
-happyReduction_151 happy_x_2
-    happy_x_1
-     =  case happyOut46 happy_x_1 of { happy_var_1 ->
-    case happyOut61 happy_x_2 of { happy_var_2 ->
-    happyIn46
-         (happy_var_1 `snoc` CTypeQual happy_var_2
-    )}}
-
-happyReduce_152 = happySpecReduce_2  39# happyReduction_152
-happyReduction_152 happy_x_2
-    happy_x_1
-     =  case happyOut46 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn46
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_153 = happySpecReduce_2  40# happyReduction_153
-happyReduction_153 happy_x_2
-    happy_x_1
-     =  case happyOut48 happy_x_1 of { happy_var_1 ->
-    case happyOut40 happy_x_2 of { happy_var_2 ->
-    happyIn47
-         (happy_var_1 `snoc` CStorageSpec happy_var_2
-    )}}
-
-happyReduce_154 = happyMonadReduce 2# 40# happyReduction_154
-happyReduction_154 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { (CTokTyIdent _ happy_var_2) ->
-    ( withNodeInfo happy_var_2 $ \at -> happy_var_1 `snoc` CTypeSpec (CTypeDef happy_var_2 at))}}
-    ) (\r -> happyReturn (happyIn47 r))
-
-happyReduce_155 = happyMonadReduce 5# 40# happyReduction_155
-happyReduction_155 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    case happyOut117 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ \at -> happy_var_1 `snoc` CTypeSpec (CTypeOfExpr happy_var_4 at))}}}
-    ) (\r -> happyReturn (happyIn47 r))
-
-happyReduce_156 = happyMonadReduce 5# 40# happyReduction_156
-happyReduction_156 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    case happyOut83 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ \at -> happy_var_1 `snoc` CTypeSpec (CTypeOfType happy_var_4 at))}}}
-    ) (\r -> happyReturn (happyIn47 r))
-
-happyReduce_157 = happySpecReduce_2  40# happyReduction_157
-happyReduction_157 happy_x_2
-    happy_x_1
-     =  case happyOut47 happy_x_1 of { happy_var_1 ->
-    case happyOut39 happy_x_2 of { happy_var_2 ->
-    happyIn47
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_158 = happySpecReduce_2  40# happyReduction_158
-happyReduction_158 happy_x_2
-    happy_x_1
-     =  case happyOut47 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn47
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_159 = happyMonadReduce 1# 41# happyReduction_159
-happyReduction_159 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokTyIdent _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ \at -> singleton (CTypeSpec (CTypeDef happy_var_1 at)))}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_160 = happyMonadReduce 4# 41# happyReduction_160
-happyReduction_160 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ \at -> singleton (CTypeSpec (CTypeOfExpr happy_var_3 at)))}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_161 = happyMonadReduce 4# 41# happyReduction_161
-happyReduction_161 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ \at -> singleton (CTypeSpec (CTypeOfType happy_var_3 at)))}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_162 = happyMonadReduce 2# 41# happyReduction_162
-happyReduction_162 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { (CTokTyIdent _ happy_var_2) ->
-    ( withNodeInfo happy_var_2 $ \at -> rmap CTypeQual  happy_var_1 `snoc` CTypeSpec (CTypeDef happy_var_2 at))}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_163 = happyMonadReduce 5# 41# happyReduction_163
-happyReduction_163 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    case happyOut117 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ \at -> rmap CTypeQual  happy_var_1 `snoc` CTypeSpec (CTypeOfExpr happy_var_4 at))}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_164 = happyMonadReduce 5# 41# happyReduction_164
-happyReduction_164 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    case happyOut83 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ \at -> rmap CTypeQual  happy_var_1 `snoc` CTypeSpec (CTypeOfType happy_var_4 at))}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_165 = happyMonadReduce 2# 41# happyReduction_165
-happyReduction_165 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { (CTokTyIdent _ happy_var_2) ->
-    ( withNodeInfo happy_var_2 $ \at -> reverseList (liftCAttrs happy_var_1) `snoc` (CTypeSpec (CTypeDef happy_var_2 at)))}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_166 = happyMonadReduce 5# 41# happyReduction_166
-happyReduction_166 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ \at -> reverseList (liftCAttrs happy_var_1) `snoc`  (CTypeSpec (CTypeOfExpr happy_var_4 at)))}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_167 = happyMonadReduce 5# 41# happyReduction_167
-happyReduction_167 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    case happyOut83 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_2 $ \at -> reverseList (liftCAttrs happy_var_1) `snoc`  (CTypeSpec (CTypeOfType happy_var_4 at)))}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_168 = happyMonadReduce 3# 41# happyReduction_168
-happyReduction_168 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOutTok happy_x_3 of { (CTokTyIdent _ happy_var_3) ->
-    ( withNodeInfo happy_var_3 $ \at -> rmap CTypeQual  happy_var_1 `rappend` (liftCAttrs happy_var_2) `snoc` CTypeSpec (CTypeDef happy_var_3 at))}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_169 = happyMonadReduce 6# 41# happyReduction_169
-happyReduction_169 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOutTok happy_x_3 of { happy_var_3 ->
-    case happyOut117 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_3 $ \at -> rmap CTypeQual  happy_var_1 `rappend` (liftCAttrs happy_var_2) `snoc` CTypeSpec (CTypeOfExpr happy_var_5 at))}}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_170 = happyMonadReduce 6# 41# happyReduction_170
-happyReduction_170 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOutTok happy_x_3 of { happy_var_3 ->
-    case happyOut83 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_3 $ \at -> rmap CTypeQual  happy_var_1 `rappend` (liftCAttrs happy_var_2) `snoc` CTypeSpec (CTypeOfType happy_var_5 at))}}}}
-    ) (\r -> happyReturn (happyIn48 r))
-
-happyReduce_171 = happySpecReduce_2  41# happyReduction_171
-happyReduction_171 happy_x_2
-    happy_x_1
-     =  case happyOut48 happy_x_1 of { happy_var_1 ->
-    case happyOut61 happy_x_2 of { happy_var_2 ->
-    happyIn48
-         (happy_var_1 `snoc` CTypeQual happy_var_2
-    )}}
-
-happyReduce_172 = happySpecReduce_2  41# happyReduction_172
-happyReduction_172 happy_x_2
-    happy_x_1
-     =  case happyOut48 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn48
-         (addTrailingAttrs happy_var_1 happy_var_2
-    )}}
-
-happyReduce_173 = happyMonadReduce 1# 42# happyReduction_173
-happyReduction_173 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut50 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CSUType happy_var_1)}
-    ) (\r -> happyReturn (happyIn49 r))
-
-happyReduce_174 = happyMonadReduce 1# 42# happyReduction_174
-happyReduction_174 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut58 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CEnumType happy_var_1)}
-    ) (\r -> happyReturn (happyIn49 r))
-
-happyReduce_175 = happyMonadReduce 6# 43# happyReduction_175
-happyReduction_175 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut51 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    case happyOut52 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CStruct (unL happy_var_1) (Just happy_var_3) (Just$ reverse happy_var_5) happy_var_2)}}}}
-    ) (\r -> happyReturn (happyIn50 r))
-
-happyReduce_176 = happyMonadReduce 5# 43# happyReduction_176
-happyReduction_176 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut51 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut52 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CStruct (unL happy_var_1) Nothing   (Just$ reverse happy_var_4) happy_var_2)}}}
-    ) (\r -> happyReturn (happyIn50 r))
-
-happyReduce_177 = happyMonadReduce 3# 43# happyReduction_177
-happyReduction_177 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut51 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CStruct (unL happy_var_1) (Just happy_var_3) Nothing happy_var_2)}}}
-    ) (\r -> happyReturn (happyIn50 r))
-
-happyReduce_178 = happySpecReduce_1  44# happyReduction_178
-happyReduction_178 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn51
-         (L CStructTag (posOf happy_var_1)
-    )}
-
-happyReduce_179 = happySpecReduce_1  44# happyReduction_179
-happyReduction_179 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn51
-         (L CUnionTag (posOf happy_var_1)
-    )}
-
-happyReduce_180 = happySpecReduce_0  45# happyReduction_180
-happyReduction_180  =  happyIn52
-         (empty
-    )
-
-happyReduce_181 = happySpecReduce_2  45# happyReduction_181
-happyReduction_181 happy_x_2
-    happy_x_1
-     =  case happyOut52 happy_x_1 of { happy_var_1 ->
-    happyIn52
-         (happy_var_1
-    )}
-
-happyReduce_182 = happySpecReduce_2  45# happyReduction_182
-happyReduction_182 happy_x_2
-    happy_x_1
-     =  case happyOut52 happy_x_1 of { happy_var_1 ->
-    case happyOut53 happy_x_2 of { happy_var_2 ->
-    happyIn52
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_183 = happySpecReduce_2  46# happyReduction_183
-happyReduction_183 happy_x_2
-    happy_x_1
-     =  case happyOut55 happy_x_1 of { happy_var_1 ->
-    happyIn53
-         (case happy_var_1 of CDecl declspecs dies at -> CDecl declspecs (List.reverse dies) at
-    )}
-
-happyReduce_184 = happySpecReduce_2  46# happyReduction_184
-happyReduction_184 happy_x_2
-    happy_x_1
-     =  case happyOut54 happy_x_1 of { happy_var_1 ->
-    happyIn53
-         (case happy_var_1 of CDecl declspecs dies at -> CDecl declspecs (List.reverse dies) at
-    )}
-
-happyReduce_185 = happySpecReduce_2  46# happyReduction_185
-happyReduction_185 happy_x_2
-    happy_x_1
-     =  case happyOut53 happy_x_2 of { happy_var_2 ->
-    happyIn53
-         (happy_var_2
-    )}
-
-happyReduce_186 = happyMonadReduce 3# 47# happyReduction_186
-happyReduction_186 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut57 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_3 of (d,s) -> CDecl (liftTypeQuals happy_var_1 ++ liftCAttrs happy_var_2) [(d,Nothing,s)])}}}
-    ) (\r -> happyReturn (happyIn54 r))
-
-happyReduce_187 = happyMonadReduce 2# 47# happyReduction_187
-happyReduction_187 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut57 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_2 of (d,s) -> CDecl (liftCAttrs happy_var_1) [(d,Nothing,s)])}}
-    ) (\r -> happyReturn (happyIn54 r))
-
-happyReduce_188 = happyReduce 4# 47# happyReduction_188
-happyReduction_188 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut54 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut57 happy_x_4 of { happy_var_4 ->
-    happyIn54
-         (case happy_var_1 of
-            CDecl declspecs dies at ->
-              case happy_var_4 of
-                (Just d,s) -> CDecl declspecs ((Just $ appendObjAttrs happy_var_3 d,Nothing,s) : dies) at
-                (Nothing,s) -> CDecl declspecs ((Nothing,Nothing,s) : dies) at
-    ) `HappyStk` happyRest}}}
-
-happyReduce_189 = happyMonadReduce 3# 48# happyReduction_189
-happyReduction_189 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut56 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_2 of { (Just d,s)  -> CDecl happy_var_1 [(Just $! appendObjAttrs happy_var_3 d,Nothing,s)]
-                                    ; (Nothing,s) -> CDecl happy_var_1 [(Nothing,Nothing,s)]  })}}}
-    ) (\r -> happyReturn (happyIn55 r))
-
-happyReduce_190 = happyReduce 5# 48# happyReduction_190
-happyReduction_190 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut55 happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut56 happy_x_4 of { happy_var_4 ->
-    case happyOut126 happy_x_5 of { happy_var_5 ->
-    happyIn55
-         (case happy_var_1 of
-            CDecl declspecs dies attr ->
-              case happy_var_4 of
-                (Just d,s) -> CDecl declspecs ((Just$ appendObjAttrs (happy_var_3++happy_var_5) d,Nothing,s) : dies) attr
-                (Nothing,s) -> CDecl declspecs ((Nothing,Nothing,s) : dies) attr
-    ) `HappyStk` happyRest}}}}
-
-happyReduce_191 = happyMonadReduce 1# 48# happyReduction_191
-happyReduction_191 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn55 r))
-
-happyReduce_192 = happySpecReduce_1  49# happyReduction_192
-happyReduction_192 happy_x_1
-     =  case happyOut63 happy_x_1 of { happy_var_1 ->
-    happyIn56
-         ((Just (reverseDeclr happy_var_1), Nothing)
-    )}
-
-happyReduce_193 = happySpecReduce_2  49# happyReduction_193
-happyReduction_193 happy_x_2
-    happy_x_1
-     =  case happyOut121 happy_x_2 of { happy_var_2 ->
-    happyIn56
-         ((Nothing, Just happy_var_2)
-    )}
-
-happyReduce_194 = happySpecReduce_3  49# happyReduction_194
-happyReduction_194 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut63 happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_3 of { happy_var_3 ->
-    happyIn56
-         ((Just (reverseDeclr happy_var_1), Just happy_var_3)
-    )}}
-
-happyReduce_195 = happySpecReduce_1  50# happyReduction_195
-happyReduction_195 happy_x_1
-     =  case happyOut72 happy_x_1 of { happy_var_1 ->
-    happyIn57
-         ((Just (reverseDeclr happy_var_1), Nothing)
-    )}
-
-happyReduce_196 = happySpecReduce_2  50# happyReduction_196
-happyReduction_196 happy_x_2
-    happy_x_1
-     =  case happyOut121 happy_x_2 of { happy_var_2 ->
-    happyIn57
-         ((Nothing, Just happy_var_2)
-    )}
-
-happyReduce_197 = happySpecReduce_3  50# happyReduction_197
-happyReduction_197 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut72 happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_3 of { happy_var_3 ->
-    happyIn57
-         ((Just (reverseDeclr happy_var_1), Just happy_var_3)
-    )}}
-
-happyReduce_198 = happySpecReduce_2  50# happyReduction_198
-happyReduction_198 happy_x_2
-    happy_x_1
-     =  case happyOut57 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn57
-         (case happy_var_1 of {   (Nothing,expr) -> (Nothing,expr) {- FIXME -}
-                    ; (Just (CDeclr name derived asmname attrs node), bsz) ->
-                                        (Just (CDeclr name derived asmname (attrs++happy_var_2) node),bsz)
-                  }
-    )}}
-
-happyReduce_199 = happyMonadReduce 5# 51# happyReduction_199
-happyReduction_199 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut59 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CEnum Nothing   (Just$ reverse happy_var_4) happy_var_2)}}}
-    ) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_200 = happyMonadReduce 6# 51# happyReduction_200
-happyReduction_200 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut59 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CEnum Nothing   (Just$ reverse happy_var_4) happy_var_2)}}}
-    ) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_201 = happyMonadReduce 6# 51# happyReduction_201
-happyReduction_201 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    case happyOut59 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CEnum (Just happy_var_3) (Just$ reverse happy_var_5) happy_var_2)}}}}
-    ) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_202 = happyMonadReduce 7# 51# happyReduction_202
-happyReduction_202 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    case happyOut59 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CEnum (Just happy_var_3) (Just$ reverse happy_var_5) happy_var_2)}}}}
-    ) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_203 = happyMonadReduce 3# 51# happyReduction_203
-happyReduction_203 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_2 of { happy_var_2 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CEnum (Just happy_var_3) Nothing happy_var_2)}}}
-    ) (\r -> happyReturn (happyIn58 r))
-
-happyReduce_204 = happySpecReduce_1  52# happyReduction_204
-happyReduction_204 happy_x_1
-     =  case happyOut60 happy_x_1 of { happy_var_1 ->
-    happyIn59
-         (singleton happy_var_1
-    )}
-
-happyReduce_205 = happySpecReduce_3  52# happyReduction_205
-happyReduction_205 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut59 happy_x_1 of { happy_var_1 ->
-    case happyOut60 happy_x_3 of { happy_var_3 ->
-    happyIn59
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_206 = happySpecReduce_1  53# happyReduction_206
-happyReduction_206 happy_x_1
-     =  case happyOut125 happy_x_1 of { happy_var_1 ->
-    happyIn60
-         ((happy_var_1, Nothing)
-    )}
-
-happyReduce_207 = happySpecReduce_3  53# happyReduction_207
-happyReduction_207 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut125 happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_3 of { happy_var_3 ->
-    happyIn60
-         ((happy_var_1, Just happy_var_3)
-    )}}
-
-happyReduce_208 = happyMonadReduce 1# 54# happyReduction_208
-happyReduction_208 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CConstQual)}
-    ) (\r -> happyReturn (happyIn61 r))
-
-happyReduce_209 = happyMonadReduce 1# 54# happyReduction_209
-happyReduction_209 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CVolatQual)}
-    ) (\r -> happyReturn (happyIn61 r))
-
-happyReduce_210 = happyMonadReduce 1# 54# happyReduction_210
-happyReduction_210 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CRestrQual)}
-    ) (\r -> happyReturn (happyIn61 r))
-
-happyReduce_211 = happyMonadReduce 1# 54# happyReduction_211
-happyReduction_211 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CInlineQual)}
-    ) (\r -> happyReturn (happyIn61 r))
-
-happyReduce_212 = happySpecReduce_2  55# happyReduction_212
-happyReduction_212 happy_x_2
-    happy_x_1
-     =  case happyOut126 happy_x_1 of { happy_var_1 ->
-    case happyOut61 happy_x_2 of { happy_var_2 ->
-    happyIn62
-         (reverseList (map CAttrQual happy_var_1) `snoc` happy_var_2
-    )}}
-
-happyReduce_213 = happySpecReduce_2  55# happyReduction_213
-happyReduction_213 happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut61 happy_x_2 of { happy_var_2 ->
-    happyIn62
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_214 = happySpecReduce_3  55# happyReduction_214
-happyReduction_214 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut61 happy_x_3 of { happy_var_3 ->
-    happyIn62
-         ((happy_var_1 `rappend` map CAttrQual happy_var_2) `snoc` happy_var_3
-    )}}}
-
-happyReduce_215 = happySpecReduce_1  56# happyReduction_215
-happyReduction_215 happy_x_1
-     =  case happyOut72 happy_x_1 of { happy_var_1 ->
-    happyIn63
-         (happy_var_1
-    )}
-
-happyReduce_216 = happySpecReduce_1  56# happyReduction_216
-happyReduction_216 happy_x_1
-     =  case happyOut65 happy_x_1 of { happy_var_1 ->
-    happyIn63
-         (happy_var_1
-    )}
-
-happyReduce_217 = happySpecReduce_0  57# happyReduction_217
-happyReduction_217  =  happyIn64
-         (Nothing
-    )
-
-happyReduce_218 = happyReduce 4# 57# happyReduction_218
-happyReduction_218 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut123 happy_x_3 of { happy_var_3 ->
-    happyIn64
-         (Just happy_var_3
-    ) `HappyStk` happyRest}
-
-happyReduce_219 = happySpecReduce_1  58# happyReduction_219
-happyReduction_219 happy_x_1
-     =  case happyOut69 happy_x_1 of { happy_var_1 ->
-    happyIn65
-         (happy_var_1
-    )}
-
-happyReduce_220 = happySpecReduce_1  58# happyReduction_220
-happyReduction_220 happy_x_1
-     =  case happyOut66 happy_x_1 of { happy_var_1 ->
-    happyIn65
-         (happy_var_1
-    )}
-
-happyReduce_221 = happyMonadReduce 1# 59# happyReduction_221
-happyReduction_221 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokTyIdent _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ mkVarDeclr happy_var_1)}
-    ) (\r -> happyReturn (happyIn66 r))
-
-happyReduce_222 = happyMonadReduce 2# 59# happyReduction_222
-happyReduction_222 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokTyIdent _ happy_var_1) ->
-    case happyOut85 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ \at -> happy_var_2 (mkVarDeclr happy_var_1 at))}}
-    ) (\r -> happyReturn (happyIn66 r))
-
-happyReduce_223 = happySpecReduce_1  59# happyReduction_223
-happyReduction_223 happy_x_1
-     =  case happyOut67 happy_x_1 of { happy_var_1 ->
-    happyIn66
-         (happy_var_1
-    )}
-
-happyReduce_224 = happySpecReduce_1  60# happyReduction_224
-happyReduction_224 happy_x_1
-     =  case happyOut68 happy_x_1 of { happy_var_1 ->
-    happyIn67
-         (happy_var_1
-    )}
-
-happyReduce_225 = happyMonadReduce 2# 60# happyReduction_225
-happyReduction_225 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut66 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_2 [])}}
-    ) (\r -> happyReturn (happyIn67 r))
-
-happyReduce_226 = happyMonadReduce 3# 60# happyReduction_226
-happyReduction_226 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut66 happy_x_3 of { happy_var_3 ->
-    ( withAttribute happy_var_1 happy_var_2 $ ptrDeclr happy_var_3 [])}}}
-    ) (\r -> happyReturn (happyIn67 r))
-
-happyReduce_227 = happyMonadReduce 3# 60# happyReduction_227
-happyReduction_227 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut66 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn67 r))
-
-happyReduce_228 = happyMonadReduce 4# 60# happyReduction_228
-happyReduction_228 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut66 happy_x_4 of { happy_var_4 ->
-    ( withAttribute happy_var_1 happy_var_3 $ ptrDeclr happy_var_4 (reverse happy_var_2))}}}}
-    ) (\r -> happyReturn (happyIn67 r))
-
-happyReduce_229 = happySpecReduce_3  61# happyReduction_229
-happyReduction_229 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut67 happy_x_2 of { happy_var_2 ->
-    happyIn68
-         (happy_var_2
-    )}
-
-happyReduce_230 = happyReduce 4# 61# happyReduction_230
-happyReduction_230 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut67 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_4 of { happy_var_4 ->
-    happyIn68
-         (happy_var_4 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_231 = happyReduce 4# 61# happyReduction_231
-happyReduction_231 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut67 happy_x_3 of { happy_var_3 ->
-    happyIn68
-         (appendDeclrAttrs happy_var_2 happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_232 = happyReduce 5# 61# happyReduction_232
-happyReduction_232 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut67 happy_x_3 of { happy_var_3 ->
-    case happyOut85 happy_x_5 of { happy_var_5 ->
-    happyIn68
-         (appendDeclrAttrs happy_var_2 (happy_var_5 happy_var_3)
-    ) `HappyStk` happyRest}}}
-
-happyReduce_233 = happySpecReduce_1  62# happyReduction_233
-happyReduction_233 happy_x_1
-     =  case happyOut70 happy_x_1 of { happy_var_1 ->
-    happyIn69
-         (happy_var_1
-    )}
-
-happyReduce_234 = happyMonadReduce 4# 62# happyReduction_234
-happyReduction_234 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut71 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 [])}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_235 = happyMonadReduce 5# 62# happyReduction_235
-happyReduction_235 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut71 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_4 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_236 = happyMonadReduce 6# 62# happyReduction_236
-happyReduction_236 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut71 happy_x_5 of { happy_var_5 ->
-    ( withAttribute happy_var_1 happy_var_3 $ ptrDeclr happy_var_5 (reverse happy_var_2))}}}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_237 = happyMonadReduce 2# 62# happyReduction_237
-happyReduction_237 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut69 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_2 [])}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_238 = happyMonadReduce 3# 62# happyReduction_238
-happyReduction_238 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut69 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_239 = happyMonadReduce 4# 62# happyReduction_239
-happyReduction_239 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut69 happy_x_4 of { happy_var_4 ->
-    ( withAttribute happy_var_1 happy_var_3 $ ptrDeclr happy_var_4 (reverse happy_var_2))}}}}
-    ) (\r -> happyReturn (happyIn69 r))
-
-happyReduce_240 = happySpecReduce_3  63# happyReduction_240
-happyReduction_240 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut69 happy_x_2 of { happy_var_2 ->
-    happyIn70
-         (happy_var_2
-    )}
-
-happyReduce_241 = happyReduce 4# 63# happyReduction_241
-happyReduction_241 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut71 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_3 of { happy_var_3 ->
-    happyIn70
-         (happy_var_3 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_242 = happyReduce 4# 63# happyReduction_242
-happyReduction_242 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut69 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_4 of { happy_var_4 ->
-    happyIn70
-         (happy_var_4 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_243 = happyMonadReduce 1# 64# happyReduction_243
-happyReduction_243 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokTyIdent _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ mkVarDeclr happy_var_1)}
-    ) (\r -> happyReturn (happyIn71 r))
-
-happyReduce_244 = happySpecReduce_3  64# happyReduction_244
-happyReduction_244 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut71 happy_x_2 of { happy_var_2 ->
-    happyIn71
-         (happy_var_2
-    )}
-
-happyReduce_245 = happySpecReduce_1  65# happyReduction_245
-happyReduction_245 happy_x_1
-     =  case happyOut73 happy_x_1 of { happy_var_1 ->
-    happyIn72
-         (happy_var_1
-    )}
-
-happyReduce_246 = happySpecReduce_1  65# happyReduction_246
-happyReduction_246 happy_x_1
-     =  case happyOut75 happy_x_1 of { happy_var_1 ->
-    happyIn72
-         (happy_var_1
-    )}
-
-happyReduce_247 = happySpecReduce_1  66# happyReduction_247
-happyReduction_247 happy_x_1
-     =  case happyOut74 happy_x_1 of { happy_var_1 ->
-    happyIn73
-         (happy_var_1
-    )}
-
-happyReduce_248 = happyMonadReduce 2# 66# happyReduction_248
-happyReduction_248 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_2 [])}}
-    ) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_249 = happyMonadReduce 3# 66# happyReduction_249
-happyReduction_249 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut72 happy_x_3 of { happy_var_3 ->
-    ( withAttribute happy_var_1 happy_var_2 $ ptrDeclr happy_var_3 [])}}}
-    ) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_250 = happyMonadReduce 3# 66# happyReduction_250
-happyReduction_250 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut72 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_251 = happyMonadReduce 4# 66# happyReduction_251
-happyReduction_251 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut72 happy_x_4 of { happy_var_4 ->
-    ( withAttribute happy_var_1 happy_var_3 $ ptrDeclr happy_var_4 (reverse happy_var_2))}}}}
-    ) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_252 = happySpecReduce_2  67# happyReduction_252
-happyReduction_252 happy_x_2
-    happy_x_1
-     =  case happyOut75 happy_x_1 of { happy_var_1 ->
-    case happyOut85 happy_x_2 of { happy_var_2 ->
-    happyIn74
-         (happy_var_2 happy_var_1
-    )}}
-
-happyReduce_253 = happySpecReduce_3  67# happyReduction_253
-happyReduction_253 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut73 happy_x_2 of { happy_var_2 ->
-    happyIn74
-         (happy_var_2
-    )}
-
-happyReduce_254 = happyReduce 4# 67# happyReduction_254
-happyReduction_254 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut73 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_4 of { happy_var_4 ->
-    happyIn74
-         (happy_var_4 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_255 = happyReduce 4# 67# happyReduction_255
-happyReduction_255 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut73 happy_x_3 of { happy_var_3 ->
-    happyIn74
-         (appendDeclrAttrs happy_var_2 happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_256 = happyReduce 5# 67# happyReduction_256
-happyReduction_256 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut73 happy_x_3 of { happy_var_3 ->
-    case happyOut85 happy_x_5 of { happy_var_5 ->
-    happyIn74
-         (appendDeclrAttrs happy_var_2 (happy_var_5 happy_var_3)
-    ) `HappyStk` happyRest}}}
-
-happyReduce_257 = happyMonadReduce 1# 68# happyReduction_257
-happyReduction_257 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ mkVarDeclr happy_var_1)}
-    ) (\r -> happyReturn (happyIn75 r))
-
-happyReduce_258 = happySpecReduce_3  68# happyReduction_258
-happyReduction_258 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut75 happy_x_2 of { happy_var_2 ->
-    happyIn75
-         (happy_var_2
-    )}
-
-happyReduce_259 = happyReduce 4# 68# happyReduction_259
-happyReduction_259 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut75 happy_x_3 of { happy_var_3 ->
-    happyIn75
-         (appendDeclrAttrs happy_var_2 happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_260 = happySpecReduce_1  69# happyReduction_260
-happyReduction_260 happy_x_1
-     =  case happyOut77 happy_x_1 of { happy_var_1 ->
-    happyIn76
-         (reverseDeclr happy_var_1
-    )}
-
-happyReduce_261 = happySpecReduce_1  70# happyReduction_261
-happyReduction_261 happy_x_1
-     =  case happyOut78 happy_x_1 of { happy_var_1 ->
-    happyIn77
-         (happy_var_1
-    )}
-
-happyReduce_262 = happyMonadReduce 2# 70# happyReduction_262
-happyReduction_262 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut77 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_2 [])}}
-    ) (\r -> happyReturn (happyIn77 r))
-
-happyReduce_263 = happyMonadReduce 3# 70# happyReduction_263
-happyReduction_263 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut77 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn77 r))
-
-happyReduce_264 = happyMonadReduce 4# 71# happyReduction_264
-happyReduction_264 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut75 happy_x_1 of { happy_var_1 ->
-    case happyOut82 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ funDeclr happy_var_1 (Left $ reverse happy_var_3) [])}}
-    ) (\r -> happyReturn (happyIn78 r))
-
-happyReduce_265 = happySpecReduce_3  71# happyReduction_265
-happyReduction_265 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut77 happy_x_2 of { happy_var_2 ->
-    happyIn78
-         (happy_var_2
-    )}
-
-happyReduce_266 = happyReduce 4# 71# happyReduction_266
-happyReduction_266 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut77 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_4 of { happy_var_4 ->
-    happyIn78
-         (happy_var_4 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_267 = happySpecReduce_0  72# happyReduction_267
-happyReduction_267  =  happyIn79
-         (([], False)
-    )
-
-happyReduce_268 = happySpecReduce_1  72# happyReduction_268
-happyReduction_268 happy_x_1
-     =  case happyOut80 happy_x_1 of { happy_var_1 ->
-    happyIn79
-         ((reverse happy_var_1, False)
-    )}
-
-happyReduce_269 = happySpecReduce_3  72# happyReduction_269
-happyReduction_269 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut80 happy_x_1 of { happy_var_1 ->
-    happyIn79
-         ((reverse happy_var_1, True)
-    )}
-
-happyReduce_270 = happySpecReduce_1  73# happyReduction_270
-happyReduction_270 happy_x_1
-     =  case happyOut81 happy_x_1 of { happy_var_1 ->
-    happyIn80
-         (singleton happy_var_1
-    )}
-
-happyReduce_271 = happySpecReduce_3  73# happyReduction_271
-happyReduction_271 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut80 happy_x_1 of { happy_var_1 ->
-    case happyOut81 happy_x_3 of { happy_var_3 ->
-    happyIn80
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_272 = happyMonadReduce 1# 74# happyReduction_272
-happyReduction_272 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_273 = happyMonadReduce 2# 74# happyReduction_273
-happyReduction_273 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_274 = happyMonadReduce 3# 74# happyReduction_274
-happyReduction_274 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr $! appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_275 = happyMonadReduce 3# 74# happyReduction_275
-happyReduction_275 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut37 happy_x_1 of { happy_var_1 ->
-    case happyOut66 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr $! appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_276 = happyMonadReduce 1# 74# happyReduction_276
-happyReduction_276 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl (reverse happy_var_1) [])}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_277 = happyMonadReduce 2# 74# happyReduction_277
-happyReduction_277 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl (reverse happy_var_1) [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_278 = happyMonadReduce 3# 74# happyReduction_278
-happyReduction_278 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut38 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl (reverse happy_var_1) [(Just (reverseDeclr $! appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_279 = happyMonadReduce 1# 74# happyReduction_279
-happyReduction_279 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_280 = happyMonadReduce 2# 74# happyReduction_280
-happyReduction_280 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_281 = happyMonadReduce 3# 74# happyReduction_281
-happyReduction_281 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr $! appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_282 = happyMonadReduce 3# 74# happyReduction_282
-happyReduction_282 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut66 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr $! appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_283 = happyMonadReduce 1# 74# happyReduction_283
-happyReduction_283 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1) [])}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_284 = happyMonadReduce 2# 74# happyReduction_284
-happyReduction_284 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1 ++ liftCAttrs happy_var_2) [])}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_285 = happyMonadReduce 2# 74# happyReduction_285
-happyReduction_285 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1) [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_286 = happyMonadReduce 3# 74# happyReduction_286
-happyReduction_286 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut72 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1) [(Just (reverseDeclr$ appendDeclrAttrs happy_var_3 happy_var_2), Nothing, Nothing)])}}}
-    ) (\r -> happyReturn (happyIn81 r))
-
-happyReduce_287 = happySpecReduce_1  75# happyReduction_287
-happyReduction_287 happy_x_1
-     =  case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    happyIn82
-         (singleton happy_var_1
-    )}
-
-happyReduce_288 = happySpecReduce_3  75# happyReduction_288
-happyReduction_288 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut82 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_3 of { (CTokIdent  _ happy_var_3) ->
-    happyIn82
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_289 = happyMonadReduce 1# 76# happyReduction_289
-happyReduction_289 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn83 r))
-
-happyReduce_290 = happyMonadReduce 2# 76# happyReduction_290
-happyReduction_290 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut41 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl happy_var_1 [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn83 r))
-
-happyReduce_291 = happyMonadReduce 2# 76# happyReduction_291
-happyReduction_291 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1 ++ liftCAttrs happy_var_2) [])}}
-    ) (\r -> happyReturn (happyIn83 r))
-
-happyReduce_292 = happyMonadReduce 2# 76# happyReduction_292
-happyReduction_292 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut62 happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CDecl (liftTypeQuals happy_var_1) [(Just (reverseDeclr happy_var_2), Nothing, Nothing)])}}
-    ) (\r -> happyReturn (happyIn83 r))
-
-happyReduce_293 = happySpecReduce_1  77# happyReduction_293
-happyReduction_293 happy_x_1
-     =  case happyOut88 happy_x_1 of { happy_var_1 ->
-    happyIn84
-         (happy_var_1
-    )}
-
-happyReduce_294 = happySpecReduce_1  77# happyReduction_294
-happyReduction_294 happy_x_1
-     =  case happyOut89 happy_x_1 of { happy_var_1 ->
-    happyIn84
-         (happy_var_1
-    )}
-
-happyReduce_295 = happySpecReduce_1  77# happyReduction_295
-happyReduction_295 happy_x_1
-     =  case happyOut85 happy_x_1 of { happy_var_1 ->
-    happyIn84
-         (happy_var_1 emptyDeclr
-    )}
-
-happyReduce_296 = happySpecReduce_1  78# happyReduction_296
-happyReduction_296 happy_x_1
-     =  case happyOut86 happy_x_1 of { happy_var_1 ->
-    happyIn85
-         (happy_var_1
-    )}
-
-happyReduce_297 = happyMonadReduce 3# 78# happyReduction_297
-happyReduction_297 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut79 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ \at declr -> case happy_var_2 of
-             (params, variadic) -> funDeclr declr (Right (params,variadic)) [] at)}}
-    ) (\r -> happyReturn (happyIn85 r))
-
-happyReduce_298 = happySpecReduce_1  79# happyReduction_298
-happyReduction_298 happy_x_1
-     =  case happyOut87 happy_x_1 of { happy_var_1 ->
-    happyIn86
-         (happy_var_1
-    )}
-
-happyReduce_299 = happySpecReduce_2  79# happyReduction_299
-happyReduction_299 happy_x_2
-    happy_x_1
-     =  case happyOut86 happy_x_1 of { happy_var_1 ->
-    case happyOut87 happy_x_2 of { happy_var_2 ->
-    happyIn86
-         (\decl -> happy_var_2 (happy_var_1 decl)
-    )}}
-
-happyReduce_300 = happyMonadReduce 3# 80# happyReduction_300
-happyReduction_300 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut120 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ \at declr -> arrDeclr declr [] False False happy_var_2 at)}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_301 = happyMonadReduce 4# 80# happyReduction_301
-happyReduction_301 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut120 happy_x_3 of { happy_var_3 ->
-    ( withAttributePF happy_var_1 happy_var_2 $ \at declr -> arrDeclr declr [] False False happy_var_3 at)}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_302 = happyMonadReduce 4# 80# happyReduction_302
-happyReduction_302 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut120 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ \at declr -> arrDeclr declr (reverse happy_var_2) False False happy_var_3 at)}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_303 = happyMonadReduce 5# 80# happyReduction_303
-happyReduction_303 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut120 happy_x_4 of { happy_var_4 ->
-    ( withAttributePF happy_var_1 happy_var_3 $ \at declr -> arrDeclr declr (reverse happy_var_2) False False happy_var_4 at)}}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_304 = happyMonadReduce 5# 80# happyReduction_304
-happyReduction_304 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut115 happy_x_4 of { happy_var_4 ->
-    ( withAttributePF happy_var_1 happy_var_3 $ \at declr -> arrDeclr declr [] False True (Just happy_var_4) at)}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_305 = happyMonadReduce 6# 80# happyReduction_305
-happyReduction_305 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_3 of { happy_var_3 ->
-    case happyOut126 happy_x_4 of { happy_var_4 ->
-    case happyOut115 happy_x_5 of { happy_var_5 ->
-    ( withAttributePF happy_var_1 happy_var_4 $ \at declr -> arrDeclr declr (reverse happy_var_3) False True (Just happy_var_5) at)}}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_306 = happyMonadReduce 7# 80# happyReduction_306
-happyReduction_306 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    case happyOut126 happy_x_5 of { happy_var_5 ->
-    case happyOut115 happy_x_6 of { happy_var_6 ->
-    ( withAttributePF happy_var_1 (happy_var_3 ++ happy_var_5) $ \at declr -> arrDeclr declr (reverse happy_var_2) False True  (Just happy_var_6) at)}}}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_307 = happyMonadReduce 4# 80# happyReduction_307
-happyReduction_307 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withAttributePF happy_var_1 happy_var_3 $ \at declr -> arrDeclr declr [] True False Nothing at)}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_308 = happyMonadReduce 5# 80# happyReduction_308
-happyReduction_308 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_4 of { happy_var_4 ->
-    ( withAttributePF happy_var_1 (happy_var_2 ++ happy_var_4) $ \at declr -> arrDeclr declr [] True False Nothing at)}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_309 = happyMonadReduce 5# 80# happyReduction_309
-happyReduction_309 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_4 of { happy_var_4 ->
-    ( withAttributePF happy_var_1 happy_var_4 $ \at declr -> arrDeclr declr (reverse happy_var_2) True False Nothing at)}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_310 = happyMonadReduce 6# 80# happyReduction_310
-happyReduction_310 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut127 happy_x_3 of { happy_var_3 ->
-    case happyOut126 happy_x_5 of { happy_var_5 ->
-    ( withAttributePF happy_var_1 (happy_var_3 ++ happy_var_5) $ \at declr -> arrDeclr declr (reverse happy_var_2) True False Nothing at)}}}}
-    ) (\r -> happyReturn (happyIn87 r))
-
-happyReduce_311 = happyMonadReduce 1# 81# happyReduction_311
-happyReduction_311 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr emptyDeclr [])}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_312 = happyMonadReduce 3# 81# happyReduction_312
-happyReduction_312 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut126 happy_x_3 of { happy_var_3 ->
-    ( withAttribute happy_var_1 happy_var_3 $ ptrDeclr emptyDeclr (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_313 = happyMonadReduce 2# 81# happyReduction_313
-happyReduction_313 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut84 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_2 [])}}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_314 = happyMonadReduce 3# 81# happyReduction_314
-happyReduction_314 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut62 happy_x_2 of { happy_var_2 ->
-    case happyOut84 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ ptrDeclr happy_var_3 (reverse happy_var_2))}}}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_315 = happyMonadReduce 2# 81# happyReduction_315
-happyReduction_315 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    ( withAttribute happy_var_1 happy_var_2 $ ptrDeclr emptyDeclr [])}}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_316 = happyMonadReduce 3# 81# happyReduction_316
-happyReduction_316 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut84 happy_x_3 of { happy_var_3 ->
-    ( withAttribute happy_var_1 happy_var_2 $ ptrDeclr happy_var_3 [])}}}
-    ) (\r -> happyReturn (happyIn88 r))
-
-happyReduce_317 = happySpecReduce_3  82# happyReduction_317
-happyReduction_317 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut88 happy_x_2 of { happy_var_2 ->
-    happyIn89
-         (happy_var_2
-    )}
-
-happyReduce_318 = happySpecReduce_3  82# happyReduction_318
-happyReduction_318 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut89 happy_x_2 of { happy_var_2 ->
-    happyIn89
-         (happy_var_2
-    )}
-
-happyReduce_319 = happySpecReduce_3  82# happyReduction_319
-happyReduction_319 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut85 happy_x_2 of { happy_var_2 ->
-    happyIn89
-         (happy_var_2 emptyDeclr
-    )}
-
-happyReduce_320 = happyReduce 4# 82# happyReduction_320
-happyReduction_320 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut88 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_4 of { happy_var_4 ->
-    happyIn89
-         (happy_var_4 happy_var_2
-    ) `HappyStk` happyRest}}
-
-happyReduce_321 = happyReduce 4# 82# happyReduction_321
-happyReduction_321 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut88 happy_x_3 of { happy_var_3 ->
-    happyIn89
-         (appendDeclrAttrs happy_var_2 happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_322 = happyReduce 4# 82# happyReduction_322
-happyReduction_322 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut89 happy_x_3 of { happy_var_3 ->
-    happyIn89
-         (appendDeclrAttrs happy_var_2 happy_var_3
-    ) `HappyStk` happyRest}}
-
-happyReduce_323 = happyReduce 4# 82# happyReduction_323
-happyReduction_323 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut85 happy_x_3 of { happy_var_3 ->
-    happyIn89
-         (appendDeclrAttrs happy_var_2 (happy_var_3 emptyDeclr)
-    ) `HappyStk` happyRest}}
-
-happyReduce_324 = happyReduce 5# 82# happyReduction_324
-happyReduction_324 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut127 happy_x_2 of { happy_var_2 ->
-    case happyOut88 happy_x_3 of { happy_var_3 ->
-    case happyOut85 happy_x_5 of { happy_var_5 ->
-    happyIn89
-         (appendDeclrAttrs happy_var_2 (happy_var_5 happy_var_3)
-    ) `HappyStk` happyRest}}}
-
-happyReduce_325 = happySpecReduce_2  82# happyReduction_325
-happyReduction_325 happy_x_2
-    happy_x_1
-     =  case happyOut89 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn89
-         (appendDeclrAttrs happy_var_2 happy_var_1
-    )}}
-
-happyReduce_326 = happyMonadReduce 1# 83# happyReduction_326
-happyReduction_326 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut115 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CInitExpr happy_var_1)}
-    ) (\r -> happyReturn (happyIn90 r))
-
-happyReduce_327 = happyMonadReduce 3# 83# happyReduction_327
-happyReduction_327 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut92 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CInitList (reverse happy_var_2))}}
-    ) (\r -> happyReturn (happyIn90 r))
-
-happyReduce_328 = happyMonadReduce 4# 83# happyReduction_328
-happyReduction_328 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut92 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CInitList (reverse happy_var_2))}}
-    ) (\r -> happyReturn (happyIn90 r))
-
-happyReduce_329 = happySpecReduce_0  84# happyReduction_329
-happyReduction_329  =  happyIn91
-         (Nothing
-    )
-
-happyReduce_330 = happySpecReduce_2  84# happyReduction_330
-happyReduction_330 happy_x_2
-    happy_x_1
-     =  case happyOut90 happy_x_2 of { happy_var_2 ->
-    happyIn91
-         (Just happy_var_2
-    )}
-
-happyReduce_331 = happySpecReduce_0  85# happyReduction_331
-happyReduction_331  =  happyIn92
-         (empty
-    )
-
-happyReduce_332 = happySpecReduce_1  85# happyReduction_332
-happyReduction_332 happy_x_1
-     =  case happyOut90 happy_x_1 of { happy_var_1 ->
-    happyIn92
-         (singleton ([],happy_var_1)
-    )}
-
-happyReduce_333 = happySpecReduce_2  85# happyReduction_333
-happyReduction_333 happy_x_2
-    happy_x_1
-     =  case happyOut93 happy_x_1 of { happy_var_1 ->
-    case happyOut90 happy_x_2 of { happy_var_2 ->
-    happyIn92
-         (singleton (happy_var_1,happy_var_2)
-    )}}
-
-happyReduce_334 = happySpecReduce_3  85# happyReduction_334
-happyReduction_334 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut92 happy_x_1 of { happy_var_1 ->
-    case happyOut90 happy_x_3 of { happy_var_3 ->
-    happyIn92
-         (happy_var_1 `snoc` ([],happy_var_3)
-    )}}
-
-happyReduce_335 = happyReduce 4# 85# happyReduction_335
-happyReduction_335 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut92 happy_x_1 of { happy_var_1 ->
-    case happyOut93 happy_x_3 of { happy_var_3 ->
-    case happyOut90 happy_x_4 of { happy_var_4 ->
-    happyIn92
-         (happy_var_1 `snoc` (happy_var_3,happy_var_4)
-    ) `HappyStk` happyRest}}}
-
-happyReduce_336 = happySpecReduce_2  86# happyReduction_336
-happyReduction_336 happy_x_2
-    happy_x_1
-     =  case happyOut94 happy_x_1 of { happy_var_1 ->
-    happyIn93
-         (reverse happy_var_1
-    )}
-
-happyReduce_337 = happyMonadReduce 2# 86# happyReduction_337
-happyReduction_337 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut125 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ \at -> [CMemberDesig happy_var_1 at])}
-    ) (\r -> happyReturn (happyIn93 r))
-
-happyReduce_338 = happySpecReduce_1  86# happyReduction_338
-happyReduction_338 happy_x_1
-     =  case happyOut96 happy_x_1 of { happy_var_1 ->
-    happyIn93
-         ([happy_var_1]
-    )}
-
-happyReduce_339 = happySpecReduce_1  87# happyReduction_339
-happyReduction_339 happy_x_1
-     =  case happyOut95 happy_x_1 of { happy_var_1 ->
-    happyIn94
-         (singleton happy_var_1
-    )}
-
-happyReduce_340 = happySpecReduce_2  87# happyReduction_340
-happyReduction_340 happy_x_2
-    happy_x_1
-     =  case happyOut94 happy_x_1 of { happy_var_1 ->
-    case happyOut95 happy_x_2 of { happy_var_2 ->
-    happyIn94
-         (happy_var_1 `snoc` happy_var_2
-    )}}
-
-happyReduce_341 = happyMonadReduce 3# 88# happyReduction_341
-happyReduction_341 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CArrDesig happy_var_2)}}
-    ) (\r -> happyReturn (happyIn95 r))
-
-happyReduce_342 = happyMonadReduce 2# 88# happyReduction_342
-happyReduction_342 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CMemberDesig happy_var_2)}}
-    ) (\r -> happyReturn (happyIn95 r))
-
-happyReduce_343 = happySpecReduce_1  88# happyReduction_343
-happyReduction_343 happy_x_1
-     =  case happyOut96 happy_x_1 of { happy_var_1 ->
-    happyIn95
-         (happy_var_1
-    )}
-
-happyReduce_344 = happyMonadReduce 5# 89# happyReduction_344
-happyReduction_344 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_2 of { happy_var_2 ->
-    case happyOut121 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CRangeDesig happy_var_2 happy_var_4)}}}
-    ) (\r -> happyReturn (happyIn96 r))
-
-happyReduce_345 = happyMonadReduce 1# 90# happyReduction_345
-happyReduction_345 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ CVar happy_var_1)}
-    ) (\r -> happyReturn (happyIn97 r))
-
-happyReduce_346 = happySpecReduce_1  90# happyReduction_346
-happyReduction_346 happy_x_1
-     =  case happyOut122 happy_x_1 of { happy_var_1 ->
-    happyIn97
-         (CConst happy_var_1
-    )}
-
-happyReduce_347 = happySpecReduce_1  90# happyReduction_347
-happyReduction_347 happy_x_1
-     =  case happyOut123 happy_x_1 of { happy_var_1 ->
-    happyIn97
-         (CConst (liftStrLit happy_var_1)
-    )}
-
-happyReduce_348 = happySpecReduce_3  90# happyReduction_348
-happyReduction_348 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut117 happy_x_2 of { happy_var_2 ->
-    happyIn97
-         (happy_var_2
-    )}
-
-happyReduce_349 = happyMonadReduce 3# 90# happyReduction_349
-happyReduction_349 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut14 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CStatExpr happy_var_2)}}
-    ) (\r -> happyReturn (happyIn97 r))
-
-happyReduce_350 = happyMonadReduce 6# 90# happyReduction_350
-happyReduction_350 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut115 happy_x_3 of { happy_var_3 ->
-    case happyOut83 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CBuiltinExpr . CBuiltinVaArg happy_var_3 happy_var_5)}}}
-    ) (\r -> happyReturn (happyIn97 r))
-
-happyReduce_351 = happyMonadReduce 6# 90# happyReduction_351
-happyReduction_351 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_3 of { happy_var_3 ->
-    case happyOut98 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CBuiltinExpr . CBuiltinOffsetOf happy_var_3 (reverse happy_var_5))}}}
-    ) (\r -> happyReturn (happyIn97 r))
-
-happyReduce_352 = happyMonadReduce 6# 90# happyReduction_352
-happyReduction_352 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_3 of { happy_var_3 ->
-    case happyOut83 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CBuiltinExpr . CBuiltinTypesCompatible happy_var_3 happy_var_5)}}}
-    ) (\r -> happyReturn (happyIn97 r))
-
-happyReduce_353 = happyMonadReduce 1# 91# happyReduction_353
-happyReduction_353 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut125 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ singleton . CMemberDesig happy_var_1)}
-    ) (\r -> happyReturn (happyIn98 r))
-
-happyReduce_354 = happyMonadReduce 3# 91# happyReduction_354
-happyReduction_354 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut98 happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_3 $ (happy_var_1 `snoc`) . CMemberDesig happy_var_3)}}
-    ) (\r -> happyReturn (happyIn98 r))
-
-happyReduce_355 = happyMonadReduce 4# 91# happyReduction_355
-happyReduction_355 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut98 happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_3 $ (happy_var_1 `snoc`) . CArrDesig happy_var_3)}}
-    ) (\r -> happyReturn (happyIn98 r))
-
-happyReduce_356 = happySpecReduce_1  92# happyReduction_356
-happyReduction_356 happy_x_1
-     =  case happyOut97 happy_x_1 of { happy_var_1 ->
-    happyIn99
-         (happy_var_1
-    )}
-
-happyReduce_357 = happyMonadReduce 4# 92# happyReduction_357
-happyReduction_357 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CIndex happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_358 = happyMonadReduce 3# 92# happyReduction_358
-happyReduction_358 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CCall happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_359 = happyMonadReduce 4# 92# happyReduction_359
-happyReduction_359 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    case happyOut100 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CCall happy_var_1 (reverse happy_var_3))}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_360 = happyMonadReduce 3# 92# happyReduction_360
-happyReduction_360 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CMember happy_var_1 happy_var_3 False)}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_361 = happyMonadReduce 3# 92# happyReduction_361
-happyReduction_361 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CMember happy_var_1 happy_var_3 True)}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_362 = happyMonadReduce 2# 92# happyReduction_362
-happyReduction_362 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CUnary CPostIncOp happy_var_1)}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_363 = happyMonadReduce 2# 92# happyReduction_363
-happyReduction_363 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut99 happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ CUnary CPostDecOp happy_var_1)}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_364 = happyMonadReduce 6# 92# happyReduction_364
-happyReduction_364 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_2 of { happy_var_2 ->
-    case happyOut92 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CCompoundLit happy_var_2 (reverse happy_var_5))}}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_365 = happyMonadReduce 7# 92# happyReduction_365
-happyReduction_365 (happy_x_7 `HappyStk`
-    happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_2 of { happy_var_2 ->
-    case happyOut92 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CCompoundLit happy_var_2 (reverse happy_var_5))}}}
-    ) (\r -> happyReturn (happyIn99 r))
-
-happyReduce_366 = happySpecReduce_1  93# happyReduction_366
-happyReduction_366 happy_x_1
-     =  case happyOut115 happy_x_1 of { happy_var_1 ->
-    happyIn100
-         (singleton happy_var_1
-    )}
-
-happyReduce_367 = happySpecReduce_3  93# happyReduction_367
-happyReduction_367 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut100 happy_x_1 of { happy_var_1 ->
-    case happyOut115 happy_x_3 of { happy_var_3 ->
-    happyIn100
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_368 = happySpecReduce_1  94# happyReduction_368
-happyReduction_368 happy_x_1
-     =  case happyOut99 happy_x_1 of { happy_var_1 ->
-    happyIn101
-         (happy_var_1
-    )}
-
-happyReduce_369 = happyMonadReduce 2# 94# happyReduction_369
-happyReduction_369 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CUnary CPreIncOp happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_370 = happyMonadReduce 2# 94# happyReduction_370
-happyReduction_370 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CUnary CPreDecOp happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_371 = happySpecReduce_2  94# happyReduction_371
-happyReduction_371 happy_x_2
-    happy_x_1
-     =  case happyOut103 happy_x_2 of { happy_var_2 ->
-    happyIn101
-         (happy_var_2
-    )}
-
-happyReduce_372 = happyMonadReduce 2# 94# happyReduction_372
-happyReduction_372 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut102 happy_x_1 of { happy_var_1 ->
-    case happyOut103 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CUnary (unL happy_var_1) happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_373 = happyMonadReduce 2# 94# happyReduction_373
-happyReduction_373 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CSizeofExpr happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_374 = happyMonadReduce 4# 94# happyReduction_374
-happyReduction_374 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CSizeofType happy_var_3)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_375 = happyMonadReduce 2# 94# happyReduction_375
-happyReduction_375 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CAlignofExpr happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_376 = happyMonadReduce 4# 94# happyReduction_376
-happyReduction_376 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CAlignofType happy_var_3)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_377 = happyMonadReduce 2# 94# happyReduction_377
-happyReduction_377 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CComplexReal happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_378 = happyMonadReduce 2# 94# happyReduction_378
-happyReduction_378 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut101 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CComplexImag happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_379 = happyMonadReduce 2# 94# happyReduction_379
-happyReduction_379 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut125 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ CLabAddrExpr happy_var_2)}}
-    ) (\r -> happyReturn (happyIn101 r))
-
-happyReduce_380 = happySpecReduce_1  95# happyReduction_380
-happyReduction_380 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CAdrOp  (posOf happy_var_1)
-    )}
-
-happyReduce_381 = happySpecReduce_1  95# happyReduction_381
-happyReduction_381 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CIndOp  (posOf happy_var_1)
-    )}
-
-happyReduce_382 = happySpecReduce_1  95# happyReduction_382
-happyReduction_382 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CPlusOp (posOf happy_var_1)
-    )}
-
-happyReduce_383 = happySpecReduce_1  95# happyReduction_383
-happyReduction_383 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CMinOp  (posOf happy_var_1)
-    )}
-
-happyReduce_384 = happySpecReduce_1  95# happyReduction_384
-happyReduction_384 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CCompOp (posOf happy_var_1)
-    )}
-
-happyReduce_385 = happySpecReduce_1  95# happyReduction_385
-happyReduction_385 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn102
-         (L CNegOp  (posOf happy_var_1)
-    )}
-
-happyReduce_386 = happySpecReduce_1  96# happyReduction_386
-happyReduction_386 happy_x_1
-     =  case happyOut101 happy_x_1 of { happy_var_1 ->
-    happyIn103
-         (happy_var_1
-    )}
-
-happyReduce_387 = happyMonadReduce 4# 96# happyReduction_387
-happyReduction_387 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut83 happy_x_2 of { happy_var_2 ->
-    case happyOut103 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CCast happy_var_2 happy_var_4)}}}
-    ) (\r -> happyReturn (happyIn103 r))
-
-happyReduce_388 = happySpecReduce_1  97# happyReduction_388
-happyReduction_388 happy_x_1
-     =  case happyOut103 happy_x_1 of { happy_var_1 ->
-    happyIn104
-         (happy_var_1
-    )}
-
-happyReduce_389 = happyMonadReduce 3# 97# happyReduction_389
-happyReduction_389 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut104 happy_x_1 of { happy_var_1 ->
-    case happyOut103 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CMulOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn104 r))
-
-happyReduce_390 = happyMonadReduce 3# 97# happyReduction_390
-happyReduction_390 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut104 happy_x_1 of { happy_var_1 ->
-    case happyOut103 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CDivOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn104 r))
-
-happyReduce_391 = happyMonadReduce 3# 97# happyReduction_391
-happyReduction_391 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut104 happy_x_1 of { happy_var_1 ->
-    case happyOut103 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CRmdOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn104 r))
-
-happyReduce_392 = happySpecReduce_1  98# happyReduction_392
-happyReduction_392 happy_x_1
-     =  case happyOut104 happy_x_1 of { happy_var_1 ->
-    happyIn105
-         (happy_var_1
-    )}
-
-happyReduce_393 = happyMonadReduce 3# 98# happyReduction_393
-happyReduction_393 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut105 happy_x_1 of { happy_var_1 ->
-    case happyOut104 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CAddOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn105 r))
-
-happyReduce_394 = happyMonadReduce 3# 98# happyReduction_394
-happyReduction_394 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut105 happy_x_1 of { happy_var_1 ->
-    case happyOut104 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CSubOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn105 r))
-
-happyReduce_395 = happySpecReduce_1  99# happyReduction_395
-happyReduction_395 happy_x_1
-     =  case happyOut105 happy_x_1 of { happy_var_1 ->
-    happyIn106
-         (happy_var_1
-    )}
-
-happyReduce_396 = happyMonadReduce 3# 99# happyReduction_396
-happyReduction_396 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut106 happy_x_1 of { happy_var_1 ->
-    case happyOut105 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CShlOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn106 r))
-
-happyReduce_397 = happyMonadReduce 3# 99# happyReduction_397
-happyReduction_397 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut106 happy_x_1 of { happy_var_1 ->
-    case happyOut105 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CShrOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn106 r))
-
-happyReduce_398 = happySpecReduce_1  100# happyReduction_398
-happyReduction_398 happy_x_1
-     =  case happyOut106 happy_x_1 of { happy_var_1 ->
-    happyIn107
-         (happy_var_1
-    )}
-
-happyReduce_399 = happyMonadReduce 3# 100# happyReduction_399
-happyReduction_399 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut107 happy_x_1 of { happy_var_1 ->
-    case happyOut106 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CLeOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn107 r))
-
-happyReduce_400 = happyMonadReduce 3# 100# happyReduction_400
-happyReduction_400 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut107 happy_x_1 of { happy_var_1 ->
-    case happyOut106 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CGrOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn107 r))
-
-happyReduce_401 = happyMonadReduce 3# 100# happyReduction_401
-happyReduction_401 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut107 happy_x_1 of { happy_var_1 ->
-    case happyOut106 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CLeqOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn107 r))
-
-happyReduce_402 = happyMonadReduce 3# 100# happyReduction_402
-happyReduction_402 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut107 happy_x_1 of { happy_var_1 ->
-    case happyOut106 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CGeqOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn107 r))
-
-happyReduce_403 = happySpecReduce_1  101# happyReduction_403
-happyReduction_403 happy_x_1
-     =  case happyOut107 happy_x_1 of { happy_var_1 ->
-    happyIn108
-         (happy_var_1
-    )}
-
-happyReduce_404 = happyMonadReduce 3# 101# happyReduction_404
-happyReduction_404 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut108 happy_x_1 of { happy_var_1 ->
-    case happyOut107 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CEqOp  happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn108 r))
-
-happyReduce_405 = happyMonadReduce 3# 101# happyReduction_405
-happyReduction_405 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut108 happy_x_1 of { happy_var_1 ->
-    case happyOut107 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CNeqOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn108 r))
-
-happyReduce_406 = happySpecReduce_1  102# happyReduction_406
-happyReduction_406 happy_x_1
-     =  case happyOut108 happy_x_1 of { happy_var_1 ->
-    happyIn109
-         (happy_var_1
-    )}
-
-happyReduce_407 = happyMonadReduce 3# 102# happyReduction_407
-happyReduction_407 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut109 happy_x_1 of { happy_var_1 ->
-    case happyOut108 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CAndOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn109 r))
-
-happyReduce_408 = happySpecReduce_1  103# happyReduction_408
-happyReduction_408 happy_x_1
-     =  case happyOut109 happy_x_1 of { happy_var_1 ->
-    happyIn110
-         (happy_var_1
-    )}
-
-happyReduce_409 = happyMonadReduce 3# 103# happyReduction_409
-happyReduction_409 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut110 happy_x_1 of { happy_var_1 ->
-    case happyOut109 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CXorOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn110 r))
-
-happyReduce_410 = happySpecReduce_1  104# happyReduction_410
-happyReduction_410 happy_x_1
-     =  case happyOut110 happy_x_1 of { happy_var_1 ->
-    happyIn111
-         (happy_var_1
-    )}
-
-happyReduce_411 = happyMonadReduce 3# 104# happyReduction_411
-happyReduction_411 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut111 happy_x_1 of { happy_var_1 ->
-    case happyOut110 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary COrOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn111 r))
-
-happyReduce_412 = happySpecReduce_1  105# happyReduction_412
-happyReduction_412 happy_x_1
-     =  case happyOut111 happy_x_1 of { happy_var_1 ->
-    happyIn112
-         (happy_var_1
-    )}
-
-happyReduce_413 = happyMonadReduce 3# 105# happyReduction_413
-happyReduction_413 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut112 happy_x_1 of { happy_var_1 ->
-    case happyOut111 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CLndOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn112 r))
-
-happyReduce_414 = happySpecReduce_1  106# happyReduction_414
-happyReduction_414 happy_x_1
-     =  case happyOut112 happy_x_1 of { happy_var_1 ->
-    happyIn113
-         (happy_var_1
-    )}
-
-happyReduce_415 = happyMonadReduce 3# 106# happyReduction_415
-happyReduction_415 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut113 happy_x_1 of { happy_var_1 ->
-    case happyOut112 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CBinary CLorOp happy_var_1 happy_var_3)}}
-    ) (\r -> happyReturn (happyIn113 r))
-
-happyReduce_416 = happySpecReduce_1  107# happyReduction_416
-happyReduction_416 happy_x_1
-     =  case happyOut113 happy_x_1 of { happy_var_1 ->
-    happyIn114
-         (happy_var_1
-    )}
-
-happyReduce_417 = happyMonadReduce 5# 107# happyReduction_417
-happyReduction_417 (happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut113 happy_x_1 of { happy_var_1 ->
-    case happyOut117 happy_x_3 of { happy_var_3 ->
-    case happyOut114 happy_x_5 of { happy_var_5 ->
-    ( withNodeInfo happy_var_1 $ CCond happy_var_1 (Just happy_var_3) happy_var_5)}}}
-    ) (\r -> happyReturn (happyIn114 r))
-
-happyReduce_418 = happyMonadReduce 4# 107# happyReduction_418
-happyReduction_418 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut113 happy_x_1 of { happy_var_1 ->
-    case happyOut114 happy_x_4 of { happy_var_4 ->
-    ( withNodeInfo happy_var_1 $ CCond happy_var_1 Nothing happy_var_4)}}
-    ) (\r -> happyReturn (happyIn114 r))
-
-happyReduce_419 = happySpecReduce_1  108# happyReduction_419
-happyReduction_419 happy_x_1
-     =  case happyOut114 happy_x_1 of { happy_var_1 ->
-    happyIn115
-         (happy_var_1
-    )}
-
-happyReduce_420 = happyMonadReduce 3# 108# happyReduction_420
-happyReduction_420 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut101 happy_x_1 of { happy_var_1 ->
-    case happyOut116 happy_x_2 of { happy_var_2 ->
-    case happyOut115 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ CAssign (unL happy_var_2) happy_var_1 happy_var_3)}}}
-    ) (\r -> happyReturn (happyIn115 r))
-
-happyReduce_421 = happySpecReduce_1  109# happyReduction_421
-happyReduction_421 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CAssignOp (posOf happy_var_1)
-    )}
-
-happyReduce_422 = happySpecReduce_1  109# happyReduction_422
-happyReduction_422 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CMulAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_423 = happySpecReduce_1  109# happyReduction_423
-happyReduction_423 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CDivAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_424 = happySpecReduce_1  109# happyReduction_424
-happyReduction_424 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CRmdAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_425 = happySpecReduce_1  109# happyReduction_425
-happyReduction_425 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CAddAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_426 = happySpecReduce_1  109# happyReduction_426
-happyReduction_426 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CSubAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_427 = happySpecReduce_1  109# happyReduction_427
-happyReduction_427 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CShlAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_428 = happySpecReduce_1  109# happyReduction_428
-happyReduction_428 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CShrAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_429 = happySpecReduce_1  109# happyReduction_429
-happyReduction_429 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CAndAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_430 = happySpecReduce_1  109# happyReduction_430
-happyReduction_430 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L CXorAssOp (posOf happy_var_1)
-    )}
-
-happyReduce_431 = happySpecReduce_1  109# happyReduction_431
-happyReduction_431 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn116
-         (L COrAssOp  (posOf happy_var_1)
-    )}
-
-happyReduce_432 = happySpecReduce_1  110# happyReduction_432
-happyReduction_432 happy_x_1
-     =  case happyOut115 happy_x_1 of { happy_var_1 ->
-    happyIn117
-         (happy_var_1
-    )}
-
-happyReduce_433 = happyMonadReduce 3# 110# happyReduction_433
-happyReduction_433 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOut115 happy_x_1 of { happy_var_1 ->
-    case happyOut118 happy_x_3 of { happy_var_3 ->
-    ( let es = reverse happy_var_3 in withNodeInfo es $ CComma (happy_var_1:es))}}
-    ) (\r -> happyReturn (happyIn117 r))
-
-happyReduce_434 = happySpecReduce_1  111# happyReduction_434
-happyReduction_434 happy_x_1
-     =  case happyOut115 happy_x_1 of { happy_var_1 ->
-    happyIn118
-         (singleton happy_var_1
-    )}
-
-happyReduce_435 = happySpecReduce_3  111# happyReduction_435
-happyReduction_435 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut118 happy_x_1 of { happy_var_1 ->
-    case happyOut115 happy_x_3 of { happy_var_3 ->
-    happyIn118
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyReduce_436 = happySpecReduce_0  112# happyReduction_436
-happyReduction_436  =  happyIn119
-         (Nothing
-    )
-
-happyReduce_437 = happySpecReduce_1  112# happyReduction_437
-happyReduction_437 happy_x_1
-     =  case happyOut117 happy_x_1 of { happy_var_1 ->
-    happyIn119
-         (Just happy_var_1
-    )}
-
-happyReduce_438 = happySpecReduce_0  113# happyReduction_438
-happyReduction_438  =  happyIn120
-         (Nothing
-    )
-
-happyReduce_439 = happySpecReduce_1  113# happyReduction_439
-happyReduction_439 happy_x_1
-     =  case happyOut115 happy_x_1 of { happy_var_1 ->
-    happyIn120
-         (Just happy_var_1
-    )}
-
-happyReduce_440 = happySpecReduce_1  114# happyReduction_440
-happyReduction_440 happy_x_1
-     =  case happyOut114 happy_x_1 of { happy_var_1 ->
-    happyIn121
-         (happy_var_1
-    )}
-
-happyReduce_441 = happyMonadReduce 1# 115# happyReduction_441
-happyReduction_441 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_1 of CTokILit _ i -> CIntConst i)}
-    ) (\r -> happyReturn (happyIn122 r))
-
-happyReduce_442 = happyMonadReduce 1# 115# happyReduction_442
-happyReduction_442 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_1 of CTokCLit _ c -> CCharConst c)}
-    ) (\r -> happyReturn (happyIn122 r))
-
-happyReduce_443 = happyMonadReduce 1# 115# happyReduction_443
-happyReduction_443 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_1 of CTokFLit _ f -> CFloatConst f)}
-    ) (\r -> happyReturn (happyIn122 r))
-
-happyReduce_444 = happyMonadReduce 1# 116# happyReduction_444
-happyReduction_444 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_1 of CTokSLit _ s -> CStrLit s)}
-    ) (\r -> happyReturn (happyIn123 r))
-
-happyReduce_445 = happyMonadReduce 2# 116# happyReduction_445
-happyReduction_445 (happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    case happyOut124 happy_x_2 of { happy_var_2 ->
-    ( withNodeInfo happy_var_1 $ case happy_var_1 of CTokSLit _ s -> CStrLit (concatCStrings (s : reverse happy_var_2)))}}
-    ) (\r -> happyReturn (happyIn123 r))
-
-happyReduce_446 = happySpecReduce_1  117# happyReduction_446
-happyReduction_446 happy_x_1
-     =  case happyOutTok happy_x_1 of { happy_var_1 ->
-    happyIn124
-         (case happy_var_1 of CTokSLit _ s -> singleton s
-    )}
-
-happyReduce_447 = happySpecReduce_2  117# happyReduction_447
-happyReduction_447 happy_x_2
-    happy_x_1
-     =  case happyOut124 happy_x_1 of { happy_var_1 ->
-    case happyOutTok happy_x_2 of { happy_var_2 ->
-    happyIn124
-         (case happy_var_2 of CTokSLit _ s -> happy_var_1 `snoc` s
-    )}}
-
-happyReduce_448 = happySpecReduce_1  118# happyReduction_448
-happyReduction_448 happy_x_1
-     =  case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    happyIn125
-         (happy_var_1
-    )}
-
-happyReduce_449 = happySpecReduce_1  118# happyReduction_449
-happyReduction_449 happy_x_1
-     =  case happyOutTok happy_x_1 of { (CTokTyIdent _ happy_var_1) ->
-    happyIn125
-         (happy_var_1
-    )}
-
-happyReduce_450 = happySpecReduce_0  119# happyReduction_450
-happyReduction_450  =  happyIn126
-         ([]
-    )
-
-happyReduce_451 = happySpecReduce_1  119# happyReduction_451
-happyReduction_451 happy_x_1
-     =  case happyOut127 happy_x_1 of { happy_var_1 ->
-    happyIn126
-         (happy_var_1
-    )}
-
-happyReduce_452 = happySpecReduce_1  120# happyReduction_452
-happyReduction_452 happy_x_1
-     =  case happyOut128 happy_x_1 of { happy_var_1 ->
-    happyIn127
-         (happy_var_1
-    )}
-
-happyReduce_453 = happySpecReduce_2  120# happyReduction_453
-happyReduction_453 happy_x_2
-    happy_x_1
-     =  case happyOut127 happy_x_1 of { happy_var_1 ->
-    case happyOut128 happy_x_2 of { happy_var_2 ->
-    happyIn127
-         (happy_var_1 ++ happy_var_2
-    )}}
-
-happyReduce_454 = happyReduce 6# 121# happyReduction_454
-happyReduction_454 (happy_x_6 `HappyStk`
-    happy_x_5 `HappyStk`
-    happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest)
-     = case happyOut129 happy_x_4 of { happy_var_4 ->
-    happyIn128
-         (reverse happy_var_4
-    ) `HappyStk` happyRest}
-
-happyReduce_455 = happySpecReduce_1  122# happyReduction_455
-happyReduction_455 happy_x_1
-     =  case happyOut130 happy_x_1 of { happy_var_1 ->
-    happyIn129
-         (case happy_var_1 of Nothing -> empty; Just attr -> singleton attr
-    )}
-
-happyReduce_456 = happySpecReduce_3  122# happyReduction_456
-happyReduction_456 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut129 happy_x_1 of { happy_var_1 ->
-    case happyOut130 happy_x_3 of { happy_var_3 ->
-    happyIn129
-         ((maybe id (flip snoc) happy_var_3) happy_var_1
-    )}}
-
-happyReduce_457 = happySpecReduce_0  123# happyReduction_457
-happyReduction_457  =  happyIn130
-         (Nothing
-    )
-
-happyReduce_458 = happyMonadReduce 1# 123# happyReduction_458
-happyReduction_458 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ Just . CAttr happy_var_1  [])}
-    ) (\r -> happyReturn (happyIn130 r))
-
-happyReduce_459 = happyMonadReduce 1# 123# happyReduction_459
-happyReduction_459 (happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { happy_var_1 ->
-    ( withNodeInfo happy_var_1 $ Just . CAttr (internalIdent "const") [])}
-    ) (\r -> happyReturn (happyIn130 r))
-
-happyReduce_460 = happyMonadReduce 4# 123# happyReduction_460
-happyReduction_460 (happy_x_4 `HappyStk`
-    happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    case happyOut131 happy_x_3 of { happy_var_3 ->
-    ( withNodeInfo happy_var_1 $ Just . CAttr happy_var_1 (reverse happy_var_3))}}
-    ) (\r -> happyReturn (happyIn130 r))
-
-happyReduce_461 = happyMonadReduce 3# 123# happyReduction_461
-happyReduction_461 (happy_x_3 `HappyStk`
-    happy_x_2 `HappyStk`
-    happy_x_1 `HappyStk`
-    happyRest) tk
-     = happyThen (case happyOutTok happy_x_1 of { (CTokIdent  _ happy_var_1) ->
-    ( withNodeInfo happy_var_1 $ Just . CAttr happy_var_1 [])}
-    ) (\r -> happyReturn (happyIn130 r))
-
-happyReduce_462 = happySpecReduce_1  124# happyReduction_462
-happyReduction_462 happy_x_1
-     =  case happyOut121 happy_x_1 of { happy_var_1 ->
-    happyIn131
-         (singleton happy_var_1
-    )}
-
-happyReduce_463 = happySpecReduce_3  124# happyReduction_463
-happyReduction_463 happy_x_3
-    happy_x_2
-    happy_x_1
-     =  case happyOut131 happy_x_1 of { happy_var_1 ->
-    case happyOut121 happy_x_3 of { happy_var_3 ->
-    happyIn131
-         (happy_var_1 `snoc` happy_var_3
-    )}}
-
-happyNewToken action sts stk
-    = lexC(\tk ->
-    let cont i = happyDoAction i tk action sts stk in
-    case tk of {
-    CTokEof -> happyDoAction 101# tk action sts stk;
-    CTokLParen  _ -> cont 1#;
-    CTokRParen  _ -> cont 2#;
-    CTokLBracket    _ -> cont 3#;
-    CTokRBracket    _ -> cont 4#;
-    CTokArrow   _ -> cont 5#;
-    CTokDot _ -> cont 6#;
-    CTokExclam  _ -> cont 7#;
-    CTokTilde   _ -> cont 8#;
-    CTokInc _ -> cont 9#;
-    CTokDec _ -> cont 10#;
-    CTokPlus    _ -> cont 11#;
-    CTokMinus   _ -> cont 12#;
-    CTokStar    _ -> cont 13#;
-    CTokSlash   _ -> cont 14#;
-    CTokPercent _ -> cont 15#;
-    CTokAmper   _ -> cont 16#;
-    CTokShiftL  _ -> cont 17#;
-    CTokShiftR  _ -> cont 18#;
-    CTokLess    _ -> cont 19#;
-    CTokLessEq  _ -> cont 20#;
-    CTokHigh    _ -> cont 21#;
-    CTokHighEq  _ -> cont 22#;
-    CTokEqual   _ -> cont 23#;
-    CTokUnequal _ -> cont 24#;
-    CTokHat _ -> cont 25#;
-    CTokBar _ -> cont 26#;
-    CTokAnd _ -> cont 27#;
-    CTokOr  _ -> cont 28#;
-    CTokQuest   _ -> cont 29#;
-    CTokColon   _ -> cont 30#;
-    CTokAssign  _ -> cont 31#;
-    CTokPlusAss _ -> cont 32#;
-    CTokMinusAss    _ -> cont 33#;
-    CTokStarAss _ -> cont 34#;
-    CTokSlashAss    _ -> cont 35#;
-    CTokPercAss _ -> cont 36#;
-    CTokAmpAss  _ -> cont 37#;
-    CTokHatAss  _ -> cont 38#;
-    CTokBarAss  _ -> cont 39#;
-    CTokSLAss   _ -> cont 40#;
-    CTokSRAss   _ -> cont 41#;
-    CTokComma   _ -> cont 42#;
-    CTokSemic   _ -> cont 43#;
-    CTokLBrace  _ -> cont 44#;
-    CTokRBrace  _ -> cont 45#;
-    CTokEllipsis    _ -> cont 46#;
-    CTokAlignof _ -> cont 47#;
-    CTokAsm _ -> cont 48#;
-    CTokAuto    _ -> cont 49#;
-    CTokBreak   _ -> cont 50#;
-    CTokBool    _ -> cont 51#;
-    CTokCase    _ -> cont 52#;
-    CTokChar    _ -> cont 53#;
-    CTokConst   _ -> cont 54#;
-    CTokContinue    _ -> cont 55#;
-    CTokComplex _ -> cont 56#;
-    CTokDefault _ -> cont 57#;
-    CTokDo  _ -> cont 58#;
-    CTokDouble  _ -> cont 59#;
-    CTokElse    _ -> cont 60#;
-    CTokEnum    _ -> cont 61#;
-    CTokExtern  _ -> cont 62#;
-    CTokFloat   _ -> cont 63#;
-    CTokFor _ -> cont 64#;
-    CTokGoto    _ -> cont 65#;
-    CTokIf  _ -> cont 66#;
-    CTokInline  _ -> cont 67#;
-    CTokInt _ -> cont 68#;
-    CTokLong    _ -> cont 69#;
-    CTokLabel   _ -> cont 70#;
-    CTokRegister    _ -> cont 71#;
-    CTokRestrict    _ -> cont 72#;
-    CTokReturn  _ -> cont 73#;
-    CTokShort   _ -> cont 74#;
-    CTokSigned  _ -> cont 75#;
-    CTokSizeof  _ -> cont 76#;
-    CTokStatic  _ -> cont 77#;
-    CTokStruct  _ -> cont 78#;
-    CTokSwitch  _ -> cont 79#;
-    CTokTypedef _ -> cont 80#;
-    CTokTypeof  _ -> cont 81#;
-    CTokThread  _ -> cont 82#;
-    CTokUnion   _ -> cont 83#;
-    CTokUnsigned    _ -> cont 84#;
-    CTokVoid    _ -> cont 85#;
-    CTokVolatile    _ -> cont 86#;
-    CTokWhile   _ -> cont 87#;
-    CTokCLit   _ _ -> cont 88#;
-    CTokILit   _ _ -> cont 89#;
-    CTokFLit   _ _ -> cont 90#;
-    CTokSLit   _ _ -> cont 91#;
-    CTokIdent  _ happy_dollar_dollar -> cont 92#;
-    CTokTyIdent _ happy_dollar_dollar -> cont 93#;
-    CTokGnuC GnuCAttrTok _ -> cont 94#;
-    CTokGnuC GnuCExtTok  _ -> cont 95#;
-    CTokGnuC GnuCComplexReal _ -> cont 96#;
-    CTokGnuC GnuCComplexImag _ -> cont 97#;
-    CTokGnuC GnuCVaArg    _ -> cont 98#;
-    CTokGnuC GnuCOffsetof _ -> cont 99#;
-    CTokGnuC GnuCTyCompat _ -> cont 100#;
-    _ -> happyError' tk
-    })
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (>>=)
-happyReturn :: () => a -> P a
-happyReturn = (return)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => CToken -> P a
-happyError' tk = (\token -> happyError) tk
-
-translation_unit = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut7 x))
-
-external_declaration = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut9 x))
-
-statement = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut12 x))
-
-expression = happySomeParser where
-  happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut117 x))
-
-happySeq = happyDontSeq
-
-
---  sometimes it is neccessary to reverse an unreversed list
-reverseList :: [a] -> Reversed [a]
-reverseList = Reversed . List.reverse
-
--- We occasionally need things to have a location when they don't naturally
--- have one built in as tokens and most AST elements do.
---
-data Located a = L !a !Position
-
-unL :: Located a -> a
-unL (L a pos) = a
-
-instance Pos (Located a) where
-  posOf (L _ pos) = pos
-
--- FIXME: the next 3 inlines here increase the object file size by  70%
--- Check whether the speed win is worth it
-{-# INLINE withNodeInfo #-}
-withNodeInfo :: Pos node => node -> (NodeInfo -> a) -> P a
-withNodeInfo node mkAttrNode = do
-  name <- getNewName
-  lastTok <- getSavedToken
-  let firstPos = posOf node
-  let attrs = mkNodeInfo' firstPos (posLenOfTok $! lastTok) name
-  attrs `seq` return (mkAttrNode attrs)
-
-{-# INLINE withLength #-}
-withLength :: NodeInfo -> (NodeInfo -> a) -> P a
-withLength nodeinfo mkAttrNode = do
-  lastTok <- getSavedToken
-  let firstPos = posOfNode nodeinfo
-  let attrs = mkNodeInfo' firstPos (posLenOfTok $! lastTok)
-              (maybe (error "nameOfNode") id (nameOfNode nodeinfo))
-  attrs `seq` return (mkAttrNode attrs)
-
-data CDeclrR = CDeclrR (Maybe Ident) (Reversed [CDerivedDeclr]) (Maybe CStrLit) [CAttr] NodeInfo
-reverseDeclr :: CDeclrR -> CDeclr
-reverseDeclr (CDeclrR ide reversedDDs asmname cattrs at)
-    = CDeclr ide (reverse reversedDDs) asmname cattrs at
-instance CNode (CDeclrR) where
-    nodeInfo (CDeclrR _ _ _ _ n) = n
-instance Pos (CDeclrR) where
-    posOf (CDeclrR _ _ _ _ n) = posOf n
-
-{-# INLINE withAttribute #-}
-withAttribute :: Pos node => node -> [CAttr] -> (NodeInfo -> CDeclrR) -> P CDeclrR
-withAttribute node cattrs mkDeclrNode = do
-  name <- getNewName
-  let attrs = mkNodeInfo (posOf node) name
-  let newDeclr = appendDeclrAttrs cattrs $ mkDeclrNode attrs
-  attrs `seq` newDeclr `seq` return newDeclr
-
--- postfixing variant
-{-# INLINE withAttributePF #-}
-withAttributePF :: Pos node => node -> [CAttr] -> (NodeInfo -> CDeclrR -> CDeclrR) -> P (CDeclrR -> CDeclrR)
-withAttributePF node cattrs mkDeclrCtor = do
-  name <- getNewName
-  let attrs = mkNodeInfo (posOf node) name
-  let newDeclr = appendDeclrAttrs cattrs . mkDeclrCtor attrs
-  attrs `seq` newDeclr `seq` return newDeclr
-
--- add top level attributes for a declarator.
---
--- In the following example
---
--- > int declr1, __attribute__((a1)) * __attribute__((a2)) y() __asm__("$" "y") __attribute__((a3));
---
--- the attributes `a1' and `a3' are top-level attributes for y.
--- The (pseudo)-AST for the second declarator is
---
--- > CDeclr "y"
--- >        [CFunDeclr ..., CPtrDeclr __attribute__((a2)) ... ]
--- >        (asm "$y")
--- >        [__attribute__((a1)), __attribute__((a3)) ]
---
--- So assembler names and preceeding and trailing attributes are recorded in object declarator.
---
-appendObjAttrs :: [CAttr] -> CDeclr -> CDeclr
-appendObjAttrs newAttrs (CDeclr ident indirections asmname cAttrs at)
-    = CDeclr ident indirections asmname (cAttrs ++ newAttrs) at
-appendObjAttrsR :: [CAttr] -> CDeclrR -> CDeclrR
-appendObjAttrsR newAttrs (CDeclrR ident indirections asmname cAttrs at)
-    = CDeclrR ident indirections asmname (cAttrs ++ newAttrs) at
-
-setAsmName :: Maybe CStrLit  -> CDeclrR -> P CDeclrR
-setAsmName mAsmName (CDeclrR ident indirections oldName cattrs at) =
-    case combineName mAsmName oldName of
-        Left (n1,n2)       -> failP (posOf n2) ["Duplicate assembler name: ",showName n1,showName n2]
-        Right newName      -> return $ CDeclrR ident indirections newName cattrs at
-  where
-  combineName Nothing Nothing = Right Nothing
-  combineName Nothing oldname@(Just _)  = Right oldname
-  combineName newname@(Just _) Nothing  = Right newname
-  combineName (Just n1) (Just n2) = Left (n1,n2)
-  showName (CStrLit cstr _) = show cstr
-
-withAsmNameAttrs :: (Maybe CStrLit, [CAttr]) -> CDeclrR -> P CDeclrR
-withAsmNameAttrs (mAsmName, newAttrs) declr = setAsmName mAsmName (appendObjAttrsR newAttrs declr)
-
-appendDeclrAttrs :: [CAttr] -> CDeclrR -> CDeclrR
-appendDeclrAttrs newAttrs (CDeclrR ident (Reversed []) asmname cattrs at)
-    = CDeclrR ident empty asmname (cattrs ++ newAttrs) at
-appendDeclrAttrs newAttrs (CDeclrR ident (Reversed (x:xs)) asmname cattrs at)
-    = CDeclrR ident (Reversed (appendAttrs x : xs)) asmname cattrs at where
-    appendAttrs (CPtrDeclr typeQuals at)           = CPtrDeclr (typeQuals ++ map CAttrQual newAttrs) at
-    appendAttrs (CArrDeclr typeQuals arraySize at) = CArrDeclr (typeQuals ++ map CAttrQual newAttrs) arraySize at
-    appendAttrs (CFunDeclr parameters cattrs at)   = CFunDeclr parameters (cattrs ++ newAttrs) at
-
-ptrDeclr :: CDeclrR -> [CTypeQual] -> NodeInfo -> CDeclrR
-ptrDeclr (CDeclrR ident derivedDeclrs asmname cattrs dat) tyquals at
-    = CDeclrR ident (derivedDeclrs `snoc` CPtrDeclr tyquals at) asmname cattrs dat
-funDeclr :: CDeclrR -> (Either [Ident] ([CDecl],Bool)) -> [CAttr] -> NodeInfo -> CDeclrR
-funDeclr (CDeclrR ident derivedDeclrs asmname dcattrs dat) params cattrs at
-    = CDeclrR ident (derivedDeclrs `snoc` CFunDeclr params cattrs at) asmname dcattrs dat
-arrDeclr :: CDeclrR -> [CTypeQual] -> Bool -> Bool -> Maybe CExpr -> NodeInfo -> CDeclrR
-arrDeclr (CDeclrR ident derivedDeclrs asmname cattrs dat) tyquals var_sized static_size size_expr_opt at
-    = arr_sz `seq` ( CDeclrR ident (derivedDeclrs `snoc` CArrDeclr tyquals arr_sz at) asmname cattrs dat )
-    where
-    arr_sz = case size_expr_opt of
-                 Just e  -> CArrSize static_size e
-                 Nothing -> CNoArrSize var_sized
-
-liftTypeQuals :: Reversed [CTypeQual] -> [CDeclSpec]
-liftTypeQuals = map CTypeQual . reverse
-
--- lift CAttrs to DeclSpecs
---
-liftCAttrs :: [CAttr] -> [CDeclSpec]
-liftCAttrs = map (CTypeQual . CAttrQual)
-
--- when we parsed (decl_spec_1,...,decl_spec_n,attrs), add the __attributes__s to the declspec list
--- needs special care when @decl_spec_n@ is a SUE definition
-addTrailingAttrs :: Reversed [CDeclSpec] -> [CAttr] -> Reversed [CDeclSpec]
-addTrailingAttrs declspecs new_attrs =
-    case viewr declspecs of
-        (specs_init, CTypeSpec (CSUType (CStruct tag name (Just def) def_attrs su_node) node))
-            -> (specs_init `snoc` CTypeSpec (CSUType (CStruct tag name (Just def) (def_attrs ++ new_attrs) su_node) node))
-        (specs_init, CTypeSpec (CEnumType (CEnum name (Just def) def_attrs e_node) node))
-            -> (specs_init `snoc` CTypeSpec (CEnumType (CEnum name (Just def) (def_attrs ++ new_attrs) e_node) node))
-        _ -> declspecs `rappend` (liftCAttrs new_attrs)
-
--- convenient instance, the position of a list of things is the position of
--- the first thing in the list
---
-instance Pos a => Pos [a] where
-  posOf (x:_) = posOf x
-
-instance Pos a => Pos (Reversed a) where
-  posOf (Reversed x) = posOf x
-
-emptyDeclr :: CDeclrR
-emptyDeclr       = CDeclrR Nothing empty Nothing [] undefNode
-mkVarDeclr :: Ident -> NodeInfo -> CDeclrR
-mkVarDeclr ident = CDeclrR (Just ident) empty Nothing []
-
--- Take the identifiers and use them to update the typedef'ed identifier set
--- if the decl is defining a typedef then we add it to the set,
--- if it's a var decl then that shadows typedefed identifiers
---
-doDeclIdent :: [CDeclSpec] -> CDeclrR -> P ()
-doDeclIdent declspecs (CDeclrR mIdent _ _ _ _) =
-  case mIdent of
-    Nothing -> return ()
-    Just ident | any iypedef declspecs -> addTypedef ident
-               | otherwise             -> shadowTypedef ident
-
-  where iypedef (CStorageSpec (CTypedef _)) = True
-        iypedef _                           = False
-
-doFuncParamDeclIdent :: CDeclr -> P ()
-doFuncParamDeclIdent (CDeclr _ (CFunDeclr params _ _ : _) _ _ _) =
-  sequence_
-    [ case getCDeclrIdent declr of
-        Nothing -> return ()
-        Just ident -> shadowTypedef ident
-    | CDecl _ dle _  <- either (const []) fst params
-    , (Just declr, _, _) <- dle ]
-doFuncParamDeclIdent _ = return ()
-
--- extract all identifiers
-getCDeclrIdent :: CDeclr -> Maybe Ident
-getCDeclrIdent (CDeclr mIdent _ _ _ _) = mIdent
-
-happyError :: P a
-happyError = parseError
-
--- * public interface
-
--- | @parseC input initialPos@ parses the given preprocessed C-source input and returns the AST or a list of parse errors.
-parseC :: InputStream -> Position -> Either ParseError CTranslUnit
-parseC input initialPosition =
-  fmap fst $ execParser translUnitP input initialPosition builtinTypeNames (namesStartingFrom 0)
-
--- | @translUnitP@ provides a parser for a complete C translation unit, i.e. a list of external declarations.
-translUnitP :: P CTranslUnit
-translUnitP = translation_unit
--- | @extDeclP@ provides a parser for an external (file-scope) declaration
-extDeclP :: P CExtDecl
-extDeclP = external_declaration
--- | @statementP@ provides a parser for C statements
-statementP :: P CStat
-statementP = statement
--- | @expressionP@ provides a parser for C expressions
-expressionP :: P CExpr
-expressionP = expression
-{-# LINE 1 "GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
-
-{-# LINE 28 "GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Int# Happy_IntList
-
-
-
-
-
-{-# LINE 49 "GenericTemplate.hs" #-}
-
-{-# LINE 59 "GenericTemplate.hs" #-}
-
-{-# LINE 68 "GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-    happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) =
-    (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-    = {- nothing -}
-
-
-      case action of
-        0#        -> {- nothing -}
-                     happyFail i tk st
-        -1#       -> {- nothing -}
-                     happyAccept i tk st
-        n | (n <# (0# :: Int#)) -> {- nothing -}
-
-                     (happyReduceArr ! rule) i tk st
-                     where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))
-        n         -> {- nothing -}
-
-
-                     happyShift new_state i tk st
-                     where new_state = (n -# (1# :: Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-         off_i  = (off +# i)
-         check  = if (off_i >=# (0# :: Int#))
-                    then (indexShortOffAddr happyCheck off_i ==#  i)
-                    else False
-         action | check     = indexShortOffAddr happyTable off_i
-                | otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 127 "GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
--- #if __GLASGOW_HASKELL__ > 500
-    narrow16Int# i
--- #elif __GLASGOW_HASKELL__ == 500
-    intToInt16# i
--- #else
-    (i `iShiftL#` 16#) `iShiftRA#` 16#
--- #endif
-  where
--- #if __GLASGOW_HASKELL__ >= 503
-    i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
--- #else
-    i = word2Int# ((high `shiftL#` 8#) `or#` low)
--- #endif
-    high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-    low  = int2Word# (ord# (indexCharOffAddr# arr off'))
-    off' = off *# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case unsafeCoerce# x of { (I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k -# (1# :: Int#)) sts of
-     sts1@((HappyCons (st1@(action)) (_))) ->
-            let r = fn stk in  -- it doesn't hurt to always seq here...
-            happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off +# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n -# (1# :: Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n -# (1#::Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st =
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-         off_i  = (off +# nt)
-         new_state = indexShortOffAddr happyTable off_i
-
-
-
-
------------------------------------------------------------------------------
--- Error recovery (0# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail  0# tk old_st _ stk =
---  trace "failing" $
-        happyError_ tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  0# tk old_st (HappyCons ((action)) (sts))
-                        (saved_tok `HappyStk` _ `HappyStk` stk) =
---  trace ("discarding state, depth " ++ show (length stk))  $
-    happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail  i tk (action) sts stk =
---      trace "entering error recovery" $
-    happyDoAction 0# tk action sts ( (unsafeCoerce# (I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Int# -> a -> a
-happyTcHack x y = y
-{-# INLINE happyTcHack #-}
-
-
------------------------------------------------------------------------------
--- Seq-ing.  If the --strict flag is given, then Happy emits
---  happySeq = happyDoSeq
--- otherwise it emits
---  happySeq = happyDontSeq
-
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq   a b = a `seq` b
-happyDontSeq a b = b
-
------------------------------------------------------------------------------
--- Don't inline any functions from the template.  GHC has a nasty habit
--- of deciding to inline happyGoto everywhere, which increases the size of
--- the generated parser quite a bit.
-
-
-{-# NOINLINE happyDoAction #-}
-{-# NOINLINE happyTable #-}
-{-# NOINLINE happyCheck #-}
-{-# NOINLINE happyActOffsets #-}
-{-# NOINLINE happyGotoOffsets #-}
-{-# NOINLINE happyDefActions #-}
-
-{-# NOINLINE happyShift #-}
-{-# NOINLINE happySpecReduce_0 #-}
-{-# NOINLINE happySpecReduce_1 #-}
-{-# NOINLINE happySpecReduce_2 #-}
-{-# NOINLINE happySpecReduce_3 #-}
-{-# NOINLINE happyReduce #-}
-{-# NOINLINE happyMonadReduce #-}
-{-# NOINLINE happyGoto #-}
-{-# NOINLINE happyFail #-}
-
--- end of Happy Template.
diff --git a/tests/examples/CParser.hs.exactprinter.golden b/tests/examples/CParser.hs.exactprinter.golden
deleted file mode 100644
--- a/tests/examples/CParser.hs.exactprinter.golden
+++ /dev/null
@@ -1,1 +0,0 @@
-Match
diff --git a/tests/examples/CParser.hs.parser.golden b/tests/examples/CParser.hs.parser.golden
deleted file mode 100644
# file too large to diff: tests/examples/CParser.hs.parser.golden
diff --git a/tests/examples/CParser.hs.prettyparser.golden b/tests/examples/CParser.hs.prettyparser.golden
deleted file mode 100644
--- a/tests/examples/CParser.hs.prettyparser.golden
+++ /dev/null
@@ -1,10 +0,0 @@
-Roundtrip test failed
-
-AST 1:
-
-Module (SrcLoc "" -1 -1) (ModuleName "Language.C.Parser.Parser") [OptionsPragma (SrcLoc "" -1 -1) Nothing " -fglasgow-exts -cpp ",LanguagePragma (SrcLoc "" -1 -1) [Ident "MagicHash"]] Nothing (Just [EVar NoNamespace (UnQual (Ident "parseC")),EVar NoNamespace (UnQual (Ident "translUnitP")),EVar NoNamespace (UnQual (Ident "extDeclP")),EVar NoNamespace (UnQual (Ident "statementP")),EVar NoNamespace (UnQual (Ident "expressionP"))]) [ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Prelude", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (True,[IVar NoNamespace (Ident "reverse")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Data.List", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName "List"), importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "mplus")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Builtin", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "builtinTypeNames")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Lexer", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "lexC"),IVar NoNamespace (Ident "parseError")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Tokens", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IThingAll (Ident "CToken"),IThingAll (Ident "GnuCTok"),IVar NoNamespace (Ident "posLenOfTok")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.ParserMonad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IAbs (Ident "P"),IVar NoNamespace (Ident "failP"),IVar NoNamespace (Ident "execParser"),IVar NoNamespace (Ident "getNewName"),IVar NoNamespace (Ident "addTypedef"),IVar NoNamespace (Ident "shadowTypedef"),IVar NoNamespace (Ident "getCurrentPosition"),IVar NoNamespace (Ident "enterScope"),IVar NoNamespace (Ident "leaveScope"),IVar NoNamespace (Ident "getLastToken"),IVar NoNamespace (Ident "getSavedToken"),IThingAll (Ident "ParseError")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.RList", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.InputStream", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Ident", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Name", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Node", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Position", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Syntax", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Data.Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "GHC.Exts", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "GlaExts", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [DataDecl (SrcLoc "" -1 -1) NewType [] (Ident "HappyAbsSyn") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyAbsSyn") [TyParen (TyFun (TyCon (Special UnitCon)) (TyCon (Special UnitCon)))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "happyIn7"] (TyFun (TyParen (TyCon (UnQual (Ident "CTranslUnit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn7") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn7")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut7"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTranslUnit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut7") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut7")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn8"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExtDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn8") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn8")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut8"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExtDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut8") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut8")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn9"] (TyFun (TyParen (TyCon (UnQual (Ident "CExtDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn9") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn9")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut9"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExtDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut9") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut9")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn10"] (TyFun (TyParen (TyCon (UnQual (Ident "CFunDef")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn10") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn10")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut10"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CFunDef"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut10") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut10")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn11"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn11") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn11")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut11"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut11") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut11")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn12"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn12") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn12")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut12"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut12") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut12")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn13"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn13") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn13")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut13"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut13") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut13")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn14"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn14") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn14")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut14"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut14") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut14")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn15"] (TyFun (TyParen (TyCon (Special UnitCon))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn15") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn15")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut15"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut15") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut15")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn16"] (TyFun (TyParen (TyCon (Special UnitCon))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn16") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn16")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut16"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut16") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut16")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn17"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CBlockItem")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn17") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn17")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut17"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CBlockItem"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut17") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut17")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn18"] (TyFun (TyParen (TyCon (UnQual (Ident "CBlockItem")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn18") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn18")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut18"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CBlockItem"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut18") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut18")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn19"] (TyFun (TyParen (TyCon (UnQual (Ident "CBlockItem")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn19") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn19")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut19"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CBlockItem"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut19") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut19")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn20"] (TyFun (TyParen (TyCon (UnQual (Ident "CFunDef")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn20") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn20")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut20"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CFunDef"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut20") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut20")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn21"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn21") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn21")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut21"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut21") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut21")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn22"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn22") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn22")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut22"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut22") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut22")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn23"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn23") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn23")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut23"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut23") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut23")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn24"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn24") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn24")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut24"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut24") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut24")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn25"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn25") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn25")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut25"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut25") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut25")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn26"] (TyFun (TyParen (TyCon (UnQual (Ident "CAsmStmt")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn26") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn26")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut26"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CAsmStmt"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut26") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut26")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn27"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CTypeQual"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn27") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn27")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut27"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CTypeQual")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut27") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut27")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn28"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAsmOperand"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn28") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn28")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut28"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAsmOperand")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut28") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut28")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn29"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAsmOperand")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn29") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn29")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut29"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAsmOperand"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut29") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut29")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn30"] (TyFun (TyParen (TyCon (UnQual (Ident "CAsmOperand")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn30") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn30")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut30"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CAsmOperand"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut30") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut30")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn31"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CStrLit")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn31") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn31")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut31"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CStrLit"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut31") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut31")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn32"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn32") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn32")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut32"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut32") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut32")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn33"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn33") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn33")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut33"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut33") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut33")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn34"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn34") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn34")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut34"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut34") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut34")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn35"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn35") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn35")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut35"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut35") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut35")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn36"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn36") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn36")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut36"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut36") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut36")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn37"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn37") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn37")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut37"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut37") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut37")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn38"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn38") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn38")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut38"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut38") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut38")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn39"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn39") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn39")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut39"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut39") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut39")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn40"] (TyFun (TyParen (TyCon (UnQual (Ident "CStorageSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn40") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn40")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut40"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStorageSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut40") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut40")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn41"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn41") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn41")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut41"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut41") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut41")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn42"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn42") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn42")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut42"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut42") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut42")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn43"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn43") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn43")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut43"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut43") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut43")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn44"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn44") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn44")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut44"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut44") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut44")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn45"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn45") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn45")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut45"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut45") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut45")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn46"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn46") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn46")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut46"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut46") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut46")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn47"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn47") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn47")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut47"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut47") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut47")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn48"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn48") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn48")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut48"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut48") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut48")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn49"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn49") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn49")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut49"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut49") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut49")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn50"] (TyFun (TyParen (TyCon (UnQual (Ident "CStructUnion")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn50") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn50")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut50"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStructUnion"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut50") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut50")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn51"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CStructTag"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn51") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn51")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut51"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CStructTag")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut51") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut51")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn52"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn52") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn52")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut52"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut52") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut52")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn53"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn53") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn53")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut53"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut53") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut53")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn54"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn54") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn54")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut54"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut54") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut54")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn55"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn55") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn55")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut55"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut55") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut55")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn56"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn56") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn56")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut56"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut56") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut56")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn57"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn57") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn57")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut57"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut57") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut57")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn58"] (TyFun (TyParen (TyCon (UnQual (Ident "CEnum")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn58") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn58")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut58"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CEnum"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut58") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut58")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn59"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn59") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn59")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut59"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut59") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut59")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn60"] (TyFun (TyParen (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn60") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn60")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut60"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut60") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut60")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn61"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeQual")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn61") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn61")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut61"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeQual"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut61") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut61")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn62"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn62") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn62")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut62"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut62") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut62")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn63"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn63") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn63")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut63"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut63") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut63")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn64"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn64") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn64")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut64"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut64") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut64")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn65"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn65") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn65")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut65"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut65") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut65")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn66"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn66") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn66")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut66"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut66") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut66")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn67"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn67") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn67")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut67"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut67") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut67")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn68"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn68") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn68")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut68"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut68") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut68")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn69"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn69") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn69")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut69"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut69") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut69")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn70"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn70") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn70")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut70"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut70") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut70")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn71"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn71") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn71")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut71"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut71") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut71")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn72"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn72") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn72")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut72"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut72") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut72")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn73"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn73") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn73")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut73"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut73") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut73")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn74"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn74") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn74")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut74"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut74") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut74")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn75"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn75") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn75")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut75"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut75") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut75")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn76"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn76") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn76")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut76"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut76") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut76")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn77"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn77") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn77")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut77"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut77") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut77")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn78"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn78") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn78")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut78"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut78") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut78")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn79"] (TyFun (TyParen (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn79") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn79")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut79"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut79") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut79")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn80"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn80") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn80")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut80"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut80") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut80")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn81"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn81") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn81")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut81"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut81") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut81")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn82"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn82") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn82")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut82"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut82") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut82")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn83"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn83") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn83")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut83"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut83") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut83")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn84"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn84") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn84")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut84"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut84") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut84")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn85"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn85") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn85")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut85"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut85") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut85")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn86"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn86") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn86")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut86"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut86") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut86")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn87"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn87") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn87")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut87"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut87") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut87")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn88"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn88") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn88")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut88"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut88") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut88")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn89"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn89") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn89")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut89"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut89") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut89")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn90"] (TyFun (TyParen (TyCon (UnQual (Ident "CInit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn90") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn90")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut90"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CInit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut90") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut90")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn91"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CInit"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn91") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn91")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut91"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CInit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut91") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut91")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn92"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyCon (UnQual (Ident "CInitList"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn92") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn92")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut92"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyCon (UnQual (Ident "CInitList")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut92") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut92")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn93"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDesignator"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn93") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn93")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut93"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDesignator")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut93") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut93")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn94"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn94") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn94")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut94"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut94") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut94")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn95"] (TyFun (TyParen (TyCon (UnQual (Ident "CDesignator")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn95") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn95")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut95"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDesignator"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut95") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut95")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn96"] (TyFun (TyParen (TyCon (UnQual (Ident "CDesignator")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn96") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn96")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut96"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDesignator"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut96") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut96")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn97"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn97") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn97")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut97"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut97") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut97")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn98"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn98") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn98")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut98"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut98") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut98")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn99"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn99") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn99")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut99"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut99") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut99")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn100"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn100") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn100")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut100"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut100") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut100")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn101"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn101") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn101")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut101"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut101") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut101")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn102"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CUnaryOp"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn102") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn102")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut102"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CUnaryOp")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut102") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut102")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn103"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn103") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn103")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut103"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut103") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut103")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn104"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn104") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn104")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut104"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut104") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut104")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn105"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn105") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn105")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut105"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut105") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut105")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn106"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn106") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn106")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut106"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut106") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut106")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn107"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn107") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn107")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut107"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut107") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut107")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn108"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn108") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn108")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut108"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut108") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut108")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn109"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn109") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn109")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut109"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut109") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut109")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn110"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn110") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn110")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut110"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut110") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut110")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn111"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn111") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn111")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut111"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut111") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut111")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn112"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn112") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn112")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut112"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut112") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut112")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn113"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn113") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn113")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut113"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut113") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut113")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn114"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn114") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn114")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut114"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut114") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut114")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn115"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn115") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn115")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut115"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut115") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut115")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn116"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CAssignOp"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn116") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn116")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut116"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CAssignOp")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut116") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut116")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn117"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn117") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn117")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut117"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut117") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut117")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn118"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn118") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn118")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut118"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut118") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut118")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn119"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn119") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn119")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut119"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut119") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut119")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn120"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn120") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn120")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut120"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut120") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut120")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn121"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn121") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn121")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut121"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut121") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut121")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn122"] (TyFun (TyParen (TyCon (UnQual (Ident "CConst")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn122") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn122")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut122"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CConst"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut122") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut122")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn123"] (TyFun (TyParen (TyCon (UnQual (Ident "CStrLit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn123") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn123")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut123"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStrLit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut123") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut123")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn124"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CString")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn124") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn124")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut124"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CString"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut124") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut124")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn125"] (TyFun (TyParen (TyCon (UnQual (Ident "Ident")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn125") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn125")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut125"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "Ident"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut125") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut125")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn126"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn126") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn126")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut126"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut126") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut126")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn127"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn127") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn127")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut127"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut127") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut127")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn128"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn128") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn128")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut128"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut128") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut128")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn129"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAttr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn129") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn129")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut129"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAttr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut129") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut129")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn130"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn130") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn130")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut130"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut130") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut130")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn131"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn131") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn131")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut131"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut131") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut131")),TypeSig (SrcLoc "" -1 -1) [Ident "happyInTok"] (TyFun (TyCon (UnQual (Ident "CToken"))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyInTok") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyInTok")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOutTok"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyCon (UnQual (Ident "CToken")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOutTok") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOutTok")),TypeSig (SrcLoc "" -1 -1) [Ident "happyActOffsets"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyActOffsets")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\NUL\NUL\GS\SI\211\t1\SI\NUL\NUL\128\a\NUL\NUL\DEL\tw\SI1\SI\NUL\NUL\200\t\US\ENQ\ENQ\ENQ\DEL\ETX\240\EOTe\bT\bI\b>\b\198\EOT\NUL\NUL+\b\239\a\NUL\NUL\NUL\NUL\v\t\NUL\NUL\NUL\NUL\205\SO\205\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\EOT\175\SO\150\SO\NUL\NUL\NUL\NUL\NUL\NUL\246\a\NUL\NUL2\SO\DC4\SO\DC4\SO\&H\bG\b$\b\182\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\a\230\a\NUL\NUL\NUL\NULJ\ENQ\210\a\251\r\208\a\214\a\211\t\245\a$\NUL\237\a\251\r\236\a\213\a\198\a\NUL\NULv\a\NUL\NUL\174\a\NUL\NUL\149\EOT\142\EOT\SOH\SOH\213\DC1\NUL\NUL\SOH\SOH\NUL\NUL\154\EM\154\EM\DC1\CAN\SOH\CAN!\b!\b\NUL\NUL\NUL\NULq\a\NUL\NUL\166\DC1\NUL\NUL\NUL\NUL\NUL\NUL\217\SOH\NUL\NUL\NUL\NUL\NUL\NULJ\ENQ\137\DC2\NUL\NUL=\SOH=\SOH\203\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULk\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\187\a\GS\SIU\a\NUL\NUL\184\ao\tz\SOHY\a[\a\179\DC2\NUL\NUL\NUL\NULK\NUL\178\a\180\t\170\aK\NUL\134\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL\167\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL8\CAN\NUL\NUL\157\a\NUL\NUL\148\CAN\255\nr\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULw\DC1\151\a\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULg\a_\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULb\a\NUL\NULn\STXH\STX\SI\NULR\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL{\a\NUL\NULO\aS\a\NUL\NUL\ESC\a\NUL\NUL\ESC\a\NUL\NUL\NUL\NUL\251\r\251\r\NUL\NULM\a\251\rA\a\251\r\NUL\NULC\b\DC4\a\211\t\NUL\NUL\NUL\NUL\NUL\NUL\US\NUL\NUL\NULe\a\NUL\NUL.\a\244\ACK\NUL\NUL\195\SUB\195\SUB\251\r\NUL\NUL\v\t\NUL\NUL\NUL\NUL\240\ACK\NUL\NUL\NUL\NUL\v\t\NUL\NUL\v\t\NUL\NUL\NUL\NUL\NUL\NULN\a\151\ETX\231\SUB\171\EOT\171\EOTz\nL\aK\a\159\SUB\251\r\251\r\151\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\r\251\r6\EOT6\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\an\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\t\163\t\138\EOT\138\EOTO\EOTO\EOTO\EOTO\EOT\DEL\ETX\DEL\ETX\GS\EOT5\a+\a\SYN\a\f\a\251\r%\a\NUL\NUL\251\ACK\NUL\NULa\r\NUL\NUL\NUL\NUL\NUL\NUL\183\ACKW\SUB3\SUBH\DC1\NUL\SI\NUL\NUL\NUL\NUL\SI\a\SO\a\NUL\NUL\243\ACK\221\ACK\219\ACK\199\ACK\211\t\223\a\173\ACK\148\ACK|\ACK\211\t\251\r\NUL\NUL\203\ACKl\EM\171\ACK\167\ACK\NUL\NUL\196\ACK\NUL\NUL\195\ACK\193\ACK\234\NUL\216\NUL8\CAN\161\ACK]\ACK\170\ACK\NUL\NULo\t8\CAN\134\ACK\NUL\NUL\NUL\NUL\RS\EM[\v\NUL\NUL\NUL\NUL\177\SOH\147\SOH\142\ACK\136\ACK\SI\NULG\NUL\147\SOH\NUL\NUL8\CANf\ACK\NUL\NULI\ACK\NUL\NULo\t>\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULb\ACK\NUL\NUL8\CAN=\ACK\NUL\NUL\155\n\NUL\NUL)\ACK\224\v\t\NUL\206\ENQt\STX\255\SIt\STX!\b!\b\208\SI$\ACK\251\ENQ\NUL\NUL\ESC\SOHE\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\EM\DC1\216\NUL\234\DLEZ\DC2o\t8\CAN\EOT\ACK\NUL\NUL\EM\ACK\158\t\DC2\NUL\DC2\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\220\f\t\ACK\244\ENQ\204\ETX\ETX\ACK\254\ENQw\NUL\202\NUL\NUL\NUL\NUL\NUL\239\ENQ\NUL\NUL\NUL\NUL\205\STX\NUL\NUL\203\ENQ\204\ETX\170\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\220\fK\t\NUL\NUL\SI\NUL\NUL\NUL\253\f\NUL\NUL\200\ENQ\193\ENQ\140\ENQ\140\ENQ\187\DLE\NUL\NUL\241\NUL\201\NUL\140\ENQ\NUL\NULV\ENQf\CAN\NUL\NULS\ENQ\NUL\NUL\240\CAN\194\CAN\161\SI\222\DC2S\ENQS\ENQ\NUL\NULr\SII\aS\ENQ\NUL\NULS\ENQS\ENQ\NUL\NUL\171\EOTb\f\157\ENQ\155\ENQ\t\NUL\NUL\NUL\144\ENQF\ENQ7\n\t\NUL\NUL\NUL\NUL\NULo\t8\CANm\ENQ\NUL\NUL\143\ENQ\141\ENQ\220\ETB\NUL\NUL\NUL\NUL\NUL\NUL/\t\132\ENQ\SO\NUL\190\NUL\131\ENQ\SI\NUL\SI\NUL,\t\NUL\NUL\NUL\NUL\NUL\NUL\227\ne\NUL\NUL\NUL\NUL\NUL\129\ENQy\ENQ\DLE\ENQ\NUL\NUL\NUL\NUL\NUL\NUL5\ENQ5\ENQ\211\t\211\t\211\t\NUL\NUL\251\r\251\r\251\rB\ENQ\NUL\NUL\170\SOH\201\ETX\223\a\242\EOT\NUL\NUL#\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\140\DLE\216\NUL]\DLE-\ENQ\167\b\NUL\NUL{\SUB\154\ETX{\SUB\FS\ENQ\FS\ENQ\FS\ENQ0\f\NUL\NUL\162\t1\ENQ/\ENQ-\NUL3\DC2\NUL\NUL\NUL\NUL\254\v\251\r\NUL\NUL\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\STX\253\f\220\STX\NUL\NUL\153\SOH\NUL\NUL\212\EOT\251\r\154\ETX\254\v!\ENQ\r\ENQ\DC3\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\EOT\t\ENQ\237\STX\NUL\NUL\249\EOT\NUL\NUL\192\EOT.\DLE\192\EOT\192\EOT\192\EOT\NUL\NUL\163\ETX\137\EOT\NUL\NUL\162\EOT*\NUL\211\t\199\EOT\156\EOT\151\EOT\DEL\EOT\NUL\NUL\NUL\NUL\136\EOT\136\EOT\161\EOT\NUL\NUL\NUL\NUL\"\t\NUL\NUL\NUL\NUL+\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\224\n\SI\NUL\NUL\NUL\175\ETB\212\STX\NUL\NUL\160\ETX\152\ETX\SI\SUB\194\DC2\NUL\NUL\NUL\NUL\190\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\159\EOT\154\EOT\139\EOT\134\EOT\t\NUL\n\EOT\NUL\NULz\EOT\NUL\NUL\NUL\NULh\EOT\251\r\NUL\NUL\NUL\NUL\NUL\NUL\180\EOT\159\NUL\EOT\DC2\NUL\NUL\NUL\NUL\220\n>\t$\n\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\US\SOH+\NUL+\NUL\SYN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\STX\251\r\244\NUL\NUL\NUL\228\fd\EOTw\NUL\NUL\NUL\NUL\NUL\NUL\NUL\168\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\NUL\NUL\NUL+\NUL_\SOH\205\NUL>\EOT\NUL\NUL\NUL\NUL\251\r<\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\221\ETX\ESC\EOT\251\r\158\NUL\235\EM\200\ETX\NUL\NUL\200\ETX\NUL\NUL\200\ETX\ACK\EOT\251\r\NUL\NUL\NUL\NUL\205\NUL\US\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\211\t\251\r\251\r\245\ETX\NUL\NUL\n\SOH\239\ETX\NUL\NUL\SUB\EOTI\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\223\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r@\ETX\NUL\NUL\NUL\NUL\NUL\NUL\SI\NUL\NUL\NUL\151\SOH\NUL\NUL\DLE\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\v\NUL\NUL\NUL\NUL\128\f\NUL\NUL\NUL\NUL\251\rc\v\NUL\NUL\NUL\NUL\NUL\NUL\ETX\EOT\NUL\NUL\SOH\EOT\225\ETX\251\r*\NUL\182\ETX*\NUL\NUL\NUL\216\ETX\211\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\158\NUL\212\STXj\ETX\NUL\NUL\251\r\NUL\NUL\NUL\NUL\185\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NULJ\ETXJ\ETX\NUL\NUL\211\t\211\t\213\NUL\NUL\NUL\NUL\NUL\168\ETX;\ETX;\ETX\NUL\NUL\NUL\NULz\ETX\NUL\NUL\NUL\NULt\ETXr\ETX\NUL\NULF\ETX\v\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\NUL\NUL\NUL\NUL\NUL\251\r\251\rl\ETX[\ETX\ETB\ETX\233\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyGotoOffsets"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyGotoOffsets")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "6\ETXq\NUL\211\ACK\198\GS<\ETX8\NUL\NUL\NUL\NUL\NUL\197\STX5\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\NUL\NUL\NUL\NULq\r\164\v\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\STX\213\n\185\n\NUL\NUL\NUL\NUL\NUL\NUL\167\STX\NUL\NUL \f\190\ETX`\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\a\ETX\SUB\NUL\NUL\NULv\US\NUL\NUL\NUL\NUL\184\ACK\NUL\NUL\149\STX\NUL\NULL\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\ETX\NUL\NUL\NUL\NUL\NUL\NUL*\ACK\195\NUL\NUL\NUL\138\ENQ\NUL\NUL\DC4\NUL\SYN\SOHl\STX}\SOH\162\SOH\203\NUL\NUL\NUL\NUL\NUL\150\b\NUL\NUL\154\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\b\226\STX\NUL\NUL\NUL\NUL\187\STX\NAK\SOH\NUL\NUL\168\n\215\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\\\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\255\255\NUL\NUL\NUL\NUL\NUL\NUL\202\NAKq\STX]\STXj\STXw\b\NUL\NUL\NUL\NULp\STX\NUL\NUL[\b\NUL\NUL@\NUL\198\STX\NUL\NUL\NUL\NUL\NUL\NULR\STX\158\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\173\EOT\NUL\NULf\STX\NUL\NUL\168\DC3\SYN\ETB\169\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULQ\STX\144\STX\236\NUL\NUL\NUL\NUL\NUL\SUB\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\STXO\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\STX\154\DC3\232\SYN5\bu\STX\NUL\NUL\NUL\NUL\NUL\NULJ\STX\\\STX\NUL\NUL\NUL\NUL\NUL\NULb\STX1\STXV\STX\243\a\NUL\NUL\238\a\NUL\NUL\NUL\NUL\171\GS\144\GS\NUL\NUL\NUL\NULu\GS\NUL\NULZ\GS\NUL\NUL\152\ACK\NUL\NULN\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\235\SOH\233\a\NUL\NUL{\SYNS\SYN[\US\NUL\NUL\231\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\193\STX\NUL\NUL[\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULi\ENQ\155\NULx\NULP\NUL\137\SYN\NUL\NUL\NUL\NUL\172\ETX?\GS\199\US$\GS\226\US\b\NAK\132\NAK\253\US\241\vo\v\240\f\187\f@\f:\v\155\f\SUB\v\252\a&\a\193\v,\n\157\t\NUL\NUL@\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\t\GS\238\FS\219\SOH\205\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\a\NUL\NUL\NUL\NUL\NUL\NUL\198\SOHa\EOT\NUL\NULs\DC3\218\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL3\ACK5\STX3\STX\234\SOH~\SOH\CAN\ACK%\US\NUL\NUL\NUL\NUL\166\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\ETX\145 \135\EOT\221\SOH\206\a\NUL\NUL\NUL\NUL\166\NAKL\EOT\183\SOH\NUL\NUL\NUL\NUL\218\DC3&\ETX\NUL\NUL\NUL\NULl\ENQ0\DC3\NUL\NUL\NUL\NUL\162\a6\STX\182\v\NUL\NUL&\EOT\160\SOH\NUL\NUL\NUL\NUL\167\SOHN\NAK\199\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL.\STX\176\SOH\NUL\NUL\NUL\NUL\235\ETX`\SOH\NUL\NUL\169\SYN\NUL\NUL\NUL\NUL\196\ESCj\a\DC4\SOH@ \CAN\DC4( \159\SOH\CAN\NUL,\DC4\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\166\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132 G\aw h\DC4\175\DC4*\NAK\197\ETXM\SOH\NUL\NUL\NUL\NULs\a\211\SOH\235\EOT'\a\NUL\NUL \a\NUL\NUL\NAK\a\NUL\NUL\NUL\NUL\191\ETX\NUL\NUL\NUL\NUL\185\SOH\NUL\NUL\NUL\NUL\253\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\EOT\NAK\a\NUL\NUL\217\ACK\NUL\NUL\169\ESC\NUL\NUL\NUL\NUL\NUL\NUL\SYN\STX\247\SOH\169\DC4\NUL\NULo\DC3\r\SO\244\SOH\NUL\NUL\NUL\NUL\n\DC4\NUL\NUL\150\ACK\NUL\NUL\NUL\EOT\NUL\NUL>\DC3`\ETBv\ACKh\ACK\NUL\NUL\ACK\DC3Y\ETB+\ACK\NUL\NUL\DLE\ACK\226\ENQ\NUL\NUL\219\NULb\ETB\NUL\NUL\NUL\NUL\223\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\224\SYN\217\ENQ\NUL\NUL\NUL\NUL\210\DC4d\ETXB\SOH\NUL\NUL\NUL\NUL\NUL\NUL1\SYN\\\SOH\NUL\NUL\NUL\NUL\255\ENQ\NUL\NUL\249\b`\a\NUL\NUL\241\ENQ\228\ENQ\225\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\146\f\CAN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOHW\SOH\174\ENQ\147\ENQx\ENQ\NUL\NUL1\FS\SYN\FS\211\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\192\SOH3\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULT\tC\SOH\196\a>\SOH\NUL\NUL6\a\NUL\NUL@\SYN\213\255\225\DC4\NUL\NUL\NUL\NUL\NUL\NUL\199\STX\NUL\NUL\138\STX\NUL\NUL\NUL\NUL\249\NUL\150\DC4\NUL\NUL\NUL\NUL\DC3\ESC\n\US\NUL\NUL\145\US\NUL\NUL\239\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\142\ESC\157\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\212\RS\211\NUL\241\SUB\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\180\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\SOHg\SOH6\SOH\GS\SOH\ETB\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\244\255\SO\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\128\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\ENQ\NUL\NUL\NUL\NULk\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\t\\\ENQ\NUL\NUL1\SYNj \NUL\NUL\NUL\NUL\NUL\NUL\EOT\EOT\185\SYN\NUL\NUL\NUL\NUL\"\SYN\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\EOT\176\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\RS\NUL\NUL\NUL\NUL\NUL\NUL\SUB\ETB\250\ENQd\DC4\NUL\NUL\NUL\NUL\128\SYN\154\ACK\202\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\195\STX\170\r6\r\250\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\158\RS\217\255\NUL\NULP\ESC\NUL\NULM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\145\ACK\191\ETXZ\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\131\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL(\NUL\NUL\NULh\RSW\EOTa\EOTx\EOT\NUL\NUL\t\EOT\NUL\NUL\134\ETX\NUL\NULM\RS\NUL\NUL\NUL\NULZ\ENQ\171\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\243\EOT\251\ESC\224\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\FSD\NUL\NUL\NUL\NUL\NUL\NUL\NUL,\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL5\ESC\NUL\NUL\NUL\NULs\ESC\NUL\NUL\NUL\NUL2\RS5\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\157\FS\245\255\NUL\NUL\241\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETB\RS\NUL\NUL_\ETX[ \208\255\NUL\NUL\252\GS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\225\GS\NUL\NUL\NUL\NUL\NUL\NUL\236\SOH\208\255\NUL\NUL\214\EOT\158\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL2\NUL\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\249\255I\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\FSg\FS\NUL\NUL\NUL\NUL\NUL\NUL\145\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyDefActions"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyDefActions")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\250\255=\254\NUL\NUL\NUL\NUL\NUL\NUL=\254\155\254\143\254}\254\NUL\NUL{\254w\254t\254q\254l\254i\254g\254e\254c\254a\254_\254\\\254O\254\NUL\NUL\165\254\164\254=\254~\254\DEL\254\NUL\NUL\NUL\NUL\129\254\128\254\130\254\131\254\NUL\NUL\NUL\NUL\NUL\NULE\254F\254D\254C\254\166\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\255\227\255\226\255\225\255\224\255\223\255\222\255\NUL\NUL\NUL\NUL\199\255\215\255\181\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULK\254\NUL\NUL\NUL\NUL\166\254>\254\NUL\NUL\247\255\NUL\NUL\246\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\152\255\NUL\NULw\255\155\255\138\255\154\255\137\255\153\255\136\255l\255R\255=\254Q\255\NUL\NUL\229\255\n\255\b\255\t\255\166\255\251\254\250\254\NUL\NUL<\254;\254\NUL\NUL=\254\NUL\NUL\141\255~\255\134\255}\255\129\255=\254\143\255\130\255\132\255\131\255\140\255\133\255\128\255\142\255M\255\144\255\NUL\NUL\139\255L\255\DEL\255\135\255\254\254`\255\NUL\NUL=\254\NUL\NUL\245\255\NUL\NUL=\254\NUL\NUL<\254\NUL\NUL\NUL\NUL\a\255\249\254<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\151\255v\255k\255&\255\166\255:\254\NUL\NULZ\255+\255/\255,\255-\255.\255=\254\ETX\255\215\254\213\254\244\254I\254\NUL\NUL\150\255u\255j\255*\255&\255\166\255\NUL\NUL\NUL\NUL]\255\NUL\NULf\255T\255S\255b\255\146\255\145\255a\255o\255h\255g\255\169\255n\255m\255\170\255{\255r\255s\255q\255z\255y\255x\255\NUL\NUL&\255'\255#\255 \255\US\255$\255\SYN\255(\255\166\255\NUL\NUL=\254\"\255\NUL\NUL\148\255|\255p\255&\255\166\255\147\255\NUL\NULe\255\NUL\NUL&\255\166\255=\254\168\255=\254\167\255\243\255\NUL\NUL\NUL\NULJ\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL?\254K\254\NUL\NUL\NUL\NUL\188\255}\254G\254\NUL\NUL\187\255\NUL\NUL\180\255\213\255=\254\198\255=\254=\254\NUL\NUL\133\254=\254\134\254\140\254B\254A\254\138\254=\254\136\254=\254\132\254\141\254\142\254\NUL\NUL\222\254\138\255\137\255\136\255\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\139\254\NUL\NULZ\254V\254U\254Y\254X\254W\254R\254Q\254P\254T\254S\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\254\148\254\248\255\249\255\151\254\150\254\NUL\NUL\NUL\NUL\145\254\153\254[\254x\254y\254z\254u\254v\254r\254s\254m\254o\254n\254p\254j\254k\254h\254f\254d\254b\254\NUL\NUL\NUL\NUL`\254M\254N\254\163\254\NUL\NUL\219\254\216\254\218\254\217\254\NUL\NUL\220\254\244\254\200\254\221\254\162\254\NUL\NUL\NUL\NUL@\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\214\255\213\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\219\255\NUL\NUL=\254\NUL\NUL\NUL\NUL\190\255\NUL\NUL\186\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\182\254=\254\NUL\NUL\241\255=\254=\254\182\254\239\255!\255\244\254\NUL\NUL\RS\255\DC2\255<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\f\255=\254\182\254\240\255N\255K\255=\254\NUL\NUL\149\255t\255i\255)\255&\255\166\255\NUL\NULW\255=\254\182\254\238\255I\254H\254\NUL\NULI\254\130\254=\254\239\254\235\254\232\254\154\255\137\255\228\254\NUL\NUL\243\254\241\254\NUL\NUL<\254\224\254\212\254\236\255\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254=\254=\254\182\254\242\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\246\254\253\254\STX\255\ACK\255\t\255\ENQ\255\248\254\NUL\NUL\NUL\NUL4\255\NUL\NUL\NUL\NUL\NUL\NUL6\254\NUL\NUL8\254\&4\254\&5\254_\255^\255\NUL\NUL3\255\&1\255\NUL\NUL\NUL\NUL\EOT\255\SOH\255\245\254\NUL\NUL\NUL\NUL\252\254\NUL\255\161\255\NUL\NUL\235\255\NUL\NUL\NUL\NUL&\255&\255\NUL\NUL(\255\NUL\NUL=\254&\255\247\254\NUL\NUL=\254\214\254=\254\226\254\NUL\NUL\227\254\244\254\200\254=\254=\254\231\254\244\254\200\254=\254\234\254=\254=\254\238\254=\254\NUL\NUL\NUL\NUL\NUL\NUL\130\254\211\254\NUL\NUL\NUL\NULI\254\130\254\163\255\231\255=\254=\254\182\254\237\255\NUL\NUL\NUL\NUL=\254K\255\157\255\233\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\SI\255\SUB\255\NUL\NUL\GS\255\FS\255\DC1\255\NUL\NUL\NUL\NUL\164\255\232\255\NUL\NUL\NUL\NUL\NUL\NUL\159\255\158\255\234\255&\255&\255\NUL\NUL\NUL\NUL\NUL\NUL\189\255K\254K\254\NUL\NUL\NUL\NUL\220\255\NUL\NUL\NUL\NUL\214\255\NUL\NUL\211\255\NUL\NUL\212\255\210\255\208\255\209\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL`\255=\254\221\255=\254\NUL\NUL=\254\NUL\NUL\137\254\135\254=\254\198\254\196\254\NUL\NUL\NUL\NUL\NUL\NUL<\254\186\254|\254\180\254\NUL\NUL]\254\NUL\NUL\152\254\NUL\NUL\154\254\144\254^\254L\254\179\254\NUL\NUL\NUL\NUL\NUL\NUL\172\254\173\254\185\254\NUL\NUL\NUL\NUL\NUL\NUL\180\254\NUL\NUL\NUL\NUL\NUL\NUL\193\254\194\254\192\254\195\254\197\254\199\254<\254\NUL\NUL\NUL\NUL\158\254\NUL\NUL\207\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\NUL\NUL\201\255\NUL\NUL\179\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\255\195\255\194\255\182\254\182\254\NUL\NULd\255c\255\NUL\NUL\ESC\255\DLE\255\NUL\NUL\NAK\255\EM\255\r\255\SO\255\NUL\NUL\CAN\255\v\255=\254@\255I\255\NUL\NUL\NUL\NUL=\254<\254J\255O\255=\254\\\255[\255\162\255\230\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\254=\254\209\254\NUL\NUL\210\254\204\254\NUL\NUL\NUL\NUL\237\254\236\254\233\254=\254\196\254<\254\230\254\229\254=\254\196\254<\254\225\254\240\254\242\254\223\254\NUL\NUL\NUL\NUL\NUL\NUL&\255Y\255X\255\181\254\255\254\244\255\NUL\NUL\NUL\NUL\NUL\NUL8\255\NUL\NUL\NUL\NUL6\254\&7\254\&9\254\&1\254\NUL\NUL2\254\&2\255\&7\255\&0\255\NUL\NUL6\255\NUL\NUL<\254<\254\NUL\NUL\207\254\203\254\NUL\NUL\NUL\NUL\208\254\202\254V\255U\255F\255D\255<\255\NUL\NUL\NUL\NUL<\254=\254H\255=\254G\255=\254?\255\NUL\NULP\255\ETB\255\NUL\NUL\NUL\NUL\DC4\255%\255\156\255\160\255\NUL\NULK\254K\254\NUL\NUL\218\255\NUL\NUL\178\255\177\255\NUL\NUL\NUL\NUL\185\255\216\255\200\255\206\255\204\255\205\255\NUL\NUL\203\255\159\254\160\254\NUL\NUL\NUL\NUL\161\254\191\254\189\254\190\254\188\254\NUL\NUL\169\254\NUL\NUL\174\254\171\254\168\254\175\254\178\254\NUL\NUL\147\254\177\254\NUL\NUL\146\254\170\254\NUL\NUL\NUL\NUL\184\254\187\254\157\254\NUL\NUL\202\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\255\193\255\NUL\NUL\NUL\NUL\196\255\DC3\255>\255\NUL\NULB\255\NUL\NUL\NUL\NULE\255;\255\NUL\NUL9\255\201\254\NUL\NUL\206\254\&5\255\&3\254\NUL\NUL0\254\205\254:\255=\254C\255=\255\NUL\NUL\NUL\NUL\NUL\NUL\184\255\176\255\NUL\NUL\NUL\NUL\NUL\NUL\156\254\183\254\NUL\NUL\176\254\167\254\NUL\NUL\NUL\NUL\175\255\NUL\NUL\NUL\NUL\214\255\192\255A\255\191\255\NUL\NUL\172\255\183\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\255\182\255\173\255\174\255")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyCheck"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyCheck")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\255\255\STX\NUL\ETX\NUL\EOT\NUL6\NULt\NUL\NAK\NUL\SYN\NUL\ETB\NUL\NAK\NUL\SYN\NUL\ETB\NUL\ETB\NUL\EOT\NUL5\NUL\SOH\NUL\SOH\NUL\CAN\NUL\ETX\NUL\SOH\NUL\EOT\NUL\STX\NUL\FS\NUL\STX\NUL\EM\NULt\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\SOH\NUL\ETX\NUL\DC4\NUL\STX\NUL[\NUL\r\NUL3\NUL9\NUL \NUL!\NUL7\NUL#\NUL\r\NUL!\NUL\STX\NUL\ETX\NUL\EOT\NUL\RS\NUL.\NUL*\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NUL\SOH\NULy\NUL6\NULv\NUL\SOH\NUL.\NUL6\NULv\NUL6\NUL\EM\NUL\t\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULt\NUL\SOH\NUL^\NULt\NULt\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL^\NUL\r\NUL\STX\NUL\ETX\NUL\EOT\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NULB\NULC\NULD\NUL[\NUL6\NUL\\\NUL]\NUL^\NUL\EM\NUL^\NUL\ESC\NULy\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\EOT\NUL\SOH\NUL\SOH\NULy\NUL\ETX\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL\STX\NUL\r\NUL\r\NUL6\NUL6\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NULv\NUL!\NUL\RS\NUL#\NUL#\NUL\SOH\NUL\a\NUL\\\NUL]\NUL^\NUL*\NUL+\NUL,\NUL\EOT\NUL{\NULy\NUL\SOH\NUL\r\NUL\STX\NUL3\NUL\SOH\NUL,\NUL6\NUL6\NUL*\NUL\\\NULT\NUL6\NUL\r\NUL\STX\NULT\NUL\SOH\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULC\NUL \NUL!\NUL\r\NUL#\NULH\NULw\NULx\NULy\NUL\SOH\NUL!\NUL*\NUL+\NUL,\NUL\EOT\NULy\NUL\SOH\NUL\RS\NUL*\NULV\NUL3\NUL\r\NULy\NUL6\NUL\\\NUL\\\NUL]\NUL^\NUL\r\NUL\\\NUL]\NUL6\NUL\SOH\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL-\NUL\STX\NUL!\NUL\r\NUL#\NULC\NUL6\NULx\NULy\NULy\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\\\NUL]\NUL^\NUL\STX\NUL\a\NUL3\NUL\SOH\NUL-\NUL6\NULV\NUL\a\NUL\\\NUL]\NUL^\NUL\RS\NUL\\\NUL]\NUL^\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL!\NUL#\NUL#\NUL\\\NUL]\NULy\NUL\a\NUL\SOH\NUL*\NUL+\NUL,\NUL\EOT\NUL\a\NULy\NUL*\NUL\\\NUL\EOT\NUL3\NULv\NUL\r\NUL7\NUL6\NUL\\\NUL]\NUL^\NUL\\\NUL]\NULw\NULx\NULy\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL\SOH\NUL#\NULC\NUL \NUL!\NULy\NUL#\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\r\NUL*\NUL+\NUL,\NUL\STX\NUL3\NULy\NUL\FS\NUL6\NULV\NUL3\NULz\NUL{\NUL6\NUL\FS\NUL\\\NUL]\NUL^\NULK\NULA\NULB\NULC\NULD\NULt\NULA\NULB\NULC\NULD\NUL!\NUL-\NUL#\NULw\NULx\NULy\NULy\NULy\NUL9\NUL*\NUL+\NUL,\NUL\SOH\NUL6\NULT\NUL9\NUL*\NUL\\\NUL3\NUL^\NUL\ETX\NUL6\NUL!\NUL\ACK\NUL\r\NULT\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULH\NULA\NULB\NULC\NULD\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL6\NULT\NULV\NULx\NULy\NUL\US\NUL4\NUL5\NUL\\\NULy\NUL^\NUL\r\NUL \NUL!\NUL*\NUL \NUL!\NUL-\NUL\ENQ\NUL\ACK\NUL\a\NUL\RS\NUL\t\NUL\SUB\NUL\v\NUL\f\NUL\r\NUL\a\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL-\NUL6\NUL\\\NUL]\NUL6\NUL\EM\NUL\SOH\NUL\ESC\NUL\ETX\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL4\NUL5\NUL\\\NUL]\NUL^\NULt\NUL3\NULT\NUL\n\NULy\NUL7\NULZ\NUL\SO\NUL\\\NULv\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULT\NULn\NUL\\\NUL]\NUL^\NUL\FS\NULs\NULt\NUL\FS\NULv\NULB\NULC\NULD\NULy\NUL,\NULZ\NULy\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL9\NULn\NULv\NUL9\NULT\NUL\FS\NULs\NULt\NULK\NULv\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\n\NUL\t\NULy\NUL\v\NUL\f\NUL\r\NULv\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL\FS\NULx\NULy\NUL\FS\NUL\EM\NUL9\NUL\ESC\NULv\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NULw\NULx\NULy\NUL\FS\NUL9\NUL3\NUL\a\NUL9\NUL\FS\NUL7\NUL\FS\NUL\FS\NUL\SOH\NUL\SUB\NUL*\NUL<\NUL=\NUL-\NUL\SOH\NUL\SUB\NUL\ETX\NULB\NULC\NULD\NUL\r\NUL\a\NUL\"\NUL#\NUL\SUB\NUL%\NUL\r\NUL'\NUL9\NUL)\NUL*\NUL+\NUL,\NUL9\NUL\a\NUL9\NUL9\NUL \NUL!\NUL3\NULZ\NULv\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NULn\NUL\\\NUL]\NUL^\NULL\NULs\NULt\NUL\SUB\NULv\NULw\NULx\NULy\NULy\NUL\a\NULA\NULB\NULC\NULD\NULZ\NULP\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NUL\\\NUL]\NUL^\NUL\a\NULs\NULt\NUL\\\NUL]\NULw\NULx\NULy\NUL\SOH\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL*\NULt\NUL\ETX\NUL-\NUL\r\NUL\ACK\NUL\"\NUL#\NULy\NUL%\NULv\NUL'\NULy\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\STX\NUL\ETX\NUL6\NUL\RS\NUL\ACK\NUL3\NULX\NULY\NUL*\NUL7\NUL6\NUL-\NUL\US\NUL\SUB\NUL6\NUL;\NUL<\NUL=\NUL>\NUL?\NULy\NULA\NULB\NULC\NULD\NUL\a\NUL\"\NUL#\NULv\NUL%\NULL\NUL'\NUL\b\NUL)\NUL*\NUL+\NUL,\NULM\NULN\NULO\NULP\NULQ\NULR\NUL3\NULZ\NULu\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULv\NULn\NUL\\\NUL]\NULm\NULL\NULs\NULt\NUL\NUL\NUL\SOH\NULw\NULx\NULy\NULx\NULy\NUL\SOH\NULw\NULx\NULy\NULZ\NUL+\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NULA\NULB\NULC\NULD\NULs\NULt\NUL6\NUL\STX\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL[\NULA\NULB\NULC\NULD\NUL\a\NULF\NULG\NUL\STX\NUL\"\NUL#\NUL+\NUL%\NUL\SOH\NUL'\NUL\SOH\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\EM\NUL\EOT\NUL\ESC\NUL3\NUL\GS\NUL\RS\NUL\US\NUL7\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL[\NUL3\NUL\SOH\NULL\NUL\ETX\NUL7\NUL\\\NUL]\NULx\NULy\NULA\NULB\NULC\NULD\NUL\r\NUL\\\NUL]\NULZ\NUL^\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULZ\NULn\NUL\\\NUL\EOT\NUL^\NUL_\NULs\NULt\NUL*\NUL+\NULw\NULx\NULy\NUL!\NUL^\NUL#\NUL*\NUL+\NUL\a\NUL*\NUL+\NUL#\NUL*\NUL+\NUL,\NULs\NULt\NUL\STX\NUL*\NUL+\NUL,\NUL3\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL3\NUL\ESC\NUL+\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL6\NUL\\\NUL]\NUL3\NULN\NULO\NULP\NUL7\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL,\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULZ\NUL*\NUL\\\NUL\SOH\NUL^\NUL_\NUL3\NULy\NUL+\NUL!\NUL7\NUL#\NUL\RS\NULy\NUL^\NUL#\NUL\\\NUL]\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL,\NULs\NULt\NUL3\NUL\ETB\NUL\CAN\NUL6\NUL3\NULy\NUL\RS\NUL6\NUL^\NULw\NULx\NULy\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL0\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\DC1\NUL\DC2\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL6\NULw\NULx\NULy\NUL\EOT\NUL3\NULw\NULx\NULy\NUL7\NUL#\NULA\NULB\NULC\NULD\NUL2\NUL\EOT\NUL*\NUL+\NUL,\NUL\a\NUL\EOT\NULx\NULy\NUL\\\NUL]\NUL3\NUL\v\NUL\f\NUL6\NULA\NULB\NULC\NULD\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL\US\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\SOH\NUL-\NUL\ETX\NUL*\NUL+\NUL3\NUL<\NULx\NULy\NUL7\NUL*\NUL+\NUL\r\NUL+\NULw\NULx\NULy\NUL\EM\NUL+\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL+\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\\\NUL]\NUL3\NUL6\NUL\FS\NUL\GS\NUL7\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL6\NUL!\NUL,\NUL#\NULC\NULw\NULx\NULy\NUL\RS\NULH\NUL*\NUL+\NUL,\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL\STX\NULH\NUL3\NULw\NULx\NULy\NULV\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\ETB\NUL\CAN\NUL^\NULV\NUL\STX\NULB\NULC\NULD\NUL\STX\NUL\\\NUL]\NUL^\NUL\ENQ\NUL\ACK\NUL\a\NUL\DC1\NUL\DC2\NULN\NULO\NULP\NULQ\NULR\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL7\NUL\STX\NULw\NULx\NULy\NULw\NULx\NULy\NUL\v\NUL\f\NULA\NULB\NULC\NULD\NULZ\NUL\STX\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULw\NULx\NULy\NUL,\NULs\NULt\NUL\RS\NULv\NULZ\NUL\\\NUL\\\NUL-\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\RS\NULn\NULw\NULx\NULy\NUL0\NULs\NULt\NULZ\NULv\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL6\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\US\NULC\NUL\EOT\NUL\STX\NUL6\NUL\STX\NULH\NULM\NUL\EOT\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NUL\EOT\NULV\NUL\EOT\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL;\NUL<\NUL=\NULN\NULO\NULP\NULA\NULB\NULC\NULD\NUL^\NUL\\\NUL\ENQ\NUL\ACK\NUL\a\NULM\NULN\NULO\NULP\NULQ\NULR\NUL0\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\STX\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\STX\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL+\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULN\NULO\NULP\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NULN\NULO\NULP\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULs\NULt\NUL\US\NULv\NUL*\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL^\NUL\EOT\NUL\EOT\NULN\NULO\NULP\NULN\NULO\NULP\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULN\NULO\NULP\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULN\NULO\NULP\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NULw\NULx\NULy\NULw\NULx\NULy\NUL\US\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\SOH\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL,\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL,\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\US\NULn\NULw\NULx\NULy\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\b\NULn\NULw\NULx\NULy\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL^\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL\US\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL<\NUL=\NUL>\NUL?\NUL@\NUL+\NULB\NULC\NULD\NUL+\NUL[\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULw\NULx\NULy\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULw\NULx\NULy\NUL\\\NUL*\NULZ\NULF\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NUL*\NULp\NULx\NULy\NULs\NULt\NULw\NULx\NULy\NUL\STX\NUL\STX\NULZ\NULy\NUL\\\NUL^\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NULN\NULO\NULP\NUL\RS\NULs\NULt\NULZ\NULv\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\ESC\NULn\NUL\f\NUL\r\NUL\EM\NUL\DLE\NULs\NULt\NUL\EOT\NULv\NUL\SOH\NUL[\NUL\ETX\NUL\STX\NUL\STX\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\SOH\NUL \NUL!\NUL3\NUL#\NULW\NUL+\NUL7\NULN\NULO\NULP\NUL*\NUL+\NUL,\NULF\NULN\NULO\NULP\NUL+\NUL^\NUL3\NUL,\NUL\SOH\NUL6\NUL,\NUL6\NULZ\NUL\SOH\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULA\NULB\NULC\NULD\NULC\NUL\r\NUL,\NUL0\NULZ\NULH\NUL\\\NUL,\NUL^\NUL_\NUL`\NUL7\NUL\SOH\NULs\NULt\NUL;\NUL<\NUL=\NUL,\NULV\NUL\ETX\NULA\NULB\NULC\NULD\NUL\\\NUL]\NUL^\NUL\SOH\NULs\NULt\NUL+\NUL\STX\NULw\NULx\NULy\NUL0\NUL1\NUL,\NUL3\NUL\STX\NUL5\NUL[\NUL^\NUL8\NUL\SOH\NULe\NUL;\NUL\SOH\NUL=\NUL>\NUL?\NULy\NULN\NULO\NULP\NULD\NULE\NUL\SOH\NULG\NUL\EOT\NUL^\NULJ\NULK\NUL\SOH\NULM\NULN\NUL^\NULP\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NULw\NULx\NULy\NUL,\NULe\NUL\\\NUL]\NUL^\NUL_\NUL\SOH\NULw\NULx\NULy\NUL\RS\NULe\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SOH\NUL\SOH\NUL\DLE\NULN\NULO\NULP\NULZ\NUL\RS\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NUL\ESC\NUL+\NUL8\NUL+\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\RS\NULA\NULB\NULC\NULD\NUL+\NUL+\NUL,\NULs\NULt\NUL/\NUL0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL:\NUL;\NULe\NUL=\NUL>\NUL?\NUL@\NULA\NULB\NULC\NULD\NULE\NUL\SOH\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\SOH\NUL\SOH\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL[\NUL1\NUL\DLE\NULe\NUL*\NULZ\NUL6\NUL\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NUL\ESC\NUL>\NULw\NULx\NULy\NUL\SUB\NULC\NULw\NULx\NULy\NULG\NULH\NULw\NULx\NULy\NUL\EM\NULM\NULs\NULt\NULP\NUL/\NULR\NUL1\NUL\DLE\NUL3\NULV\NUL5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL^\NUL=\NUL>\NUL?\NULN\NULO\NULP\NULC\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULN\NULO\NULP\NUL\255\255\&6\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULA\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\EM\NUL\255\255\ESC\NUL\ESC\NUL\GS\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL/\NUL\255\255\&1\NUL3\NUL3\NUL\255\255\&5\NUL7\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NULN\NULO\NULP\NUL\255\255D\NULE\NUL\255\255G\NULx\NULy\NULJ\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\255\255\&7\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255w\NULx\NULy\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\ESC\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255\255\255<\NUL=\NUL,\NUL\255\255\255\255/\NULB\NULC\NULD\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\SOH\NUL\STX\NUL\ETX\NULD\NULE\NULw\NULx\NULy\NUL\255\255J\NULK\NULL\NUL\EOT\NULN\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULx\NULy\NUL\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\SOH\NULC\NUL\ETX\NUL\255\255\ENQ\NUL\ACK\NULH\NUL\255\255\t\NUL\n\NUL\ESC\NUL\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NULV\NULA\NULB\NULC\NULD\NUL\255\255\\\NUL\255\255^\NUL\255\255/\NUL\SOH\NUL\STX\NUL\ETX\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\r\NUL\SO\NUL\SI\NULD\NULE\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255J\NULK\NULL\NUL\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\r\NUL\SO\NUL\SI\NUL6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL6\NUL\255\255\255\255\255\255H\NUL;\NUL<\NUL=\NUL\ESC\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255Z\NULV\NUL\\\NUL\255\255^\NUL_\NUL`\NUL+\NUL,\NUL^\NUL\255\255/\NUL0\NUL\255\255\&2\NUL\255\255\&4\NUL\255\255\255\255\&7\NUL\255\255\&9\NUL:\NUL7\NUL\255\255s\NULt\NUL\255\255@\NULA\NULB\NUL\255\255\255\255A\NULB\NULC\NULD\NULI\NULF\NULG\NULL\NUL\255\255\255\255O\NUL\255\255\255\255\SOH\NUL\255\255\ETX\NULx\NULy\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\ESC\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255/\NUL\255\255D\NULE\NUL\255\255G\NUL\255\255\&6\NULJ\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULC\NUL\SOH\NUL\255\255\ETX\NUL\255\255H\NUL\\\NUL]\NUL^\NULL\NULM\NUL\255\255Z\NUL\r\NUL\\\NUL\255\255^\NUL_\NUL`\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255s\NULt\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\ESC\NUL=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255/\NULQ\NUL\255\255S\NULT\NULU\NULV\NUL6\NUL\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\255\255\255\255\255\255\255\255\SOH\NULC\NUL\ETX\NUL\255\255\SOH\NUL\255\255H\NUL\SOH\NUL\255\255\255\255L\NULM\NUL\r\NULB\NULC\NULD\NUL\r\NULF\NULG\NUL\r\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\&6\NULZ\NUL\255\255\\\NUL6\NUL^\NUL_\NUL6\NUL\ESC\NUL\255\255\255\255\255\255\255\255C\NULx\NULy\NUL\255\255C\NULH\NUL\255\255C\NUL\255\255H\NUL\255\255\255\255H\NULs\NULt\NUL/\NULZ\NUL\255\255\\\NULV\NUL^\NUL_\NUL6\NULV\NUL\255\255\\\NULV\NUL^\NUL\255\255\\\NUL]\NUL^\NUL\\\NUL]\NUL^\NULC\NUL\255\255\255\255\255\255\255\255H\NULs\NULt\NUL\255\255L\NULM\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\ETX\NUL\255\255\r\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\ETX\NUL\255\255\255\255\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL,\NUL-\NUL6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL-\NUL\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\ESC\NULF\NULG\NULZ\NUL\SOH\NUL\\\NUL\ETX\NUL^\NUL_\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&6\NULs\NULt\NUL\ESC\NUL\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NULx\NULy\NUL\255\255\SOH\NUL\255\255\ETX\NULs\NULt\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL6\NUL\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NUL\SOH\NUL\255\255\255\255\255\255\255\255V\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL^\NUL\255\255\DLE\NUL/\NUL\255\255s\NULt\NUL\255\255\255\255\255\255\&6\NUL\255\255Z\NUL\ESC\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\&6\NUL\255\255\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\STX\NUL\255\255\255\255\r\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULy\NUL\255\255\DLE\NULs\NULt\NUL\255\255\255\255\&6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL\255\255\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL\255\255^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255\ESC\NUL\SOH\NUL\STX\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL,\NUL\255\255Z\NUL/\NUL\\\NUL\255\255^\NUL_\NUL`\NUL\255\255\ESC\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL\255\255/\NUL\255\255L\NULx\NULy\NUL\255\255\255\255\ESC\NUL\255\255\255\255\RS\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL/\NUL\255\255L\NUL\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255L\NULs\NULt\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NULX\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULx\NULy\NUL\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL7\NUL\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\ESC\NULA\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255L\NULx\NULy\NUL\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\ESC\NUL0\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NULV\NUL\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255^\NUL\255\255/\NULD\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL_\NULL\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\US\NUL \NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL\255\255\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\r\NUL5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\r\NUL8\NUL\255\255\SOH\NUL;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\r\NULG\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\RS\NUL\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&6\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&3\NULC\NUL5\NUL\255\255\255\255\&8\NULH\NUL\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255V\NUL\255\255\255\255J\NULK\NUL\255\255\\\NULN\NUL^\NUL\255\255Q\NUL6\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NULC\NUL\255\255\255\255\RS\NUL\US\NULH\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\&3\NUL\\\NUL\255\255^\NUL7\NUL\255\255\255\255\255\255\255\255<\NUL=\NUL\255\255\255\255\255\255\255\255B\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULB\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255x\NULy\NUL7\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255x\NULy\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NULK\NUL\255\255\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULH\NULI\NULJ\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255 \NUL!\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255!\NUL6\NUL#\NUL\255\255w\NULx\NULy\NULJ\NUL\255\255*\NUL+\NUL,\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255w\NULx\NULy\NUL\255\255!\NUL\255\255#\NUL\255\255!\NUL\255\255#\NUL\255\255\255\255*\NUL+\NUL,\NULy\NUL*\NUL+\NUL,\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255<\NUL=\NUL\255\255\255\255x\NULy\NULB\NULC\NULD\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255!\NUL\255\255#\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL3\NULy\NUL\255\255\&6\NULx\NULy\NUL3\NUL\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255y\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255y\NUL\255\255\255\255\255\255Z\NULL\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NUL\255\255\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\"\NUL#\NUL7\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255L\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\"\NUL#\NULL\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL6\NULw\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255L\NUL\255\255\255\255w\NULx\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL#\NUL\255\255\255\255\&6\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\&2\NUL3\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255w\NULx\NULy\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255x\NULy\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NUL\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\&7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL7\NUL\255\255\255\255\&6\NULq\NUL\255\255s\NULt\NUL;\NUL<\NUL=\NUL\255\255y\NUL\255\255A\NULB\NULC\NULD\NULw\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL7\NUL6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255w\NULx\NULy\NUL\255\255\255\255s\NULt\NULw\NULx\NULy\NUL+\NUL\255\255-\NUL\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255+\NUL\255\255-\NUL\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255+\NULQ\NUL\255\255S\NULT\NULU\NUL1\NUL\255\255\255\255\255\255\255\255\&6\NUL\255\255]\NUL^\NUL_\NUL+\NUL\255\255\255\255>\NUL\255\255\255\255\&1\NUL\255\255C\NUL\255\255\255\255\&6\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL>\NUL\255\255P\NUL\255\255R\NULC\NUL\255\255\255\255V\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL^\NUL\255\255P\NUL\255\255R\NUL,\NUL\255\255\255\255V\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255.\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255\255\255>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NUL\255\255\255\255P\NUL\255\255R\NUL\255\255T\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255\255\255\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255T\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255S\NUL^\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NUL\255\255V\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NULv\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NUL\255\255S\NUL\255\255\255\255\255\255\255\255\255\255|\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255Z\NUL\255\255\\\NULy\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255o\NUL\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&1\NULM\NULN\NULO\NULP\NULQ\NULR\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL1\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyTable"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyTable")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\NUL\NUL\136\NULL\NULM\NUL\162\SOH{\ETX^\ETX\DC2\ETX\DC3\ETX\DC1\ETX\DC2\ETX\DC3\ETX`\ETX=\254\230\STX%\STX\141\SOHr\ETX\170\NUL\203\SOH5\ETX%\ETX\SUB\STXz\ETXN\NULi\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\212\STX\SYN\ETX\248\NUL{\STX\130\STX\239\NUL_\NUL\132\SOH\199\NUL\185\NUL`\NUL\200\NUL\247\SOH\188\NUL=\SOHL\NULM\NULu\SOH6\ETX{\ETXa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL%\STXO\ETX\186\NUL\131\STX\203\SOHv\SOH\189\NUL\226\SOH\249\NULN\NULq\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\DC4\ETX\151\SOH\134\NUL\DC4\ETX\DC4\ETX\132\NUL_\NUL\134\NULs\ETX\132\NUL`\NUL\134\NUL\134\NUL\214\NULK\NULL\NULM\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\240\NULK\NUL\200\SOHc\NUL\201\SOH*\NUL\182\NUL\132\NUL\152\SOH\134\NULN\NUL\134\NULO\NUL\201\NULP\NULQ\NULR\NUL\190\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\170\NUL\203\SOH\ACK\STXO\ETX\170\NUL\132\NUL_\NUL\134\NULj\ETX\132\NUL`\NUL\134\NULU\ETX\204\SOH\a\STX\221\SOH\189\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL9\ETX\171\NUL\251\STX\172\NUL\196\NUL%\STX;\ETX\132\NUL\152\SOH\134\NUL\173\NUL]\NUL^\NUL\215\NUL\225\STX\183\NUL\211\STX&\STX\224\STX_\NUL%\STX\157\SOH\174\NUL\197\NULV\ETX\222\SOH\n\ETX<\254\247\SOHm\ETX\v\ETX\246\SOH&\STX\175\NULb\NULc\NULd\NUL\176\NULf\NULg\NUL<\254\216\NUL\185\NUL\247\SOH\217\NUL<\254h\NULi\NULj\NUL\203\SOH\181\NUL\218\NUL]\NUL^\NUL\158\SOH\190\NUL\212\STXn\ETX\225\STX<\254_\NUL\204\SOH`\STX\186\NUL\132\NUL\132\NUL\215\NUL\134\NUL\247\SOH\240\NULK\NUL\182\NUL\213\NUL\161\NUL\219\NULb\NULc\NULd\NUL\220\NULf\NULg\NULT\ETXA\ETX\159\SOH\214\NUL\160\SOH\162\NUL\174\NUL\177\NULj\NUL\198\NUL\163\NUL\161\SOH]\NUL^\NUL\150\NUL\132\NUL\215\NUL\134\NUL\249\SOH\EM\ETX_\NUL\236\STX\232\STX\162\SOH\164\NUL\SUB\ETX\132\NUL\215\NUL\134\NULB\ETX\132\NUL\215\NUL\134\NUL\247\SOH\163\SOHb\NULc\NULd\NUL\164\SOHf\NULg\NUL\132\NUL\215\NUL\151\NUL\195\NUL\152\NUL\196\NUL\240\NULK\NUL\221\NUL\ESC\ETXl\NUL\153\NUL]\NUL^\NUL\134\STX\GS\ETX\183\NUL\250\SOH\132\NUL\137\STX_\NUL(\ETXm\NUL\f\STX\197\NUL\132\NUL\152\SOH\134\NUL\240\NULK\NUL\193\STX\128\STXj\NUL\161\NUL\154\NULb\NULc\NULd\NUL\155\NULf\NULg\NUL\132\NUL\215\NUL\171\NUL\203\SOH\172\NUL\162\NUL\216\NUL\185\NUL\156\NUL\217\NUL\163\NUL\173\NUL]\NUL^\NUL\FS\ETX\204\SOH\218\NUL]\NUL^\NULg\STX_\NUL`\STX\152\STX\174\NUL\164\NUL_\NUL\218\SOH\219\SOH\186\NUL\153\STX\132\NUL\215\NUL\134\NUL\140\STX\175\NULb\NULc\NUL\208\SOH\154\STX\219\NULb\NULc\NUL\208\SOH\159\SOH\168\STX\160\SOH\r\STX\140\NULj\NUL\156\NUL\198\NUL\132\SOH\161\SOH]\NUL^\NUL\151\SOH\161\NUL\180\STX\132\SOHh\STX\132\NUL_\NUL\134\NUL\168\254\162\SOH\188\NUL\168\254\214\NUL\236\SOH\162\NULn\ETX2\NUL3\NUL\215\SOH\163\NUL\163\SOHb\NULc\NUL\208\SOH\144\STX4\NUL5\NUL6\NUL7\NUL8\NUL%\STX\189\NUL\SYN\STX\164\NUL\135\STXj\NUL\168\254\218\STX\225\SOH\132\NUL\221\NUL\134\NUL&\STX\192\NUL\185\NUL7\ETX\184\NUL\185\NUL8\ETXF\STX2\NUL3\NUL\145\STX\141\STX\EM\STXH\STXI\STXJ\STX\ESC\STX4\NUL5\NUL6\NUL7\NUL8\NUL\RS\STX\186\NUL\240\NULK\NUL\186\NULK\STX\169\NULO\NUL\170\NULP\NULL\STXM\STX\156\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\224\SOH\225\SOH\132\NUL\152\SOH\134\NULB\STX_\NUL \STXp\SOH\190\NULO\STX\ACK\NULq\SOH\a\NUL\226\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL/\STX9\NUL\132\NUL\215\NUL\134\NUL\137\SOH\CAN\NUL\EM\NUL\168\SOH:\NUL\146\NULc\NUL\233\SOH\193\NUL\229\255\ACK\NUL\187\NUL\a\NUL\134\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\132\SOH9\NUL\226\SOH\132\SOH5\STX\198\SOH\CAN\NUL\EM\NULC\STX:\NULh\NUL\195\SOHj\NULF\STX2\NUL3\NULD\STXG\STX`\STXH\STXI\STXJ\STX?\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\146\SOH\SUB\STX\149\NULj\NUL\131\SOHK\STX\132\SOHO\NUL@\SOHP\NULL\STXM\STX\214\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\r\SOHp\ETX\140\NULj\NUL\137\SOH\132\SOH_\NUL\134\SOH\132\SOH\153\SOHO\STX\168\SOH\198\SOH\151\SOH\130\SOH\234\STX#\STX\207\NUL\235\STX\ACK\STX\136\SOH\170\NUL\200\SOHc\NUL\201\SOH\214\NUL\138\SOH\SO\SOHU\NUL\152\SOH\SI\SOH\a\STX\DLE\SOH\132\SOH\DC1\SOH\\\NUL]\NUL^\NUL\132\SOH\154\SOH\132\SOH\132\SOH\192\NUL\185\NUL_\NUL\ACK\NUL\155\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\186\NUL9\NUL\132\NUL\215\NUL\134\NULh\SOH\CAN\NUL\EM\NUL\167\SOH:\NULh\NUL\195\SOHj\NUL\156\NUL\169\SOH\207\SOHb\NULc\NUL\208\SOH\ACK\NUL\188\SOH\a\NUL\197\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH\132\NUL\152\SOH\134\NUL\199\SOH\CAN\NUL\EM\NUL\132\NUL\215\NULh\NUL\NAK\SOHj\NUL\246\SOH\156\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH0\ETX\212\SOHu\STX1\ETX\247\SOHv\STX\SO\SOHU\NUL\193\NUL\SI\SOH\213\SOH\DLE\SOH\156\NUL\DC1\SOH\\\NUL]\NUL^\NUL\r\SOH \ETX!\ETX\159\NUL\EOT\ETX\"\ETX_\NUL+\ETX,\ETX\221\STX\DC2\SOH\174\NUL\222\STX.\ETX\164\NUL\174\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL\156\NUL\209\SOHb\NULc\NUL\208\SOH\231\NUL\SO\SOHU\NUL\237\NUL\SI\SOHi\SOH\DLE\SOH\250\NUL\DC1\SOH\\\NUL]\NUL^\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH_\NUL\ACK\NUL\EOT\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\n\SOH\DC4\SOH\132\NUL\215\NUL+\SOHk\SOH\CAN\NUL\EM\NUL\135\NUL\ENQ\NULh\NUL\NAK\SOHj\NUL-\STXj\NUL\ENQ\NUL\DEL\STX\128\STXj\NUL\ACK\NUL}\ETX\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH8\STXb\NULc\NUL\208\SOH\CAN\NUL\EM\NUL\174\NUL~\ETXh\NUL\NAK\SOHj\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL*\NUL\209\SOHb\NULc\NULd\NUL\181\STX\210\SOHg\NUL\DEL\ETX\SO\SOHU\NULu\ETX\SI\SOHv\ETX\DLE\SOHw\ETX\DC1\SOH\\\NUL]\NUL^\NUL8\ETX\166\NUL\167\NUL\190\SOHi\ETXO\NUL_\NULP\NUL\191\SOH\192\SOH\DC2\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NULZ\ETX \SOH!\SOH\"\SOH#\SOH*\NUL_\NULe\SOH\DC3\SOH\170\NUL\194\SOH\240\NULK\NUL-\STXj\NUL\249\STXb\NULc\NUL\208\SOHf\SOH=\ETX>\ETX\ACK\NUL\134\NUL\a\NULl\ETX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\ACK\NUL\DC4\SOH\a\NULX\ETX\NUL\SOH\t\NUL\CAN\NUL\EM\NUL\254\STX\255\STXh\NUL\NAK\SOHj\NUL\151\NUL\134\NUL\152\NUL\NUL\ETX\SOH\ETX\238\SOH\250\SOH\EM\ETX\152\NUL\153\NUL]\NUL^\NUL\CAN\NUL\EM\NUL]\ETX\153\NUL]\NUL^\NUL_\NUL^\ETXh\NUL\195\SOHj\NUL\190\SOH_\NULO\NUL`\ETXP\NUL\191\SOH\192\SOHc\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ETB\STX\250\SOH\143\STX\162\SOH\240\NULK\NUL_\NUL&\STX\166\NUL\167\NUL\194\SOHI\ETX\140\NULj\NUL\229\SOHb\NULc\NUL\208\SOH\190\SOHd\ETXO\NULe\ETXP\NUL\191\SOH\192\SOH=\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ACK\NUL@\ETX\a\NUL?\ETX\STX\SOH\t\NUL_\NUL\156\NULC\ETX\159\SOH\194\SOH\160\SOHI\ETX\156\NUL\134\NUL\172\NUL\240\NULK\NUL\161\SOH]\NUL^\NUL!\STX\173\NUL]\NUL^\NUL\CAN\NUL\EM\NUL_\NUL\RS\SOH\US\SOH\162\SOH_\NUL\156\NULO\ETX\174\NUL\134\NULh\NUL\195\SOHj\NUL\190\SOHQ\ETXO\NULS\ETXP\NUL\191\SOH\192\SOH\134\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL0\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX_\NUL\146\NULc\NUL\147\NUL\194\SOH\148\NULg\NUL$\SOH%\SOHh\NUL\195\SOHj\NUL\190\SOH\227\STXO\NUL\134\NULP\NUL\191\SOH\192\SOH\240\STXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NUL\174\NUL\251\STX\252\STXj\NUL\241\STX_\NULJ\ETX\140\NULj\NUL\194\SOH\160\SOH\209\SOHb\NULc\NUL\208\SOHL\ETX\244\STX\161\SOH]\NUL^\NUL6\STX\245\STX\149\SOHj\NUL\240\NULK\NUL_\NUL&\SOH'\SOH\162\SOH\249\STXb\NULc\NUL\208\SOH\246\STXh\NUL\195\SOHj\NUL\190\SOH\247\STXO\NUL\n\ETXP\NUL\191\SOH\192\SOH\238\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\189\SOH\ACK\STX\CAN\ETX\170\NUL\228\NUL\229\NUL_\NUL\r\ETX\211\SOHj\NUL\194\SOH\230\NUL\231\NUL\a\STX\SO\ETXh\NUL\195\SOHj\NUL\190\SOH\SI\ETXO\NUL\DLE\ETXP\NUL\191\SOH\192\SOH\ETB\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NULo\ETX2\NUL3\NUL\240\NULK\NUL_\NUL\161\NUL\CAN\SOH\EM\SOH\194\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\161\NUL\151\NUL=\NUL\152\NUL\162\NULK\ETX\140\NULj\NUL+\ETX\163\NUL\153\NUL]\NUL^\NUL\162\NULE\ETX2\NUL3\NUL\US\ETX\163\NUL_\NULh\NUL\195\SOHj\NUL\164\NUL4\NUL5\NUL6\NUL7\NUL8\NUL\RS\SOH\US\SOH\134\NUL\164\NUL#\ETX\200\SOHc\NUL\201\SOH&\ETX\132\NUL\215\NUL\134\NUL\DLE\ETX2\NUL3\NUL$\SOH%\SOHw\STX\166\NUL\167\NULx\STXy\STX4\NUL5\NUL6\NUL7\NUL8\NUL\232\SOH'\ETXh\NUL\195\SOHj\NUL\241\STX\140\NULj\NUL&\SOH'\SOH\143\NULb\NULc\NUL\208\SOH\ACK\NUL|\STX\a\NUL}\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL\242\STX\140\NULj\NULc\STX\CAN\NUL\EM\NUL>\254:\NUL\ACK\NUL\188\SOH\a\NUL\140\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\146\STX9\NULh\NUL\145\NULj\NUL\134\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\STX9\NUL\149\STX2\NUL3\NUL\161\NUL\CAN\NUL\EM\NUL\157\STX:\NUL\165\STX\167\STX4\NUL5\NUL6\NUL7\NUL8\NUL\238\SOH\162\NUL\202\NUL\179\STX\162\SOH\180\STX\163\NUL\188\STX\189\STX\158\STX\206\NUL\207\NUL\150\STX2\NUL3\NUL\229\SOHb\NULc\NUL\208\SOH\191\STX\164\NUL\192\STX4\NUL5\NUL6\NUL7\NUL8\NUL*\STX\206\NUL\207\NUL\ENQ\ETX\166\NUL\167\NUL\207\SOHb\NULc\NUL\208\SOH\134\NUL\209\STX\151\STX2\NUL3\NULf\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\134\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\203\NUL\214\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\215\STX\210\NULb\NULc\NULd\NUL\211\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL\218\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL&\STX\166\NUL\167\NUL\220\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\223\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\223\SOH9\NUL#\ETX\166\NUL\167\NUL\224\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\229\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\236\SOH9\NULA\STX2\NUL3\NUL\228\SOH\CAN\NUL\EM\NUL\238\SOH:\NUL\251\SOH\252\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\134\NUL\DC2\STX\224\NUL&\STX\166\NUL\167\NUL\162\STX\166\NUL\167\NUL*\STX\206\NUL\207\NULR\STX2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\163\STX\166\NUL\167\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH&\STX\166\NUL\167\NUL\184\STX\140\NULj\NULv\SOH2\NUL3\NUL\189\STX\140\NULj\NUL\194\STX\140\NULj\NUL\238\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\225\NUL\EM\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL=\NUL\210\NULb\NULc\NULd\NUL\226\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL \STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\238\SOH9\NUL\195\STX\140\NULj\NUL(\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL)\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULx\SOH9\NUL\196\STX\140\NULj\NUL\238\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL4\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\134\NUL9\NUL\241\NUL2\NUL3\NUL\238\SOH\CAN\NUL\EM\NUL:\STX:\NUL;\STX<\STX4\NUL5\NUL6\NUL7\NUL8\NUL@\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX=\STX\146\NULc\NUL\233\SOH>\STX*\NUL1\NUL2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\200\STX\140\NULj\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\201\STX\140\NULj\NUL\188\SOHT\STX\ACK\NULF\STX\a\NULW\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULU\STX\234\NULV\STXy\SOH\149\SOHj\NUL\CAN\NUL\EM\NUL\205\STX\140\NULj\NULX\STXY\STX\ACK\NUL\156\NUL\a\NUL\134\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULd\STX9\NUL\216\STX\166\NUL\167\NULf\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\ESC\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\SUB\SOH9\NUL\133\STXJ\STX\FS\SOH\GS\SOH\CAN\NUL\EM\NULi\STX:\NUL\ACK\STXk\SOH\170\NUL]\SOH^\SOHK\STXh\SOHO\NUL\134\NULP\NULL\STXM\STX\a\STXS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\165\NUL\166\NUL\167\NULt\SOH\216\NUL\185\NUL_\NUL\217\NULx\SOH|\SOHO\STX\230\SOH\166\NUL\167\NUL\218\NUL]\NUL^\NULs\SOH\231\SOH\166\NUL\167\NUL~\SOH\134\NUL_\NUL=\NUL\136\SOH\186\NUL=\NUL=\254\ACK\NULl\NUL\a\NUL\134\SOH\244\NUL\t\NUL\n\NULI\SOH\247\SOHb\NULc\NUL\208\SOH=\254m\NUL\229\255\134\SOH\ACK\NUL=\254\a\NUL=\NUL\244\NUL\t\NUL\ETX\SOH\165\STX\158\SOH\CAN\NUL\EM\NUL\142\SOH\206\NUL\207\NUL=\NUL=\254\170\NUL\143\NULb\NULc\NUL\208\SOH\132\NUL\215\NUL\134\NUL\197\SOH\CAN\NUL\EM\NUL?\SOH\205\SOHh\NUL\195\SOHj\NULn\NULo\NUL=\NULp\NUL\207\SOHq\NUL*\NUL\134\NULr\NUL\218\SOH\255\255s\NUL\138\NULt\NULu\NULv\NUL\221\NUL\165\NUL\166\NUL\167\NULw\NULx\NUL\139\NULy\NUL\136\STX\134\NULz\NUL{\NUL\142\NUL|\NUL}\NUL\134\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\233\NULh\NUL\144\SOHj\NUL=\NUL\255\255\132\NUL\133\NUL\134\NUL\135\NUL\ESC\NUL\SO\STX\140\NULj\NUL?\254\251\255\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\234\NUL\237\NUL#\NUL&\STX\166\NUL\167\NUL\ACK\NUL\243\NUL\a\NUL\241\NUL\244\NUL\t\NULa\STX$\NUL\244\NUL\203\NUL\248\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\252\NUL\210\NULb\NULc\NUL\208\SOH\253\NUL<\NUL=\NUL\CAN\NUL\EM\NUL%\NUL>\NULo\NUL?\NULp\NUL@\NULq\NUL=\254A\NULr\NULB\NULC\NULs\NUL\255\255t\NULu\NULv\NULD\NULE\NULF\NUL=\254w\NULx\NUL\254\NULy\NUL=\254G\NULz\NUL{\NUL&\NUL|\NUL}\NULH\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254I\NUL'\NUL(\NUL)\NUL*\NULJ\NULQ\STX\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL4\STX\140\NULj\NUL\255\NUL\NUL\SOH\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\ACK\SOHo\NUL#\NUL\255\255\ETB\SOH\ACK\NUL\161\NUL\a\NUL\SUB\SOH\244\NUL\t\NUL\n\NULJ\SOH$\NULu\NULo\SOH\140\NULj\NUL\ESC\SOH\162\NUL\128\SOH\140\NULj\NULy\NUL\163\NUL\129\SOH\140\NULj\NUL\FS\SOH|\NUL\CAN\NUL\EM\NUL~\NUL%\NUL\128\NUL\215\255\GS\SOH\215\255\164\NUL\215\255\215\255\NUL\NUL\215\255\NUL\NUL\NUL\NUL\215\255\134\NUL\215\255\215\255\215\255\139\SOH\166\NUL\167\NUL\215\255\215\255\215\255\NUL\NUL\215\255\215\255\NUL\NUL\215\255\215\255&\NUL\215\255\215\255\NUL\NUL\215\255\215\255\215\255\215\255\215\255\215\255\215\255\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\215\255\215\255,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\165\NUL\166\NUL\167\NUL\NUL\NUL\174\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\209\SOHb\NULc\NULd\NUL\NUL\NUL\210\SOHg\NUL>\STX\NUL\NULO\NUL$\NULP\NUL\191\SOH\192\SOH\NUL\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\139\NUL\140\NULj\NUL%\NUL\NUL\NULo\NUL_\NULp\NUL\NUL\NULq\NUL\194\SOH\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\165\NUL\166\NUL\167\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\211\SOHj\NULz\NUL{\NUL&\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\180\NUL\140\NULj\NUL\NUL\NULY\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NULh\NUL\195\SOHj\NUL\141\SOHG\ETX\170\NUL\141\SOH\t\ETX\170\NUL$\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\141\SOH\162\STX\170\NUL\141\SOH\168\STX\170\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL=\NUL\NUL\NUL\NUL\NUL%\NUL\146\NULc\NUL\233\SOHp\NUL\SOH\STXq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\STX\STX\141\SOH\206\SOH\170\NULw\NULx\NULh\NUL[\STXj\NUL\NUL\NULz\NUL{\NUL&\NUL\138\STX}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\149\SOHj\NUL\NUL\NUL<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL8\SOH<\254\&9\SOH\NUL\NUL:\SOH;\SOH<\254\NUL\NUL<\SOH=\SOH$\NUL\NUL\NUL\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL<\254\210\NULb\NULc\NUL\208\SOH\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL%\NUL\141\SOH\235\SOH\170\NULp\NULe\SOHq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NULf\SOH(\SOH)\SOH*\SOHw\NULx\NUL\169\NUL\206\SOH\170\NUL\NUL\NULz\NUL{\NUL&\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL(\SOH)\SOH*\SOH<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL<\254\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254+\STX\206\NUL\207\NUL$\NUL\NUL\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\ACK\NUL<\254\a\NUL\NUL\NUL\244\NUL\t\NULF\SOH<\NUL=\NUL\134\NUL\NUL\NUL%\NUL>\NUL\NUL\NUL?\NUL\NUL\NUL@\NUL\NUL\NUL\NUL\NULA\NUL\NUL\NULB\NULC\NUL\142\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NULD\NULE\NULF\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NULd\NULG\NUL\144\NULg\NUL&\NUL\NUL\NUL\NUL\NULH\NUL\NUL\NUL\NUL\NUL\SOH\STX\NUL\NUL\170\NUL\ACK\ETXj\NULI\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\STX\STX,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\187\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\145\NULj\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\161\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\162\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\163\NUL\132\NUL\159\NUL\134\NUL&\NUL<\254\NUL\NUL\ACK\NULf\SOH\a\NUL\NUL\NUL\244\NUL\t\NULG\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\SYN\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL$\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL%\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL\161\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\180\NUL\134\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\STX\162\NUL\170\NUL\NUL\NUL%\STX\NUL\NUL\163\NUL\161\STX\NUL\NUL\NUL\NUL&\NUL=\254\STX\STX\146\NULc\NUL\147\NUL&\STX\148\NULg\NUL\247\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\175\SOH\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\161\NUL\ACK\NUL\NUL\NUL\a\NUL\161\NUL\ACK\SOH\t\NUL\161\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NUL\149\NULj\NUL\NUL\NUL\162\NUL\163\NUL\NUL\NUL\162\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\163\NUL\CAN\NUL\EM\NUL%\NUL\ACK\NUL\NUL\NUL\a\NUL\164\NUL\b\SOH\t\NUL=\254\164\NUL\NUL\NUL\132\NUL\164\NUL\134\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\132\NUL\215\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\CAN\NUL\EM\NUL\NUL\NUL&\NUL\176\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL/\STX\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NULu\STX\NUL\NUL\214\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULK\SOH\ESC\NUL$\NULu\STX\NUL\NUL\NUL\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NULw\STXf\ETX\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULM\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX4\ETX\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULQ\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\DC1\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\147\NUL$\NUL\148\NULg\NUL\ACK\NUL\ESC\NUL\a\NULu\STX\v\SOH\t\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\CAN\NUL\EM\NUL$\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NULH\SOH\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\149\SOHj\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\CAN\NUL\EM\NUL<\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULf\SOH\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULR\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\161\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\ETX\SOH\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\134\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\ACK\NUL$\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULN\SOH\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\158\STX\206\NUL\207\NUL\159\STX\209\NUL\NUL\NUL\229\SOHb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\203\SOH\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\230\STX\NUL\NUL\NUL\NUL\204\SOH\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULL\SOH\ESC\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\156\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULO\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULP\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL$\NUL\ESC\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NULc\STX\NUL\NUL\ACK\NUL%\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL*\SOH\NUL\NUL$\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL%\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL%\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\f\SOH\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL&\NUL\CAN\NUL\EM\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX\NUL\NUL\146\NULc\NUL\233\SOH'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\149\SOHj\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\209\STX\NUL\NUL\NUL\NUL&\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL$\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\b\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\a\ETX\NUL\NUL\146\NULc\NUL\233\SOH\n\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NULf\SOH,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULm\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL$\NULn\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL=\254\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\134\NUL\NUL\NUL%\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\ACK\STX\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\135\NUL&\NUL\NUL\NUL\a\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL-\SOH.\SOH/\SOH0\SOH1\SOH2\SOH3\SOH4\SOH5\SOH6\SOH7\SOH\NUL\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\ACK\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\a\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\203\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\204\SOHq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NULm\NULr\NUL\NUL\NUL\203\SOHs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\204\SOHy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\SOH\STX\251\STX\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NUL\161\NUL\NUL\NUL\STX\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\162\NULq\NUL\NUL\NUL\NUL\NULr\NUL\163\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\132\NUL}\NUL\134\NUL\NUL\NUL\158\NUL=\254\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\176\SOH\177\SOH=\254S\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\132\NUL\NUL\NUL\134\NUL\181\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\199\STXj\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\149\SOHj\NUL\181\SOH\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NULh\NUL\204\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\SOHj\NUL\NUL\NULh\NUL_\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\185\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\216\NUL\185\NUL\NUL\NUL\217\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\218\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\171\NUL\186\NUL\172\NUL\NUL\NULh\NUL\186\SOHj\NUL\206\STX\NUL\NUL\173\NUL]\NUL^\NUL\a\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\b\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\252\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\253\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\NUL\NUL\171\NUL\NUL\NUL\172\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\221\NUL\173\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL#\STX\207\NUL\NUL\NUL\NUL\NUL\254\SOH\255\SOH\200\SOHc\NUL\201\SOH\242\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\151\NUL\NUL\NUL\152\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\159\SOH\NUL\NUL\160\SOH\NUL\NUL\NUL\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\161\SOH]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL_\NUL\156\NUL\NUL\NUL\162\SOH\243\SOHj\NUL_\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\NUL\NUL\212\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\241\SOHb\NULc\NUL\208\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\DC2\SOH\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\STX\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\129\STX\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\183\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NULU\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\239\SOH\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\240\SOH\NUL\NUL\FS\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\GS\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NULT\SOH\NUL\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH1\STX\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL2\STX\NUL\NUL\215\SOH\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\216\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\169\STXU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\247\STX\171\STX\172\STX\169\STXU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\170\STX\171\STX\172\STX\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\SO\SOHU\NUL\DC2\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\132\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\174\STXj\NUL\NUL\NUL\SO\SOHU\NULm\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NULh\NUL\174\STXj\NUL\NUL\NUL\172\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\173\NUL]\NUL^\NUL\174\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NULn\SOH\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\152\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\248\STX_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\DEL\STX\236\STXj\NUL\249\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NULb\SOHc\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL\DC2\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\141\SOH\DC3\STX\DC4\STXj\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL\NUL\NUL\143\NULb\NULc\NULd\NUL\NUL\NUL\144\NULg\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\170\SOH\NUL\NUL\NUL\NUL\174\NUL\185\STX\NUL\NUL\CAN\NUL\EM\NUL+\STX\206\NUL\207\NUL\NUL\NUL\156\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOHh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\SOH\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\173\SOHj\NUL\197\STX\DEL\STX\237\STXj\NUL\142\SOH\206\NUL\207\NUL\202\STX\159\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\192\STX\NUL\NULh\NUL\198\STXj\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULh\NUL\203\STXj\NUL\176\STX\NUL\NUL\ENQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\176\STX\NUL\NUL\177\STX\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\192\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NULo\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\133\NUL\134\NUL\178\STX\195\NUL\NUL\NUL\NUL\NULu\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\161\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NULu\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\162\NUL\NUL\NUL\NUL\NUL\164\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NUL\134\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL=\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\208\STX\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\188\SOH\133\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254;\254;\254;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254o\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\167\SOH\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\133\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NUL\NUL\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL\NUL\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\NUL\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\180\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254;\254p\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL;\254;\254s\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\158\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\159\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NUL\NUL\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\STX\134\NUL'\ETXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULl\STXs\STXm\STXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL1\ETXs\STX\NUL\NUL2\ETXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NULs\STX\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\227\STX\CAN\NUL\EM\NUL\NUL\NULg\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL.\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\215\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\156\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULC\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULD\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\147\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\148\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\235\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULw\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULx\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULa\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL:\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\146\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULA\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NULB\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULC\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULW\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULZ\SOH\NUL\NUL\NUL\NUL[\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULz\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL|\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL~\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\DEL\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\ETB\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULV\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULX\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL[\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULf\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\232\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\238\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL)\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULi\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULk\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL@\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULl\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\246\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULj\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULd\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NULV\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NULS\SOH\STX\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\EOT\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\t\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\n\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULY\ETX\v\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\SOH\ETX\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\203\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH7\STX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduceArr")) (UnGuardedRhs (App (App (Var (UnQual (Ident "array"))) (Tuple Boxed [Lit (Int 4),Lit (Int 463)])) (List [Tuple Boxed [Lit (Int 4),Var (UnQual (Ident "happyReduce_4"))],Tuple Boxed [Lit (Int 5),Var (UnQual (Ident "happyReduce_5"))],Tuple Boxed [Lit (Int 6),Var (UnQual (Ident "happyReduce_6"))],Tuple Boxed [Lit (Int 7),Var (UnQual (Ident "happyReduce_7"))],Tuple Boxed [Lit (Int 8),Var (UnQual (Ident "happyReduce_8"))],Tuple Boxed [Lit (Int 9),Var (UnQual (Ident "happyReduce_9"))],Tuple Boxed [Lit (Int 10),Var (UnQual (Ident "happyReduce_10"))],Tuple Boxed [Lit (Int 11),Var (UnQual (Ident "happyReduce_11"))],Tuple Boxed [Lit (Int 12),Var (UnQual (Ident "happyReduce_12"))],Tuple Boxed [Lit (Int 13),Var (UnQual (Ident "happyReduce_13"))],Tuple Boxed [Lit (Int 14),Var (UnQual (Ident "happyReduce_14"))],Tuple Boxed [Lit (Int 15),Var (UnQual (Ident "happyReduce_15"))],Tuple Boxed [Lit (Int 16),Var (UnQual (Ident "happyReduce_16"))],Tuple Boxed [Lit (Int 17),Var (UnQual (Ident "happyReduce_17"))],Tuple Boxed [Lit (Int 18),Var (UnQual (Ident "happyReduce_18"))],Tuple Boxed [Lit (Int 19),Var (UnQual (Ident "happyReduce_19"))],Tuple Boxed [Lit (Int 20),Var (UnQual (Ident "happyReduce_20"))],Tuple Boxed [Lit (Int 21),Var (UnQual (Ident "happyReduce_21"))],Tuple Boxed [Lit (Int 22),Var (UnQual (Ident "happyReduce_22"))],Tuple Boxed [Lit (Int 23),Var (UnQual (Ident "happyReduce_23"))],Tuple Boxed [Lit (Int 24),Var (UnQual (Ident "happyReduce_24"))],Tuple Boxed [Lit (Int 25),Var (UnQual (Ident "happyReduce_25"))],Tuple Boxed [Lit (Int 26),Var (UnQual (Ident "happyReduce_26"))],Tuple Boxed [Lit (Int 27),Var (UnQual (Ident "happyReduce_27"))],Tuple Boxed [Lit (Int 28),Var (UnQual (Ident "happyReduce_28"))],Tuple Boxed [Lit (Int 29),Var (UnQual (Ident "happyReduce_29"))],Tuple Boxed [Lit (Int 30),Var (UnQual (Ident "happyReduce_30"))],Tuple Boxed [Lit (Int 31),Var (UnQual (Ident "happyReduce_31"))],Tuple Boxed [Lit (Int 32),Var (UnQual (Ident "happyReduce_32"))],Tuple Boxed [Lit (Int 33),Var (UnQual (Ident "happyReduce_33"))],Tuple Boxed [Lit (Int 34),Var (UnQual (Ident "happyReduce_34"))],Tuple Boxed [Lit (Int 35),Var (UnQual (Ident "happyReduce_35"))],Tuple Boxed [Lit (Int 36),Var (UnQual (Ident "happyReduce_36"))],Tuple Boxed [Lit (Int 37),Var (UnQual (Ident "happyReduce_37"))],Tuple Boxed [Lit (Int 38),Var (UnQual (Ident "happyReduce_38"))],Tuple Boxed [Lit (Int 39),Var (UnQual (Ident "happyReduce_39"))],Tuple Boxed [Lit (Int 40),Var (UnQual (Ident "happyReduce_40"))],Tuple Boxed [Lit (Int 41),Var (UnQual (Ident "happyReduce_41"))],Tuple Boxed [Lit (Int 42),Var (UnQual (Ident "happyReduce_42"))],Tuple Boxed [Lit (Int 43),Var (UnQual (Ident "happyReduce_43"))],Tuple Boxed [Lit (Int 44),Var (UnQual (Ident "happyReduce_44"))],Tuple Boxed [Lit (Int 45),Var (UnQual (Ident "happyReduce_45"))],Tuple Boxed [Lit (Int 46),Var (UnQual (Ident "happyReduce_46"))],Tuple Boxed [Lit (Int 47),Var (UnQual (Ident "happyReduce_47"))],Tuple Boxed [Lit (Int 48),Var (UnQual (Ident "happyReduce_48"))],Tuple Boxed [Lit (Int 49),Var (UnQual (Ident "happyReduce_49"))],Tuple Boxed [Lit (Int 50),Var (UnQual (Ident "happyReduce_50"))],Tuple Boxed [Lit (Int 51),Var (UnQual (Ident "happyReduce_51"))],Tuple Boxed [Lit (Int 52),Var (UnQual (Ident "happyReduce_52"))],Tuple Boxed [Lit (Int 53),Var (UnQual (Ident "happyReduce_53"))],Tuple Boxed [Lit (Int 54),Var (UnQual (Ident "happyReduce_54"))],Tuple Boxed [Lit (Int 55),Var (UnQual (Ident "happyReduce_55"))],Tuple Boxed [Lit (Int 56),Var (UnQual (Ident "happyReduce_56"))],Tuple Boxed [Lit (Int 57),Var (UnQual (Ident "happyReduce_57"))],Tuple Boxed [Lit (Int 58),Var (UnQual (Ident "happyReduce_58"))],Tuple Boxed [Lit (Int 59),Var (UnQual (Ident "happyReduce_59"))],Tuple Boxed [Lit (Int 60),Var (UnQual (Ident "happyReduce_60"))],Tuple Boxed [Lit (Int 61),Var (UnQual (Ident "happyReduce_61"))],Tuple Boxed [Lit (Int 62),Var (UnQual (Ident "happyReduce_62"))],Tuple Boxed [Lit (Int 63),Var (UnQual (Ident "happyReduce_63"))],Tuple Boxed [Lit (Int 64),Var (UnQual (Ident "happyReduce_64"))],Tuple Boxed [Lit (Int 65),Var (UnQual (Ident "happyReduce_65"))],Tuple Boxed [Lit (Int 66),Var (UnQual (Ident "happyReduce_66"))],Tuple Boxed [Lit (Int 67),Var (UnQual (Ident "happyReduce_67"))],Tuple Boxed [Lit (Int 68),Var (UnQual (Ident "happyReduce_68"))],Tuple Boxed [Lit (Int 69),Var (UnQual (Ident "happyReduce_69"))],Tuple Boxed [Lit (Int 70),Var (UnQual (Ident "happyReduce_70"))],Tuple Boxed [Lit (Int 71),Var (UnQual (Ident "happyReduce_71"))],Tuple Boxed [Lit (Int 72),Var (UnQual (Ident "happyReduce_72"))],Tuple Boxed [Lit (Int 73),Var (UnQual (Ident "happyReduce_73"))],Tuple Boxed [Lit (Int 74),Var (UnQual (Ident "happyReduce_74"))],Tuple Boxed [Lit (Int 75),Var (UnQual (Ident "happyReduce_75"))],Tuple Boxed [Lit (Int 76),Var (UnQual (Ident "happyReduce_76"))],Tuple Boxed [Lit (Int 77),Var (UnQual (Ident "happyReduce_77"))],Tuple Boxed [Lit (Int 78),Var (UnQual (Ident "happyReduce_78"))],Tuple Boxed [Lit (Int 79),Var (UnQual (Ident "happyReduce_79"))],Tuple Boxed [Lit (Int 80),Var (UnQual (Ident "happyReduce_80"))],Tuple Boxed [Lit (Int 81),Var (UnQual (Ident "happyReduce_81"))],Tuple Boxed [Lit (Int 82),Var (UnQual (Ident "happyReduce_82"))],Tuple Boxed [Lit (Int 83),Var (UnQual (Ident "happyReduce_83"))],Tuple Boxed [Lit (Int 84),Var (UnQual (Ident "happyReduce_84"))],Tuple Boxed [Lit (Int 85),Var (UnQual (Ident "happyReduce_85"))],Tuple Boxed [Lit (Int 86),Var (UnQual (Ident "happyReduce_86"))],Tuple Boxed [Lit (Int 87),Var (UnQual (Ident "happyReduce_87"))],Tuple Boxed [Lit (Int 88),Var (UnQual (Ident "happyReduce_88"))],Tuple Boxed [Lit (Int 89),Var (UnQual (Ident "happyReduce_89"))],Tuple Boxed [Lit (Int 90),Var (UnQual (Ident "happyReduce_90"))],Tuple Boxed [Lit (Int 91),Var (UnQual (Ident "happyReduce_91"))],Tuple Boxed [Lit (Int 92),Var (UnQual (Ident "happyReduce_92"))],Tuple Boxed [Lit (Int 93),Var (UnQual (Ident "happyReduce_93"))],Tuple Boxed [Lit (Int 94),Var (UnQual (Ident "happyReduce_94"))],Tuple Boxed [Lit (Int 95),Var (UnQual (Ident "happyReduce_95"))],Tuple Boxed [Lit (Int 96),Var (UnQual (Ident "happyReduce_96"))],Tuple Boxed [Lit (Int 97),Var (UnQual (Ident "happyReduce_97"))],Tuple Boxed [Lit (Int 98),Var (UnQual (Ident "happyReduce_98"))],Tuple Boxed [Lit (Int 99),Var (UnQual (Ident "happyReduce_99"))],Tuple Boxed [Lit (Int 100),Var (UnQual (Ident "happyReduce_100"))],Tuple Boxed [Lit (Int 101),Var (UnQual (Ident "happyReduce_101"))],Tuple Boxed [Lit (Int 102),Var (UnQual (Ident "happyReduce_102"))],Tuple Boxed [Lit (Int 103),Var (UnQual (Ident "happyReduce_103"))],Tuple Boxed [Lit (Int 104),Var (UnQual (Ident "happyReduce_104"))],Tuple Boxed [Lit (Int 105),Var (UnQual (Ident "happyReduce_105"))],Tuple Boxed [Lit (Int 106),Var (UnQual (Ident "happyReduce_106"))],Tuple Boxed [Lit (Int 107),Var (UnQual (Ident "happyReduce_107"))],Tuple Boxed [Lit (Int 108),Var (UnQual (Ident "happyReduce_108"))],Tuple Boxed [Lit (Int 109),Var (UnQual (Ident "happyReduce_109"))],Tuple Boxed [Lit (Int 110),Var (UnQual (Ident "happyReduce_110"))],Tuple Boxed [Lit (Int 111),Var (UnQual (Ident "happyReduce_111"))],Tuple Boxed [Lit (Int 112),Var (UnQual (Ident "happyReduce_112"))],Tuple Boxed [Lit (Int 113),Var (UnQual (Ident "happyReduce_113"))],Tuple Boxed [Lit (Int 114),Var (UnQual (Ident "happyReduce_114"))],Tuple Boxed [Lit (Int 115),Var (UnQual (Ident "happyReduce_115"))],Tuple Boxed [Lit (Int 116),Var (UnQual (Ident "happyReduce_116"))],Tuple Boxed [Lit (Int 117),Var (UnQual (Ident "happyReduce_117"))],Tuple Boxed [Lit (Int 118),Var (UnQual (Ident "happyReduce_118"))],Tuple Boxed [Lit (Int 119),Var (UnQual (Ident "happyReduce_119"))],Tuple Boxed [Lit (Int 120),Var (UnQual (Ident "happyReduce_120"))],Tuple Boxed [Lit (Int 121),Var (UnQual (Ident "happyReduce_121"))],Tuple Boxed [Lit (Int 122),Var (UnQual (Ident "happyReduce_122"))],Tuple Boxed [Lit (Int 123),Var (UnQual (Ident "happyReduce_123"))],Tuple Boxed [Lit (Int 124),Var (UnQual (Ident "happyReduce_124"))],Tuple Boxed [Lit (Int 125),Var (UnQual (Ident "happyReduce_125"))],Tuple Boxed [Lit (Int 126),Var (UnQual (Ident "happyReduce_126"))],Tuple Boxed [Lit (Int 127),Var (UnQual (Ident "happyReduce_127"))],Tuple Boxed [Lit (Int 128),Var (UnQual (Ident "happyReduce_128"))],Tuple Boxed [Lit (Int 129),Var (UnQual (Ident "happyReduce_129"))],Tuple Boxed [Lit (Int 130),Var (UnQual (Ident "happyReduce_130"))],Tuple Boxed [Lit (Int 131),Var (UnQual (Ident "happyReduce_131"))],Tuple Boxed [Lit (Int 132),Var (UnQual (Ident "happyReduce_132"))],Tuple Boxed [Lit (Int 133),Var (UnQual (Ident "happyReduce_133"))],Tuple Boxed [Lit (Int 134),Var (UnQual (Ident "happyReduce_134"))],Tuple Boxed [Lit (Int 135),Var (UnQual (Ident "happyReduce_135"))],Tuple Boxed [Lit (Int 136),Var (UnQual (Ident "happyReduce_136"))],Tuple Boxed [Lit (Int 137),Var (UnQual (Ident "happyReduce_137"))],Tuple Boxed [Lit (Int 138),Var (UnQual (Ident "happyReduce_138"))],Tuple Boxed [Lit (Int 139),Var (UnQual (Ident "happyReduce_139"))],Tuple Boxed [Lit (Int 140),Var (UnQual (Ident "happyReduce_140"))],Tuple Boxed [Lit (Int 141),Var (UnQual (Ident "happyReduce_141"))],Tuple Boxed [Lit (Int 142),Var (UnQual (Ident "happyReduce_142"))],Tuple Boxed [Lit (Int 143),Var (UnQual (Ident "happyReduce_143"))],Tuple Boxed [Lit (Int 144),Var (UnQual (Ident "happyReduce_144"))],Tuple Boxed [Lit (Int 145),Var (UnQual (Ident "happyReduce_145"))],Tuple Boxed [Lit (Int 146),Var (UnQual (Ident "happyReduce_146"))],Tuple Boxed [Lit (Int 147),Var (UnQual (Ident "happyReduce_147"))],Tuple Boxed [Lit (Int 148),Var (UnQual (Ident "happyReduce_148"))],Tuple Boxed [Lit (Int 149),Var (UnQual (Ident "happyReduce_149"))],Tuple Boxed [Lit (Int 150),Var (UnQual (Ident "happyReduce_150"))],Tuple Boxed [Lit (Int 151),Var (UnQual (Ident "happyReduce_151"))],Tuple Boxed [Lit (Int 152),Var (UnQual (Ident "happyReduce_152"))],Tuple Boxed [Lit (Int 153),Var (UnQual (Ident "happyReduce_153"))],Tuple Boxed [Lit (Int 154),Var (UnQual (Ident "happyReduce_154"))],Tuple Boxed [Lit (Int 155),Var (UnQual (Ident "happyReduce_155"))],Tuple Boxed [Lit (Int 156),Var (UnQual (Ident "happyReduce_156"))],Tuple Boxed [Lit (Int 157),Var (UnQual (Ident "happyReduce_157"))],Tuple Boxed [Lit (Int 158),Var (UnQual (Ident "happyReduce_158"))],Tuple Boxed [Lit (Int 159),Var (UnQual (Ident "happyReduce_159"))],Tuple Boxed [Lit (Int 160),Var (UnQual (Ident "happyReduce_160"))],Tuple Boxed [Lit (Int 161),Var (UnQual (Ident "happyReduce_161"))],Tuple Boxed [Lit (Int 162),Var (UnQual (Ident "happyReduce_162"))],Tuple Boxed [Lit (Int 163),Var (UnQual (Ident "happyReduce_163"))],Tuple Boxed [Lit (Int 164),Var (UnQual (Ident "happyReduce_164"))],Tuple Boxed [Lit (Int 165),Var (UnQual (Ident "happyReduce_165"))],Tuple Boxed [Lit (Int 166),Var (UnQual (Ident "happyReduce_166"))],Tuple Boxed [Lit (Int 167),Var (UnQual (Ident "happyReduce_167"))],Tuple Boxed [Lit (Int 168),Var (UnQual (Ident "happyReduce_168"))],Tuple Boxed [Lit (Int 169),Var (UnQual (Ident "happyReduce_169"))],Tuple Boxed [Lit (Int 170),Var (UnQual (Ident "happyReduce_170"))],Tuple Boxed [Lit (Int 171),Var (UnQual (Ident "happyReduce_171"))],Tuple Boxed [Lit (Int 172),Var (UnQual (Ident "happyReduce_172"))],Tuple Boxed [Lit (Int 173),Var (UnQual (Ident "happyReduce_173"))],Tuple Boxed [Lit (Int 174),Var (UnQual (Ident "happyReduce_174"))],Tuple Boxed [Lit (Int 175),Var (UnQual (Ident "happyReduce_175"))],Tuple Boxed [Lit (Int 176),Var (UnQual (Ident "happyReduce_176"))],Tuple Boxed [Lit (Int 177),Var (UnQual (Ident "happyReduce_177"))],Tuple Boxed [Lit (Int 178),Var (UnQual (Ident "happyReduce_178"))],Tuple Boxed [Lit (Int 179),Var (UnQual (Ident "happyReduce_179"))],Tuple Boxed [Lit (Int 180),Var (UnQual (Ident "happyReduce_180"))],Tuple Boxed [Lit (Int 181),Var (UnQual (Ident "happyReduce_181"))],Tuple Boxed [Lit (Int 182),Var (UnQual (Ident "happyReduce_182"))],Tuple Boxed [Lit (Int 183),Var (UnQual (Ident "happyReduce_183"))],Tuple Boxed [Lit (Int 184),Var (UnQual (Ident "happyReduce_184"))],Tuple Boxed [Lit (Int 185),Var (UnQual (Ident "happyReduce_185"))],Tuple Boxed [Lit (Int 186),Var (UnQual (Ident "happyReduce_186"))],Tuple Boxed [Lit (Int 187),Var (UnQual (Ident "happyReduce_187"))],Tuple Boxed [Lit (Int 188),Var (UnQual (Ident "happyReduce_188"))],Tuple Boxed [Lit (Int 189),Var (UnQual (Ident "happyReduce_189"))],Tuple Boxed [Lit (Int 190),Var (UnQual (Ident "happyReduce_190"))],Tuple Boxed [Lit (Int 191),Var (UnQual (Ident "happyReduce_191"))],Tuple Boxed [Lit (Int 192),Var (UnQual (Ident "happyReduce_192"))],Tuple Boxed [Lit (Int 193),Var (UnQual (Ident "happyReduce_193"))],Tuple Boxed [Lit (Int 194),Var (UnQual (Ident "happyReduce_194"))],Tuple Boxed [Lit (Int 195),Var (UnQual (Ident "happyReduce_195"))],Tuple Boxed [Lit (Int 196),Var (UnQual (Ident "happyReduce_196"))],Tuple Boxed [Lit (Int 197),Var (UnQual (Ident "happyReduce_197"))],Tuple Boxed [Lit (Int 198),Var (UnQual (Ident "happyReduce_198"))],Tuple Boxed [Lit (Int 199),Var (UnQual (Ident "happyReduce_199"))],Tuple Boxed [Lit (Int 200),Var (UnQual (Ident "happyReduce_200"))],Tuple Boxed [Lit (Int 201),Var (UnQual (Ident "happyReduce_201"))],Tuple Boxed [Lit (Int 202),Var (UnQual (Ident "happyReduce_202"))],Tuple Boxed [Lit (Int 203),Var (UnQual (Ident "happyReduce_203"))],Tuple Boxed [Lit (Int 204),Var (UnQual (Ident "happyReduce_204"))],Tuple Boxed [Lit (Int 205),Var (UnQual (Ident "happyReduce_205"))],Tuple Boxed [Lit (Int 206),Var (UnQual (Ident "happyReduce_206"))],Tuple Boxed [Lit (Int 207),Var (UnQual (Ident "happyReduce_207"))],Tuple Boxed [Lit (Int 208),Var (UnQual (Ident "happyReduce_208"))],Tuple Boxed [Lit (Int 209),Var (UnQual (Ident "happyReduce_209"))],Tuple Boxed [Lit (Int 210),Var (UnQual (Ident "happyReduce_210"))],Tuple Boxed [Lit (Int 211),Var (UnQual (Ident "happyReduce_211"))],Tuple Boxed [Lit (Int 212),Var (UnQual (Ident "happyReduce_212"))],Tuple Boxed [Lit (Int 213),Var (UnQual (Ident "happyReduce_213"))],Tuple Boxed [Lit (Int 214),Var (UnQual (Ident "happyReduce_214"))],Tuple Boxed [Lit (Int 215),Var (UnQual (Ident "happyReduce_215"))],Tuple Boxed [Lit (Int 216),Var (UnQual (Ident "happyReduce_216"))],Tuple Boxed [Lit (Int 217),Var (UnQual (Ident "happyReduce_217"))],Tuple Boxed [Lit (Int 218),Var (UnQual (Ident "happyReduce_218"))],Tuple Boxed [Lit (Int 219),Var (UnQual (Ident "happyReduce_219"))],Tuple Boxed [Lit (Int 220),Var (UnQual (Ident "happyReduce_220"))],Tuple Boxed [Lit (Int 221),Var (UnQual (Ident "happyReduce_221"))],Tuple Boxed [Lit (Int 222),Var (UnQual (Ident "happyReduce_222"))],Tuple Boxed [Lit (Int 223),Var (UnQual (Ident "happyReduce_223"))],Tuple Boxed [Lit (Int 224),Var (UnQual (Ident "happyReduce_224"))],Tuple Boxed [Lit (Int 225),Var (UnQual (Ident "happyReduce_225"))],Tuple Boxed [Lit (Int 226),Var (UnQual (Ident "happyReduce_226"))],Tuple Boxed [Lit (Int 227),Var (UnQual (Ident "happyReduce_227"))],Tuple Boxed [Lit (Int 228),Var (UnQual (Ident "happyReduce_228"))],Tuple Boxed [Lit (Int 229),Var (UnQual (Ident "happyReduce_229"))],Tuple Boxed [Lit (Int 230),Var (UnQual (Ident "happyReduce_230"))],Tuple Boxed [Lit (Int 231),Var (UnQual (Ident "happyReduce_231"))],Tuple Boxed [Lit (Int 232),Var (UnQual (Ident "happyReduce_232"))],Tuple Boxed [Lit (Int 233),Var (UnQual (Ident "happyReduce_233"))],Tuple Boxed [Lit (Int 234),Var (UnQual (Ident "happyReduce_234"))],Tuple Boxed [Lit (Int 235),Var (UnQual (Ident "happyReduce_235"))],Tuple Boxed [Lit (Int 236),Var (UnQual (Ident "happyReduce_236"))],Tuple Boxed [Lit (Int 237),Var (UnQual (Ident "happyReduce_237"))],Tuple Boxed [Lit (Int 238),Var (UnQual (Ident "happyReduce_238"))],Tuple Boxed [Lit (Int 239),Var (UnQual (Ident "happyReduce_239"))],Tuple Boxed [Lit (Int 240),Var (UnQual (Ident "happyReduce_240"))],Tuple Boxed [Lit (Int 241),Var (UnQual (Ident "happyReduce_241"))],Tuple Boxed [Lit (Int 242),Var (UnQual (Ident "happyReduce_242"))],Tuple Boxed [Lit (Int 243),Var (UnQual (Ident "happyReduce_243"))],Tuple Boxed [Lit (Int 244),Var (UnQual (Ident "happyReduce_244"))],Tuple Boxed [Lit (Int 245),Var (UnQual (Ident "happyReduce_245"))],Tuple Boxed [Lit (Int 246),Var (UnQual (Ident "happyReduce_246"))],Tuple Boxed [Lit (Int 247),Var (UnQual (Ident "happyReduce_247"))],Tuple Boxed [Lit (Int 248),Var (UnQual (Ident "happyReduce_248"))],Tuple Boxed [Lit (Int 249),Var (UnQual (Ident "happyReduce_249"))],Tuple Boxed [Lit (Int 250),Var (UnQual (Ident "happyReduce_250"))],Tuple Boxed [Lit (Int 251),Var (UnQual (Ident "happyReduce_251"))],Tuple Boxed [Lit (Int 252),Var (UnQual (Ident "happyReduce_252"))],Tuple Boxed [Lit (Int 253),Var (UnQual (Ident "happyReduce_253"))],Tuple Boxed [Lit (Int 254),Var (UnQual (Ident "happyReduce_254"))],Tuple Boxed [Lit (Int 255),Var (UnQual (Ident "happyReduce_255"))],Tuple Boxed [Lit (Int 256),Var (UnQual (Ident "happyReduce_256"))],Tuple Boxed [Lit (Int 257),Var (UnQual (Ident "happyReduce_257"))],Tuple Boxed [Lit (Int 258),Var (UnQual (Ident "happyReduce_258"))],Tuple Boxed [Lit (Int 259),Var (UnQual (Ident "happyReduce_259"))],Tuple Boxed [Lit (Int 260),Var (UnQual (Ident "happyReduce_260"))],Tuple Boxed [Lit (Int 261),Var (UnQual (Ident "happyReduce_261"))],Tuple Boxed [Lit (Int 262),Var (UnQual (Ident "happyReduce_262"))],Tuple Boxed [Lit (Int 263),Var (UnQual (Ident "happyReduce_263"))],Tuple Boxed [Lit (Int 264),Var (UnQual (Ident "happyReduce_264"))],Tuple Boxed [Lit (Int 265),Var (UnQual (Ident "happyReduce_265"))],Tuple Boxed [Lit (Int 266),Var (UnQual (Ident "happyReduce_266"))],Tuple Boxed [Lit (Int 267),Var (UnQual (Ident "happyReduce_267"))],Tuple Boxed [Lit (Int 268),Var (UnQual (Ident "happyReduce_268"))],Tuple Boxed [Lit (Int 269),Var (UnQual (Ident "happyReduce_269"))],Tuple Boxed [Lit (Int 270),Var (UnQual (Ident "happyReduce_270"))],Tuple Boxed [Lit (Int 271),Var (UnQual (Ident "happyReduce_271"))],Tuple Boxed [Lit (Int 272),Var (UnQual (Ident "happyReduce_272"))],Tuple Boxed [Lit (Int 273),Var (UnQual (Ident "happyReduce_273"))],Tuple Boxed [Lit (Int 274),Var (UnQual (Ident "happyReduce_274"))],Tuple Boxed [Lit (Int 275),Var (UnQual (Ident "happyReduce_275"))],Tuple Boxed [Lit (Int 276),Var (UnQual (Ident "happyReduce_276"))],Tuple Boxed [Lit (Int 277),Var (UnQual (Ident "happyReduce_277"))],Tuple Boxed [Lit (Int 278),Var (UnQual (Ident "happyReduce_278"))],Tuple Boxed [Lit (Int 279),Var (UnQual (Ident "happyReduce_279"))],Tuple Boxed [Lit (Int 280),Var (UnQual (Ident "happyReduce_280"))],Tuple Boxed [Lit (Int 281),Var (UnQual (Ident "happyReduce_281"))],Tuple Boxed [Lit (Int 282),Var (UnQual (Ident "happyReduce_282"))],Tuple Boxed [Lit (Int 283),Var (UnQual (Ident "happyReduce_283"))],Tuple Boxed [Lit (Int 284),Var (UnQual (Ident "happyReduce_284"))],Tuple Boxed [Lit (Int 285),Var (UnQual (Ident "happyReduce_285"))],Tuple Boxed [Lit (Int 286),Var (UnQual (Ident "happyReduce_286"))],Tuple Boxed [Lit (Int 287),Var (UnQual (Ident "happyReduce_287"))],Tuple Boxed [Lit (Int 288),Var (UnQual (Ident "happyReduce_288"))],Tuple Boxed [Lit (Int 289),Var (UnQual (Ident "happyReduce_289"))],Tuple Boxed [Lit (Int 290),Var (UnQual (Ident "happyReduce_290"))],Tuple Boxed [Lit (Int 291),Var (UnQual (Ident "happyReduce_291"))],Tuple Boxed [Lit (Int 292),Var (UnQual (Ident "happyReduce_292"))],Tuple Boxed [Lit (Int 293),Var (UnQual (Ident "happyReduce_293"))],Tuple Boxed [Lit (Int 294),Var (UnQual (Ident "happyReduce_294"))],Tuple Boxed [Lit (Int 295),Var (UnQual (Ident "happyReduce_295"))],Tuple Boxed [Lit (Int 296),Var (UnQual (Ident "happyReduce_296"))],Tuple Boxed [Lit (Int 297),Var (UnQual (Ident "happyReduce_297"))],Tuple Boxed [Lit (Int 298),Var (UnQual (Ident "happyReduce_298"))],Tuple Boxed [Lit (Int 299),Var (UnQual (Ident "happyReduce_299"))],Tuple Boxed [Lit (Int 300),Var (UnQual (Ident "happyReduce_300"))],Tuple Boxed [Lit (Int 301),Var (UnQual (Ident "happyReduce_301"))],Tuple Boxed [Lit (Int 302),Var (UnQual (Ident "happyReduce_302"))],Tuple Boxed [Lit (Int 303),Var (UnQual (Ident "happyReduce_303"))],Tuple Boxed [Lit (Int 304),Var (UnQual (Ident "happyReduce_304"))],Tuple Boxed [Lit (Int 305),Var (UnQual (Ident "happyReduce_305"))],Tuple Boxed [Lit (Int 306),Var (UnQual (Ident "happyReduce_306"))],Tuple Boxed [Lit (Int 307),Var (UnQual (Ident "happyReduce_307"))],Tuple Boxed [Lit (Int 308),Var (UnQual (Ident "happyReduce_308"))],Tuple Boxed [Lit (Int 309),Var (UnQual (Ident "happyReduce_309"))],Tuple Boxed [Lit (Int 310),Var (UnQual (Ident "happyReduce_310"))],Tuple Boxed [Lit (Int 311),Var (UnQual (Ident "happyReduce_311"))],Tuple Boxed [Lit (Int 312),Var (UnQual (Ident "happyReduce_312"))],Tuple Boxed [Lit (Int 313),Var (UnQual (Ident "happyReduce_313"))],Tuple Boxed [Lit (Int 314),Var (UnQual (Ident "happyReduce_314"))],Tuple Boxed [Lit (Int 315),Var (UnQual (Ident "happyReduce_315"))],Tuple Boxed [Lit (Int 316),Var (UnQual (Ident "happyReduce_316"))],Tuple Boxed [Lit (Int 317),Var (UnQual (Ident "happyReduce_317"))],Tuple Boxed [Lit (Int 318),Var (UnQual (Ident "happyReduce_318"))],Tuple Boxed [Lit (Int 319),Var (UnQual (Ident "happyReduce_319"))],Tuple Boxed [Lit (Int 320),Var (UnQual (Ident "happyReduce_320"))],Tuple Boxed [Lit (Int 321),Var (UnQual (Ident "happyReduce_321"))],Tuple Boxed [Lit (Int 322),Var (UnQual (Ident "happyReduce_322"))],Tuple Boxed [Lit (Int 323),Var (UnQual (Ident "happyReduce_323"))],Tuple Boxed [Lit (Int 324),Var (UnQual (Ident "happyReduce_324"))],Tuple Boxed [Lit (Int 325),Var (UnQual (Ident "happyReduce_325"))],Tuple Boxed [Lit (Int 326),Var (UnQual (Ident "happyReduce_326"))],Tuple Boxed [Lit (Int 327),Var (UnQual (Ident "happyReduce_327"))],Tuple Boxed [Lit (Int 328),Var (UnQual (Ident "happyReduce_328"))],Tuple Boxed [Lit (Int 329),Var (UnQual (Ident "happyReduce_329"))],Tuple Boxed [Lit (Int 330),Var (UnQual (Ident "happyReduce_330"))],Tuple Boxed [Lit (Int 331),Var (UnQual (Ident "happyReduce_331"))],Tuple Boxed [Lit (Int 332),Var (UnQual (Ident "happyReduce_332"))],Tuple Boxed [Lit (Int 333),Var (UnQual (Ident "happyReduce_333"))],Tuple Boxed [Lit (Int 334),Var (UnQual (Ident "happyReduce_334"))],Tuple Boxed [Lit (Int 335),Var (UnQual (Ident "happyReduce_335"))],Tuple Boxed [Lit (Int 336),Var (UnQual (Ident "happyReduce_336"))],Tuple Boxed [Lit (Int 337),Var (UnQual (Ident "happyReduce_337"))],Tuple Boxed [Lit (Int 338),Var (UnQual (Ident "happyReduce_338"))],Tuple Boxed [Lit (Int 339),Var (UnQual (Ident "happyReduce_339"))],Tuple Boxed [Lit (Int 340),Var (UnQual (Ident "happyReduce_340"))],Tuple Boxed [Lit (Int 341),Var (UnQual (Ident "happyReduce_341"))],Tuple Boxed [Lit (Int 342),Var (UnQual (Ident "happyReduce_342"))],Tuple Boxed [Lit (Int 343),Var (UnQual (Ident "happyReduce_343"))],Tuple Boxed [Lit (Int 344),Var (UnQual (Ident "happyReduce_344"))],Tuple Boxed [Lit (Int 345),Var (UnQual (Ident "happyReduce_345"))],Tuple Boxed [Lit (Int 346),Var (UnQual (Ident "happyReduce_346"))],Tuple Boxed [Lit (Int 347),Var (UnQual (Ident "happyReduce_347"))],Tuple Boxed [Lit (Int 348),Var (UnQual (Ident "happyReduce_348"))],Tuple Boxed [Lit (Int 349),Var (UnQual (Ident "happyReduce_349"))],Tuple Boxed [Lit (Int 350),Var (UnQual (Ident "happyReduce_350"))],Tuple Boxed [Lit (Int 351),Var (UnQual (Ident "happyReduce_351"))],Tuple Boxed [Lit (Int 352),Var (UnQual (Ident "happyReduce_352"))],Tuple Boxed [Lit (Int 353),Var (UnQual (Ident "happyReduce_353"))],Tuple Boxed [Lit (Int 354),Var (UnQual (Ident "happyReduce_354"))],Tuple Boxed [Lit (Int 355),Var (UnQual (Ident "happyReduce_355"))],Tuple Boxed [Lit (Int 356),Var (UnQual (Ident "happyReduce_356"))],Tuple Boxed [Lit (Int 357),Var (UnQual (Ident "happyReduce_357"))],Tuple Boxed [Lit (Int 358),Var (UnQual (Ident "happyReduce_358"))],Tuple Boxed [Lit (Int 359),Var (UnQual (Ident "happyReduce_359"))],Tuple Boxed [Lit (Int 360),Var (UnQual (Ident "happyReduce_360"))],Tuple Boxed [Lit (Int 361),Var (UnQual (Ident "happyReduce_361"))],Tuple Boxed [Lit (Int 362),Var (UnQual (Ident "happyReduce_362"))],Tuple Boxed [Lit (Int 363),Var (UnQual (Ident "happyReduce_363"))],Tuple Boxed [Lit (Int 364),Var (UnQual (Ident "happyReduce_364"))],Tuple Boxed [Lit (Int 365),Var (UnQual (Ident "happyReduce_365"))],Tuple Boxed [Lit (Int 366),Var (UnQual (Ident "happyReduce_366"))],Tuple Boxed [Lit (Int 367),Var (UnQual (Ident "happyReduce_367"))],Tuple Boxed [Lit (Int 368),Var (UnQual (Ident "happyReduce_368"))],Tuple Boxed [Lit (Int 369),Var (UnQual (Ident "happyReduce_369"))],Tuple Boxed [Lit (Int 370),Var (UnQual (Ident "happyReduce_370"))],Tuple Boxed [Lit (Int 371),Var (UnQual (Ident "happyReduce_371"))],Tuple Boxed [Lit (Int 372),Var (UnQual (Ident "happyReduce_372"))],Tuple Boxed [Lit (Int 373),Var (UnQual (Ident "happyReduce_373"))],Tuple Boxed [Lit (Int 374),Var (UnQual (Ident "happyReduce_374"))],Tuple Boxed [Lit (Int 375),Var (UnQual (Ident "happyReduce_375"))],Tuple Boxed [Lit (Int 376),Var (UnQual (Ident "happyReduce_376"))],Tuple Boxed [Lit (Int 377),Var (UnQual (Ident "happyReduce_377"))],Tuple Boxed [Lit (Int 378),Var (UnQual (Ident "happyReduce_378"))],Tuple Boxed [Lit (Int 379),Var (UnQual (Ident "happyReduce_379"))],Tuple Boxed [Lit (Int 380),Var (UnQual (Ident "happyReduce_380"))],Tuple Boxed [Lit (Int 381),Var (UnQual (Ident "happyReduce_381"))],Tuple Boxed [Lit (Int 382),Var (UnQual (Ident "happyReduce_382"))],Tuple Boxed [Lit (Int 383),Var (UnQual (Ident "happyReduce_383"))],Tuple Boxed [Lit (Int 384),Var (UnQual (Ident "happyReduce_384"))],Tuple Boxed [Lit (Int 385),Var (UnQual (Ident "happyReduce_385"))],Tuple Boxed [Lit (Int 386),Var (UnQual (Ident "happyReduce_386"))],Tuple Boxed [Lit (Int 387),Var (UnQual (Ident "happyReduce_387"))],Tuple Boxed [Lit (Int 388),Var (UnQual (Ident "happyReduce_388"))],Tuple Boxed [Lit (Int 389),Var (UnQual (Ident "happyReduce_389"))],Tuple Boxed [Lit (Int 390),Var (UnQual (Ident "happyReduce_390"))],Tuple Boxed [Lit (Int 391),Var (UnQual (Ident "happyReduce_391"))],Tuple Boxed [Lit (Int 392),Var (UnQual (Ident "happyReduce_392"))],Tuple Boxed [Lit (Int 393),Var (UnQual (Ident "happyReduce_393"))],Tuple Boxed [Lit (Int 394),Var (UnQual (Ident "happyReduce_394"))],Tuple Boxed [Lit (Int 395),Var (UnQual (Ident "happyReduce_395"))],Tuple Boxed [Lit (Int 396),Var (UnQual (Ident "happyReduce_396"))],Tuple Boxed [Lit (Int 397),Var (UnQual (Ident "happyReduce_397"))],Tuple Boxed [Lit (Int 398),Var (UnQual (Ident "happyReduce_398"))],Tuple Boxed [Lit (Int 399),Var (UnQual (Ident "happyReduce_399"))],Tuple Boxed [Lit (Int 400),Var (UnQual (Ident "happyReduce_400"))],Tuple Boxed [Lit (Int 401),Var (UnQual (Ident "happyReduce_401"))],Tuple Boxed [Lit (Int 402),Var (UnQual (Ident "happyReduce_402"))],Tuple Boxed [Lit (Int 403),Var (UnQual (Ident "happyReduce_403"))],Tuple Boxed [Lit (Int 404),Var (UnQual (Ident "happyReduce_404"))],Tuple Boxed [Lit (Int 405),Var (UnQual (Ident "happyReduce_405"))],Tuple Boxed [Lit (Int 406),Var (UnQual (Ident "happyReduce_406"))],Tuple Boxed [Lit (Int 407),Var (UnQual (Ident "happyReduce_407"))],Tuple Boxed [Lit (Int 408),Var (UnQual (Ident "happyReduce_408"))],Tuple Boxed [Lit (Int 409),Var (UnQual (Ident "happyReduce_409"))],Tuple Boxed [Lit (Int 410),Var (UnQual (Ident "happyReduce_410"))],Tuple Boxed [Lit (Int 411),Var (UnQual (Ident "happyReduce_411"))],Tuple Boxed [Lit (Int 412),Var (UnQual (Ident "happyReduce_412"))],Tuple Boxed [Lit (Int 413),Var (UnQual (Ident "happyReduce_413"))],Tuple Boxed [Lit (Int 414),Var (UnQual (Ident "happyReduce_414"))],Tuple Boxed [Lit (Int 415),Var (UnQual (Ident "happyReduce_415"))],Tuple Boxed [Lit (Int 416),Var (UnQual (Ident "happyReduce_416"))],Tuple Boxed [Lit (Int 417),Var (UnQual (Ident "happyReduce_417"))],Tuple Boxed [Lit (Int 418),Var (UnQual (Ident "happyReduce_418"))],Tuple Boxed [Lit (Int 419),Var (UnQual (Ident "happyReduce_419"))],Tuple Boxed [Lit (Int 420),Var (UnQual (Ident "happyReduce_420"))],Tuple Boxed [Lit (Int 421),Var (UnQual (Ident "happyReduce_421"))],Tuple Boxed [Lit (Int 422),Var (UnQual (Ident "happyReduce_422"))],Tuple Boxed [Lit (Int 423),Var (UnQual (Ident "happyReduce_423"))],Tuple Boxed [Lit (Int 424),Var (UnQual (Ident "happyReduce_424"))],Tuple Boxed [Lit (Int 425),Var (UnQual (Ident "happyReduce_425"))],Tuple Boxed [Lit (Int 426),Var (UnQual (Ident "happyReduce_426"))],Tuple Boxed [Lit (Int 427),Var (UnQual (Ident "happyReduce_427"))],Tuple Boxed [Lit (Int 428),Var (UnQual (Ident "happyReduce_428"))],Tuple Boxed [Lit (Int 429),Var (UnQual (Ident "happyReduce_429"))],Tuple Boxed [Lit (Int 430),Var (UnQual (Ident "happyReduce_430"))],Tuple Boxed [Lit (Int 431),Var (UnQual (Ident "happyReduce_431"))],Tuple Boxed [Lit (Int 432),Var (UnQual (Ident "happyReduce_432"))],Tuple Boxed [Lit (Int 433),Var (UnQual (Ident "happyReduce_433"))],Tuple Boxed [Lit (Int 434),Var (UnQual (Ident "happyReduce_434"))],Tuple Boxed [Lit (Int 435),Var (UnQual (Ident "happyReduce_435"))],Tuple Boxed [Lit (Int 436),Var (UnQual (Ident "happyReduce_436"))],Tuple Boxed [Lit (Int 437),Var (UnQual (Ident "happyReduce_437"))],Tuple Boxed [Lit (Int 438),Var (UnQual (Ident "happyReduce_438"))],Tuple Boxed [Lit (Int 439),Var (UnQual (Ident "happyReduce_439"))],Tuple Boxed [Lit (Int 440),Var (UnQual (Ident "happyReduce_440"))],Tuple Boxed [Lit (Int 441),Var (UnQual (Ident "happyReduce_441"))],Tuple Boxed [Lit (Int 442),Var (UnQual (Ident "happyReduce_442"))],Tuple Boxed [Lit (Int 443),Var (UnQual (Ident "happyReduce_443"))],Tuple Boxed [Lit (Int 444),Var (UnQual (Ident "happyReduce_444"))],Tuple Boxed [Lit (Int 445),Var (UnQual (Ident "happyReduce_445"))],Tuple Boxed [Lit (Int 446),Var (UnQual (Ident "happyReduce_446"))],Tuple Boxed [Lit (Int 447),Var (UnQual (Ident "happyReduce_447"))],Tuple Boxed [Lit (Int 448),Var (UnQual (Ident "happyReduce_448"))],Tuple Boxed [Lit (Int 449),Var (UnQual (Ident "happyReduce_449"))],Tuple Boxed [Lit (Int 450),Var (UnQual (Ident "happyReduce_450"))],Tuple Boxed [Lit (Int 451),Var (UnQual (Ident "happyReduce_451"))],Tuple Boxed [Lit (Int 452),Var (UnQual (Ident "happyReduce_452"))],Tuple Boxed [Lit (Int 453),Var (UnQual (Ident "happyReduce_453"))],Tuple Boxed [Lit (Int 454),Var (UnQual (Ident "happyReduce_454"))],Tuple Boxed [Lit (Int 455),Var (UnQual (Ident "happyReduce_455"))],Tuple Boxed [Lit (Int 456),Var (UnQual (Ident "happyReduce_456"))],Tuple Boxed [Lit (Int 457),Var (UnQual (Ident "happyReduce_457"))],Tuple Boxed [Lit (Int 458),Var (UnQual (Ident "happyReduce_458"))],Tuple Boxed [Lit (Int 459),Var (UnQual (Ident "happyReduce_459"))],Tuple Boxed [Lit (Int 460),Var (UnQual (Ident "happyReduce_460"))],Tuple Boxed [Lit (Int 461),Var (UnQual (Ident "happyReduce_461"))],Tuple Boxed [Lit (Int 462),Var (UnQual (Ident "happyReduce_462"))],Tuple Boxed [Lit (Int 463),Var (UnQual (Ident "happyReduce_463"))]]))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happy_n_terms")) (UnGuardedRhs (ExpTypeSig (SrcLoc "" -1 -1) (Lit (Int 102)) (TyCon (UnQual (Ident "Int"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happy_n_nonterms")) (UnGuardedRhs (ExpTypeSig (SrcLoc "" -1 -1) (Lit (Int 125)) (TyCon (UnQual (Ident "Int"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_4")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 0))) (Var (UnQual (Ident "happyReduction_4"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_4") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "decls")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Case (Var (UnQual (Ident "decls"))) [Alt (SrcLoc "" -1 -1) (PList []) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "n")) (Var (UnQual (Ident "getNewName"))),Generator (SrcLoc "" -1 -1) (PVar (Ident "p")) (Var (UnQual (Ident "getCurrentPosition"))),Qualifier (InfixApp (Var (UnQual (Ident "return"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CTranslUnit"))) (Var (UnQual (Ident "decls")))) (Paren (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "p")))) (Tuple Boxed [Var (UnQual (Ident "p")),Lit (Int 0)])) (Var (UnQual (Ident "n")))))))])) (BDecls []),Alt (SrcLoc "" -1 -1) (PParen (PInfixApp (PVar (Ident "d")) (Special Cons) (PVar (Ident "ds")))) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "d")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CTranslUnit"))) (Var (UnQual (Ident "decls")))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn7"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_5")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_5"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_5")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_6")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_6"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_6") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_7")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_7"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_7") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_8")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_8"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_8") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut10"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (App (Con (UnQual (Ident "CFDefExt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_9")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_9"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_9") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (App (Con (UnQual (Ident "CDeclExt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_10")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_10"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_10") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_11")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_11"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_11") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAsmExt"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn9"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_12")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_12"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_12") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (List [])) (Var (UnQual (Ident "happy_var_1")))) (List [])) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_13")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_13"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_13") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_14")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_14"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_14") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_15")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_15"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_15") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_16")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_16"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_16") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_17")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_17"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_17") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_18")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_18"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_18") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (List [])) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_19")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_19"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_19") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (List [])) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_20")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_20"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_20") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_21")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_21"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_21") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_22")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_22"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_22") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_23")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_23"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_23") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_24")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_24"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_24") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_25")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_25"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_25") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_26")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 4))) (Var (UnQual (Ident "happyReduction_26"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_26") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declr")) (UnGuardedRhs (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (InfixApp (InfixApp (Var (UnQual (Ident "enterScope"))) (QVarOp (UnQual (Symbol ">>"))) (App (Var (UnQual (Ident "doFuncParamDeclIdent"))) (Var (UnQual (Ident "declr"))))) (QVarOp (UnQual (Symbol ">>"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "declr")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn11"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_27")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_27"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_27") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut13"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_28")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_28"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_28") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_29")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_29"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_29") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut22"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_30")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_30"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_30") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut23"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_31")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_31"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_31") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut24"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_32")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_32"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_32") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut25"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_33")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_33"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_33") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut26"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (App (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Con (UnQual (Ident "CAsm"))) (Var (UnQual (Ident "happy_var_1")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn12"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_34")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_34"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_34") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CLabel"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_35")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_35"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_35") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCase"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_36")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_36"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_36") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CDefault"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_37")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_37"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_37") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCases"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_38")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 7))) (Var (UnQual (Ident "happyReduction_38"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_38") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompound"))) (List [])) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn14"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_39")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 7))) (Var (UnQual (Ident "happyReduction_39"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_39") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut21"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompound"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn14"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_40")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 0))) (Lit (PrimInt 8))) (Var (UnQual (Ident "happyReduction_40"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_40") [PParen (PVar (Ident "happyRest")),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Paren (Var (UnQual (Ident "enterScope")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn15"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_41")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 0))) (Lit (PrimInt 9))) (Var (UnQual (Ident "happyReduction_41"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_41") [PParen (PVar (Ident "happyRest")),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Paren (Var (UnQual (Ident "leaveScope")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn16"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_42")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 10))) (Var (UnQual (Ident "happyReduction_42"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_42")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn17"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_43")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 10))) (Var (UnQual (Ident "happyReduction_43"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_43") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut18"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn17"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_44")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 11))) (Var (UnQual (Ident "happyReduction_44"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_44") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn18"))) (Paren (App (Con (UnQual (Ident "CBlockStmt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_45")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 11))) (Var (UnQual (Ident "happyReduction_45"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_45") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut19"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn18"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_46")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_46"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_46") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (App (Con (UnQual (Ident "CBlockDecl"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_47")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_47"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_47") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut20"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (App (Con (UnQual (Ident "CNestedFunDef"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_48")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_48"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_48") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut19"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_49")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_49"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_49") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_50")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_50"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_50") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_51")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_51"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_51") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_52")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_52"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_52") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_53")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_53"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_53") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (List [])) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_54")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 14))) (Var (UnQual (Ident "happyReduction_54"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_54") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn21"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_55")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 14))) (Var (UnQual (Ident "happyReduction_55"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_55") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut21"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn21"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "rappendr"))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_56")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 15))) (Var (UnQual (Ident "happyReduction_56"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_56") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CExpr"))) (Con (UnQual (Ident "Nothing"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn22"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_57")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 15))) (Var (UnQual (Ident "happyReduction_57"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_57") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CExpr"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn22"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_58")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_58"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_58") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CIf"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Con (UnQual (Ident "Nothing"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_59")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_59"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_59") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CIf"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_7"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_60")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_60"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_60") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CSwitch"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_61")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_61"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_61") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CWhile"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Con (UnQual (Ident "False"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_62")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_62"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_62") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CWhile"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_2")))) (Con (UnQual (Ident "True"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_63")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 9))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_63"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_63") [PParen (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_9")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_9")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFor"))) (Paren (App (Con (UnQual (Ident "Left"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_7")))) (Var (UnQual (Ident "happy_var_9"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_64")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 10))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_64"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_64") [PParen (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_9")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_9")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFor"))) (Paren (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_7")))) (Var (UnQual (Ident "happy_var_9"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_65")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_65"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_65") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CGoto"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_66")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_66"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_66") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CGotoPtr"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_67")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_67"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_67") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CCont")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_68")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_68"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_68") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CBreak")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_69")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_69"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_69") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CReturn"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_70")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_70"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_70") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (List [])) (List [])) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_71")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 8))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_71"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_71") [PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (List [])) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_72")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 10))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_72"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_72") [PParen (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_8")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_8")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (Var (UnQual (Ident "happy_var_8")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_73")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 12))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_73"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_73") [PParen (PInfixApp (PVar (Ident "happy_x_12")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_11")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_8")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_8")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut31"))) (Var (UnQual (Ident "happy_x_10")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_10")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (Var (UnQual (Ident "happy_var_8")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_10"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_74")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 20))) (Var (UnQual (Ident "happyReduction_74"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_74")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn27"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_75")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 20))) (Var (UnQual (Ident "happyReduction_75"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_75") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn27"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_76")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 21))) (Var (UnQual (Ident "happyReduction_76"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_76")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn28"))) (Paren (List [])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_77")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 21))) (Var (UnQual (Ident "happyReduction_77"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_77") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut29"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn28"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_78")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 22))) (Var (UnQual (Ident "happyReduction_78"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_78") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut30"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn29"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_79")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 22))) (Var (UnQual (Ident "happyReduction_79"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_79") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut29"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut30"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn29"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_80")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_80"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_80") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_81")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_81"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_81") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_82")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_82"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_82") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_83")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 24))) (Var (UnQual (Ident "happyReduction_83"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_83") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn31"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_84")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 24))) (Var (UnQual (Ident "happyReduction_84"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_84") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut31"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn31"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_85")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_85"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_85") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_86")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_86"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_86") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_87")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_87"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_87") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut36"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (Paren (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies"))))))))) (BDecls [])]))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_88")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_88"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_88") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut34"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (Paren (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies"))))))))) (BDecls [])]))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_89")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 26))) (Var (UnQual (Ident "happyReduction_89"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_89")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn33"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_90")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 26))) (Var (UnQual (Ident "happyReduction_90"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_90") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn33"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_91")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_91"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_91") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_92")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_92"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_92") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_93")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_93"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_93") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_3")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (Var (UnQual (Ident "declspecs"))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_5")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_94")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_94"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_94") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_95")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_95"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_95") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut34"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Tuple Boxed [App (Var (UnQual (Ident "fst"))) (Var (UnQual (Ident "happy_var_5"))),InfixApp (App (Var (UnQual (Ident "snd"))) (Var (UnQual (Ident "happy_var_5")))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_3")))])) (Var (UnQual (Ident "happy_var_4")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_6")),Con (UnQual (Ident "Nothing"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))))])) (BDecls [])]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_96")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 28))) (Var (UnQual (Ident "happyReduction_96"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_96") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut64"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn35"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Var (UnQual (Ident "happy_var_2"))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_97")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_97"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_97") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_98")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_98"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_98") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_99")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_99"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_99") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut36"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Tuple Boxed [App (Var (UnQual (Ident "fst"))) (Var (UnQual (Ident "happy_var_5"))),InfixApp (App (Var (UnQual (Ident "snd"))) (Var (UnQual (Ident "happy_var_5")))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_3")))])) (Var (UnQual (Ident "happy_var_4")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (App (Var (UnQual (Ident "return"))) (Paren (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_6")),Con (UnQual (Ident "Nothing"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))))])) (BDecls [])]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_100")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_100"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_100") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_101")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_101"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_101") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_102")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_102"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_102") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_103")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_103"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_103") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_104")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_104"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_104") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_105")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_105"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_105") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_106")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_106"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_106") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_107")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_107"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_107") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_108")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_108"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_108") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_109")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 32))) (Var (UnQual (Ident "happyReduction_109"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_109") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn39"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_110")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 32))) (Var (UnQual (Ident "happyReduction_110"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_110") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn39"))) (Paren (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_111")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_111"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_111") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CTypedef")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_112")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_112"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_112") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CExtern")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_113")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_113"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_113") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CStatic")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_114")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_114"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_114") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CAuto")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_115")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_115"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_115") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CRegister")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_116")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_116"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_116") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CThread")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_117")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_117"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_117") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_118")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_118"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_118") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_119")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_119"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_119") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_120")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_120"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_120") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CVoidType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_121")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_121"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_121") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CCharType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_122")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_122"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_122") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CShortType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_123")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_123"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_123") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CIntType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_124")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_124"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_124") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CLongType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_125")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_125"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_125") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CFloatType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_126")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_126"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_126") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CDoubleType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_127")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_127"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_127") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CSignedType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_128")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_128"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_128") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CUnsigType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_129")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_129"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_129") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CBoolType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_130")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_130"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_130") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CComplexType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_131")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_131"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_131") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_132")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_132"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_132") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_133")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_133"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_133") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_134")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_134"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_134") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_135")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_135"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_135") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_136")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_136"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_136") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_137")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_137"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_137") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "reverseList"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_138")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_138"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_138") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_139")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_139"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_139") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_140")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_140"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_140") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_141")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_141"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_141") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_142")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_142"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_142") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_143")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_143"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_143") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_144")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_144"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_144") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_145")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_145"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_145") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_146")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_146"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_146") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_147")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_147"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_147") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_148")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_148"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_148") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "reverseList"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_149")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_149"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_149") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_150")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_150"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_150") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_151")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_151"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_151") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_152")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_152"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_152") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_153")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_153"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_153") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_154")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_154"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_154") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_155")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_155"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_155") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_156")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_156"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_156") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_157")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_157"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_157") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_158")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_158"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_158") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_159")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_159"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_159") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_160")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_160"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_160") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_161")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_161"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_161") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_162")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_162"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_162") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_163")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_163"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_163") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_164")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_164"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_164") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_165")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_165"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_165") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_166")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_166"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_166") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_167")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_167"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_167") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_168")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_168"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_168") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_3")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_169")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_169"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_169") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_170")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_170"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_170") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_171")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_171"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_171") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn48"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_172")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_172"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_172") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn48"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_173")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 42))) (Var (UnQual (Ident "happyReduction_173"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_173") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut50"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSUType"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn49"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_174")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 42))) (Var (UnQual (Ident "happyReduction_174"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_174") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut58"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CEnumType"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn49"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_175")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_175"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_175") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_176")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_176"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_176") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_177")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_177"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_177") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_178")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 44))) (Var (UnQual (Ident "happyReduction_178"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_178") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn51"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CStructTag")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_179")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 44))) (Var (UnQual (Ident "happyReduction_179"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_179") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn51"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CUnionTag")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_180")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_180"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_180")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_181")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_181"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_181") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_182")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_182"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_182") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut53"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_183")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_183"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_183") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut55"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_184")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_184"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_184") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut54"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_185")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_185"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_185") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut53"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_186")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_186"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_186") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_3"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "d"),PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List [Tuple Boxed [Var (UnQual (Ident "d")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn54"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_187")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_187"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_187") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "d"),PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [Var (UnQual (Ident "d")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn54"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_188")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_188"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_188") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut54"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn54"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Case (Var (UnQual (Ident "happy_var_4"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])) (BDecls [])]))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_189")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_189"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_189") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut56"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn55"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_190")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_190"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_190") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut55"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut56"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn55"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "attr")]) (UnGuardedRhs (Case (Var (UnQual (Ident "happy_var_4"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "attr"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "attr"))))) (BDecls [])])) (BDecls [])]))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_191")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_191"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_191") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn55"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_192")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_192"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_192") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_193")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_193"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_193") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [Con (UnQual (Ident "Nothing")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_194")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_194"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_194") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_195")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_195"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_195") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_196")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_196"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_196") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [Con (UnQual (Ident "Nothing")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_197")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_197"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_197") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_198")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_198"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_198") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "expr")]) (UnGuardedRhs (Tuple Boxed [Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "expr"))])) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "name"),PVar (Ident "derived"),PVar (Ident "asmname"),PVar (Ident "attrs"),PVar (Ident "node")])],PVar (Ident "bsz")]) (UnGuardedRhs (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "name")))) (Var (UnQual (Ident "derived")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "node"))))),Var (UnQual (Ident "bsz"))])) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_199")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_199"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_199") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_200")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_200"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_200") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_201")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_201"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_201") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_202")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_202"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_202") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_203")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_203"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_203") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_204")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 52))) (Var (UnQual (Ident "happyReduction_204"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_204") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut60"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn59"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_205")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 52))) (Var (UnQual (Ident "happyReduction_205"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_205") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut60"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn59"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_206")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 53))) (Var (UnQual (Ident "happyReduction_206"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_206") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn60"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_207")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 53))) (Var (UnQual (Ident "happyReduction_207"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_207") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn60"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_208")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_208"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_208") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CConstQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_209")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_209"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_209") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CVolatQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_210")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_210"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_210") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CRestrQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_211")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_211"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_211") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CInlineQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_212")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_212"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_212") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_213")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_213"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_213") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_214")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_214"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_214") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "rappend"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_215")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 56))) (Var (UnQual (Ident "happyReduction_215"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_215") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn63"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_216")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 56))) (Var (UnQual (Ident "happyReduction_216"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_216") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut65"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn63"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_217")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 57))) (Var (UnQual (Ident "happyReduction_217"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_217")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn64"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_218")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 57))) (Var (UnQual (Ident "happyReduction_218"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_218") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn64"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_219")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 58))) (Var (UnQual (Ident "happyReduction_219"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_219") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn65"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_220")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 58))) (Var (UnQual (Ident "happyReduction_220"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_220") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn65"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_221")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_221"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_221") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn66"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_222")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_222"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_222") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "happy_var_2"))) (Paren (App (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn66"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_223")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_223"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_223") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn66"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_224")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_224"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_224") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut68"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn67"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_225")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_225"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_225") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_226")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_226"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_226") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_227")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_227"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_227") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_228")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_228"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_228") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_229")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_229"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_229") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn68"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_230")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_230"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_230") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_231")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_231"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_231") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_232")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_232"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_232") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_233")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_233"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_233") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut70"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn69"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_234")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_234"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_234") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_235")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_235"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_235") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_236")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_236"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_236") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_5")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_237")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_237"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_237") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_238")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_238"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_238") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_239")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_239"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_239") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_240")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_240"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_240") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn70"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_241")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_241"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_241") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn70"))) (Paren (App (Var (UnQual (Ident "happy_var_3"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_242")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_242"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_242") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn70"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_243")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 64))) (Var (UnQual (Ident "happyReduction_243"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_243") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn71"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_244")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 64))) (Var (UnQual (Ident "happyReduction_244"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_244") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn71"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_245")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 65))) (Var (UnQual (Ident "happyReduction_245"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_245") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn72"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_246")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 65))) (Var (UnQual (Ident "happyReduction_246"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_246") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn72"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_247")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_247"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_247") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut74"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn73"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_248")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_248"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_248") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_249")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_249"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_249") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_250")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_250"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_250") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_251")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_251"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_251") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_252")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_252"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_252") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (Var (UnQual (Ident "happy_var_2"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_253")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_253"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_253") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn74"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_254")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_254"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_254") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_255")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_255"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_255") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_256")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_256"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_256") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_257")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_257"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_257") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn75"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_258")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_258"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_258") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn75"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_259")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_259"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_259") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn75"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_260")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 69))) (Var (UnQual (Ident "happyReduction_260"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_260") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn76"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_261")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_261"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_261") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut78"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn77"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_262")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_262"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_262") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn77"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_263")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_263"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_263") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn77"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_264")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_264"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_264") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Var (UnQual (Ident "funDeclr"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Con (UnQual (Ident "Left"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn78"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_265")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_265"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_265") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn78"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_266")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_266"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_266") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn78"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_267")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_267"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_267")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [List [],Con (UnQual (Ident "False"))])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_268")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_268"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_268") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))),Con (UnQual (Ident "False"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_269")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_269"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_269") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))),Con (UnQual (Ident "True"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_270")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 73))) (Var (UnQual (Ident "happyReduction_270"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_270") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut81"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn80"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_271")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 73))) (Var (UnQual (Ident "happyReduction_271"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_271") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut81"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn80"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_272")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_272"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_272") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_273")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_273"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_273") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_274")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_274"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_274") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_275")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_275"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_275") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_276")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_276"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_276") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_277")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_277"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_277") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_278")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_278"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_278") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_279")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_279"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_279") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_280")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_280"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_280") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_281")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_281"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_281") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_282")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_282"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_282") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_283")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_283"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_283") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_284")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_284"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_284") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_285")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_285"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_285") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_286")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_286"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_286") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_287")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 75))) (Var (UnQual (Ident "happyReduction_287"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_287") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn82"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_288")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 75))) (Var (UnQual (Ident "happyReduction_288"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_288") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_3")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn82"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_289")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_289"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_289") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_290")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_290"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_290") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_291")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_291"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_291") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_292")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_292"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_292") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_293")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_293"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_293") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_294")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_294"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_294") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_295")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_295"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_295") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (App (Var (UnQual (Ident "happy_var_1"))) (Var (UnQual (Ident "emptyDeclr"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_296")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 78))) (Var (UnQual (Ident "happyReduction_296"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_296") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut86"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn85"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_297")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 78))) (Var (UnQual (Ident "happyReduction_297"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_297") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut79"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "params"),PVar (Ident "variadic")]) (UnGuardedRhs (App (App (App (App (Var (UnQual (Ident "funDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Con (UnQual (Ident "Right"))) (Tuple Boxed [Var (UnQual (Ident "params")),Var (UnQual (Ident "variadic"))])))) (List [])) (Var (UnQual (Ident "at"))))) (BDecls [])]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn85"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_298")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 79))) (Var (UnQual (Ident "happyReduction_298"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_298") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut87"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn86"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_299")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 79))) (Var (UnQual (Ident "happyReduction_299"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_299") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut86"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut87"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn86"))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "decl")] (App (Var (UnQual (Ident "happy_var_2"))) (Paren (App (Var (UnQual (Ident "happy_var_1"))) (Var (UnQual (Ident "decl")))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_300")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_300"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_300") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_301")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_301"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_301") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_302")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_302"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_302") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_303")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_303"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_303") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_304")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_304"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_304") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_305")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_305"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_305") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_5")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_306")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_306"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_306") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_6")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_307")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_307"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_307") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_308")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_308"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_308") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_2"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_4")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_309")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_309"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_309") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_310")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_310"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_310") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_311")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_311"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_311") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_312")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_312"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_312") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_313")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_313"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_313") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_314")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_314"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_314") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_315")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_315"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_315") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_316")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_316"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_316") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_317")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_317"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_317") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_318")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_318"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_318") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_319")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_319"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_319") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (Var (UnQual (Ident "happy_var_2"))) (Var (UnQual (Ident "emptyDeclr"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_320")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_320"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_320") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_321")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_321"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_321") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_322")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_322"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_322") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_323")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_323"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_323") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_3"))) (Var (UnQual (Ident "emptyDeclr")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_324")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_324"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_324") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_325")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_325"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_325") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_326")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_326"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_326") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitExpr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_327")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_327"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_327") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitList"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_328")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_328"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_328") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitList"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_329")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 84))) (Var (UnQual (Ident "happyReduction_329"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_329")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn91"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_330")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 84))) (Var (UnQual (Ident "happyReduction_330"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_330") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn91"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_331")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_331"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_331")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_332")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_332"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_332") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Tuple Boxed [List [],Var (UnQual (Ident "happy_var_1"))]))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_333")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_333"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_333") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut93"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Var (UnQual (Ident "happy_var_2"))]))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_334")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_334"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_334") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Tuple Boxed [List [],Var (UnQual (Ident "happy_var_3"))]))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_335")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_335"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_335") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut93"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn92"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Tuple Boxed [Var (UnQual (Ident "happy_var_3")),Var (UnQual (Ident "happy_var_4"))])))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_336")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_336"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_336") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut94"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn93"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_337")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_337"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_337") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (List [App (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))]))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn93"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_338")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_338"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_338") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut96"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn93"))) (Paren (List [Var (UnQual (Ident "happy_var_1"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_339")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 87))) (Var (UnQual (Ident "happyReduction_339"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_339") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut95"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn94"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_340")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 87))) (Var (UnQual (Ident "happyReduction_340"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_340") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut94"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut95"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn94"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_341")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_341"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_341") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CArrDesig"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn95"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_342")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_342"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_342") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn95"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_343")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_343"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_343") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut96"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn95"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_344")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 89))) (Var (UnQual (Ident "happyReduction_344"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_344") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CRangeDesig"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn96"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_345")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_345"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_345") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CVar"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_346")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_346"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_346") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut122"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (App (Con (UnQual (Ident "CConst"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_347")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_347"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_347") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (App (Con (UnQual (Ident "CConst"))) (Paren (App (Var (UnQual (Ident "liftStrLit"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_348")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_348"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_348") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_349")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_349"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_349") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CStatExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_350")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_350"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_350") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinVaArg"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_351")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_351"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_351") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinOffsetOf"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5")))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_352")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_352"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_352") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinTypesCompatible"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_353")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_353"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_353") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Var (UnQual (Ident "singleton"))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_1")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_354")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_354"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_354") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (LeftSection (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc")))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_355")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_355"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_355") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (LeftSection (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc")))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CArrDesig"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_356")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_356"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_356") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut97"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn99"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_357")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_357"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_357") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CIndex"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_358")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_358"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_358") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCall"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_359")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_359"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_359") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut100"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCall"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_360")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_360"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_360") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CMember"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (Con (UnQual (Ident "False"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_361")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_361"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_361") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CMember"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (Con (UnQual (Ident "True"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_362")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_362"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_362") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPostIncOp")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_363")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_363"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_363") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPostDecOp")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_364")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_364"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_364") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompoundLit"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_365")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_365"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_365") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompoundLit"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_366")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 93))) (Var (UnQual (Ident "happyReduction_366"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_366") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn100"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_367")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 93))) (Var (UnQual (Ident "happyReduction_367"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_367") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut100"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn100"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_368")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_368"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_368") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn101"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_369")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_369"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_369") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPreIncOp")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_370")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_370"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_370") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPreDecOp")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_371")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_371"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_371") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn101"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_372")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_372"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_372") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut102"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_373")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_373"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_373") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSizeofExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_374")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_374"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_374") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSizeofType"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_375")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_375"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_375") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAlignofExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_376")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_376"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_376") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAlignofType"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_377")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_377"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_377") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComplexReal"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_378")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_378"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_378") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComplexImag"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_379")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_379"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_379") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CLabAddrExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_380")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_380"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_380") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAdrOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_381")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_381"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_381") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CIndOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_382")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_382"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_382") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CPlusOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_383")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_383"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_383") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CMinOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_384")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_384"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_384") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CCompOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_385")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_385"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_385") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CNegOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_386")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 96))) (Var (UnQual (Ident "happyReduction_386"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_386") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn103"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_387")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 96))) (Var (UnQual (Ident "happyReduction_387"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_387") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCast"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn103"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_388")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_388"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_388") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn104"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_389")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_389"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_389") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CMulOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_390")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_390"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_390") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CDivOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_391")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_391"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_391") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CRmdOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_392")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_392"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_392") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn105"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_393")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_393"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_393") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CAddOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn105"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_394")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_394"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_394") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CSubOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn105"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_395")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_395"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_395") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn106"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_396")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_396"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_396") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CShlOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn106"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_397")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_397"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_397") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CShrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn106"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_398")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_398"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_398") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn107"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_399")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_399"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_399") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLeOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_400")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_400"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_400") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CGrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_401")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_401"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_401") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_402")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_402"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_402") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CGeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_403")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_403"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_403") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn108"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_404")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_404"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_404") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CEqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn108"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_405")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_405"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_405") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CNeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn108"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_406")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 102))) (Var (UnQual (Ident "happyReduction_406"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_406") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn109"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_407")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 102))) (Var (UnQual (Ident "happyReduction_407"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_407") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CAndOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn109"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_408")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 103))) (Var (UnQual (Ident "happyReduction_408"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_408") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn110"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_409")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 103))) (Var (UnQual (Ident "happyReduction_409"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_409") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CXorOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn110"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_410")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 104))) (Var (UnQual (Ident "happyReduction_410"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_410") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn111"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_411")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 104))) (Var (UnQual (Ident "happyReduction_411"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_411") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "COrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn111"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_412")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 105))) (Var (UnQual (Ident "happyReduction_412"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_412") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn112"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_413")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 105))) (Var (UnQual (Ident "happyReduction_413"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_413") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLndOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn112"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_414")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 106))) (Var (UnQual (Ident "happyReduction_414"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_414") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn113"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_415")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 106))) (Var (UnQual (Ident "happyReduction_415"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_415") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLorOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn113"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_416")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_416"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_416") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn114"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_417")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_417"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_417") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCond"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn114"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_418")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_418"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_418") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCond"))) (Var (UnQual (Ident "happy_var_1")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn114"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_419")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 108))) (Var (UnQual (Ident "happyReduction_419"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_419") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn115"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_420")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 108))) (Var (UnQual (Ident "happyReduction_420"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_420") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut116"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAssign"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn115"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_421")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_421"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_421") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAssignOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_422")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_422"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_422") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CMulAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_423")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_423"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_423") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CDivAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_424")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_424"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_424") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CRmdAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_425")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_425"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_425") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAddAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_426")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_426"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_426") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CSubAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_427")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_427"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_427") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CShlAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_428")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_428"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_428") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CShrAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_429")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_429"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_429") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAndAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_430")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_430"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_430") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CXorAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_431")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_431"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_431") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "COrAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_432")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 110))) (Var (UnQual (Ident "happyReduction_432"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_432") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn117"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_433")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 110))) (Var (UnQual (Ident "happyReduction_433"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_433") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut118"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "es")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))) (BDecls [])]) (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "es")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComma"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QConOp (Special Cons)) (Var (UnQual (Ident "es")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn117"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_434")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 111))) (Var (UnQual (Ident "happyReduction_434"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_434") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn118"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_435")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 111))) (Var (UnQual (Ident "happyReduction_435"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_435") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut118"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn118"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_436")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 112))) (Var (UnQual (Ident "happyReduction_436"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_436")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn119"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_437")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 112))) (Var (UnQual (Ident "happyReduction_437"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_437") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn119"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_438")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 113))) (Var (UnQual (Ident "happyReduction_438"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_438")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn120"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_439")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 113))) (Var (UnQual (Ident "happyReduction_439"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_439") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn120"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_440")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 114))) (Var (UnQual (Ident "happyReduction_440"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_440") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn121"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_441")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_441"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_441") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokILit")) [PWildCard,PVar (Ident "i")]) (UnGuardedRhs (App (Con (UnQual (Ident "CIntConst"))) (Var (UnQual (Ident "i"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_442")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_442"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_442") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCLit")) [PWildCard,PVar (Ident "c")]) (UnGuardedRhs (App (Con (UnQual (Ident "CCharConst"))) (Var (UnQual (Ident "c"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_443")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_443"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_443") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFLit")) [PWildCard,PVar (Ident "f")]) (UnGuardedRhs (App (Con (UnQual (Ident "CFloatConst"))) (Var (UnQual (Ident "f"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_444")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 116))) (Var (UnQual (Ident "happyReduction_444"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_444") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Con (UnQual (Ident "CStrLit"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn123"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_445")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 116))) (Var (UnQual (Ident "happyReduction_445"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_445") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut124"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Con (UnQual (Ident "CStrLit"))) (Paren (App (Var (UnQual (Ident "concatCStrings"))) (Paren (InfixApp (Var (UnQual (Ident "s"))) (QConOp (Special Cons)) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))))))) (BDecls [])])))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn123"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_446")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 117))) (Var (UnQual (Ident "happyReduction_446"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_446") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn124"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_447")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 117))) (Var (UnQual (Ident "happyReduction_447"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_447") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut124"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn124"))) (Paren (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_448")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 118))) (Var (UnQual (Ident "happyReduction_448"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_448") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn125"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_449")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 118))) (Var (UnQual (Ident "happyReduction_449"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_449") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn125"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_450")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 119))) (Var (UnQual (Ident "happyReduction_450"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_450")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn126"))) (Paren (List [])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_451")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 119))) (Var (UnQual (Ident "happyReduction_451"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_451") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn126"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_452")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 120))) (Var (UnQual (Ident "happyReduction_452"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_452") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn127"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_453")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 120))) (Var (UnQual (Ident "happyReduction_453"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_453") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn127"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_454")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 121))) (Var (UnQual (Ident "happyReduction_454"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_454") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut129"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn128"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_455")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 122))) (Var (UnQual (Ident "happyReduction_455"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_455") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut130"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn129"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (Var (UnQual (Ident "empty")))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "attr")]) (UnGuardedRhs (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "attr"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_456")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 122))) (Var (UnQual (Ident "happyReduction_456"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_456") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut129"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut130"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn129"))) (Paren (App (Paren (App (App (App (Var (UnQual (Ident "maybe"))) (Var (UnQual (Ident "id")))) (Paren (App (Var (UnQual (Ident "flip"))) (Var (UnQual (Ident "snoc")))))) (Var (UnQual (Ident "happy_var_3"))))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_457")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_457"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_457")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn130"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_458")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_458"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_458") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_459")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_459"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_459") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Paren (App (Var (UnQual (Ident "internalIdent"))) (Lit (String "const"))))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_460")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_460"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_460") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut131"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_461")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_461"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_461") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_462")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 124))) (Var (UnQual (Ident "happyReduction_462"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_462") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn131"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_463")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 124))) (Var (UnQual (Ident "happyReduction_463"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_463") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut131"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn131"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyNewToken") [PVar (Ident "action"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "lexC"))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "tk")] (Let (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "cont") [PVar (Ident "i")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls [])]]) (Case (Var (UnQual (Ident "tk"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEof")) []) (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Lit (PrimInt 101))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLParen")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 1)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRParen")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 2)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLBracket")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 3)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRBracket")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 4)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokArrow")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 5)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDot")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 6)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokExclam")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 7)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTilde")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 8)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInc")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 9)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDec")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 10)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPlus")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 11)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokMinus")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 12)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 13)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSlash")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 14)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPercent")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 15)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAmper")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 16)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShiftL")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 17)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShiftR")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 18)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLess")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 19)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLessEq")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 20)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHigh")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 21)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHighEq")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 22)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEqual")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 23)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnequal")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 24)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHat")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 25)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 26)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAnd")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 27)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokOr")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 28)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokQuest")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 29)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokColon")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 30)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAssign")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 31)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPlusAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 32)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokMinusAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 33)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStarAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 34)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSlashAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 35)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPercAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 36)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAmpAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 37)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHatAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 38)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBarAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 39)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 40)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSRAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 41)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokComma")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 42)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSemic")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 43)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLBrace")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 44)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRBrace")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 45)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEllipsis")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 46)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAlignof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 47)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAsm")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 48)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAuto")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 49)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBreak")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 50)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBool")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 51)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCase")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 52)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokChar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 53)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokConst")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 54)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokContinue")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 55)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokComplex")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 56)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDefault")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 57)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDo")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 58)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDouble")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 59)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokElse")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 60)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEnum")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 61)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokExtern")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 62)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFloat")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 63)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFor")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 64)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGoto")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 65)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokIf")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 66)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInline")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 67)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInt")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 68)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLong")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 69)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLabel")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 70)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRegister")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 71)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRestrict")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 72)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokReturn")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 73)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShort")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 74)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSigned")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 75)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSizeof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 76)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStatic")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 77)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStruct")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 78)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSwitch")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 79)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTypedef")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 80)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTypeof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 81)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokThread")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 82)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnion")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 83)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnsigned")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 84)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokVoid")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 85)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokVolatile")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 86)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokWhile")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 87)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 88)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokILit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 89)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 90)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 91)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_dollar_dollar")]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 92)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_dollar_dollar")]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 93)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCAttrTok")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 94)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCExtTok")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 95)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCComplexReal")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 96)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCComplexImag")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 97)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCVaArg")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 98)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCOffsetof")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 99)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCTyCompat")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 100)))) (BDecls []),Alt (SrcLoc "" -1 -1) PWildCard (UnGuardedRhs (App (Var (UnQual (Ident "happyError'"))) (Var (UnQual (Ident "tk"))))) (BDecls [])])))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyError_") [PVar (Ident "tk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyError'"))) (Var (UnQual (Ident "tk"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "happyThen"] (TyForall Nothing [] (TyFun (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))) (TyFun (TyParen (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "b"))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "b")))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyThen")) (UnGuardedRhs (Var (UnQual (Symbol ">>=")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyReturn"] (TyForall Nothing [] (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReturn")) (UnGuardedRhs (Paren (Var (UnQual (Ident "return"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyThen1")) (UnGuardedRhs (Var (UnQual (Ident "happyThen")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyReturn1"] (TyForall Nothing [] (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReturn1")) (UnGuardedRhs (Var (UnQual (Ident "happyReturn")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyError'"] (TyForall Nothing [] (TyFun (TyCon (UnQual (Ident "CToken"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyError'") [PVar (Ident "tk")] Nothing (UnGuardedRhs (App (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "token")] (Var (UnQual (Ident "happyError"))))) (Var (UnQual (Ident "tk"))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "translation_unit")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 0))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut7"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "external_declaration")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 1))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "statement")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 2))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "expression")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 3))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySeq")) (UnGuardedRhs (Var (UnQual (Ident "happyDontSeq")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "reverseList"] (TyFun (TyList (TyVar (Ident "a"))) (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyVar (Ident "a"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "reverseList")) (UnGuardedRhs (InfixApp (Con (UnQual (Ident "Reversed"))) (QVarOp (UnQual (Symbol "."))) (Var (Qual (ModuleName "List") (Ident "reverse"))))) (BDecls []),DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Located") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "L") [TyBang BangedTy (TyVar (Ident "a")),TyBang BangedTy (TyCon (UnQual (Ident "Position")))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "unL"] (TyFun (TyApp (TyCon (UnQual (Ident "Located"))) (TyVar (Ident "a"))) (TyVar (Ident "a"))),FunBind [Match (SrcLoc "" -1 -1) (Ident "unL") [PParen (PApp (UnQual (Ident "L")) [PVar (Ident "a"),PVar (Ident "pos")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "a")))) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "Pos")) [TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyVar (Ident "a")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "L")) [PWildCard,PVar (Ident "pos")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "pos")))) (BDecls [])])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withNodeInfo")),TypeSig (SrcLoc "" -1 -1) [Ident "withNodeInfo"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyVar (Ident "a")))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withNodeInfo") [PVar (Ident "node"),PVar (Ident "mkAttrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),Generator (SrcLoc "" -1 -1) (PVar (Ident "lastTok")) (Var (UnQual (Ident "getSavedToken"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "firstPos")) (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "firstPos")))) (Paren (InfixApp (Var (UnQual (Ident "posLenOfTok"))) (QVarOp (UnQual (Symbol "$!"))) (Var (UnQual (Ident "lastTok")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Paren (App (Var (UnQual (Ident "mkAttrNode"))) (Var (UnQual (Ident "attrs")))))))])) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withLength")),TypeSig (SrcLoc "" -1 -1) [Ident "withLength"] (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyVar (Ident "a")))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withLength") [PVar (Ident "nodeinfo"),PVar (Ident "mkAttrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "lastTok")) (Var (UnQual (Ident "getSavedToken"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "firstPos")) (UnGuardedRhs (App (Var (UnQual (Ident "posOfNode"))) (Var (UnQual (Ident "nodeinfo"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "firstPos")))) (Paren (InfixApp (Var (UnQual (Ident "posLenOfTok"))) (QVarOp (UnQual (Symbol "$!"))) (Var (UnQual (Ident "lastTok")))))) (Paren (App (App (App (Var (UnQual (Ident "maybe"))) (Paren (App (Var (UnQual (Ident "error"))) (Lit (String "nameOfNode"))))) (Var (UnQual (Ident "id")))) (Paren (App (Var (UnQual (Ident "nameOfNode"))) (Var (UnQual (Ident "nodeinfo"))))))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Paren (App (Var (UnQual (Ident "mkAttrNode"))) (Var (UnQual (Ident "attrs")))))))])) (BDecls [])],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "CDeclrR") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "CDeclrR") [TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "Ident")))),TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDerivedDeclr"))))),TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))),TyList (TyCon (UnQual (Ident "CAttr"))),TyCon (UnQual (Ident "NodeInfo"))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "reverseDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclr")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "reverseDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ide"),PVar (Ident "reversedDDs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "ide")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "reversedDDs")))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "CNode")) [TyParen (TyCon (UnQual (Ident "CDeclrR")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "nodeInfo") [PParen (PApp (UnQual (Ident "CDeclrR")) [PWildCard,PWildCard,PWildCard,PWildCard,PVar (Ident "n")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "n")))) (BDecls [])])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "Pos")) [TyParen (TyCon (UnQual (Ident "CDeclrR")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "CDeclrR")) [PWildCard,PWildCard,PWildCard,PWildCard,PVar (Ident "n")])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "n"))))) (BDecls [])])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withAttribute")),TypeSig (SrcLoc "" -1 -1) [Ident "withAttribute"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAttribute") [PVar (Ident "node"),PVar (Ident "cattrs"),PVar (Ident "mkDeclrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (Var (UnQual (Ident "mkNodeInfo"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "newDeclr")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "cattrs")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkDeclrNode"))) (Var (UnQual (Ident "attrs")))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (InfixApp (Var (UnQual (Ident "newDeclr"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "newDeclr"))))))])) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withAttributePF")),TypeSig (SrcLoc "" -1 -1) [Ident "withAttributePF"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAttributePF") [PVar (Ident "node"),PVar (Ident "cattrs"),PVar (Ident "mkDeclrCtor")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (Var (UnQual (Ident "mkNodeInfo"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "newDeclr")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "cattrs")))) (QVarOp (UnQual (Symbol "."))) (App (Var (UnQual (Ident "mkDeclrCtor"))) (Var (UnQual (Ident "attrs")))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (InfixApp (Var (UnQual (Ident "newDeclr"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "newDeclr"))))))])) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendObjAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendObjAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "asmname"),PVar (Ident "cAttrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cAttrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendObjAttrsR"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendObjAttrsR") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "asmname"),PVar (Ident "cAttrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cAttrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "setAsmName"] (TyFun (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "setAsmName") [PVar (Ident "mAsmName"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "oldName"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (Case (App (App (Var (UnQual (Ident "combineName"))) (Var (UnQual (Ident "mAsmName")))) (Var (UnQual (Ident "oldName")))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Left")) [PTuple Boxed [PVar (Ident "n1"),PVar (Ident "n2")]]) (UnGuardedRhs (App (App (Var (UnQual (Ident "failP"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "n2")))))) (List [Lit (String "Duplicate assembler name: "),App (Var (UnQual (Ident "showName"))) (Var (UnQual (Ident "n1"))),App (Var (UnQual (Ident "showName"))) (Var (UnQual (Ident "n2")))]))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Right")) [PVar (Ident "newName")]) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "return"))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "newName")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at")))))) (BDecls [])])) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "combineName") [PApp (UnQual (Ident "Nothing")) [],PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Con (UnQual (Ident "Nothing"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PApp (UnQual (Ident "Nothing")) [],PAsPat (Ident "oldname") (PParen (PApp (UnQual (Ident "Just")) [PWildCard]))] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "oldname"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PAsPat (Ident "newname") (PParen (PApp (UnQual (Ident "Just")) [PWildCard])),PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "newname"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "n1")]),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "n2")])] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Left"))) (Tuple Boxed [Var (UnQual (Ident "n1")),Var (UnQual (Ident "n2"))]))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "showName") [PParen (PApp (UnQual (Ident "CStrLit")) [PVar (Ident "cstr"),PWildCard])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "show"))) (Var (UnQual (Ident "cstr"))))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "withAsmNameAttrs"] (TyFun (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))]) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAsmNameAttrs") [PTuple Boxed [PVar (Ident "mAsmName"),PVar (Ident "newAttrs")],PVar (Ident "declr")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "setAsmName"))) (Var (UnQual (Ident "mAsmName")))) (Paren (App (App (Var (UnQual (Ident "appendObjAttrsR"))) (Var (UnQual (Ident "newAttrs")))) (Var (UnQual (Ident "declr"))))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendDeclrAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendDeclrAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PParen (PApp (UnQual (Ident "Reversed")) [PList []]),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "empty")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cattrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendDeclrAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PParen (PApp (UnQual (Ident "Reversed")) [PParen (PInfixApp (PVar (Ident "x")) (Special Cons) (PVar (Ident "xs")))]),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (App (Con (UnQual (Ident "Reversed"))) (Paren (InfixApp (App (Var (UnQual (Ident "appendAttrs"))) (Var (UnQual (Ident "x")))) (QConOp (Special Cons)) (Var (UnQual (Ident "xs")))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CPtrDeclr")) [PVar (Ident "typeQuals"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (Con (UnQual (Ident "CPtrDeclr"))) (Paren (InfixApp (Var (UnQual (Ident "typeQuals"))) (QVarOp (UnQual (Symbol "++"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "newAttrs"))))))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CArrDeclr")) [PVar (Ident "typeQuals"),PVar (Ident "arraySize"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CArrDeclr"))) (Paren (InfixApp (Var (UnQual (Ident "typeQuals"))) (QVarOp (UnQual (Symbol "++"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "newAttrs"))))))) (Var (UnQual (Ident "arraySize")))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CFunDeclr")) [PVar (Ident "parameters"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CFunDeclr"))) (Var (UnQual (Ident "parameters")))) (Paren (InfixApp (Var (UnQual (Ident "cattrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "ptrDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyList (TyCon (UnQual (Ident "CTypeQual")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "ptrDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "dat")]),PVar (Ident "tyquals"),PVar (Ident "at")] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (Con (UnQual (Ident "CPtrDeclr"))) (Var (UnQual (Ident "tyquals")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "dat"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "funDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyParen (TyApp (TyApp (TyCon (UnQual (Ident "Either"))) (TyList (TyCon (UnQual (Ident "Ident"))))) (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))]))) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "funDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "dcattrs"),PVar (Ident "dat")]),PVar (Ident "params"),PVar (Ident "cattrs"),PVar (Ident "at")] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (App (Con (UnQual (Ident "CFunDeclr"))) (Var (UnQual (Ident "params")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "dcattrs")))) (Var (UnQual (Ident "dat"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "arrDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyList (TyCon (UnQual (Ident "CTypeQual")))) (TyFun (TyCon (UnQual (Ident "Bool"))) (TyFun (TyCon (UnQual (Ident "Bool"))) (TyFun (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "arrDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "dat")]),PVar (Ident "tyquals"),PVar (Ident "var_sized"),PVar (Ident "static_size"),PVar (Ident "size_expr_opt"),PVar (Ident "at")] Nothing (UnGuardedRhs (InfixApp (Var (UnQual (Ident "arr_sz"))) (QVarOp (UnQual (Ident "seq"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (App (Con (UnQual (Ident "CArrDeclr"))) (Var (UnQual (Ident "tyquals")))) (Var (UnQual (Ident "arr_sz")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "dat"))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "arr_sz")) (UnGuardedRhs (Case (Var (UnQual (Ident "size_expr_opt"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "e")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CArrSize"))) (Var (UnQual (Ident "static_size")))) (Var (UnQual (Ident "e"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Con (UnQual (Ident "CNoArrSize"))) (Var (UnQual (Ident "var_sized"))))) (BDecls [])])) (BDecls [])])],TypeSig (SrcLoc "" -1 -1) [Ident "liftTypeQuals"] (TyFun (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual"))))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "liftTypeQuals")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CTypeQual")))) (QVarOp (UnQual (Symbol "."))) (Var (UnQual (Ident "reverse"))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "liftCAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "liftCAttrs")) (UnGuardedRhs (App (Var (UnQual (Ident "map"))) (Paren (InfixApp (Con (UnQual (Ident "CTypeQual"))) (QVarOp (UnQual (Symbol "."))) (Con (UnQual (Ident "CAttrQual"))))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "addTrailingAttrs"] (TyFun (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "addTrailingAttrs") [PVar (Ident "declspecs"),PVar (Ident "new_attrs")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "viewr"))) (Var (UnQual (Ident "declspecs")))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "specs_init"),PApp (UnQual (Ident "CTypeSpec")) [PParen (PApp (UnQual (Ident "CSUType")) [PParen (PApp (UnQual (Ident "CStruct")) [PVar (Ident "tag"),PVar (Ident "name"),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "def")]),PVar (Ident "def_attrs"),PVar (Ident "su_node")]),PVar (Ident "node")])]]) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "specs_init"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CSUType"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Var (UnQual (Ident "tag")))) (Var (UnQual (Ident "name")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "def")))))) (Paren (InfixApp (Var (UnQual (Ident "def_attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "new_attrs")))))) (Var (UnQual (Ident "su_node")))))) (Var (UnQual (Ident "node"))))))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "specs_init"),PApp (UnQual (Ident "CTypeSpec")) [PParen (PApp (UnQual (Ident "CEnumType")) [PParen (PApp (UnQual (Ident "CEnum")) [PVar (Ident "name"),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "def")]),PVar (Ident "def_attrs"),PVar (Ident "e_node")]),PVar (Ident "node")])]]) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "specs_init"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CEnumType"))) (Paren (App (App (App (App (Con (UnQual (Ident "CEnum"))) (Var (UnQual (Ident "name")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "def")))))) (Paren (InfixApp (Var (UnQual (Ident "def_attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "new_attrs")))))) (Var (UnQual (Ident "e_node")))))) (Var (UnQual (Ident "node"))))))))) (BDecls []),Alt (SrcLoc "" -1 -1) PWildCard (UnGuardedRhs (InfixApp (Var (UnQual (Ident "declspecs"))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "new_attrs"))))))) (BDecls [])])) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "a")]] (UnQual (Ident "Pos")) [TyList (TyVar (Ident "a"))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PInfixApp (PVar (Ident "x")) (Special Cons) PWildCard)] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "x"))))) (BDecls [])])],InstDecl (SrcLoc "" -1 -1) Nothing [] [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "a")]] (UnQual (Ident "Pos")) [TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyVar (Ident "a")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "Reversed")) [PVar (Ident "x")])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "x"))))) (BDecls [])])],TypeSig (SrcLoc "" -1 -1) [Ident "emptyDeclr"] (TyCon (UnQual (Ident "CDeclrR"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "emptyDeclr")) (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "empty")))) (Con (UnQual (Ident "Nothing")))) (List [])) (Var (UnQual (Ident "undefNode"))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "mkVarDeclr"] (TyFun (TyCon (UnQual (Ident "Ident"))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "mkVarDeclr") [PVar (Ident "ident")] Nothing (UnGuardedRhs (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "ident")))))) (Var (UnQual (Ident "empty")))) (Con (UnQual (Ident "Nothing")))) (List []))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "doDeclIdent"] (TyFun (TyList (TyCon (UnQual (Ident "CDeclSpec")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (Special UnitCon))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "doDeclIdent") [PVar (Ident "declspecs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "mIdent"),PWildCard,PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (Case (Var (UnQual (Ident "mIdent"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "ident")]) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (App (App (Var (UnQual (Ident "any"))) (Var (UnQual (Ident "iypedef")))) (Var (UnQual (Ident "declspecs"))))] (App (Var (UnQual (Ident "addTypedef"))) (Var (UnQual (Ident "ident")))),GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "otherwise")))] (App (Var (UnQual (Ident "shadowTypedef"))) (Var (UnQual (Ident "ident"))))]) (BDecls [])])) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "iypedef") [PParen (PApp (UnQual (Ident "CStorageSpec")) [PParen (PApp (UnQual (Ident "CTypedef")) [PWildCard])])] Nothing (UnGuardedRhs (Con (UnQual (Ident "True")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "iypedef") [PWildCard] Nothing (UnGuardedRhs (Con (UnQual (Ident "False")))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "doFuncParamDeclIdent"] (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "doFuncParamDeclIdent") [PParen (PApp (UnQual (Ident "CDeclr")) [PWildCard,PParen (PInfixApp (PApp (UnQual (Ident "CFunDeclr")) [PVar (Ident "params"),PWildCard,PWildCard]) (Special Cons) PWildCard),PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "sequence_"))) (ListComp (Case (App (Var (UnQual (Ident "getCDeclrIdent"))) (Var (UnQual (Ident "declr")))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "ident")]) (UnGuardedRhs (App (Var (UnQual (Ident "shadowTypedef"))) (Var (UnQual (Ident "ident"))))) (BDecls [])]) [QualStmt (Generator (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PWildCard,PVar (Ident "dle"),PWildCard]) (App (App (App (Var (UnQual (Ident "either"))) (Paren (App (Var (UnQual (Ident "const"))) (List [])))) (Var (UnQual (Ident "fst")))) (Var (UnQual (Ident "params"))))),QualStmt (Generator (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "declr")],PWildCard,PWildCard]) (Var (UnQual (Ident "dle"))))]))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "doFuncParamDeclIdent") [PWildCard] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "getCDeclrIdent"] (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "Ident"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "getCDeclrIdent") [PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "mIdent"),PWildCard,PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (Var (UnQual (Ident "mIdent")))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "happyError"] (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyError")) (UnGuardedRhs (Var (UnQual (Ident "parseError")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "parseC"] (TyFun (TyCon (UnQual (Ident "InputStream"))) (TyFun (TyCon (UnQual (Ident "Position"))) (TyApp (TyApp (TyCon (UnQual (Ident "Either"))) (TyCon (UnQual (Ident "ParseError")))) (TyCon (UnQual (Ident "CTranslUnit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "parseC") [PVar (Ident "input"),PVar (Ident "initialPosition")] Nothing (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "fmap"))) (Var (UnQual (Ident "fst")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Var (UnQual (Ident "execParser"))) (Var (UnQual (Ident "translUnitP")))) (Var (UnQual (Ident "input")))) (Var (UnQual (Ident "initialPosition")))) (Var (UnQual (Ident "builtinTypeNames")))) (Paren (App (Var (UnQual (Ident "namesStartingFrom"))) (Lit (Int 0))))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "translUnitP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CTranslUnit")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "translUnitP")) (UnGuardedRhs (Var (UnQual (Ident "translation_unit")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "extDeclP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CExtDecl")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "extDeclP")) (UnGuardedRhs (Var (UnQual (Ident "external_declaration")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "statementP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CStat")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "statementP")) (UnGuardedRhs (Var (UnQual (Ident "statement")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "expressionP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CExpr")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "expressionP")) (UnGuardedRhs (Var (UnQual (Ident "expression")))) (BDecls []),DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Happy_IntList") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyCons") [TyCon (UnQual (Ident "Int#")),TyCon (UnQual (Ident "Happy_IntList"))])] [],InfixDecl (SrcLoc "" -1 -1) AssocRight 9 [ConOp (Ident "HappyStk")],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "HappyStk") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyStk") [TyVar (Ident "a"),TyParen (TyApp (TyCon (UnQual (Ident "HappyStk"))) (TyVar (Ident "a")))])] [],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyParse") [PVar (Ident "start_state")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "start_state")))) (Var (UnQual (Ident "notHappyAtAll")))) (Var (UnQual (Ident "notHappyAtAll"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyAccept") [PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PParen (PInfixApp PWildCard (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "ans")) (UnQual (Ident "HappyStk")) PWildCard))] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyReturn1"))) (Var (UnQual (Ident "ans"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyAccept") [PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PParen (PApp (UnQual (Ident "HappyStk")) [PVar (Ident "ans"),PWildCard])] Nothing (UnGuardedRhs (App (Paren (App (App (Var (UnQual (Ident "happyTcHack"))) (Var (UnQual (Ident "j")))) (Paren (App (Var (UnQual (Ident "happyTcHack"))) (Var (UnQual (Ident "st"))))))) (Paren (App (Var (UnQual (Ident "happyReturn1"))) (Var (UnQual (Ident "ans"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDoAction") [PVar (Ident "i"),PVar (Ident "tk"),PVar (Ident "st")] Nothing (UnGuardedRhs (Case (Var (UnQual (Ident "action"))) [Alt (SrcLoc "" -1 -1) (PLit Signless (PrimInt 0)) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyFail"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PLit Negative (PrimInt 1)) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyAccept"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PVar (Ident "n")) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "<#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 0)) (TyCon (UnQual (Ident "Int#")))))))] (App (App (App (Paren (InfixApp (Var (UnQual (Ident "happyReduceArr"))) (QVarOp (UnQual (Symbol "!"))) (Var (UnQual (Ident "rule"))))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))]) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "rule")) (UnGuardedRhs (Paren (App (Con (UnQual (Ident "I#"))) (Paren (Paren (App (Var (UnQual (Ident "negateInt#"))) (Paren (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "+#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))))))))) (BDecls [])]),Alt (SrcLoc "" -1 -1) (PVar (Ident "n")) (UnGuardedRhs (App (App (App (App (Var (UnQual (Ident "happyShift"))) (Var (UnQual (Ident "new_state")))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (BDecls [])])])) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyActOffsets")))) (Var (UnQual (Ident "st"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "i")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "check")) (UnGuardedRhs (If (Paren (InfixApp (Var (UnQual (Ident "off_i"))) (QVarOp (UnQual (Symbol ">=#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 0)) (TyCon (UnQual (Ident "Int#"))))))) (Paren (InfixApp (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyCheck")))) (Var (UnQual (Ident "off_i")))) (QVarOp (UnQual (Symbol "==#"))) (Var (UnQual (Ident "i"))))) (Con (UnQual (Ident "False"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "action")) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "check")))] (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i")))),GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "otherwise")))] (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyDefActions")))) (Var (UnQual (Ident "st"))))]) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "indexShortOffAddr") [PParen (PApp (UnQual (Ident "HappyA#")) [PVar (Ident "arr")]),PVar (Ident "off")] Nothing (UnGuardedRhs (InfixApp (App (App (App (App (Var (UnQual (Ident "narrow16Int#"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "intToInt16#")))) (Var (UnQual (Ident "i")))) (Paren (InfixApp (Var (UnQual (Ident "i"))) (QVarOp (UnQual (Ident "iShiftL#"))) (Lit (PrimInt 16))))) (QVarOp (UnQual (Ident "iShiftRA#"))) (Lit (PrimInt 16)))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (App (Var (UnQual (Ident "word2Int#"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "high"))) (QVarOp (UnQual (Ident "uncheckedShiftL#"))) (Lit (PrimInt 8)))) (QVarOp (UnQual (Ident "or#"))) (Var (UnQual (Ident "low"))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (App (Var (UnQual (Ident "word2Int#"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "high"))) (QVarOp (UnQual (Ident "shiftL#"))) (Lit (PrimInt 8)))) (QVarOp (UnQual (Ident "or#"))) (Var (UnQual (Ident "low"))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "high")) (UnGuardedRhs (App (Var (UnQual (Ident "int2Word#"))) (Paren (App (Var (UnQual (Ident "ord#"))) (Paren (App (App (Var (UnQual (Ident "indexCharOffAddr#"))) (Var (UnQual (Ident "arr")))) (Paren (InfixApp (Var (UnQual (Ident "off'"))) (QVarOp (UnQual (Symbol "+#"))) (Lit (PrimInt 1)))))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "low")) (UnGuardedRhs (App (Var (UnQual (Ident "int2Word#"))) (Paren (App (Var (UnQual (Ident "ord#"))) (Paren (App (App (Var (UnQual (Ident "indexCharOffAddr#"))) (Var (UnQual (Ident "arr")))) (Var (UnQual (Ident "off'"))))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off'")) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "*#"))) (Lit (PrimInt 2)))) (BDecls [])])],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "HappyAddr") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyA#") [TyCon (UnQual (Ident "Addr#"))])] [],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyShift") [PVar (Ident "new_state"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PAsPat (Ident "stk") (PParen (PInfixApp (PVar (Ident "x")) (UnQual (Ident "HappyStk")) PWildCard))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (Paren (Case (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "I#")) [PParen (PVar (Ident "i"))])) (UnGuardedRhs (Var (UnQual (Ident "i")))) (BDecls [])]))) (BDecls [])]) (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "new_state")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (Var (UnQual (Ident "stk"))))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyShift") [PVar (Ident "new_state"),PVar (Ident "i"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "new_state")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (InfixApp (Paren (App (Var (UnQual (Ident "happyInTok"))) (Paren (Var (UnQual (Ident "tk")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_0") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_0") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PAsPat (Ident "st") (PParen (PParen (PVar (Ident "action")))),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (InfixApp (Var (UnQual (Ident "fn"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_1") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_1") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'")))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_2") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_2") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))))]),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "v2")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'"))))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1")))) (Var (UnQual (Ident "v2"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_3") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_3") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))))]))]),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "v2")) (UnQual (Ident "HappyStk")) (PInfixApp (PVar (Ident "v3")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'")))))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1")))) (Var (UnQual (Ident "v2")))) (Var (UnQual (Ident "v3"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduce") [PVar (Ident "k"),PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (Case (App (App (Var (UnQual (Ident "happyDrop"))) (Paren (InfixApp (Var (UnQual (Ident "k"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "sts")))) [Alt (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happyDoSeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st1")))) (Var (UnQual (Ident "sts1")))) (Var (UnQual (Ident "r")))))))) (BDecls [])])) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyMonadReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyMonadReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen1"))) (Paren (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk")))) (Var (UnQual (Ident "tk")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st1")))) (Var (UnQual (Ident "sts1")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "drop_stk")))))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Var (UnQual (Ident "k")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts")))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "drop_stk")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Var (UnQual (Ident "k")))) (Var (UnQual (Ident "stk"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyMonad2Reduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyMonad2Reduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen1"))) (Paren (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk")))) (Var (UnQual (Ident "tk")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "new_state")))) (Var (UnQual (Ident "sts1")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "drop_stk")))))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Var (UnQual (Ident "k")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts")))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "drop_stk")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Var (UnQual (Ident "k")))) (Var (UnQual (Ident "stk"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyGotoOffsets")))) (Var (UnQual (Ident "st1"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "nt")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDrop") [PLit Signless (PrimInt 0),PVar (Ident "l")] Nothing (UnGuardedRhs (Var (UnQual (Ident "l")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyDrop") [PVar (Ident "n"),PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PVar (Ident "t"))])] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "t"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDropStk") [PLit Signless (PrimInt 0),PVar (Ident "l")] Nothing (UnGuardedRhs (Var (UnQual (Ident "l")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyDropStk") [PVar (Ident "n"),PParen (PInfixApp (PVar (Ident "x")) (UnQual (Ident "HappyStk")) (PVar (Ident "xs")))] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "xs"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyGoto") [PVar (Ident "nt"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "new_state"))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyGotoOffsets")))) (Var (UnQual (Ident "st"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "nt")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyFail") [PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "old_st"),PWildCard,PVar (Ident "stk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyError_"))) (Var (UnQual (Ident "tk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyFail") [PVar (Ident "i"),PVar (Ident "tk"),PParen (PVar (Ident "action")),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Paren (App (Var (UnQual (Ident "unsafeCoerce#"))) (Paren (App (Con (UnQual (Ident "I#"))) (Paren (Var (UnQual (Ident "i")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "notHappyAtAll")) (UnGuardedRhs (App (Var (UnQual (Ident "error"))) (Lit (String "Internal Happy error\n")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyTcHack"] (TyFun (TyCon (UnQual (Ident "Int#"))) (TyFun (TyVar (Ident "a")) (TyVar (Ident "a")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyTcHack") [PVar (Ident "x"),PVar (Ident "y")] Nothing (UnGuardedRhs (Var (UnQual (Ident "y")))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyTcHack")),TypeSig (SrcLoc "" -1 -1) [Ident "happyDoSeq",Ident "happyDontSeq"] (TyFun (TyVar (Ident "a")) (TyFun (TyVar (Ident "b")) (TyVar (Ident "b")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDoSeq") [PVar (Ident "a"),PVar (Ident "b")] Nothing (UnGuardedRhs (InfixApp (Var (UnQual (Ident "a"))) (QVarOp (UnQual (Ident "seq"))) (Var (UnQual (Ident "b"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDontSeq") [PVar (Ident "a"),PVar (Ident "b")] Nothing (UnGuardedRhs (Var (UnQual (Ident "b")))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyDoAction")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyTable")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyCheck")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyActOffsets")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyGotoOffsets")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyDefActions")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyShift")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_0")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_1")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_2")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_3")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyReduce")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyMonadReduce")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyGoto")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyFail"))]
-
-AST 2:
-
-Module (SrcLoc "" -1 -1) (ModuleName "Language.C.Parser.Parser") [OptionsPragma (SrcLoc "" -1 -1) Nothing " -fglasgow-exts -cpp ",LanguagePragma (SrcLoc "" -1 -1) [Ident "MagicHash"]] Nothing (Just [EVar NoNamespace (UnQual (Ident "parseC")),EVar NoNamespace (UnQual (Ident "translUnitP")),EVar NoNamespace (UnQual (Ident "extDeclP")),EVar NoNamespace (UnQual (Ident "statementP")),EVar NoNamespace (UnQual (Ident "expressionP"))]) [ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Prelude", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (True,[IVar NoNamespace (Ident "reverse")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Data.List", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName "List"), importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "mplus")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Builtin", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "builtinTypeNames")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Lexer", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IVar NoNamespace (Ident "lexC"),IVar NoNamespace (Ident "parseError")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.Tokens", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IThingAll (Ident "CToken"),IThingAll (Ident "GnuCTok"),IVar NoNamespace (Ident "posLenOfTok")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Parser.ParserMonad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (False,[IAbs (Ident "P"),IVar NoNamespace (Ident "failP"),IVar NoNamespace (Ident "execParser"),IVar NoNamespace (Ident "getNewName"),IVar NoNamespace (Ident "addTypedef"),IVar NoNamespace (Ident "shadowTypedef"),IVar NoNamespace (Ident "getCurrentPosition"),IVar NoNamespace (Ident "enterScope"),IVar NoNamespace (Ident "leaveScope"),IVar NoNamespace (Ident "getLastToken"),IVar NoNamespace (Ident "getSavedToken"),IThingAll (Ident "ParseError")])},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.RList", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.InputStream", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Ident", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Name", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Node", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Data.Position", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Language.C.Syntax", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Data.Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "Array", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "GHC.Exts", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importLoc = SrcLoc "" -1 -1, importModule = ModuleName "GlaExts", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [DataDecl (SrcLoc "" -1 -1) NewType [] (Ident "HappyAbsSyn") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyAbsSyn") [TyParen (TyFun (TyCon (Special UnitCon)) (TyCon (Special UnitCon)))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "happyIn7"] (TyFun (TyParen (TyCon (UnQual (Ident "CTranslUnit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn7") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn7")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut7"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTranslUnit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut7") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut7")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn8"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExtDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn8") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn8")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut8"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExtDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut8") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut8")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn9"] (TyFun (TyParen (TyCon (UnQual (Ident "CExtDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn9") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn9")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut9"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExtDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut9") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut9")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn10"] (TyFun (TyParen (TyCon (UnQual (Ident "CFunDef")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn10") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn10")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut10"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CFunDef"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut10") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut10")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn11"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn11") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn11")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut11"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut11") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut11")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn12"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn12") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn12")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut12"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut12") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut12")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn13"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn13") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn13")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut13"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut13") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut13")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn14"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn14") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn14")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut14"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut14") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut14")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn15"] (TyFun (TyParen (TyCon (Special UnitCon))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn15") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn15")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut15"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut15") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut15")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn16"] (TyFun (TyParen (TyCon (Special UnitCon))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn16") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn16")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut16"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut16") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut16")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn17"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CBlockItem")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn17") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn17")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut17"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CBlockItem"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut17") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut17")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn18"] (TyFun (TyParen (TyCon (UnQual (Ident "CBlockItem")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn18") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn18")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut18"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CBlockItem"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut18") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut18")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn19"] (TyFun (TyParen (TyCon (UnQual (Ident "CBlockItem")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn19") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn19")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut19"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CBlockItem"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut19") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut19")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn20"] (TyFun (TyParen (TyCon (UnQual (Ident "CFunDef")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn20") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn20")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut20"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CFunDef"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut20") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut20")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn21"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn21") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn21")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut21"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut21") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut21")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn22"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn22") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn22")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut22"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut22") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut22")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn23"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn23") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn23")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut23"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut23") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut23")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn24"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn24") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn24")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut24"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut24") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut24")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn25"] (TyFun (TyParen (TyCon (UnQual (Ident "CStat")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn25") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn25")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut25"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStat"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut25") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut25")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn26"] (TyFun (TyParen (TyCon (UnQual (Ident "CAsmStmt")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn26") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn26")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut26"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CAsmStmt"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut26") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut26")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn27"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CTypeQual"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn27") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn27")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut27"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CTypeQual")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut27") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut27")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn28"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAsmOperand"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn28") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn28")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut28"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAsmOperand")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut28") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut28")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn29"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAsmOperand")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn29") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn29")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut29"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAsmOperand"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut29") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut29")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn30"] (TyFun (TyParen (TyCon (UnQual (Ident "CAsmOperand")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn30") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn30")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut30"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CAsmOperand"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut30") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut30")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn31"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CStrLit")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn31") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn31")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut31"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CStrLit"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut31") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut31")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn32"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn32") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn32")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut32"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut32") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut32")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn33"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn33") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn33")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut33"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut33") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut33")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn34"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn34") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn34")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut34"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut34") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut34")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn35"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn35") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn35")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut35"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut35") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut35")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn36"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn36") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn36")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut36"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut36") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut36")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn37"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn37") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn37")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut37"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut37") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut37")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn38"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn38") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn38")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut38"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut38") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut38")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn39"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn39") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn39")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut39"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut39") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut39")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn40"] (TyFun (TyParen (TyCon (UnQual (Ident "CStorageSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn40") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn40")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut40"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStorageSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut40") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut40")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn41"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn41") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn41")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut41"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDeclSpec")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut41") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut41")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn42"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn42") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn42")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut42"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut42") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut42")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn43"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn43") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn43")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut43"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut43") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut43")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn44"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn44") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn44")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut44"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut44") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut44")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn45"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn45") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn45")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut45"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut45") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut45")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn46"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn46") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn46")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut46"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut46") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut46")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn47"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn47") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn47")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut47"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut47") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut47")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn48"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn48") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn48")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut48"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut48") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut48")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn49"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeSpec")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn49") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn49")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut49"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeSpec"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut49") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut49")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn50"] (TyFun (TyParen (TyCon (UnQual (Ident "CStructUnion")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn50") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn50")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut50"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStructUnion"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut50") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut50")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn51"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CStructTag"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn51") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn51")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut51"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CStructTag")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut51") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut51")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn52"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn52") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn52")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut52"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut52") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut52")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn53"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn53") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn53")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut53"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut53") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut53")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn54"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn54") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn54")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut54"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut54") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut54")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn55"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn55") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn55")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut55"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut55") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut55")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn56"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn56") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn56")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut56"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut56") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut56")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn57"] (TyFun (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn57") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn57")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut57"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CDeclr"))),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut57") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut57")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn58"] (TyFun (TyParen (TyCon (UnQual (Ident "CEnum")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn58") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn58")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut58"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CEnum"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut58") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut58")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn59"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn59") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn59")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut59"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut59") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut59")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn60"] (TyFun (TyParen (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn60") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn60")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut60"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyCon (UnQual (Ident "Ident")),TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut60") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut60")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn61"] (TyFun (TyParen (TyCon (UnQual (Ident "CTypeQual")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn61") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn61")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut61"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CTypeQual"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut61") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut61")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn62"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn62") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn62")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut62"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut62") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut62")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn63"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn63") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn63")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut63"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut63") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut63")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn64"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn64") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn64")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut64"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut64") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut64")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn65"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn65") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn65")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut65"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut65") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut65")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn66"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn66") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn66")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut66"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut66") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut66")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn67"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn67") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn67")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut67"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut67") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut67")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn68"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn68") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn68")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut68"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut68") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut68")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn69"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn69") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn69")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut69"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut69") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut69")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn70"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn70") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn70")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut70"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut70") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut70")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn71"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn71") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn71")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut71"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut71") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut71")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn72"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn72") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn72")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut72"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut72") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut72")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn73"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn73") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn73")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut73"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut73") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut73")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn74"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn74") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn74")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut74"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut74") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut74")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn75"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn75") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn75")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut75"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut75") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut75")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn76"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn76") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn76")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut76"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut76") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut76")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn77"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn77") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn77")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut77"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut77") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut77")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn78"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn78") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn78")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut78"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut78") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut78")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn79"] (TyFun (TyParen (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))])) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn79") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn79")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut79"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))]))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut79") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut79")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn80"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn80") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn80")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut80"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDecl"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut80") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut80")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn81"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn81") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn81")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut81"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut81") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut81")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn82"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn82") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn82")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut82"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "Ident"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut82") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut82")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn83"] (TyFun (TyParen (TyCon (UnQual (Ident "CDecl")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn83") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn83")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut83"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDecl"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut83") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut83")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn84"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn84") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn84")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut84"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut84") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut84")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn85"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn85") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn85")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut85"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut85") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut85")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn86"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn86") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn86")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut86"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut86") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut86")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn87"] (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn87") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn87")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut87"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut87") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut87")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn88"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn88") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn88")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut88"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut88") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut88")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn89"] (TyFun (TyParen (TyCon (UnQual (Ident "CDeclrR")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn89") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn89")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut89"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut89") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut89")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn90"] (TyFun (TyParen (TyCon (UnQual (Ident "CInit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn90") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn90")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut90"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CInit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut90") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut90")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn91"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CInit"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn91") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn91")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut91"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CInit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut91") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut91")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn92"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyCon (UnQual (Ident "CInitList"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn92") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn92")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut92"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyCon (UnQual (Ident "CInitList")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut92") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut92")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn93"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CDesignator"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn93") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn93")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut93"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CDesignator")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut93") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut93")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn94"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn94") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn94")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut94"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut94") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut94")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn95"] (TyFun (TyParen (TyCon (UnQual (Ident "CDesignator")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn95") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn95")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut95"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDesignator"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut95") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut95")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn96"] (TyFun (TyParen (TyCon (UnQual (Ident "CDesignator")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn96") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn96")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut96"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CDesignator"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut96") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut96")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn97"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn97") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn97")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut97"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut97") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut97")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn98"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn98") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn98")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut98"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDesignator"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut98") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut98")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn99"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn99") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn99")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut99"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut99") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut99")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn100"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn100") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn100")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut100"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut100") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut100")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn101"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn101") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn101")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut101"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut101") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut101")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn102"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CUnaryOp"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn102") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn102")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut102"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CUnaryOp")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut102") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut102")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn103"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn103") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn103")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut103"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut103") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut103")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn104"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn104") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn104")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut104"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut104") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut104")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn105"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn105") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn105")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut105"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut105") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut105")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn106"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn106") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn106")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut106"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut106") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut106")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn107"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn107") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn107")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut107"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut107") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut107")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn108"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn108") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn108")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut108"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut108") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut108")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn109"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn109") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn109")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut109"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut109") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut109")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn110"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn110") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn110")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut110"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut110") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut110")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn111"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn111") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn111")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut111"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut111") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut111")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn112"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn112") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn112")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut112"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut112") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut112")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn113"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn113") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn113")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut113"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut113") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut113")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn114"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn114") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn114")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut114"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut114") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut114")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn115"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn115") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn115")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut115"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut115") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut115")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn116"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CAssignOp"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn116") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn116")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut116"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyCon (UnQual (Ident "CAssignOp")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut116") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut116")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn117"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn117") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn117")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut117"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut117") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut117")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn118"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn118") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn118")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut118"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut118") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut118")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn119"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn119") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn119")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut119"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut119") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut119")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn120"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn120") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn120")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut120"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut120") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut120")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn121"] (TyFun (TyParen (TyCon (UnQual (Ident "CExpr")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn121") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn121")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut121"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CExpr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut121") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut121")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn122"] (TyFun (TyParen (TyCon (UnQual (Ident "CConst")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn122") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn122")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut122"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CConst"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut122") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut122")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn123"] (TyFun (TyParen (TyCon (UnQual (Ident "CStrLit")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn123") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn123")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut123"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "CStrLit"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut123") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut123")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn124"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CString")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn124") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn124")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut124"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CString"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut124") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut124")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn125"] (TyFun (TyParen (TyCon (UnQual (Ident "Ident")))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn125") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn125")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut125"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyCon (UnQual (Ident "Ident"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut125") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut125")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn126"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn126") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn126")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut126"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut126") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut126")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn127"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn127") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn127")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut127"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut127") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut127")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn128"] (TyFun (TyParen (TyList (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn128") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn128")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut128"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyList (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut128") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut128")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn129"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAttr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn129") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn129")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut129"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CAttr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut129") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut129")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn130"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CAttr"))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn130") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn130")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut130"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CAttr")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut130") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut130")),TypeSig (SrcLoc "" -1 -1) [Ident "happyIn131"] (TyFun (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr")))))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyIn131") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyIn131")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOut131"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CExpr"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOut131") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOut131")),TypeSig (SrcLoc "" -1 -1) [Ident "happyInTok"] (TyFun (TyCon (UnQual (Ident "CToken"))) (TyParen (TyCon (UnQual (Ident "HappyAbsSyn"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyInTok") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyInTok")),TypeSig (SrcLoc "" -1 -1) [Ident "happyOutTok"] (TyFun (TyParen (TyCon (UnQual (Ident "HappyAbsSyn")))) (TyCon (UnQual (Ident "CToken")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyOutTok") [PVar (Ident "x")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x"))))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyOutTok")),TypeSig (SrcLoc "" -1 -1) [Ident "happyActOffsets"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyActOffsets")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\NUL\NUL\GS\SI\211\t1\SI\NUL\NUL\128\a\NUL\NUL\DEL\tw\SI1\SI\NUL\NUL\200\t\US\ENQ\ENQ\ENQ\DEL\ETX\240\EOTe\bT\bI\b>\b\198\EOT\NUL\NUL+\b\239\a\NUL\NUL\NUL\NUL\v\t\NUL\NUL\NUL\NUL\205\SO\205\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\EOT\175\SO\150\SO\NUL\NUL\NUL\NUL\NUL\NUL\246\a\NUL\NUL2\SO\DC4\SO\DC4\SO\&H\bG\b$\b\182\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\a\230\a\NUL\NUL\NUL\NULJ\ENQ\210\a\251\r\208\a\214\a\211\t\245\a$\NUL\237\a\251\r\236\a\213\a\198\a\NUL\NULv\a\NUL\NUL\174\a\NUL\NUL\149\EOT\142\EOT\SOH\SOH\213\DC1\NUL\NUL\SOH\SOH\NUL\NUL\154\EM\154\EM\DC1\CAN\SOH\CAN!\b!\b\NUL\NUL\NUL\NULq\a\NUL\NUL\166\DC1\NUL\NUL\NUL\NUL\NUL\NUL\217\SOH\NUL\NUL\NUL\NUL\NUL\NULJ\ENQ\137\DC2\NUL\NUL=\SOH=\SOH\203\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULk\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\187\a\GS\SIU\a\NUL\NUL\184\ao\tz\SOHY\a[\a\179\DC2\NUL\NUL\NUL\NULK\NUL\178\a\180\t\170\aK\NUL\134\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL\167\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL8\CAN\NUL\NUL\157\a\NUL\NUL\148\CAN\255\nr\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULw\DC1\151\a\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULg\a_\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULb\a\NUL\NULn\STXH\STX\SI\NULR\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL{\a\NUL\NULO\aS\a\NUL\NUL\ESC\a\NUL\NUL\ESC\a\NUL\NUL\NUL\NUL\251\r\251\r\NUL\NULM\a\251\rA\a\251\r\NUL\NULC\b\DC4\a\211\t\NUL\NUL\NUL\NUL\NUL\NUL\US\NUL\NUL\NULe\a\NUL\NUL.\a\244\ACK\NUL\NUL\195\SUB\195\SUB\251\r\NUL\NUL\v\t\NUL\NUL\NUL\NUL\240\ACK\NUL\NUL\NUL\NUL\v\t\NUL\NUL\v\t\NUL\NUL\NUL\NUL\NUL\NULN\a\151\ETX\231\SUB\171\EOT\171\EOTz\nL\aK\a\159\SUB\251\r\251\r\151\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\r\251\r6\EOT6\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\an\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\t\163\t\138\EOT\138\EOTO\EOTO\EOTO\EOTO\EOT\DEL\ETX\DEL\ETX\GS\EOT5\a+\a\SYN\a\f\a\251\r%\a\NUL\NUL\251\ACK\NUL\NULa\r\NUL\NUL\NUL\NUL\NUL\NUL\183\ACKW\SUB3\SUBH\DC1\NUL\SI\NUL\NUL\NUL\NUL\SI\a\SO\a\NUL\NUL\243\ACK\221\ACK\219\ACK\199\ACK\211\t\223\a\173\ACK\148\ACK|\ACK\211\t\251\r\NUL\NUL\203\ACKl\EM\171\ACK\167\ACK\NUL\NUL\196\ACK\NUL\NUL\195\ACK\193\ACK\234\NUL\216\NUL8\CAN\161\ACK]\ACK\170\ACK\NUL\NULo\t8\CAN\134\ACK\NUL\NUL\NUL\NUL\RS\EM[\v\NUL\NUL\NUL\NUL\177\SOH\147\SOH\142\ACK\136\ACK\SI\NULG\NUL\147\SOH\NUL\NUL8\CANf\ACK\NUL\NULI\ACK\NUL\NULo\t>\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULb\ACK\NUL\NUL8\CAN=\ACK\NUL\NUL\155\n\NUL\NUL)\ACK\224\v\t\NUL\206\ENQt\STX\255\SIt\STX!\b!\b\208\SI$\ACK\251\ENQ\NUL\NUL\ESC\SOHE\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\EM\DC1\216\NUL\234\DLEZ\DC2o\t8\CAN\EOT\ACK\NUL\NUL\EM\ACK\158\t\DC2\NUL\DC2\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\220\f\t\ACK\244\ENQ\204\ETX\ETX\ACK\254\ENQw\NUL\202\NUL\NUL\NUL\NUL\NUL\239\ENQ\NUL\NUL\NUL\NUL\205\STX\NUL\NUL\203\ENQ\204\ETX\170\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\220\fK\t\NUL\NUL\SI\NUL\NUL\NUL\253\f\NUL\NUL\200\ENQ\193\ENQ\140\ENQ\140\ENQ\187\DLE\NUL\NUL\241\NUL\201\NUL\140\ENQ\NUL\NULV\ENQf\CAN\NUL\NULS\ENQ\NUL\NUL\240\CAN\194\CAN\161\SI\222\DC2S\ENQS\ENQ\NUL\NULr\SII\aS\ENQ\NUL\NULS\ENQS\ENQ\NUL\NUL\171\EOTb\f\157\ENQ\155\ENQ\t\NUL\NUL\NUL\144\ENQF\ENQ7\n\t\NUL\NUL\NUL\NUL\NULo\t8\CANm\ENQ\NUL\NUL\143\ENQ\141\ENQ\220\ETB\NUL\NUL\NUL\NUL\NUL\NUL/\t\132\ENQ\SO\NUL\190\NUL\131\ENQ\SI\NUL\SI\NUL,\t\NUL\NUL\NUL\NUL\NUL\NUL\227\ne\NUL\NUL\NUL\NUL\NUL\129\ENQy\ENQ\DLE\ENQ\NUL\NUL\NUL\NUL\NUL\NUL5\ENQ5\ENQ\211\t\211\t\211\t\NUL\NUL\251\r\251\r\251\rB\ENQ\NUL\NUL\170\SOH\201\ETX\223\a\242\EOT\NUL\NUL#\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\140\DLE\216\NUL]\DLE-\ENQ\167\b\NUL\NUL{\SUB\154\ETX{\SUB\FS\ENQ\FS\ENQ\FS\ENQ0\f\NUL\NUL\162\t1\ENQ/\ENQ-\NUL3\DC2\NUL\NUL\NUL\NUL\254\v\251\r\NUL\NUL\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\STX\253\f\220\STX\NUL\NUL\153\SOH\NUL\NUL\212\EOT\251\r\154\ETX\254\v!\ENQ\r\ENQ\DC3\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\EOT\t\ENQ\237\STX\NUL\NUL\249\EOT\NUL\NUL\192\EOT.\DLE\192\EOT\192\EOT\192\EOT\NUL\NUL\163\ETX\137\EOT\NUL\NUL\162\EOT*\NUL\211\t\199\EOT\156\EOT\151\EOT\DEL\EOT\NUL\NUL\NUL\NUL\136\EOT\136\EOT\161\EOT\NUL\NUL\NUL\NUL\"\t\NUL\NUL\NUL\NUL+\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\224\n\SI\NUL\NUL\NUL\175\ETB\212\STX\NUL\NUL\160\ETX\152\ETX\SI\SUB\194\DC2\NUL\NUL\NUL\NUL\190\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\159\EOT\154\EOT\139\EOT\134\EOT\t\NUL\n\EOT\NUL\NULz\EOT\NUL\NUL\NUL\NULh\EOT\251\r\NUL\NUL\NUL\NUL\NUL\NUL\180\EOT\159\NUL\EOT\DC2\NUL\NUL\NUL\NUL\220\n>\t$\n\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\US\SOH+\NUL+\NUL\SYN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\STX\251\r\244\NUL\NUL\NUL\228\fd\EOTw\NUL\NUL\NUL\NUL\NUL\NUL\NUL\168\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\NUL\NUL\NUL+\NUL_\SOH\205\NUL>\EOT\NUL\NUL\NUL\NUL\251\r<\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\221\ETX\ESC\EOT\251\r\158\NUL\235\EM\200\ETX\NUL\NUL\200\ETX\NUL\NUL\200\ETX\ACK\EOT\251\r\NUL\NUL\NUL\NUL\205\NUL\US\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\211\t\251\r\251\r\245\ETX\NUL\NUL\n\SOH\239\ETX\NUL\NUL\SUB\EOTI\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\223\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r@\ETX\NUL\NUL\NUL\NUL\NUL\NUL\SI\NUL\NUL\NUL\151\SOH\NUL\NUL\DLE\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\v\NUL\NUL\NUL\NUL\128\f\NUL\NUL\NUL\NUL\251\rc\v\NUL\NUL\NUL\NUL\NUL\NUL\ETX\EOT\NUL\NUL\SOH\EOT\225\ETX\251\r*\NUL\182\ETX*\NUL\NUL\NUL\216\ETX\211\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\158\NUL\212\STXj\ETX\NUL\NUL\251\r\NUL\NUL\NUL\NUL\185\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NULJ\ETXJ\ETX\NUL\NUL\211\t\211\t\213\NUL\NUL\NUL\NUL\NUL\168\ETX;\ETX;\ETX\NUL\NUL\NUL\NULz\ETX\NUL\NUL\NUL\NULt\ETXr\ETX\NUL\NULF\ETX\v\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\NUL\NUL\NUL\NUL\NUL\251\r\251\rl\ETX[\ETX\ETB\ETX\233\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyGotoOffsets"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyGotoOffsets")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "6\ETXq\NUL\211\ACK\198\GS<\ETX8\NUL\NUL\NUL\NUL\NUL\197\STX5\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\NUL\NUL\NUL\NULq\r\164\v\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\STX\213\n\185\n\NUL\NUL\NUL\NUL\NUL\NUL\167\STX\NUL\NUL \f\190\ETX`\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\a\ETX\SUB\NUL\NUL\NULv\US\NUL\NUL\NUL\NUL\184\ACK\NUL\NUL\149\STX\NUL\NULL\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\ETX\NUL\NUL\NUL\NUL\NUL\NUL*\ACK\195\NUL\NUL\NUL\138\ENQ\NUL\NUL\DC4\NUL\SYN\SOHl\STX}\SOH\162\SOH\203\NUL\NUL\NUL\NUL\NUL\150\b\NUL\NUL\154\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\b\226\STX\NUL\NUL\NUL\NUL\187\STX\NAK\SOH\NUL\NUL\168\n\215\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\\\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\255\255\NUL\NUL\NUL\NUL\NUL\NUL\202\NAKq\STX]\STXj\STXw\b\NUL\NUL\NUL\NULp\STX\NUL\NUL[\b\NUL\NUL@\NUL\198\STX\NUL\NUL\NUL\NUL\NUL\NULR\STX\158\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\173\EOT\NUL\NULf\STX\NUL\NUL\168\DC3\SYN\ETB\169\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULQ\STX\144\STX\236\NUL\NUL\NUL\NUL\NUL\SUB\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\STXO\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\STX\154\DC3\232\SYN5\bu\STX\NUL\NUL\NUL\NUL\NUL\NULJ\STX\\\STX\NUL\NUL\NUL\NUL\NUL\NULb\STX1\STXV\STX\243\a\NUL\NUL\238\a\NUL\NUL\NUL\NUL\171\GS\144\GS\NUL\NUL\NUL\NULu\GS\NUL\NULZ\GS\NUL\NUL\152\ACK\NUL\NULN\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\235\SOH\233\a\NUL\NUL{\SYNS\SYN[\US\NUL\NUL\231\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\193\STX\NUL\NUL[\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULi\ENQ\155\NULx\NULP\NUL\137\SYN\NUL\NUL\NUL\NUL\172\ETX?\GS\199\US$\GS\226\US\b\NAK\132\NAK\253\US\241\vo\v\240\f\187\f@\f:\v\155\f\SUB\v\252\a&\a\193\v,\n\157\t\NUL\NUL@\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\t\GS\238\FS\219\SOH\205\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\a\NUL\NUL\NUL\NUL\NUL\NUL\198\SOHa\EOT\NUL\NULs\DC3\218\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL3\ACK5\STX3\STX\234\SOH~\SOH\CAN\ACK%\US\NUL\NUL\NUL\NUL\166\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\ETX\145 \135\EOT\221\SOH\206\a\NUL\NUL\NUL\NUL\166\NAKL\EOT\183\SOH\NUL\NUL\NUL\NUL\218\DC3&\ETX\NUL\NUL\NUL\NULl\ENQ0\DC3\NUL\NUL\NUL\NUL\162\a6\STX\182\v\NUL\NUL&\EOT\160\SOH\NUL\NUL\NUL\NUL\167\SOHN\NAK\199\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL.\STX\176\SOH\NUL\NUL\NUL\NUL\235\ETX`\SOH\NUL\NUL\169\SYN\NUL\NUL\NUL\NUL\196\ESCj\a\DC4\SOH@ \CAN\DC4( \159\SOH\CAN\NUL,\DC4\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\166\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132 G\aw h\DC4\175\DC4*\NAK\197\ETXM\SOH\NUL\NUL\NUL\NULs\a\211\SOH\235\EOT'\a\NUL\NUL \a\NUL\NUL\NAK\a\NUL\NUL\NUL\NUL\191\ETX\NUL\NUL\NUL\NUL\185\SOH\NUL\NUL\NUL\NUL\253\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\EOT\NAK\a\NUL\NUL\217\ACK\NUL\NUL\169\ESC\NUL\NUL\NUL\NUL\NUL\NUL\SYN\STX\247\SOH\169\DC4\NUL\NULo\DC3\r\SO\244\SOH\NUL\NUL\NUL\NUL\n\DC4\NUL\NUL\150\ACK\NUL\NUL\NUL\EOT\NUL\NUL>\DC3`\ETBv\ACKh\ACK\NUL\NUL\ACK\DC3Y\ETB+\ACK\NUL\NUL\DLE\ACK\226\ENQ\NUL\NUL\219\NULb\ETB\NUL\NUL\NUL\NUL\223\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\224\SYN\217\ENQ\NUL\NUL\NUL\NUL\210\DC4d\ETXB\SOH\NUL\NUL\NUL\NUL\NUL\NUL1\SYN\\\SOH\NUL\NUL\NUL\NUL\255\ENQ\NUL\NUL\249\b`\a\NUL\NUL\241\ENQ\228\ENQ\225\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\146\f\CAN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOHW\SOH\174\ENQ\147\ENQx\ENQ\NUL\NUL1\FS\SYN\FS\211\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\192\SOH3\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULT\tC\SOH\196\a>\SOH\NUL\NUL6\a\NUL\NUL@\SYN\213\255\225\DC4\NUL\NUL\NUL\NUL\NUL\NUL\199\STX\NUL\NUL\138\STX\NUL\NUL\NUL\NUL\249\NUL\150\DC4\NUL\NUL\NUL\NUL\DC3\ESC\n\US\NUL\NUL\145\US\NUL\NUL\239\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\142\ESC\157\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\212\RS\211\NUL\241\SUB\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\180\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\SOHg\SOH6\SOH\GS\SOH\ETB\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\244\255\SO\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\128\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\ENQ\NUL\NUL\NUL\NULk\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\t\\\ENQ\NUL\NUL1\SYNj \NUL\NUL\NUL\NUL\NUL\NUL\EOT\EOT\185\SYN\NUL\NUL\NUL\NUL\"\SYN\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\EOT\176\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\RS\NUL\NUL\NUL\NUL\NUL\NUL\SUB\ETB\250\ENQd\DC4\NUL\NUL\NUL\NUL\128\SYN\154\ACK\202\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\195\STX\170\r6\r\250\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\158\RS\217\255\NUL\NULP\ESC\NUL\NULM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\145\ACK\191\ETXZ\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\131\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL(\NUL\NUL\NULh\RSW\EOTa\EOTx\EOT\NUL\NUL\t\EOT\NUL\NUL\134\ETX\NUL\NULM\RS\NUL\NUL\NUL\NULZ\ENQ\171\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\243\EOT\251\ESC\224\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\FSD\NUL\NUL\NUL\NUL\NUL\NUL\NUL,\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL5\ESC\NUL\NUL\NUL\NULs\ESC\NUL\NUL\NUL\NUL2\RS5\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\157\FS\245\255\NUL\NUL\241\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETB\RS\NUL\NUL_\ETX[ \208\255\NUL\NUL\252\GS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\225\GS\NUL\NUL\NUL\NUL\NUL\NUL\236\SOH\208\255\NUL\NUL\214\EOT\158\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL2\NUL\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\249\255I\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\FSg\FS\NUL\NUL\NUL\NUL\NUL\NUL\145\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyDefActions"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyDefActions")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\250\255=\254\NUL\NUL\NUL\NUL\NUL\NUL=\254\155\254\143\254}\254\NUL\NUL{\254w\254t\254q\254l\254i\254g\254e\254c\254a\254_\254\\\254O\254\NUL\NUL\165\254\164\254=\254~\254\DEL\254\NUL\NUL\NUL\NUL\129\254\128\254\130\254\131\254\NUL\NUL\NUL\NUL\NUL\NULE\254F\254D\254C\254\166\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\255\227\255\226\255\225\255\224\255\223\255\222\255\NUL\NUL\NUL\NUL\199\255\215\255\181\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULK\254\NUL\NUL\NUL\NUL\166\254>\254\NUL\NUL\247\255\NUL\NUL\246\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\152\255\NUL\NULw\255\155\255\138\255\154\255\137\255\153\255\136\255l\255R\255=\254Q\255\NUL\NUL\229\255\n\255\b\255\t\255\166\255\251\254\250\254\NUL\NUL<\254;\254\NUL\NUL=\254\NUL\NUL\141\255~\255\134\255}\255\129\255=\254\143\255\130\255\132\255\131\255\140\255\133\255\128\255\142\255M\255\144\255\NUL\NUL\139\255L\255\DEL\255\135\255\254\254`\255\NUL\NUL=\254\NUL\NUL\245\255\NUL\NUL=\254\NUL\NUL<\254\NUL\NUL\NUL\NUL\a\255\249\254<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\151\255v\255k\255&\255\166\255:\254\NUL\NULZ\255+\255/\255,\255-\255.\255=\254\ETX\255\215\254\213\254\244\254I\254\NUL\NUL\150\255u\255j\255*\255&\255\166\255\NUL\NUL\NUL\NUL]\255\NUL\NULf\255T\255S\255b\255\146\255\145\255a\255o\255h\255g\255\169\255n\255m\255\170\255{\255r\255s\255q\255z\255y\255x\255\NUL\NUL&\255'\255#\255 \255\US\255$\255\SYN\255(\255\166\255\NUL\NUL=\254\"\255\NUL\NUL\148\255|\255p\255&\255\166\255\147\255\NUL\NULe\255\NUL\NUL&\255\166\255=\254\168\255=\254\167\255\243\255\NUL\NUL\NUL\NULJ\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL?\254K\254\NUL\NUL\NUL\NUL\188\255}\254G\254\NUL\NUL\187\255\NUL\NUL\180\255\213\255=\254\198\255=\254=\254\NUL\NUL\133\254=\254\134\254\140\254B\254A\254\138\254=\254\136\254=\254\132\254\141\254\142\254\NUL\NUL\222\254\138\255\137\255\136\255\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\139\254\NUL\NULZ\254V\254U\254Y\254X\254W\254R\254Q\254P\254T\254S\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\254\148\254\248\255\249\255\151\254\150\254\NUL\NUL\NUL\NUL\145\254\153\254[\254x\254y\254z\254u\254v\254r\254s\254m\254o\254n\254p\254j\254k\254h\254f\254d\254b\254\NUL\NUL\NUL\NUL`\254M\254N\254\163\254\NUL\NUL\219\254\216\254\218\254\217\254\NUL\NUL\220\254\244\254\200\254\221\254\162\254\NUL\NUL\NUL\NUL@\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\214\255\213\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\219\255\NUL\NUL=\254\NUL\NUL\NUL\NUL\190\255\NUL\NUL\186\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\182\254=\254\NUL\NUL\241\255=\254=\254\182\254\239\255!\255\244\254\NUL\NUL\RS\255\DC2\255<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\f\255=\254\182\254\240\255N\255K\255=\254\NUL\NUL\149\255t\255i\255)\255&\255\166\255\NUL\NULW\255=\254\182\254\238\255I\254H\254\NUL\NULI\254\130\254=\254\239\254\235\254\232\254\154\255\137\255\228\254\NUL\NUL\243\254\241\254\NUL\NUL<\254\224\254\212\254\236\255\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254=\254=\254\182\254\242\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\246\254\253\254\STX\255\ACK\255\t\255\ENQ\255\248\254\NUL\NUL\NUL\NUL4\255\NUL\NUL\NUL\NUL\NUL\NUL6\254\NUL\NUL8\254\&4\254\&5\254_\255^\255\NUL\NUL3\255\&1\255\NUL\NUL\NUL\NUL\EOT\255\SOH\255\245\254\NUL\NUL\NUL\NUL\252\254\NUL\255\161\255\NUL\NUL\235\255\NUL\NUL\NUL\NUL&\255&\255\NUL\NUL(\255\NUL\NUL=\254&\255\247\254\NUL\NUL=\254\214\254=\254\226\254\NUL\NUL\227\254\244\254\200\254=\254=\254\231\254\244\254\200\254=\254\234\254=\254=\254\238\254=\254\NUL\NUL\NUL\NUL\NUL\NUL\130\254\211\254\NUL\NUL\NUL\NULI\254\130\254\163\255\231\255=\254=\254\182\254\237\255\NUL\NUL\NUL\NUL=\254K\255\157\255\233\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\SI\255\SUB\255\NUL\NUL\GS\255\FS\255\DC1\255\NUL\NUL\NUL\NUL\164\255\232\255\NUL\NUL\NUL\NUL\NUL\NUL\159\255\158\255\234\255&\255&\255\NUL\NUL\NUL\NUL\NUL\NUL\189\255K\254K\254\NUL\NUL\NUL\NUL\220\255\NUL\NUL\NUL\NUL\214\255\NUL\NUL\211\255\NUL\NUL\212\255\210\255\208\255\209\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL`\255=\254\221\255=\254\NUL\NUL=\254\NUL\NUL\137\254\135\254=\254\198\254\196\254\NUL\NUL\NUL\NUL\NUL\NUL<\254\186\254|\254\180\254\NUL\NUL]\254\NUL\NUL\152\254\NUL\NUL\154\254\144\254^\254L\254\179\254\NUL\NUL\NUL\NUL\NUL\NUL\172\254\173\254\185\254\NUL\NUL\NUL\NUL\NUL\NUL\180\254\NUL\NUL\NUL\NUL\NUL\NUL\193\254\194\254\192\254\195\254\197\254\199\254<\254\NUL\NUL\NUL\NUL\158\254\NUL\NUL\207\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\NUL\NUL\201\255\NUL\NUL\179\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\255\195\255\194\255\182\254\182\254\NUL\NULd\255c\255\NUL\NUL\ESC\255\DLE\255\NUL\NUL\NAK\255\EM\255\r\255\SO\255\NUL\NUL\CAN\255\v\255=\254@\255I\255\NUL\NUL\NUL\NUL=\254<\254J\255O\255=\254\\\255[\255\162\255\230\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\254=\254\209\254\NUL\NUL\210\254\204\254\NUL\NUL\NUL\NUL\237\254\236\254\233\254=\254\196\254<\254\230\254\229\254=\254\196\254<\254\225\254\240\254\242\254\223\254\NUL\NUL\NUL\NUL\NUL\NUL&\255Y\255X\255\181\254\255\254\244\255\NUL\NUL\NUL\NUL\NUL\NUL8\255\NUL\NUL\NUL\NUL6\254\&7\254\&9\254\&1\254\NUL\NUL2\254\&2\255\&7\255\&0\255\NUL\NUL6\255\NUL\NUL<\254<\254\NUL\NUL\207\254\203\254\NUL\NUL\NUL\NUL\208\254\202\254V\255U\255F\255D\255<\255\NUL\NUL\NUL\NUL<\254=\254H\255=\254G\255=\254?\255\NUL\NULP\255\ETB\255\NUL\NUL\NUL\NUL\DC4\255%\255\156\255\160\255\NUL\NULK\254K\254\NUL\NUL\218\255\NUL\NUL\178\255\177\255\NUL\NUL\NUL\NUL\185\255\216\255\200\255\206\255\204\255\205\255\NUL\NUL\203\255\159\254\160\254\NUL\NUL\NUL\NUL\161\254\191\254\189\254\190\254\188\254\NUL\NUL\169\254\NUL\NUL\174\254\171\254\168\254\175\254\178\254\NUL\NUL\147\254\177\254\NUL\NUL\146\254\170\254\NUL\NUL\NUL\NUL\184\254\187\254\157\254\NUL\NUL\202\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\255\193\255\NUL\NUL\NUL\NUL\196\255\DC3\255>\255\NUL\NULB\255\NUL\NUL\NUL\NULE\255;\255\NUL\NUL9\255\201\254\NUL\NUL\206\254\&5\255\&3\254\NUL\NUL0\254\205\254:\255=\254C\255=\255\NUL\NUL\NUL\NUL\NUL\NUL\184\255\176\255\NUL\NUL\NUL\NUL\NUL\NUL\156\254\183\254\NUL\NUL\176\254\167\254\NUL\NUL\NUL\NUL\175\255\NUL\NUL\NUL\NUL\214\255\192\255A\255\191\255\NUL\NUL\172\255\183\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\255\182\255\173\255\174\255")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyCheck"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyCheck")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\255\255\STX\NUL\ETX\NUL\EOT\NUL6\NULt\NUL\NAK\NUL\SYN\NUL\ETB\NUL\NAK\NUL\SYN\NUL\ETB\NUL\ETB\NUL\EOT\NUL5\NUL\SOH\NUL\SOH\NUL\CAN\NUL\ETX\NUL\SOH\NUL\EOT\NUL\STX\NUL\FS\NUL\STX\NUL\EM\NULt\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\SOH\NUL\ETX\NUL\DC4\NUL\STX\NUL[\NUL\r\NUL3\NUL9\NUL \NUL!\NUL7\NUL#\NUL\r\NUL!\NUL\STX\NUL\ETX\NUL\EOT\NUL\RS\NUL.\NUL*\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NUL\SOH\NULy\NUL6\NULv\NUL\SOH\NUL.\NUL6\NULv\NUL6\NUL\EM\NUL\t\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULt\NUL\SOH\NUL^\NULt\NULt\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL^\NUL\r\NUL\STX\NUL\ETX\NUL\EOT\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NULB\NULC\NULD\NUL[\NUL6\NUL\\\NUL]\NUL^\NUL\EM\NUL^\NUL\ESC\NULy\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\EOT\NUL\SOH\NUL\SOH\NULy\NUL\ETX\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL\STX\NUL\r\NUL\r\NUL6\NUL6\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NULv\NUL!\NUL\RS\NUL#\NUL#\NUL\SOH\NUL\a\NUL\\\NUL]\NUL^\NUL*\NUL+\NUL,\NUL\EOT\NUL{\NULy\NUL\SOH\NUL\r\NUL\STX\NUL3\NUL\SOH\NUL,\NUL6\NUL6\NUL*\NUL\\\NULT\NUL6\NUL\r\NUL\STX\NULT\NUL\SOH\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULC\NUL \NUL!\NUL\r\NUL#\NULH\NULw\NULx\NULy\NUL\SOH\NUL!\NUL*\NUL+\NUL,\NUL\EOT\NULy\NUL\SOH\NUL\RS\NUL*\NULV\NUL3\NUL\r\NULy\NUL6\NUL\\\NUL\\\NUL]\NUL^\NUL\r\NUL\\\NUL]\NUL6\NUL\SOH\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL-\NUL\STX\NUL!\NUL\r\NUL#\NULC\NUL6\NULx\NULy\NULy\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\\\NUL]\NUL^\NUL\STX\NUL\a\NUL3\NUL\SOH\NUL-\NUL6\NULV\NUL\a\NUL\\\NUL]\NUL^\NUL\RS\NUL\\\NUL]\NUL^\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL!\NUL#\NUL#\NUL\\\NUL]\NULy\NUL\a\NUL\SOH\NUL*\NUL+\NUL,\NUL\EOT\NUL\a\NULy\NUL*\NUL\\\NUL\EOT\NUL3\NULv\NUL\r\NUL7\NUL6\NUL\\\NUL]\NUL^\NUL\\\NUL]\NULw\NULx\NULy\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL\SOH\NUL#\NULC\NUL \NUL!\NULy\NUL#\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\r\NUL*\NUL+\NUL,\NUL\STX\NUL3\NULy\NUL\FS\NUL6\NULV\NUL3\NULz\NUL{\NUL6\NUL\FS\NUL\\\NUL]\NUL^\NULK\NULA\NULB\NULC\NULD\NULt\NULA\NULB\NULC\NULD\NUL!\NUL-\NUL#\NULw\NULx\NULy\NULy\NULy\NUL9\NUL*\NUL+\NUL,\NUL\SOH\NUL6\NULT\NUL9\NUL*\NUL\\\NUL3\NUL^\NUL\ETX\NUL6\NUL!\NUL\ACK\NUL\r\NULT\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULH\NULA\NULB\NULC\NULD\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL6\NULT\NULV\NULx\NULy\NUL\US\NUL4\NUL5\NUL\\\NULy\NUL^\NUL\r\NUL \NUL!\NUL*\NUL \NUL!\NUL-\NUL\ENQ\NUL\ACK\NUL\a\NUL\RS\NUL\t\NUL\SUB\NUL\v\NUL\f\NUL\r\NUL\a\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL-\NUL6\NUL\\\NUL]\NUL6\NUL\EM\NUL\SOH\NUL\ESC\NUL\ETX\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL4\NUL5\NUL\\\NUL]\NUL^\NULt\NUL3\NULT\NUL\n\NULy\NUL7\NULZ\NUL\SO\NUL\\\NULv\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULT\NULn\NUL\\\NUL]\NUL^\NUL\FS\NULs\NULt\NUL\FS\NULv\NULB\NULC\NULD\NULy\NUL,\NULZ\NULy\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL9\NULn\NULv\NUL9\NULT\NUL\FS\NULs\NULt\NULK\NULv\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\n\NUL\t\NULy\NUL\v\NUL\f\NUL\r\NULv\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL\FS\NULx\NULy\NUL\FS\NUL\EM\NUL9\NUL\ESC\NULv\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NULw\NULx\NULy\NUL\FS\NUL9\NUL3\NUL\a\NUL9\NUL\FS\NUL7\NUL\FS\NUL\FS\NUL\SOH\NUL\SUB\NUL*\NUL<\NUL=\NUL-\NUL\SOH\NUL\SUB\NUL\ETX\NULB\NULC\NULD\NUL\r\NUL\a\NUL\"\NUL#\NUL\SUB\NUL%\NUL\r\NUL'\NUL9\NUL)\NUL*\NUL+\NUL,\NUL9\NUL\a\NUL9\NUL9\NUL \NUL!\NUL3\NULZ\NULv\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NULn\NUL\\\NUL]\NUL^\NULL\NULs\NULt\NUL\SUB\NULv\NULw\NULx\NULy\NULy\NUL\a\NULA\NULB\NULC\NULD\NULZ\NULP\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NUL\\\NUL]\NUL^\NUL\a\NULs\NULt\NUL\\\NUL]\NULw\NULx\NULy\NUL\SOH\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL*\NULt\NUL\ETX\NUL-\NUL\r\NUL\ACK\NUL\"\NUL#\NULy\NUL%\NULv\NUL'\NULy\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\STX\NUL\ETX\NUL6\NUL\RS\NUL\ACK\NUL3\NULX\NULY\NUL*\NUL7\NUL6\NUL-\NUL\US\NUL\SUB\NUL6\NUL;\NUL<\NUL=\NUL>\NUL?\NULy\NULA\NULB\NULC\NULD\NUL\a\NUL\"\NUL#\NULv\NUL%\NULL\NUL'\NUL\b\NUL)\NUL*\NUL+\NUL,\NULM\NULN\NULO\NULP\NULQ\NULR\NUL3\NULZ\NULu\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULv\NULn\NUL\\\NUL]\NULm\NULL\NULs\NULt\NUL\NUL\NUL\SOH\NULw\NULx\NULy\NULx\NULy\NUL\SOH\NULw\NULx\NULy\NULZ\NUL+\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NULA\NULB\NULC\NULD\NULs\NULt\NUL6\NUL\STX\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL[\NULA\NULB\NULC\NULD\NUL\a\NULF\NULG\NUL\STX\NUL\"\NUL#\NUL+\NUL%\NUL\SOH\NUL'\NUL\SOH\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\EM\NUL\EOT\NUL\ESC\NUL3\NUL\GS\NUL\RS\NUL\US\NUL7\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL[\NUL3\NUL\SOH\NULL\NUL\ETX\NUL7\NUL\\\NUL]\NULx\NULy\NULA\NULB\NULC\NULD\NUL\r\NUL\\\NUL]\NULZ\NUL^\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULZ\NULn\NUL\\\NUL\EOT\NUL^\NUL_\NULs\NULt\NUL*\NUL+\NULw\NULx\NULy\NUL!\NUL^\NUL#\NUL*\NUL+\NUL\a\NUL*\NUL+\NUL#\NUL*\NUL+\NUL,\NULs\NULt\NUL\STX\NUL*\NUL+\NUL,\NUL3\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL3\NUL\ESC\NUL+\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL6\NUL\\\NUL]\NUL3\NULN\NULO\NULP\NUL7\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL,\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULZ\NUL*\NUL\\\NUL\SOH\NUL^\NUL_\NUL3\NULy\NUL+\NUL!\NUL7\NUL#\NUL\RS\NULy\NUL^\NUL#\NUL\\\NUL]\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL,\NULs\NULt\NUL3\NUL\ETB\NUL\CAN\NUL6\NUL3\NULy\NUL\RS\NUL6\NUL^\NULw\NULx\NULy\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL0\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\DC1\NUL\DC2\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL6\NULw\NULx\NULy\NUL\EOT\NUL3\NULw\NULx\NULy\NUL7\NUL#\NULA\NULB\NULC\NULD\NUL2\NUL\EOT\NUL*\NUL+\NUL,\NUL\a\NUL\EOT\NULx\NULy\NUL\\\NUL]\NUL3\NUL\v\NUL\f\NUL6\NULA\NULB\NULC\NULD\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL\US\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\SOH\NUL-\NUL\ETX\NUL*\NUL+\NUL3\NUL<\NULx\NULy\NUL7\NUL*\NUL+\NUL\r\NUL+\NULw\NULx\NULy\NUL\EM\NUL+\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL+\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\\\NUL]\NUL3\NUL6\NUL\FS\NUL\GS\NUL7\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL6\NUL!\NUL,\NUL#\NULC\NULw\NULx\NULy\NUL\RS\NULH\NUL*\NUL+\NUL,\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL\STX\NULH\NUL3\NULw\NULx\NULy\NULV\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\ETB\NUL\CAN\NUL^\NULV\NUL\STX\NULB\NULC\NULD\NUL\STX\NUL\\\NUL]\NUL^\NUL\ENQ\NUL\ACK\NUL\a\NUL\DC1\NUL\DC2\NULN\NULO\NULP\NULQ\NULR\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL7\NUL\STX\NULw\NULx\NULy\NULw\NULx\NULy\NUL\v\NUL\f\NULA\NULB\NULC\NULD\NULZ\NUL\STX\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULw\NULx\NULy\NUL,\NULs\NULt\NUL\RS\NULv\NULZ\NUL\\\NUL\\\NUL-\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\RS\NULn\NULw\NULx\NULy\NUL0\NULs\NULt\NULZ\NULv\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL6\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\US\NULC\NUL\EOT\NUL\STX\NUL6\NUL\STX\NULH\NULM\NUL\EOT\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NUL\EOT\NULV\NUL\EOT\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL;\NUL<\NUL=\NULN\NULO\NULP\NULA\NULB\NULC\NULD\NUL^\NUL\\\NUL\ENQ\NUL\ACK\NUL\a\NULM\NULN\NULO\NULP\NULQ\NULR\NUL0\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\STX\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\STX\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL+\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULN\NULO\NULP\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NULN\NULO\NULP\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULs\NULt\NUL\US\NULv\NUL*\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL^\NUL\EOT\NUL\EOT\NULN\NULO\NULP\NULN\NULO\NULP\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULN\NULO\NULP\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULN\NULO\NULP\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NULw\NULx\NULy\NULw\NULx\NULy\NUL\US\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\SOH\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL,\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL,\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\US\NULn\NULw\NULx\NULy\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\b\NULn\NULw\NULx\NULy\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL^\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL\US\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL<\NUL=\NUL>\NUL?\NUL@\NUL+\NULB\NULC\NULD\NUL+\NUL[\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULw\NULx\NULy\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULw\NULx\NULy\NUL\\\NUL*\NULZ\NULF\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NUL*\NULp\NULx\NULy\NULs\NULt\NULw\NULx\NULy\NUL\STX\NUL\STX\NULZ\NULy\NUL\\\NUL^\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NULN\NULO\NULP\NUL\RS\NULs\NULt\NULZ\NULv\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\ESC\NULn\NUL\f\NUL\r\NUL\EM\NUL\DLE\NULs\NULt\NUL\EOT\NULv\NUL\SOH\NUL[\NUL\ETX\NUL\STX\NUL\STX\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\SOH\NUL \NUL!\NUL3\NUL#\NULW\NUL+\NUL7\NULN\NULO\NULP\NUL*\NUL+\NUL,\NULF\NULN\NULO\NULP\NUL+\NUL^\NUL3\NUL,\NUL\SOH\NUL6\NUL,\NUL6\NULZ\NUL\SOH\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULA\NULB\NULC\NULD\NULC\NUL\r\NUL,\NUL0\NULZ\NULH\NUL\\\NUL,\NUL^\NUL_\NUL`\NUL7\NUL\SOH\NULs\NULt\NUL;\NUL<\NUL=\NUL,\NULV\NUL\ETX\NULA\NULB\NULC\NULD\NUL\\\NUL]\NUL^\NUL\SOH\NULs\NULt\NUL+\NUL\STX\NULw\NULx\NULy\NUL0\NUL1\NUL,\NUL3\NUL\STX\NUL5\NUL[\NUL^\NUL8\NUL\SOH\NULe\NUL;\NUL\SOH\NUL=\NUL>\NUL?\NULy\NULN\NULO\NULP\NULD\NULE\NUL\SOH\NULG\NUL\EOT\NUL^\NULJ\NULK\NUL\SOH\NULM\NULN\NUL^\NULP\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NULw\NULx\NULy\NUL,\NULe\NUL\\\NUL]\NUL^\NUL_\NUL\SOH\NULw\NULx\NULy\NUL\RS\NULe\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SOH\NUL\SOH\NUL\DLE\NULN\NULO\NULP\NULZ\NUL\RS\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NUL\ESC\NUL+\NUL8\NUL+\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\RS\NULA\NULB\NULC\NULD\NUL+\NUL+\NUL,\NULs\NULt\NUL/\NUL0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL:\NUL;\NULe\NUL=\NUL>\NUL?\NUL@\NULA\NULB\NULC\NULD\NULE\NUL\SOH\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\SOH\NUL\SOH\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL[\NUL1\NUL\DLE\NULe\NUL*\NULZ\NUL6\NUL\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NUL\ESC\NUL>\NULw\NULx\NULy\NUL\SUB\NULC\NULw\NULx\NULy\NULG\NULH\NULw\NULx\NULy\NUL\EM\NULM\NULs\NULt\NULP\NUL/\NULR\NUL1\NUL\DLE\NUL3\NULV\NUL5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL^\NUL=\NUL>\NUL?\NULN\NULO\NULP\NULC\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULN\NULO\NULP\NUL\255\255\&6\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULA\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\EM\NUL\255\255\ESC\NUL\ESC\NUL\GS\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL/\NUL\255\255\&1\NUL3\NUL3\NUL\255\255\&5\NUL7\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NULN\NULO\NULP\NUL\255\255D\NULE\NUL\255\255G\NULx\NULy\NULJ\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\255\255\&7\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255w\NULx\NULy\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\ESC\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255\255\255<\NUL=\NUL,\NUL\255\255\255\255/\NULB\NULC\NULD\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\SOH\NUL\STX\NUL\ETX\NULD\NULE\NULw\NULx\NULy\NUL\255\255J\NULK\NULL\NUL\EOT\NULN\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULx\NULy\NUL\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\SOH\NULC\NUL\ETX\NUL\255\255\ENQ\NUL\ACK\NULH\NUL\255\255\t\NUL\n\NUL\ESC\NUL\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NULV\NULA\NULB\NULC\NULD\NUL\255\255\\\NUL\255\255^\NUL\255\255/\NUL\SOH\NUL\STX\NUL\ETX\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\r\NUL\SO\NUL\SI\NULD\NULE\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255J\NULK\NULL\NUL\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\r\NUL\SO\NUL\SI\NUL6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL6\NUL\255\255\255\255\255\255H\NUL;\NUL<\NUL=\NUL\ESC\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255Z\NULV\NUL\\\NUL\255\255^\NUL_\NUL`\NUL+\NUL,\NUL^\NUL\255\255/\NUL0\NUL\255\255\&2\NUL\255\255\&4\NUL\255\255\255\255\&7\NUL\255\255\&9\NUL:\NUL7\NUL\255\255s\NULt\NUL\255\255@\NULA\NULB\NUL\255\255\255\255A\NULB\NULC\NULD\NULI\NULF\NULG\NULL\NUL\255\255\255\255O\NUL\255\255\255\255\SOH\NUL\255\255\ETX\NULx\NULy\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\ESC\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255/\NUL\255\255D\NULE\NUL\255\255G\NUL\255\255\&6\NULJ\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULC\NUL\SOH\NUL\255\255\ETX\NUL\255\255H\NUL\\\NUL]\NUL^\NULL\NULM\NUL\255\255Z\NUL\r\NUL\\\NUL\255\255^\NUL_\NUL`\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255s\NULt\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\ESC\NUL=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255/\NULQ\NUL\255\255S\NULT\NULU\NULV\NUL6\NUL\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\255\255\255\255\255\255\255\255\SOH\NULC\NUL\ETX\NUL\255\255\SOH\NUL\255\255H\NUL\SOH\NUL\255\255\255\255L\NULM\NUL\r\NULB\NULC\NULD\NUL\r\NULF\NULG\NUL\r\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\&6\NULZ\NUL\255\255\\\NUL6\NUL^\NUL_\NUL6\NUL\ESC\NUL\255\255\255\255\255\255\255\255C\NULx\NULy\NUL\255\255C\NULH\NUL\255\255C\NUL\255\255H\NUL\255\255\255\255H\NULs\NULt\NUL/\NULZ\NUL\255\255\\\NULV\NUL^\NUL_\NUL6\NULV\NUL\255\255\\\NULV\NUL^\NUL\255\255\\\NUL]\NUL^\NUL\\\NUL]\NUL^\NULC\NUL\255\255\255\255\255\255\255\255H\NULs\NULt\NUL\255\255L\NULM\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\ETX\NUL\255\255\r\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\ETX\NUL\255\255\255\255\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL,\NUL-\NUL6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL-\NUL\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\ESC\NULF\NULG\NULZ\NUL\SOH\NUL\\\NUL\ETX\NUL^\NUL_\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&6\NULs\NULt\NUL\ESC\NUL\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NULx\NULy\NUL\255\255\SOH\NUL\255\255\ETX\NULs\NULt\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL6\NUL\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NUL\SOH\NUL\255\255\255\255\255\255\255\255V\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL^\NUL\255\255\DLE\NUL/\NUL\255\255s\NULt\NUL\255\255\255\255\255\255\&6\NUL\255\255Z\NUL\ESC\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\&6\NUL\255\255\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\STX\NUL\255\255\255\255\r\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULy\NUL\255\255\DLE\NULs\NULt\NUL\255\255\255\255\&6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL\255\255\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL\255\255^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255\ESC\NUL\SOH\NUL\STX\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL,\NUL\255\255Z\NUL/\NUL\\\NUL\255\255^\NUL_\NUL`\NUL\255\255\ESC\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL\255\255/\NUL\255\255L\NULx\NULy\NUL\255\255\255\255\ESC\NUL\255\255\255\255\RS\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL/\NUL\255\255L\NUL\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255L\NULs\NULt\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NULX\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULx\NULy\NUL\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL7\NUL\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\ESC\NULA\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255L\NULx\NULy\NUL\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\ESC\NUL0\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NULV\NUL\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255^\NUL\255\255/\NULD\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL_\NULL\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\US\NUL \NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL\255\255\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\r\NUL5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\r\NUL8\NUL\255\255\SOH\NUL;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\r\NULG\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\RS\NUL\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&6\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&3\NULC\NUL5\NUL\255\255\255\255\&8\NULH\NUL\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255V\NUL\255\255\255\255J\NULK\NUL\255\255\\\NULN\NUL^\NUL\255\255Q\NUL6\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NULC\NUL\255\255\255\255\RS\NUL\US\NULH\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\&3\NUL\\\NUL\255\255^\NUL7\NUL\255\255\255\255\255\255\255\255<\NUL=\NUL\255\255\255\255\255\255\255\255B\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULB\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255x\NULy\NUL7\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255x\NULy\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NULK\NUL\255\255\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULH\NULI\NULJ\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255 \NUL!\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255!\NUL6\NUL#\NUL\255\255w\NULx\NULy\NULJ\NUL\255\255*\NUL+\NUL,\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255w\NULx\NULy\NUL\255\255!\NUL\255\255#\NUL\255\255!\NUL\255\255#\NUL\255\255\255\255*\NUL+\NUL,\NULy\NUL*\NUL+\NUL,\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255<\NUL=\NUL\255\255\255\255x\NULy\NULB\NULC\NULD\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255!\NUL\255\255#\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL3\NULy\NUL\255\255\&6\NULx\NULy\NUL3\NUL\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255y\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255y\NUL\255\255\255\255\255\255Z\NULL\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NUL\255\255\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\"\NUL#\NUL7\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255L\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\"\NUL#\NULL\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL6\NULw\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255L\NUL\255\255\255\255w\NULx\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL#\NUL\255\255\255\255\&6\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\&2\NUL3\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255w\NULx\NULy\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255x\NULy\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NUL\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\&7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL7\NUL\255\255\255\255\&6\NULq\NUL\255\255s\NULt\NUL;\NUL<\NUL=\NUL\255\255y\NUL\255\255A\NULB\NULC\NULD\NULw\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL7\NUL6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255w\NULx\NULy\NUL\255\255\255\255s\NULt\NULw\NULx\NULy\NUL+\NUL\255\255-\NUL\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255+\NUL\255\255-\NUL\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255+\NULQ\NUL\255\255S\NULT\NULU\NUL1\NUL\255\255\255\255\255\255\255\255\&6\NUL\255\255]\NUL^\NUL_\NUL+\NUL\255\255\255\255>\NUL\255\255\255\255\&1\NUL\255\255C\NUL\255\255\255\255\&6\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL>\NUL\255\255P\NUL\255\255R\NULC\NUL\255\255\255\255V\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL^\NUL\255\255P\NUL\255\255R\NUL,\NUL\255\255\255\255V\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255.\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255\255\255>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NUL\255\255\255\255P\NUL\255\255R\NUL\255\255T\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255\255\255\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255T\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255S\NUL^\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NUL\255\255V\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NULv\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NUL\255\255S\NUL\255\255\255\255\255\255\255\255\255\255|\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255Z\NUL\255\255\\\NULy\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255o\NUL\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&1\NULM\NULN\NULO\NULP\NULQ\NULR\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL1\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyTable"] (TyCon (UnQual (Ident "HappyAddr"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyTable")) (UnGuardedRhs (App (Con (UnQual (Ident "HappyA#"))) (Lit (PrimString "\NUL\NUL\136\NULL\NULM\NUL\162\SOH{\ETX^\ETX\DC2\ETX\DC3\ETX\DC1\ETX\DC2\ETX\DC3\ETX`\ETX=\254\230\STX%\STX\141\SOHr\ETX\170\NUL\203\SOH5\ETX%\ETX\SUB\STXz\ETXN\NULi\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\212\STX\SYN\ETX\248\NUL{\STX\130\STX\239\NUL_\NUL\132\SOH\199\NUL\185\NUL`\NUL\200\NUL\247\SOH\188\NUL=\SOHL\NULM\NULu\SOH6\ETX{\ETXa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL%\STXO\ETX\186\NUL\131\STX\203\SOHv\SOH\189\NUL\226\SOH\249\NULN\NULq\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\DC4\ETX\151\SOH\134\NUL\DC4\ETX\DC4\ETX\132\NUL_\NUL\134\NULs\ETX\132\NUL`\NUL\134\NUL\134\NUL\214\NULK\NULL\NULM\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\240\NULK\NUL\200\SOHc\NUL\201\SOH*\NUL\182\NUL\132\NUL\152\SOH\134\NULN\NUL\134\NULO\NUL\201\NULP\NULQ\NULR\NUL\190\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\170\NUL\203\SOH\ACK\STXO\ETX\170\NUL\132\NUL_\NUL\134\NULj\ETX\132\NUL`\NUL\134\NULU\ETX\204\SOH\a\STX\221\SOH\189\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL9\ETX\171\NUL\251\STX\172\NUL\196\NUL%\STX;\ETX\132\NUL\152\SOH\134\NUL\173\NUL]\NUL^\NUL\215\NUL\225\STX\183\NUL\211\STX&\STX\224\STX_\NUL%\STX\157\SOH\174\NUL\197\NULV\ETX\222\SOH\n\ETX<\254\247\SOHm\ETX\v\ETX\246\SOH&\STX\175\NULb\NULc\NULd\NUL\176\NULf\NULg\NUL<\254\216\NUL\185\NUL\247\SOH\217\NUL<\254h\NULi\NULj\NUL\203\SOH\181\NUL\218\NUL]\NUL^\NUL\158\SOH\190\NUL\212\STXn\ETX\225\STX<\254_\NUL\204\SOH`\STX\186\NUL\132\NUL\132\NUL\215\NUL\134\NUL\247\SOH\240\NULK\NUL\182\NUL\213\NUL\161\NUL\219\NULb\NULc\NULd\NUL\220\NULf\NULg\NULT\ETXA\ETX\159\SOH\214\NUL\160\SOH\162\NUL\174\NUL\177\NULj\NUL\198\NUL\163\NUL\161\SOH]\NUL^\NUL\150\NUL\132\NUL\215\NUL\134\NUL\249\SOH\EM\ETX_\NUL\236\STX\232\STX\162\SOH\164\NUL\SUB\ETX\132\NUL\215\NUL\134\NULB\ETX\132\NUL\215\NUL\134\NUL\247\SOH\163\SOHb\NULc\NULd\NUL\164\SOHf\NULg\NUL\132\NUL\215\NUL\151\NUL\195\NUL\152\NUL\196\NUL\240\NULK\NUL\221\NUL\ESC\ETXl\NUL\153\NUL]\NUL^\NUL\134\STX\GS\ETX\183\NUL\250\SOH\132\NUL\137\STX_\NUL(\ETXm\NUL\f\STX\197\NUL\132\NUL\152\SOH\134\NUL\240\NULK\NUL\193\STX\128\STXj\NUL\161\NUL\154\NULb\NULc\NULd\NUL\155\NULf\NULg\NUL\132\NUL\215\NUL\171\NUL\203\SOH\172\NUL\162\NUL\216\NUL\185\NUL\156\NUL\217\NUL\163\NUL\173\NUL]\NUL^\NUL\FS\ETX\204\SOH\218\NUL]\NUL^\NULg\STX_\NUL`\STX\152\STX\174\NUL\164\NUL_\NUL\218\SOH\219\SOH\186\NUL\153\STX\132\NUL\215\NUL\134\NUL\140\STX\175\NULb\NULc\NUL\208\SOH\154\STX\219\NULb\NULc\NUL\208\SOH\159\SOH\168\STX\160\SOH\r\STX\140\NULj\NUL\156\NUL\198\NUL\132\SOH\161\SOH]\NUL^\NUL\151\SOH\161\NUL\180\STX\132\SOHh\STX\132\NUL_\NUL\134\NUL\168\254\162\SOH\188\NUL\168\254\214\NUL\236\SOH\162\NULn\ETX2\NUL3\NUL\215\SOH\163\NUL\163\SOHb\NULc\NUL\208\SOH\144\STX4\NUL5\NUL6\NUL7\NUL8\NUL%\STX\189\NUL\SYN\STX\164\NUL\135\STXj\NUL\168\254\218\STX\225\SOH\132\NUL\221\NUL\134\NUL&\STX\192\NUL\185\NUL7\ETX\184\NUL\185\NUL8\ETXF\STX2\NUL3\NUL\145\STX\141\STX\EM\STXH\STXI\STXJ\STX\ESC\STX4\NUL5\NUL6\NUL7\NUL8\NUL\RS\STX\186\NUL\240\NULK\NUL\186\NULK\STX\169\NULO\NUL\170\NULP\NULL\STXM\STX\156\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\224\SOH\225\SOH\132\NUL\152\SOH\134\NULB\STX_\NUL \STXp\SOH\190\NULO\STX\ACK\NULq\SOH\a\NUL\226\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL/\STX9\NUL\132\NUL\215\NUL\134\NUL\137\SOH\CAN\NUL\EM\NUL\168\SOH:\NUL\146\NULc\NUL\233\SOH\193\NUL\229\255\ACK\NUL\187\NUL\a\NUL\134\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\132\SOH9\NUL\226\SOH\132\SOH5\STX\198\SOH\CAN\NUL\EM\NULC\STX:\NULh\NUL\195\SOHj\NULF\STX2\NUL3\NULD\STXG\STX`\STXH\STXI\STXJ\STX?\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\146\SOH\SUB\STX\149\NULj\NUL\131\SOHK\STX\132\SOHO\NUL@\SOHP\NULL\STXM\STX\214\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\r\SOHp\ETX\140\NULj\NUL\137\SOH\132\SOH_\NUL\134\SOH\132\SOH\153\SOHO\STX\168\SOH\198\SOH\151\SOH\130\SOH\234\STX#\STX\207\NUL\235\STX\ACK\STX\136\SOH\170\NUL\200\SOHc\NUL\201\SOH\214\NUL\138\SOH\SO\SOHU\NUL\152\SOH\SI\SOH\a\STX\DLE\SOH\132\SOH\DC1\SOH\\\NUL]\NUL^\NUL\132\SOH\154\SOH\132\SOH\132\SOH\192\NUL\185\NUL_\NUL\ACK\NUL\155\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\186\NUL9\NUL\132\NUL\215\NUL\134\NULh\SOH\CAN\NUL\EM\NUL\167\SOH:\NULh\NUL\195\SOHj\NUL\156\NUL\169\SOH\207\SOHb\NULc\NUL\208\SOH\ACK\NUL\188\SOH\a\NUL\197\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH\132\NUL\152\SOH\134\NUL\199\SOH\CAN\NUL\EM\NUL\132\NUL\215\NULh\NUL\NAK\SOHj\NUL\246\SOH\156\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH0\ETX\212\SOHu\STX1\ETX\247\SOHv\STX\SO\SOHU\NUL\193\NUL\SI\SOH\213\SOH\DLE\SOH\156\NUL\DC1\SOH\\\NUL]\NUL^\NUL\r\SOH \ETX!\ETX\159\NUL\EOT\ETX\"\ETX_\NUL+\ETX,\ETX\221\STX\DC2\SOH\174\NUL\222\STX.\ETX\164\NUL\174\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL\156\NUL\209\SOHb\NULc\NUL\208\SOH\231\NUL\SO\SOHU\NUL\237\NUL\SI\SOHi\SOH\DLE\SOH\250\NUL\DC1\SOH\\\NUL]\NUL^\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH_\NUL\ACK\NUL\EOT\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\n\SOH\DC4\SOH\132\NUL\215\NUL+\SOHk\SOH\CAN\NUL\EM\NUL\135\NUL\ENQ\NULh\NUL\NAK\SOHj\NUL-\STXj\NUL\ENQ\NUL\DEL\STX\128\STXj\NUL\ACK\NUL}\ETX\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH8\STXb\NULc\NUL\208\SOH\CAN\NUL\EM\NUL\174\NUL~\ETXh\NUL\NAK\SOHj\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL*\NUL\209\SOHb\NULc\NULd\NUL\181\STX\210\SOHg\NUL\DEL\ETX\SO\SOHU\NULu\ETX\SI\SOHv\ETX\DLE\SOHw\ETX\DC1\SOH\\\NUL]\NUL^\NUL8\ETX\166\NUL\167\NUL\190\SOHi\ETXO\NUL_\NULP\NUL\191\SOH\192\SOH\DC2\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NULZ\ETX \SOH!\SOH\"\SOH#\SOH*\NUL_\NULe\SOH\DC3\SOH\170\NUL\194\SOH\240\NULK\NUL-\STXj\NUL\249\STXb\NULc\NUL\208\SOHf\SOH=\ETX>\ETX\ACK\NUL\134\NUL\a\NULl\ETX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\ACK\NUL\DC4\SOH\a\NULX\ETX\NUL\SOH\t\NUL\CAN\NUL\EM\NUL\254\STX\255\STXh\NUL\NAK\SOHj\NUL\151\NUL\134\NUL\152\NUL\NUL\ETX\SOH\ETX\238\SOH\250\SOH\EM\ETX\152\NUL\153\NUL]\NUL^\NUL\CAN\NUL\EM\NUL]\ETX\153\NUL]\NUL^\NUL_\NUL^\ETXh\NUL\195\SOHj\NUL\190\SOH_\NULO\NUL`\ETXP\NUL\191\SOH\192\SOHc\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ETB\STX\250\SOH\143\STX\162\SOH\240\NULK\NUL_\NUL&\STX\166\NUL\167\NUL\194\SOHI\ETX\140\NULj\NUL\229\SOHb\NULc\NUL\208\SOH\190\SOHd\ETXO\NULe\ETXP\NUL\191\SOH\192\SOH=\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ACK\NUL@\ETX\a\NUL?\ETX\STX\SOH\t\NUL_\NUL\156\NULC\ETX\159\SOH\194\SOH\160\SOHI\ETX\156\NUL\134\NUL\172\NUL\240\NULK\NUL\161\SOH]\NUL^\NUL!\STX\173\NUL]\NUL^\NUL\CAN\NUL\EM\NUL_\NUL\RS\SOH\US\SOH\162\SOH_\NUL\156\NULO\ETX\174\NUL\134\NULh\NUL\195\SOHj\NUL\190\SOHQ\ETXO\NULS\ETXP\NUL\191\SOH\192\SOH\134\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL0\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX_\NUL\146\NULc\NUL\147\NUL\194\SOH\148\NULg\NUL$\SOH%\SOHh\NUL\195\SOHj\NUL\190\SOH\227\STXO\NUL\134\NULP\NUL\191\SOH\192\SOH\240\STXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NUL\174\NUL\251\STX\252\STXj\NUL\241\STX_\NULJ\ETX\140\NULj\NUL\194\SOH\160\SOH\209\SOHb\NULc\NUL\208\SOHL\ETX\244\STX\161\SOH]\NUL^\NUL6\STX\245\STX\149\SOHj\NUL\240\NULK\NUL_\NUL&\SOH'\SOH\162\SOH\249\STXb\NULc\NUL\208\SOH\246\STXh\NUL\195\SOHj\NUL\190\SOH\247\STXO\NUL\n\ETXP\NUL\191\SOH\192\SOH\238\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\189\SOH\ACK\STX\CAN\ETX\170\NUL\228\NUL\229\NUL_\NUL\r\ETX\211\SOHj\NUL\194\SOH\230\NUL\231\NUL\a\STX\SO\ETXh\NUL\195\SOHj\NUL\190\SOH\SI\ETXO\NUL\DLE\ETXP\NUL\191\SOH\192\SOH\ETB\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NULo\ETX2\NUL3\NUL\240\NULK\NUL_\NUL\161\NUL\CAN\SOH\EM\SOH\194\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\161\NUL\151\NUL=\NUL\152\NUL\162\NULK\ETX\140\NULj\NUL+\ETX\163\NUL\153\NUL]\NUL^\NUL\162\NULE\ETX2\NUL3\NUL\US\ETX\163\NUL_\NULh\NUL\195\SOHj\NUL\164\NUL4\NUL5\NUL6\NUL7\NUL8\NUL\RS\SOH\US\SOH\134\NUL\164\NUL#\ETX\200\SOHc\NUL\201\SOH&\ETX\132\NUL\215\NUL\134\NUL\DLE\ETX2\NUL3\NUL$\SOH%\SOHw\STX\166\NUL\167\NULx\STXy\STX4\NUL5\NUL6\NUL7\NUL8\NUL\232\SOH'\ETXh\NUL\195\SOHj\NUL\241\STX\140\NULj\NUL&\SOH'\SOH\143\NULb\NULc\NUL\208\SOH\ACK\NUL|\STX\a\NUL}\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL\242\STX\140\NULj\NULc\STX\CAN\NUL\EM\NUL>\254:\NUL\ACK\NUL\188\SOH\a\NUL\140\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\146\STX9\NULh\NUL\145\NULj\NUL\134\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\STX9\NUL\149\STX2\NUL3\NUL\161\NUL\CAN\NUL\EM\NUL\157\STX:\NUL\165\STX\167\STX4\NUL5\NUL6\NUL7\NUL8\NUL\238\SOH\162\NUL\202\NUL\179\STX\162\SOH\180\STX\163\NUL\188\STX\189\STX\158\STX\206\NUL\207\NUL\150\STX2\NUL3\NUL\229\SOHb\NULc\NUL\208\SOH\191\STX\164\NUL\192\STX4\NUL5\NUL6\NUL7\NUL8\NUL*\STX\206\NUL\207\NUL\ENQ\ETX\166\NUL\167\NUL\207\SOHb\NULc\NUL\208\SOH\134\NUL\209\STX\151\STX2\NUL3\NULf\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\134\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\203\NUL\214\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\215\STX\210\NULb\NULc\NULd\NUL\211\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL\218\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL&\STX\166\NUL\167\NUL\220\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\223\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\223\SOH9\NUL#\ETX\166\NUL\167\NUL\224\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\229\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\236\SOH9\NULA\STX2\NUL3\NUL\228\SOH\CAN\NUL\EM\NUL\238\SOH:\NUL\251\SOH\252\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\134\NUL\DC2\STX\224\NUL&\STX\166\NUL\167\NUL\162\STX\166\NUL\167\NUL*\STX\206\NUL\207\NULR\STX2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\163\STX\166\NUL\167\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH&\STX\166\NUL\167\NUL\184\STX\140\NULj\NULv\SOH2\NUL3\NUL\189\STX\140\NULj\NUL\194\STX\140\NULj\NUL\238\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\225\NUL\EM\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL=\NUL\210\NULb\NULc\NULd\NUL\226\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL \STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\238\SOH9\NUL\195\STX\140\NULj\NUL(\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL)\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULx\SOH9\NUL\196\STX\140\NULj\NUL\238\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL4\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\134\NUL9\NUL\241\NUL2\NUL3\NUL\238\SOH\CAN\NUL\EM\NUL:\STX:\NUL;\STX<\STX4\NUL5\NUL6\NUL7\NUL8\NUL@\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX=\STX\146\NULc\NUL\233\SOH>\STX*\NUL1\NUL2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\200\STX\140\NULj\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\201\STX\140\NULj\NUL\188\SOHT\STX\ACK\NULF\STX\a\NULW\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULU\STX\234\NULV\STXy\SOH\149\SOHj\NUL\CAN\NUL\EM\NUL\205\STX\140\NULj\NULX\STXY\STX\ACK\NUL\156\NUL\a\NUL\134\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULd\STX9\NUL\216\STX\166\NUL\167\NULf\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\ESC\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\SUB\SOH9\NUL\133\STXJ\STX\FS\SOH\GS\SOH\CAN\NUL\EM\NULi\STX:\NUL\ACK\STXk\SOH\170\NUL]\SOH^\SOHK\STXh\SOHO\NUL\134\NULP\NULL\STXM\STX\a\STXS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\165\NUL\166\NUL\167\NULt\SOH\216\NUL\185\NUL_\NUL\217\NULx\SOH|\SOHO\STX\230\SOH\166\NUL\167\NUL\218\NUL]\NUL^\NULs\SOH\231\SOH\166\NUL\167\NUL~\SOH\134\NUL_\NUL=\NUL\136\SOH\186\NUL=\NUL=\254\ACK\NULl\NUL\a\NUL\134\SOH\244\NUL\t\NUL\n\NULI\SOH\247\SOHb\NULc\NUL\208\SOH=\254m\NUL\229\255\134\SOH\ACK\NUL=\254\a\NUL=\NUL\244\NUL\t\NUL\ETX\SOH\165\STX\158\SOH\CAN\NUL\EM\NUL\142\SOH\206\NUL\207\NUL=\NUL=\254\170\NUL\143\NULb\NULc\NUL\208\SOH\132\NUL\215\NUL\134\NUL\197\SOH\CAN\NUL\EM\NUL?\SOH\205\SOHh\NUL\195\SOHj\NULn\NULo\NUL=\NULp\NUL\207\SOHq\NUL*\NUL\134\NULr\NUL\218\SOH\255\255s\NUL\138\NULt\NULu\NULv\NUL\221\NUL\165\NUL\166\NUL\167\NULw\NULx\NUL\139\NULy\NUL\136\STX\134\NULz\NUL{\NUL\142\NUL|\NUL}\NUL\134\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\233\NULh\NUL\144\SOHj\NUL=\NUL\255\255\132\NUL\133\NUL\134\NUL\135\NUL\ESC\NUL\SO\STX\140\NULj\NUL?\254\251\255\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\234\NUL\237\NUL#\NUL&\STX\166\NUL\167\NUL\ACK\NUL\243\NUL\a\NUL\241\NUL\244\NUL\t\NULa\STX$\NUL\244\NUL\203\NUL\248\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\252\NUL\210\NULb\NULc\NUL\208\SOH\253\NUL<\NUL=\NUL\CAN\NUL\EM\NUL%\NUL>\NULo\NUL?\NULp\NUL@\NULq\NUL=\254A\NULr\NULB\NULC\NULs\NUL\255\255t\NULu\NULv\NULD\NULE\NULF\NUL=\254w\NULx\NUL\254\NULy\NUL=\254G\NULz\NUL{\NUL&\NUL|\NUL}\NULH\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254I\NUL'\NUL(\NUL)\NUL*\NULJ\NULQ\STX\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL4\STX\140\NULj\NUL\255\NUL\NUL\SOH\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\ACK\SOHo\NUL#\NUL\255\255\ETB\SOH\ACK\NUL\161\NUL\a\NUL\SUB\SOH\244\NUL\t\NUL\n\NULJ\SOH$\NULu\NULo\SOH\140\NULj\NUL\ESC\SOH\162\NUL\128\SOH\140\NULj\NULy\NUL\163\NUL\129\SOH\140\NULj\NUL\FS\SOH|\NUL\CAN\NUL\EM\NUL~\NUL%\NUL\128\NUL\215\255\GS\SOH\215\255\164\NUL\215\255\215\255\NUL\NUL\215\255\NUL\NUL\NUL\NUL\215\255\134\NUL\215\255\215\255\215\255\139\SOH\166\NUL\167\NUL\215\255\215\255\215\255\NUL\NUL\215\255\215\255\NUL\NUL\215\255\215\255&\NUL\215\255\215\255\NUL\NUL\215\255\215\255\215\255\215\255\215\255\215\255\215\255\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\215\255\215\255,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\165\NUL\166\NUL\167\NUL\NUL\NUL\174\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\209\SOHb\NULc\NULd\NUL\NUL\NUL\210\SOHg\NUL>\STX\NUL\NULO\NUL$\NULP\NUL\191\SOH\192\SOH\NUL\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\139\NUL\140\NULj\NUL%\NUL\NUL\NULo\NUL_\NULp\NUL\NUL\NULq\NUL\194\SOH\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\165\NUL\166\NUL\167\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\211\SOHj\NULz\NUL{\NUL&\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\180\NUL\140\NULj\NUL\NUL\NULY\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NULh\NUL\195\SOHj\NUL\141\SOHG\ETX\170\NUL\141\SOH\t\ETX\170\NUL$\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\141\SOH\162\STX\170\NUL\141\SOH\168\STX\170\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL=\NUL\NUL\NUL\NUL\NUL%\NUL\146\NULc\NUL\233\SOHp\NUL\SOH\STXq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\STX\STX\141\SOH\206\SOH\170\NULw\NULx\NULh\NUL[\STXj\NUL\NUL\NULz\NUL{\NUL&\NUL\138\STX}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\149\SOHj\NUL\NUL\NUL<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL8\SOH<\254\&9\SOH\NUL\NUL:\SOH;\SOH<\254\NUL\NUL<\SOH=\SOH$\NUL\NUL\NUL\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL<\254\210\NULb\NULc\NUL\208\SOH\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL%\NUL\141\SOH\235\SOH\170\NULp\NULe\SOHq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NULf\SOH(\SOH)\SOH*\SOHw\NULx\NUL\169\NUL\206\SOH\170\NUL\NUL\NULz\NUL{\NUL&\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL(\SOH)\SOH*\SOH<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL<\254\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254+\STX\206\NUL\207\NUL$\NUL\NUL\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\ACK\NUL<\254\a\NUL\NUL\NUL\244\NUL\t\NULF\SOH<\NUL=\NUL\134\NUL\NUL\NUL%\NUL>\NUL\NUL\NUL?\NUL\NUL\NUL@\NUL\NUL\NUL\NUL\NULA\NUL\NUL\NULB\NULC\NUL\142\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NULD\NULE\NULF\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NULd\NULG\NUL\144\NULg\NUL&\NUL\NUL\NUL\NUL\NULH\NUL\NUL\NUL\NUL\NUL\SOH\STX\NUL\NUL\170\NUL\ACK\ETXj\NULI\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\STX\STX,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\187\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\145\NULj\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\161\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\162\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\163\NUL\132\NUL\159\NUL\134\NUL&\NUL<\254\NUL\NUL\ACK\NULf\SOH\a\NUL\NUL\NUL\244\NUL\t\NULG\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\SYN\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL$\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL%\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL\161\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\180\NUL\134\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\STX\162\NUL\170\NUL\NUL\NUL%\STX\NUL\NUL\163\NUL\161\STX\NUL\NUL\NUL\NUL&\NUL=\254\STX\STX\146\NULc\NUL\147\NUL&\STX\148\NULg\NUL\247\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\175\SOH\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\161\NUL\ACK\NUL\NUL\NUL\a\NUL\161\NUL\ACK\SOH\t\NUL\161\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NUL\149\NULj\NUL\NUL\NUL\162\NUL\163\NUL\NUL\NUL\162\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\163\NUL\CAN\NUL\EM\NUL%\NUL\ACK\NUL\NUL\NUL\a\NUL\164\NUL\b\SOH\t\NUL=\254\164\NUL\NUL\NUL\132\NUL\164\NUL\134\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\132\NUL\215\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\CAN\NUL\EM\NUL\NUL\NUL&\NUL\176\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL/\STX\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NULu\STX\NUL\NUL\214\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULK\SOH\ESC\NUL$\NULu\STX\NUL\NUL\NUL\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NULw\STXf\ETX\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULM\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX4\ETX\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULQ\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\DC1\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\147\NUL$\NUL\148\NULg\NUL\ACK\NUL\ESC\NUL\a\NULu\STX\v\SOH\t\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\CAN\NUL\EM\NUL$\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NULH\SOH\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\149\SOHj\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\CAN\NUL\EM\NUL<\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULf\SOH\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULR\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\161\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\ETX\SOH\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\134\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\ACK\NUL$\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULN\SOH\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\158\STX\206\NUL\207\NUL\159\STX\209\NUL\NUL\NUL\229\SOHb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\203\SOH\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\230\STX\NUL\NUL\NUL\NUL\204\SOH\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULL\SOH\ESC\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\156\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULO\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULP\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL$\NUL\ESC\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NULc\STX\NUL\NUL\ACK\NUL%\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL*\SOH\NUL\NUL$\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL%\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL%\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\f\SOH\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL&\NUL\CAN\NUL\EM\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX\NUL\NUL\146\NULc\NUL\233\SOH'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\149\SOHj\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\209\STX\NUL\NUL\NUL\NUL&\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL$\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\b\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\a\ETX\NUL\NUL\146\NULc\NUL\233\SOH\n\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NULf\SOH,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULm\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL$\NULn\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL=\254\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\134\NUL\NUL\NUL%\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\ACK\STX\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\135\NUL&\NUL\NUL\NUL\a\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL-\SOH.\SOH/\SOH0\SOH1\SOH2\SOH3\SOH4\SOH5\SOH6\SOH7\SOH\NUL\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\ACK\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\a\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\203\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\204\SOHq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NULm\NULr\NUL\NUL\NUL\203\SOHs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\204\SOHy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\SOH\STX\251\STX\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NUL\161\NUL\NUL\NUL\STX\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\162\NULq\NUL\NUL\NUL\NUL\NULr\NUL\163\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\132\NUL}\NUL\134\NUL\NUL\NUL\158\NUL=\254\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\176\SOH\177\SOH=\254S\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\132\NUL\NUL\NUL\134\NUL\181\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\199\STXj\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\149\SOHj\NUL\181\SOH\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NULh\NUL\204\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\SOHj\NUL\NUL\NULh\NUL_\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\185\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\216\NUL\185\NUL\NUL\NUL\217\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\218\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\171\NUL\186\NUL\172\NUL\NUL\NULh\NUL\186\SOHj\NUL\206\STX\NUL\NUL\173\NUL]\NUL^\NUL\a\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\b\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\252\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\253\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\NUL\NUL\171\NUL\NUL\NUL\172\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\221\NUL\173\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL#\STX\207\NUL\NUL\NUL\NUL\NUL\254\SOH\255\SOH\200\SOHc\NUL\201\SOH\242\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\151\NUL\NUL\NUL\152\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\159\SOH\NUL\NUL\160\SOH\NUL\NUL\NUL\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\161\SOH]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL_\NUL\156\NUL\NUL\NUL\162\SOH\243\SOHj\NUL_\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\NUL\NUL\212\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\241\SOHb\NULc\NUL\208\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\DC2\SOH\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\STX\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\129\STX\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\183\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NULU\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\239\SOH\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\240\SOH\NUL\NUL\FS\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\GS\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NULT\SOH\NUL\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH1\STX\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL2\STX\NUL\NUL\215\SOH\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\216\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\169\STXU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\247\STX\171\STX\172\STX\169\STXU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\170\STX\171\STX\172\STX\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\SO\SOHU\NUL\DC2\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\132\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\174\STXj\NUL\NUL\NUL\SO\SOHU\NULm\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NULh\NUL\174\STXj\NUL\NUL\NUL\172\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\173\NUL]\NUL^\NUL\174\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NULn\SOH\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\152\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\248\STX_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\DEL\STX\236\STXj\NUL\249\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NULb\SOHc\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL\DC2\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\141\SOH\DC3\STX\DC4\STXj\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL\NUL\NUL\143\NULb\NULc\NULd\NUL\NUL\NUL\144\NULg\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\170\SOH\NUL\NUL\NUL\NUL\174\NUL\185\STX\NUL\NUL\CAN\NUL\EM\NUL+\STX\206\NUL\207\NUL\NUL\NUL\156\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOHh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\SOH\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\173\SOHj\NUL\197\STX\DEL\STX\237\STXj\NUL\142\SOH\206\NUL\207\NUL\202\STX\159\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\192\STX\NUL\NULh\NUL\198\STXj\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULh\NUL\203\STXj\NUL\176\STX\NUL\NUL\ENQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\176\STX\NUL\NUL\177\STX\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\192\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NULo\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\133\NUL\134\NUL\178\STX\195\NUL\NUL\NUL\NUL\NULu\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\161\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NULu\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\162\NUL\NUL\NUL\NUL\NUL\164\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NUL\134\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL=\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\208\STX\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\188\SOH\133\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254;\254;\254;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254o\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\167\SOH\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\133\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NUL\NUL\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL\NUL\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\NUL\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\180\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254;\254p\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL;\254;\254s\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\158\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\159\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NUL\NUL\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\STX\134\NUL'\ETXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULl\STXs\STXm\STXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL1\ETXs\STX\NUL\NUL2\ETXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NULs\STX\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\227\STX\CAN\NUL\EM\NUL\NUL\NULg\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL.\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\215\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\156\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULC\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULD\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\147\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\148\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\235\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULw\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULx\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULa\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL:\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\146\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULA\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NULB\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULC\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULW\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULZ\SOH\NUL\NUL\NUL\NUL[\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULz\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL|\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL~\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\DEL\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\ETB\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULV\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULX\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL[\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULf\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\232\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\238\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL)\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULi\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULk\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL@\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULl\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\246\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULj\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULd\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NULV\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NULS\SOH\STX\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\EOT\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\t\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\n\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULY\ETX\v\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\SOH\ETX\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\203\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH7\STX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL")))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduceArr")) (UnGuardedRhs (App (App (Var (UnQual (Ident "array"))) (Tuple Boxed [Lit (Int 4),Lit (Int 463)])) (List [Tuple Boxed [Lit (Int 4),Var (UnQual (Ident "happyReduce_4"))],Tuple Boxed [Lit (Int 5),Var (UnQual (Ident "happyReduce_5"))],Tuple Boxed [Lit (Int 6),Var (UnQual (Ident "happyReduce_6"))],Tuple Boxed [Lit (Int 7),Var (UnQual (Ident "happyReduce_7"))],Tuple Boxed [Lit (Int 8),Var (UnQual (Ident "happyReduce_8"))],Tuple Boxed [Lit (Int 9),Var (UnQual (Ident "happyReduce_9"))],Tuple Boxed [Lit (Int 10),Var (UnQual (Ident "happyReduce_10"))],Tuple Boxed [Lit (Int 11),Var (UnQual (Ident "happyReduce_11"))],Tuple Boxed [Lit (Int 12),Var (UnQual (Ident "happyReduce_12"))],Tuple Boxed [Lit (Int 13),Var (UnQual (Ident "happyReduce_13"))],Tuple Boxed [Lit (Int 14),Var (UnQual (Ident "happyReduce_14"))],Tuple Boxed [Lit (Int 15),Var (UnQual (Ident "happyReduce_15"))],Tuple Boxed [Lit (Int 16),Var (UnQual (Ident "happyReduce_16"))],Tuple Boxed [Lit (Int 17),Var (UnQual (Ident "happyReduce_17"))],Tuple Boxed [Lit (Int 18),Var (UnQual (Ident "happyReduce_18"))],Tuple Boxed [Lit (Int 19),Var (UnQual (Ident "happyReduce_19"))],Tuple Boxed [Lit (Int 20),Var (UnQual (Ident "happyReduce_20"))],Tuple Boxed [Lit (Int 21),Var (UnQual (Ident "happyReduce_21"))],Tuple Boxed [Lit (Int 22),Var (UnQual (Ident "happyReduce_22"))],Tuple Boxed [Lit (Int 23),Var (UnQual (Ident "happyReduce_23"))],Tuple Boxed [Lit (Int 24),Var (UnQual (Ident "happyReduce_24"))],Tuple Boxed [Lit (Int 25),Var (UnQual (Ident "happyReduce_25"))],Tuple Boxed [Lit (Int 26),Var (UnQual (Ident "happyReduce_26"))],Tuple Boxed [Lit (Int 27),Var (UnQual (Ident "happyReduce_27"))],Tuple Boxed [Lit (Int 28),Var (UnQual (Ident "happyReduce_28"))],Tuple Boxed [Lit (Int 29),Var (UnQual (Ident "happyReduce_29"))],Tuple Boxed [Lit (Int 30),Var (UnQual (Ident "happyReduce_30"))],Tuple Boxed [Lit (Int 31),Var (UnQual (Ident "happyReduce_31"))],Tuple Boxed [Lit (Int 32),Var (UnQual (Ident "happyReduce_32"))],Tuple Boxed [Lit (Int 33),Var (UnQual (Ident "happyReduce_33"))],Tuple Boxed [Lit (Int 34),Var (UnQual (Ident "happyReduce_34"))],Tuple Boxed [Lit (Int 35),Var (UnQual (Ident "happyReduce_35"))],Tuple Boxed [Lit (Int 36),Var (UnQual (Ident "happyReduce_36"))],Tuple Boxed [Lit (Int 37),Var (UnQual (Ident "happyReduce_37"))],Tuple Boxed [Lit (Int 38),Var (UnQual (Ident "happyReduce_38"))],Tuple Boxed [Lit (Int 39),Var (UnQual (Ident "happyReduce_39"))],Tuple Boxed [Lit (Int 40),Var (UnQual (Ident "happyReduce_40"))],Tuple Boxed [Lit (Int 41),Var (UnQual (Ident "happyReduce_41"))],Tuple Boxed [Lit (Int 42),Var (UnQual (Ident "happyReduce_42"))],Tuple Boxed [Lit (Int 43),Var (UnQual (Ident "happyReduce_43"))],Tuple Boxed [Lit (Int 44),Var (UnQual (Ident "happyReduce_44"))],Tuple Boxed [Lit (Int 45),Var (UnQual (Ident "happyReduce_45"))],Tuple Boxed [Lit (Int 46),Var (UnQual (Ident "happyReduce_46"))],Tuple Boxed [Lit (Int 47),Var (UnQual (Ident "happyReduce_47"))],Tuple Boxed [Lit (Int 48),Var (UnQual (Ident "happyReduce_48"))],Tuple Boxed [Lit (Int 49),Var (UnQual (Ident "happyReduce_49"))],Tuple Boxed [Lit (Int 50),Var (UnQual (Ident "happyReduce_50"))],Tuple Boxed [Lit (Int 51),Var (UnQual (Ident "happyReduce_51"))],Tuple Boxed [Lit (Int 52),Var (UnQual (Ident "happyReduce_52"))],Tuple Boxed [Lit (Int 53),Var (UnQual (Ident "happyReduce_53"))],Tuple Boxed [Lit (Int 54),Var (UnQual (Ident "happyReduce_54"))],Tuple Boxed [Lit (Int 55),Var (UnQual (Ident "happyReduce_55"))],Tuple Boxed [Lit (Int 56),Var (UnQual (Ident "happyReduce_56"))],Tuple Boxed [Lit (Int 57),Var (UnQual (Ident "happyReduce_57"))],Tuple Boxed [Lit (Int 58),Var (UnQual (Ident "happyReduce_58"))],Tuple Boxed [Lit (Int 59),Var (UnQual (Ident "happyReduce_59"))],Tuple Boxed [Lit (Int 60),Var (UnQual (Ident "happyReduce_60"))],Tuple Boxed [Lit (Int 61),Var (UnQual (Ident "happyReduce_61"))],Tuple Boxed [Lit (Int 62),Var (UnQual (Ident "happyReduce_62"))],Tuple Boxed [Lit (Int 63),Var (UnQual (Ident "happyReduce_63"))],Tuple Boxed [Lit (Int 64),Var (UnQual (Ident "happyReduce_64"))],Tuple Boxed [Lit (Int 65),Var (UnQual (Ident "happyReduce_65"))],Tuple Boxed [Lit (Int 66),Var (UnQual (Ident "happyReduce_66"))],Tuple Boxed [Lit (Int 67),Var (UnQual (Ident "happyReduce_67"))],Tuple Boxed [Lit (Int 68),Var (UnQual (Ident "happyReduce_68"))],Tuple Boxed [Lit (Int 69),Var (UnQual (Ident "happyReduce_69"))],Tuple Boxed [Lit (Int 70),Var (UnQual (Ident "happyReduce_70"))],Tuple Boxed [Lit (Int 71),Var (UnQual (Ident "happyReduce_71"))],Tuple Boxed [Lit (Int 72),Var (UnQual (Ident "happyReduce_72"))],Tuple Boxed [Lit (Int 73),Var (UnQual (Ident "happyReduce_73"))],Tuple Boxed [Lit (Int 74),Var (UnQual (Ident "happyReduce_74"))],Tuple Boxed [Lit (Int 75),Var (UnQual (Ident "happyReduce_75"))],Tuple Boxed [Lit (Int 76),Var (UnQual (Ident "happyReduce_76"))],Tuple Boxed [Lit (Int 77),Var (UnQual (Ident "happyReduce_77"))],Tuple Boxed [Lit (Int 78),Var (UnQual (Ident "happyReduce_78"))],Tuple Boxed [Lit (Int 79),Var (UnQual (Ident "happyReduce_79"))],Tuple Boxed [Lit (Int 80),Var (UnQual (Ident "happyReduce_80"))],Tuple Boxed [Lit (Int 81),Var (UnQual (Ident "happyReduce_81"))],Tuple Boxed [Lit (Int 82),Var (UnQual (Ident "happyReduce_82"))],Tuple Boxed [Lit (Int 83),Var (UnQual (Ident "happyReduce_83"))],Tuple Boxed [Lit (Int 84),Var (UnQual (Ident "happyReduce_84"))],Tuple Boxed [Lit (Int 85),Var (UnQual (Ident "happyReduce_85"))],Tuple Boxed [Lit (Int 86),Var (UnQual (Ident "happyReduce_86"))],Tuple Boxed [Lit (Int 87),Var (UnQual (Ident "happyReduce_87"))],Tuple Boxed [Lit (Int 88),Var (UnQual (Ident "happyReduce_88"))],Tuple Boxed [Lit (Int 89),Var (UnQual (Ident "happyReduce_89"))],Tuple Boxed [Lit (Int 90),Var (UnQual (Ident "happyReduce_90"))],Tuple Boxed [Lit (Int 91),Var (UnQual (Ident "happyReduce_91"))],Tuple Boxed [Lit (Int 92),Var (UnQual (Ident "happyReduce_92"))],Tuple Boxed [Lit (Int 93),Var (UnQual (Ident "happyReduce_93"))],Tuple Boxed [Lit (Int 94),Var (UnQual (Ident "happyReduce_94"))],Tuple Boxed [Lit (Int 95),Var (UnQual (Ident "happyReduce_95"))],Tuple Boxed [Lit (Int 96),Var (UnQual (Ident "happyReduce_96"))],Tuple Boxed [Lit (Int 97),Var (UnQual (Ident "happyReduce_97"))],Tuple Boxed [Lit (Int 98),Var (UnQual (Ident "happyReduce_98"))],Tuple Boxed [Lit (Int 99),Var (UnQual (Ident "happyReduce_99"))],Tuple Boxed [Lit (Int 100),Var (UnQual (Ident "happyReduce_100"))],Tuple Boxed [Lit (Int 101),Var (UnQual (Ident "happyReduce_101"))],Tuple Boxed [Lit (Int 102),Var (UnQual (Ident "happyReduce_102"))],Tuple Boxed [Lit (Int 103),Var (UnQual (Ident "happyReduce_103"))],Tuple Boxed [Lit (Int 104),Var (UnQual (Ident "happyReduce_104"))],Tuple Boxed [Lit (Int 105),Var (UnQual (Ident "happyReduce_105"))],Tuple Boxed [Lit (Int 106),Var (UnQual (Ident "happyReduce_106"))],Tuple Boxed [Lit (Int 107),Var (UnQual (Ident "happyReduce_107"))],Tuple Boxed [Lit (Int 108),Var (UnQual (Ident "happyReduce_108"))],Tuple Boxed [Lit (Int 109),Var (UnQual (Ident "happyReduce_109"))],Tuple Boxed [Lit (Int 110),Var (UnQual (Ident "happyReduce_110"))],Tuple Boxed [Lit (Int 111),Var (UnQual (Ident "happyReduce_111"))],Tuple Boxed [Lit (Int 112),Var (UnQual (Ident "happyReduce_112"))],Tuple Boxed [Lit (Int 113),Var (UnQual (Ident "happyReduce_113"))],Tuple Boxed [Lit (Int 114),Var (UnQual (Ident "happyReduce_114"))],Tuple Boxed [Lit (Int 115),Var (UnQual (Ident "happyReduce_115"))],Tuple Boxed [Lit (Int 116),Var (UnQual (Ident "happyReduce_116"))],Tuple Boxed [Lit (Int 117),Var (UnQual (Ident "happyReduce_117"))],Tuple Boxed [Lit (Int 118),Var (UnQual (Ident "happyReduce_118"))],Tuple Boxed [Lit (Int 119),Var (UnQual (Ident "happyReduce_119"))],Tuple Boxed [Lit (Int 120),Var (UnQual (Ident "happyReduce_120"))],Tuple Boxed [Lit (Int 121),Var (UnQual (Ident "happyReduce_121"))],Tuple Boxed [Lit (Int 122),Var (UnQual (Ident "happyReduce_122"))],Tuple Boxed [Lit (Int 123),Var (UnQual (Ident "happyReduce_123"))],Tuple Boxed [Lit (Int 124),Var (UnQual (Ident "happyReduce_124"))],Tuple Boxed [Lit (Int 125),Var (UnQual (Ident "happyReduce_125"))],Tuple Boxed [Lit (Int 126),Var (UnQual (Ident "happyReduce_126"))],Tuple Boxed [Lit (Int 127),Var (UnQual (Ident "happyReduce_127"))],Tuple Boxed [Lit (Int 128),Var (UnQual (Ident "happyReduce_128"))],Tuple Boxed [Lit (Int 129),Var (UnQual (Ident "happyReduce_129"))],Tuple Boxed [Lit (Int 130),Var (UnQual (Ident "happyReduce_130"))],Tuple Boxed [Lit (Int 131),Var (UnQual (Ident "happyReduce_131"))],Tuple Boxed [Lit (Int 132),Var (UnQual (Ident "happyReduce_132"))],Tuple Boxed [Lit (Int 133),Var (UnQual (Ident "happyReduce_133"))],Tuple Boxed [Lit (Int 134),Var (UnQual (Ident "happyReduce_134"))],Tuple Boxed [Lit (Int 135),Var (UnQual (Ident "happyReduce_135"))],Tuple Boxed [Lit (Int 136),Var (UnQual (Ident "happyReduce_136"))],Tuple Boxed [Lit (Int 137),Var (UnQual (Ident "happyReduce_137"))],Tuple Boxed [Lit (Int 138),Var (UnQual (Ident "happyReduce_138"))],Tuple Boxed [Lit (Int 139),Var (UnQual (Ident "happyReduce_139"))],Tuple Boxed [Lit (Int 140),Var (UnQual (Ident "happyReduce_140"))],Tuple Boxed [Lit (Int 141),Var (UnQual (Ident "happyReduce_141"))],Tuple Boxed [Lit (Int 142),Var (UnQual (Ident "happyReduce_142"))],Tuple Boxed [Lit (Int 143),Var (UnQual (Ident "happyReduce_143"))],Tuple Boxed [Lit (Int 144),Var (UnQual (Ident "happyReduce_144"))],Tuple Boxed [Lit (Int 145),Var (UnQual (Ident "happyReduce_145"))],Tuple Boxed [Lit (Int 146),Var (UnQual (Ident "happyReduce_146"))],Tuple Boxed [Lit (Int 147),Var (UnQual (Ident "happyReduce_147"))],Tuple Boxed [Lit (Int 148),Var (UnQual (Ident "happyReduce_148"))],Tuple Boxed [Lit (Int 149),Var (UnQual (Ident "happyReduce_149"))],Tuple Boxed [Lit (Int 150),Var (UnQual (Ident "happyReduce_150"))],Tuple Boxed [Lit (Int 151),Var (UnQual (Ident "happyReduce_151"))],Tuple Boxed [Lit (Int 152),Var (UnQual (Ident "happyReduce_152"))],Tuple Boxed [Lit (Int 153),Var (UnQual (Ident "happyReduce_153"))],Tuple Boxed [Lit (Int 154),Var (UnQual (Ident "happyReduce_154"))],Tuple Boxed [Lit (Int 155),Var (UnQual (Ident "happyReduce_155"))],Tuple Boxed [Lit (Int 156),Var (UnQual (Ident "happyReduce_156"))],Tuple Boxed [Lit (Int 157),Var (UnQual (Ident "happyReduce_157"))],Tuple Boxed [Lit (Int 158),Var (UnQual (Ident "happyReduce_158"))],Tuple Boxed [Lit (Int 159),Var (UnQual (Ident "happyReduce_159"))],Tuple Boxed [Lit (Int 160),Var (UnQual (Ident "happyReduce_160"))],Tuple Boxed [Lit (Int 161),Var (UnQual (Ident "happyReduce_161"))],Tuple Boxed [Lit (Int 162),Var (UnQual (Ident "happyReduce_162"))],Tuple Boxed [Lit (Int 163),Var (UnQual (Ident "happyReduce_163"))],Tuple Boxed [Lit (Int 164),Var (UnQual (Ident "happyReduce_164"))],Tuple Boxed [Lit (Int 165),Var (UnQual (Ident "happyReduce_165"))],Tuple Boxed [Lit (Int 166),Var (UnQual (Ident "happyReduce_166"))],Tuple Boxed [Lit (Int 167),Var (UnQual (Ident "happyReduce_167"))],Tuple Boxed [Lit (Int 168),Var (UnQual (Ident "happyReduce_168"))],Tuple Boxed [Lit (Int 169),Var (UnQual (Ident "happyReduce_169"))],Tuple Boxed [Lit (Int 170),Var (UnQual (Ident "happyReduce_170"))],Tuple Boxed [Lit (Int 171),Var (UnQual (Ident "happyReduce_171"))],Tuple Boxed [Lit (Int 172),Var (UnQual (Ident "happyReduce_172"))],Tuple Boxed [Lit (Int 173),Var (UnQual (Ident "happyReduce_173"))],Tuple Boxed [Lit (Int 174),Var (UnQual (Ident "happyReduce_174"))],Tuple Boxed [Lit (Int 175),Var (UnQual (Ident "happyReduce_175"))],Tuple Boxed [Lit (Int 176),Var (UnQual (Ident "happyReduce_176"))],Tuple Boxed [Lit (Int 177),Var (UnQual (Ident "happyReduce_177"))],Tuple Boxed [Lit (Int 178),Var (UnQual (Ident "happyReduce_178"))],Tuple Boxed [Lit (Int 179),Var (UnQual (Ident "happyReduce_179"))],Tuple Boxed [Lit (Int 180),Var (UnQual (Ident "happyReduce_180"))],Tuple Boxed [Lit (Int 181),Var (UnQual (Ident "happyReduce_181"))],Tuple Boxed [Lit (Int 182),Var (UnQual (Ident "happyReduce_182"))],Tuple Boxed [Lit (Int 183),Var (UnQual (Ident "happyReduce_183"))],Tuple Boxed [Lit (Int 184),Var (UnQual (Ident "happyReduce_184"))],Tuple Boxed [Lit (Int 185),Var (UnQual (Ident "happyReduce_185"))],Tuple Boxed [Lit (Int 186),Var (UnQual (Ident "happyReduce_186"))],Tuple Boxed [Lit (Int 187),Var (UnQual (Ident "happyReduce_187"))],Tuple Boxed [Lit (Int 188),Var (UnQual (Ident "happyReduce_188"))],Tuple Boxed [Lit (Int 189),Var (UnQual (Ident "happyReduce_189"))],Tuple Boxed [Lit (Int 190),Var (UnQual (Ident "happyReduce_190"))],Tuple Boxed [Lit (Int 191),Var (UnQual (Ident "happyReduce_191"))],Tuple Boxed [Lit (Int 192),Var (UnQual (Ident "happyReduce_192"))],Tuple Boxed [Lit (Int 193),Var (UnQual (Ident "happyReduce_193"))],Tuple Boxed [Lit (Int 194),Var (UnQual (Ident "happyReduce_194"))],Tuple Boxed [Lit (Int 195),Var (UnQual (Ident "happyReduce_195"))],Tuple Boxed [Lit (Int 196),Var (UnQual (Ident "happyReduce_196"))],Tuple Boxed [Lit (Int 197),Var (UnQual (Ident "happyReduce_197"))],Tuple Boxed [Lit (Int 198),Var (UnQual (Ident "happyReduce_198"))],Tuple Boxed [Lit (Int 199),Var (UnQual (Ident "happyReduce_199"))],Tuple Boxed [Lit (Int 200),Var (UnQual (Ident "happyReduce_200"))],Tuple Boxed [Lit (Int 201),Var (UnQual (Ident "happyReduce_201"))],Tuple Boxed [Lit (Int 202),Var (UnQual (Ident "happyReduce_202"))],Tuple Boxed [Lit (Int 203),Var (UnQual (Ident "happyReduce_203"))],Tuple Boxed [Lit (Int 204),Var (UnQual (Ident "happyReduce_204"))],Tuple Boxed [Lit (Int 205),Var (UnQual (Ident "happyReduce_205"))],Tuple Boxed [Lit (Int 206),Var (UnQual (Ident "happyReduce_206"))],Tuple Boxed [Lit (Int 207),Var (UnQual (Ident "happyReduce_207"))],Tuple Boxed [Lit (Int 208),Var (UnQual (Ident "happyReduce_208"))],Tuple Boxed [Lit (Int 209),Var (UnQual (Ident "happyReduce_209"))],Tuple Boxed [Lit (Int 210),Var (UnQual (Ident "happyReduce_210"))],Tuple Boxed [Lit (Int 211),Var (UnQual (Ident "happyReduce_211"))],Tuple Boxed [Lit (Int 212),Var (UnQual (Ident "happyReduce_212"))],Tuple Boxed [Lit (Int 213),Var (UnQual (Ident "happyReduce_213"))],Tuple Boxed [Lit (Int 214),Var (UnQual (Ident "happyReduce_214"))],Tuple Boxed [Lit (Int 215),Var (UnQual (Ident "happyReduce_215"))],Tuple Boxed [Lit (Int 216),Var (UnQual (Ident "happyReduce_216"))],Tuple Boxed [Lit (Int 217),Var (UnQual (Ident "happyReduce_217"))],Tuple Boxed [Lit (Int 218),Var (UnQual (Ident "happyReduce_218"))],Tuple Boxed [Lit (Int 219),Var (UnQual (Ident "happyReduce_219"))],Tuple Boxed [Lit (Int 220),Var (UnQual (Ident "happyReduce_220"))],Tuple Boxed [Lit (Int 221),Var (UnQual (Ident "happyReduce_221"))],Tuple Boxed [Lit (Int 222),Var (UnQual (Ident "happyReduce_222"))],Tuple Boxed [Lit (Int 223),Var (UnQual (Ident "happyReduce_223"))],Tuple Boxed [Lit (Int 224),Var (UnQual (Ident "happyReduce_224"))],Tuple Boxed [Lit (Int 225),Var (UnQual (Ident "happyReduce_225"))],Tuple Boxed [Lit (Int 226),Var (UnQual (Ident "happyReduce_226"))],Tuple Boxed [Lit (Int 227),Var (UnQual (Ident "happyReduce_227"))],Tuple Boxed [Lit (Int 228),Var (UnQual (Ident "happyReduce_228"))],Tuple Boxed [Lit (Int 229),Var (UnQual (Ident "happyReduce_229"))],Tuple Boxed [Lit (Int 230),Var (UnQual (Ident "happyReduce_230"))],Tuple Boxed [Lit (Int 231),Var (UnQual (Ident "happyReduce_231"))],Tuple Boxed [Lit (Int 232),Var (UnQual (Ident "happyReduce_232"))],Tuple Boxed [Lit (Int 233),Var (UnQual (Ident "happyReduce_233"))],Tuple Boxed [Lit (Int 234),Var (UnQual (Ident "happyReduce_234"))],Tuple Boxed [Lit (Int 235),Var (UnQual (Ident "happyReduce_235"))],Tuple Boxed [Lit (Int 236),Var (UnQual (Ident "happyReduce_236"))],Tuple Boxed [Lit (Int 237),Var (UnQual (Ident "happyReduce_237"))],Tuple Boxed [Lit (Int 238),Var (UnQual (Ident "happyReduce_238"))],Tuple Boxed [Lit (Int 239),Var (UnQual (Ident "happyReduce_239"))],Tuple Boxed [Lit (Int 240),Var (UnQual (Ident "happyReduce_240"))],Tuple Boxed [Lit (Int 241),Var (UnQual (Ident "happyReduce_241"))],Tuple Boxed [Lit (Int 242),Var (UnQual (Ident "happyReduce_242"))],Tuple Boxed [Lit (Int 243),Var (UnQual (Ident "happyReduce_243"))],Tuple Boxed [Lit (Int 244),Var (UnQual (Ident "happyReduce_244"))],Tuple Boxed [Lit (Int 245),Var (UnQual (Ident "happyReduce_245"))],Tuple Boxed [Lit (Int 246),Var (UnQual (Ident "happyReduce_246"))],Tuple Boxed [Lit (Int 247),Var (UnQual (Ident "happyReduce_247"))],Tuple Boxed [Lit (Int 248),Var (UnQual (Ident "happyReduce_248"))],Tuple Boxed [Lit (Int 249),Var (UnQual (Ident "happyReduce_249"))],Tuple Boxed [Lit (Int 250),Var (UnQual (Ident "happyReduce_250"))],Tuple Boxed [Lit (Int 251),Var (UnQual (Ident "happyReduce_251"))],Tuple Boxed [Lit (Int 252),Var (UnQual (Ident "happyReduce_252"))],Tuple Boxed [Lit (Int 253),Var (UnQual (Ident "happyReduce_253"))],Tuple Boxed [Lit (Int 254),Var (UnQual (Ident "happyReduce_254"))],Tuple Boxed [Lit (Int 255),Var (UnQual (Ident "happyReduce_255"))],Tuple Boxed [Lit (Int 256),Var (UnQual (Ident "happyReduce_256"))],Tuple Boxed [Lit (Int 257),Var (UnQual (Ident "happyReduce_257"))],Tuple Boxed [Lit (Int 258),Var (UnQual (Ident "happyReduce_258"))],Tuple Boxed [Lit (Int 259),Var (UnQual (Ident "happyReduce_259"))],Tuple Boxed [Lit (Int 260),Var (UnQual (Ident "happyReduce_260"))],Tuple Boxed [Lit (Int 261),Var (UnQual (Ident "happyReduce_261"))],Tuple Boxed [Lit (Int 262),Var (UnQual (Ident "happyReduce_262"))],Tuple Boxed [Lit (Int 263),Var (UnQual (Ident "happyReduce_263"))],Tuple Boxed [Lit (Int 264),Var (UnQual (Ident "happyReduce_264"))],Tuple Boxed [Lit (Int 265),Var (UnQual (Ident "happyReduce_265"))],Tuple Boxed [Lit (Int 266),Var (UnQual (Ident "happyReduce_266"))],Tuple Boxed [Lit (Int 267),Var (UnQual (Ident "happyReduce_267"))],Tuple Boxed [Lit (Int 268),Var (UnQual (Ident "happyReduce_268"))],Tuple Boxed [Lit (Int 269),Var (UnQual (Ident "happyReduce_269"))],Tuple Boxed [Lit (Int 270),Var (UnQual (Ident "happyReduce_270"))],Tuple Boxed [Lit (Int 271),Var (UnQual (Ident "happyReduce_271"))],Tuple Boxed [Lit (Int 272),Var (UnQual (Ident "happyReduce_272"))],Tuple Boxed [Lit (Int 273),Var (UnQual (Ident "happyReduce_273"))],Tuple Boxed [Lit (Int 274),Var (UnQual (Ident "happyReduce_274"))],Tuple Boxed [Lit (Int 275),Var (UnQual (Ident "happyReduce_275"))],Tuple Boxed [Lit (Int 276),Var (UnQual (Ident "happyReduce_276"))],Tuple Boxed [Lit (Int 277),Var (UnQual (Ident "happyReduce_277"))],Tuple Boxed [Lit (Int 278),Var (UnQual (Ident "happyReduce_278"))],Tuple Boxed [Lit (Int 279),Var (UnQual (Ident "happyReduce_279"))],Tuple Boxed [Lit (Int 280),Var (UnQual (Ident "happyReduce_280"))],Tuple Boxed [Lit (Int 281),Var (UnQual (Ident "happyReduce_281"))],Tuple Boxed [Lit (Int 282),Var (UnQual (Ident "happyReduce_282"))],Tuple Boxed [Lit (Int 283),Var (UnQual (Ident "happyReduce_283"))],Tuple Boxed [Lit (Int 284),Var (UnQual (Ident "happyReduce_284"))],Tuple Boxed [Lit (Int 285),Var (UnQual (Ident "happyReduce_285"))],Tuple Boxed [Lit (Int 286),Var (UnQual (Ident "happyReduce_286"))],Tuple Boxed [Lit (Int 287),Var (UnQual (Ident "happyReduce_287"))],Tuple Boxed [Lit (Int 288),Var (UnQual (Ident "happyReduce_288"))],Tuple Boxed [Lit (Int 289),Var (UnQual (Ident "happyReduce_289"))],Tuple Boxed [Lit (Int 290),Var (UnQual (Ident "happyReduce_290"))],Tuple Boxed [Lit (Int 291),Var (UnQual (Ident "happyReduce_291"))],Tuple Boxed [Lit (Int 292),Var (UnQual (Ident "happyReduce_292"))],Tuple Boxed [Lit (Int 293),Var (UnQual (Ident "happyReduce_293"))],Tuple Boxed [Lit (Int 294),Var (UnQual (Ident "happyReduce_294"))],Tuple Boxed [Lit (Int 295),Var (UnQual (Ident "happyReduce_295"))],Tuple Boxed [Lit (Int 296),Var (UnQual (Ident "happyReduce_296"))],Tuple Boxed [Lit (Int 297),Var (UnQual (Ident "happyReduce_297"))],Tuple Boxed [Lit (Int 298),Var (UnQual (Ident "happyReduce_298"))],Tuple Boxed [Lit (Int 299),Var (UnQual (Ident "happyReduce_299"))],Tuple Boxed [Lit (Int 300),Var (UnQual (Ident "happyReduce_300"))],Tuple Boxed [Lit (Int 301),Var (UnQual (Ident "happyReduce_301"))],Tuple Boxed [Lit (Int 302),Var (UnQual (Ident "happyReduce_302"))],Tuple Boxed [Lit (Int 303),Var (UnQual (Ident "happyReduce_303"))],Tuple Boxed [Lit (Int 304),Var (UnQual (Ident "happyReduce_304"))],Tuple Boxed [Lit (Int 305),Var (UnQual (Ident "happyReduce_305"))],Tuple Boxed [Lit (Int 306),Var (UnQual (Ident "happyReduce_306"))],Tuple Boxed [Lit (Int 307),Var (UnQual (Ident "happyReduce_307"))],Tuple Boxed [Lit (Int 308),Var (UnQual (Ident "happyReduce_308"))],Tuple Boxed [Lit (Int 309),Var (UnQual (Ident "happyReduce_309"))],Tuple Boxed [Lit (Int 310),Var (UnQual (Ident "happyReduce_310"))],Tuple Boxed [Lit (Int 311),Var (UnQual (Ident "happyReduce_311"))],Tuple Boxed [Lit (Int 312),Var (UnQual (Ident "happyReduce_312"))],Tuple Boxed [Lit (Int 313),Var (UnQual (Ident "happyReduce_313"))],Tuple Boxed [Lit (Int 314),Var (UnQual (Ident "happyReduce_314"))],Tuple Boxed [Lit (Int 315),Var (UnQual (Ident "happyReduce_315"))],Tuple Boxed [Lit (Int 316),Var (UnQual (Ident "happyReduce_316"))],Tuple Boxed [Lit (Int 317),Var (UnQual (Ident "happyReduce_317"))],Tuple Boxed [Lit (Int 318),Var (UnQual (Ident "happyReduce_318"))],Tuple Boxed [Lit (Int 319),Var (UnQual (Ident "happyReduce_319"))],Tuple Boxed [Lit (Int 320),Var (UnQual (Ident "happyReduce_320"))],Tuple Boxed [Lit (Int 321),Var (UnQual (Ident "happyReduce_321"))],Tuple Boxed [Lit (Int 322),Var (UnQual (Ident "happyReduce_322"))],Tuple Boxed [Lit (Int 323),Var (UnQual (Ident "happyReduce_323"))],Tuple Boxed [Lit (Int 324),Var (UnQual (Ident "happyReduce_324"))],Tuple Boxed [Lit (Int 325),Var (UnQual (Ident "happyReduce_325"))],Tuple Boxed [Lit (Int 326),Var (UnQual (Ident "happyReduce_326"))],Tuple Boxed [Lit (Int 327),Var (UnQual (Ident "happyReduce_327"))],Tuple Boxed [Lit (Int 328),Var (UnQual (Ident "happyReduce_328"))],Tuple Boxed [Lit (Int 329),Var (UnQual (Ident "happyReduce_329"))],Tuple Boxed [Lit (Int 330),Var (UnQual (Ident "happyReduce_330"))],Tuple Boxed [Lit (Int 331),Var (UnQual (Ident "happyReduce_331"))],Tuple Boxed [Lit (Int 332),Var (UnQual (Ident "happyReduce_332"))],Tuple Boxed [Lit (Int 333),Var (UnQual (Ident "happyReduce_333"))],Tuple Boxed [Lit (Int 334),Var (UnQual (Ident "happyReduce_334"))],Tuple Boxed [Lit (Int 335),Var (UnQual (Ident "happyReduce_335"))],Tuple Boxed [Lit (Int 336),Var (UnQual (Ident "happyReduce_336"))],Tuple Boxed [Lit (Int 337),Var (UnQual (Ident "happyReduce_337"))],Tuple Boxed [Lit (Int 338),Var (UnQual (Ident "happyReduce_338"))],Tuple Boxed [Lit (Int 339),Var (UnQual (Ident "happyReduce_339"))],Tuple Boxed [Lit (Int 340),Var (UnQual (Ident "happyReduce_340"))],Tuple Boxed [Lit (Int 341),Var (UnQual (Ident "happyReduce_341"))],Tuple Boxed [Lit (Int 342),Var (UnQual (Ident "happyReduce_342"))],Tuple Boxed [Lit (Int 343),Var (UnQual (Ident "happyReduce_343"))],Tuple Boxed [Lit (Int 344),Var (UnQual (Ident "happyReduce_344"))],Tuple Boxed [Lit (Int 345),Var (UnQual (Ident "happyReduce_345"))],Tuple Boxed [Lit (Int 346),Var (UnQual (Ident "happyReduce_346"))],Tuple Boxed [Lit (Int 347),Var (UnQual (Ident "happyReduce_347"))],Tuple Boxed [Lit (Int 348),Var (UnQual (Ident "happyReduce_348"))],Tuple Boxed [Lit (Int 349),Var (UnQual (Ident "happyReduce_349"))],Tuple Boxed [Lit (Int 350),Var (UnQual (Ident "happyReduce_350"))],Tuple Boxed [Lit (Int 351),Var (UnQual (Ident "happyReduce_351"))],Tuple Boxed [Lit (Int 352),Var (UnQual (Ident "happyReduce_352"))],Tuple Boxed [Lit (Int 353),Var (UnQual (Ident "happyReduce_353"))],Tuple Boxed [Lit (Int 354),Var (UnQual (Ident "happyReduce_354"))],Tuple Boxed [Lit (Int 355),Var (UnQual (Ident "happyReduce_355"))],Tuple Boxed [Lit (Int 356),Var (UnQual (Ident "happyReduce_356"))],Tuple Boxed [Lit (Int 357),Var (UnQual (Ident "happyReduce_357"))],Tuple Boxed [Lit (Int 358),Var (UnQual (Ident "happyReduce_358"))],Tuple Boxed [Lit (Int 359),Var (UnQual (Ident "happyReduce_359"))],Tuple Boxed [Lit (Int 360),Var (UnQual (Ident "happyReduce_360"))],Tuple Boxed [Lit (Int 361),Var (UnQual (Ident "happyReduce_361"))],Tuple Boxed [Lit (Int 362),Var (UnQual (Ident "happyReduce_362"))],Tuple Boxed [Lit (Int 363),Var (UnQual (Ident "happyReduce_363"))],Tuple Boxed [Lit (Int 364),Var (UnQual (Ident "happyReduce_364"))],Tuple Boxed [Lit (Int 365),Var (UnQual (Ident "happyReduce_365"))],Tuple Boxed [Lit (Int 366),Var (UnQual (Ident "happyReduce_366"))],Tuple Boxed [Lit (Int 367),Var (UnQual (Ident "happyReduce_367"))],Tuple Boxed [Lit (Int 368),Var (UnQual (Ident "happyReduce_368"))],Tuple Boxed [Lit (Int 369),Var (UnQual (Ident "happyReduce_369"))],Tuple Boxed [Lit (Int 370),Var (UnQual (Ident "happyReduce_370"))],Tuple Boxed [Lit (Int 371),Var (UnQual (Ident "happyReduce_371"))],Tuple Boxed [Lit (Int 372),Var (UnQual (Ident "happyReduce_372"))],Tuple Boxed [Lit (Int 373),Var (UnQual (Ident "happyReduce_373"))],Tuple Boxed [Lit (Int 374),Var (UnQual (Ident "happyReduce_374"))],Tuple Boxed [Lit (Int 375),Var (UnQual (Ident "happyReduce_375"))],Tuple Boxed [Lit (Int 376),Var (UnQual (Ident "happyReduce_376"))],Tuple Boxed [Lit (Int 377),Var (UnQual (Ident "happyReduce_377"))],Tuple Boxed [Lit (Int 378),Var (UnQual (Ident "happyReduce_378"))],Tuple Boxed [Lit (Int 379),Var (UnQual (Ident "happyReduce_379"))],Tuple Boxed [Lit (Int 380),Var (UnQual (Ident "happyReduce_380"))],Tuple Boxed [Lit (Int 381),Var (UnQual (Ident "happyReduce_381"))],Tuple Boxed [Lit (Int 382),Var (UnQual (Ident "happyReduce_382"))],Tuple Boxed [Lit (Int 383),Var (UnQual (Ident "happyReduce_383"))],Tuple Boxed [Lit (Int 384),Var (UnQual (Ident "happyReduce_384"))],Tuple Boxed [Lit (Int 385),Var (UnQual (Ident "happyReduce_385"))],Tuple Boxed [Lit (Int 386),Var (UnQual (Ident "happyReduce_386"))],Tuple Boxed [Lit (Int 387),Var (UnQual (Ident "happyReduce_387"))],Tuple Boxed [Lit (Int 388),Var (UnQual (Ident "happyReduce_388"))],Tuple Boxed [Lit (Int 389),Var (UnQual (Ident "happyReduce_389"))],Tuple Boxed [Lit (Int 390),Var (UnQual (Ident "happyReduce_390"))],Tuple Boxed [Lit (Int 391),Var (UnQual (Ident "happyReduce_391"))],Tuple Boxed [Lit (Int 392),Var (UnQual (Ident "happyReduce_392"))],Tuple Boxed [Lit (Int 393),Var (UnQual (Ident "happyReduce_393"))],Tuple Boxed [Lit (Int 394),Var (UnQual (Ident "happyReduce_394"))],Tuple Boxed [Lit (Int 395),Var (UnQual (Ident "happyReduce_395"))],Tuple Boxed [Lit (Int 396),Var (UnQual (Ident "happyReduce_396"))],Tuple Boxed [Lit (Int 397),Var (UnQual (Ident "happyReduce_397"))],Tuple Boxed [Lit (Int 398),Var (UnQual (Ident "happyReduce_398"))],Tuple Boxed [Lit (Int 399),Var (UnQual (Ident "happyReduce_399"))],Tuple Boxed [Lit (Int 400),Var (UnQual (Ident "happyReduce_400"))],Tuple Boxed [Lit (Int 401),Var (UnQual (Ident "happyReduce_401"))],Tuple Boxed [Lit (Int 402),Var (UnQual (Ident "happyReduce_402"))],Tuple Boxed [Lit (Int 403),Var (UnQual (Ident "happyReduce_403"))],Tuple Boxed [Lit (Int 404),Var (UnQual (Ident "happyReduce_404"))],Tuple Boxed [Lit (Int 405),Var (UnQual (Ident "happyReduce_405"))],Tuple Boxed [Lit (Int 406),Var (UnQual (Ident "happyReduce_406"))],Tuple Boxed [Lit (Int 407),Var (UnQual (Ident "happyReduce_407"))],Tuple Boxed [Lit (Int 408),Var (UnQual (Ident "happyReduce_408"))],Tuple Boxed [Lit (Int 409),Var (UnQual (Ident "happyReduce_409"))],Tuple Boxed [Lit (Int 410),Var (UnQual (Ident "happyReduce_410"))],Tuple Boxed [Lit (Int 411),Var (UnQual (Ident "happyReduce_411"))],Tuple Boxed [Lit (Int 412),Var (UnQual (Ident "happyReduce_412"))],Tuple Boxed [Lit (Int 413),Var (UnQual (Ident "happyReduce_413"))],Tuple Boxed [Lit (Int 414),Var (UnQual (Ident "happyReduce_414"))],Tuple Boxed [Lit (Int 415),Var (UnQual (Ident "happyReduce_415"))],Tuple Boxed [Lit (Int 416),Var (UnQual (Ident "happyReduce_416"))],Tuple Boxed [Lit (Int 417),Var (UnQual (Ident "happyReduce_417"))],Tuple Boxed [Lit (Int 418),Var (UnQual (Ident "happyReduce_418"))],Tuple Boxed [Lit (Int 419),Var (UnQual (Ident "happyReduce_419"))],Tuple Boxed [Lit (Int 420),Var (UnQual (Ident "happyReduce_420"))],Tuple Boxed [Lit (Int 421),Var (UnQual (Ident "happyReduce_421"))],Tuple Boxed [Lit (Int 422),Var (UnQual (Ident "happyReduce_422"))],Tuple Boxed [Lit (Int 423),Var (UnQual (Ident "happyReduce_423"))],Tuple Boxed [Lit (Int 424),Var (UnQual (Ident "happyReduce_424"))],Tuple Boxed [Lit (Int 425),Var (UnQual (Ident "happyReduce_425"))],Tuple Boxed [Lit (Int 426),Var (UnQual (Ident "happyReduce_426"))],Tuple Boxed [Lit (Int 427),Var (UnQual (Ident "happyReduce_427"))],Tuple Boxed [Lit (Int 428),Var (UnQual (Ident "happyReduce_428"))],Tuple Boxed [Lit (Int 429),Var (UnQual (Ident "happyReduce_429"))],Tuple Boxed [Lit (Int 430),Var (UnQual (Ident "happyReduce_430"))],Tuple Boxed [Lit (Int 431),Var (UnQual (Ident "happyReduce_431"))],Tuple Boxed [Lit (Int 432),Var (UnQual (Ident "happyReduce_432"))],Tuple Boxed [Lit (Int 433),Var (UnQual (Ident "happyReduce_433"))],Tuple Boxed [Lit (Int 434),Var (UnQual (Ident "happyReduce_434"))],Tuple Boxed [Lit (Int 435),Var (UnQual (Ident "happyReduce_435"))],Tuple Boxed [Lit (Int 436),Var (UnQual (Ident "happyReduce_436"))],Tuple Boxed [Lit (Int 437),Var (UnQual (Ident "happyReduce_437"))],Tuple Boxed [Lit (Int 438),Var (UnQual (Ident "happyReduce_438"))],Tuple Boxed [Lit (Int 439),Var (UnQual (Ident "happyReduce_439"))],Tuple Boxed [Lit (Int 440),Var (UnQual (Ident "happyReduce_440"))],Tuple Boxed [Lit (Int 441),Var (UnQual (Ident "happyReduce_441"))],Tuple Boxed [Lit (Int 442),Var (UnQual (Ident "happyReduce_442"))],Tuple Boxed [Lit (Int 443),Var (UnQual (Ident "happyReduce_443"))],Tuple Boxed [Lit (Int 444),Var (UnQual (Ident "happyReduce_444"))],Tuple Boxed [Lit (Int 445),Var (UnQual (Ident "happyReduce_445"))],Tuple Boxed [Lit (Int 446),Var (UnQual (Ident "happyReduce_446"))],Tuple Boxed [Lit (Int 447),Var (UnQual (Ident "happyReduce_447"))],Tuple Boxed [Lit (Int 448),Var (UnQual (Ident "happyReduce_448"))],Tuple Boxed [Lit (Int 449),Var (UnQual (Ident "happyReduce_449"))],Tuple Boxed [Lit (Int 450),Var (UnQual (Ident "happyReduce_450"))],Tuple Boxed [Lit (Int 451),Var (UnQual (Ident "happyReduce_451"))],Tuple Boxed [Lit (Int 452),Var (UnQual (Ident "happyReduce_452"))],Tuple Boxed [Lit (Int 453),Var (UnQual (Ident "happyReduce_453"))],Tuple Boxed [Lit (Int 454),Var (UnQual (Ident "happyReduce_454"))],Tuple Boxed [Lit (Int 455),Var (UnQual (Ident "happyReduce_455"))],Tuple Boxed [Lit (Int 456),Var (UnQual (Ident "happyReduce_456"))],Tuple Boxed [Lit (Int 457),Var (UnQual (Ident "happyReduce_457"))],Tuple Boxed [Lit (Int 458),Var (UnQual (Ident "happyReduce_458"))],Tuple Boxed [Lit (Int 459),Var (UnQual (Ident "happyReduce_459"))],Tuple Boxed [Lit (Int 460),Var (UnQual (Ident "happyReduce_460"))],Tuple Boxed [Lit (Int 461),Var (UnQual (Ident "happyReduce_461"))],Tuple Boxed [Lit (Int 462),Var (UnQual (Ident "happyReduce_462"))],Tuple Boxed [Lit (Int 463),Var (UnQual (Ident "happyReduce_463"))]]))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happy_n_terms")) (UnGuardedRhs (ExpTypeSig (SrcLoc "" -1 -1) (Lit (Int 102)) (TyCon (UnQual (Ident "Int"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happy_n_nonterms")) (UnGuardedRhs (ExpTypeSig (SrcLoc "" -1 -1) (Lit (Int 125)) (TyCon (UnQual (Ident "Int"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_4")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 0))) (Var (UnQual (Ident "happyReduction_4"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_4") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "decls")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Case (Var (UnQual (Ident "decls"))) [Alt (SrcLoc "" -1 -1) (PList []) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "n")) (Var (UnQual (Ident "getNewName"))),Generator (SrcLoc "" -1 -1) (PVar (Ident "p")) (Var (UnQual (Ident "getCurrentPosition"))),Qualifier (InfixApp (Var (UnQual (Ident "return"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CTranslUnit"))) (Var (UnQual (Ident "decls")))) (Paren (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "p")))) (Tuple Boxed [Var (UnQual (Ident "p")),Lit (Int 0)])) (Var (UnQual (Ident "n")))))))])) (BDecls []),Alt (SrcLoc "" -1 -1) (PParen (PInfixApp (PVar (Ident "d")) (Special Cons) (PVar (Ident "ds")))) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "d")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CTranslUnit"))) (Var (UnQual (Ident "decls")))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn7"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_5")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_5"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_5")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_6")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_6"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_6") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_7")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 1))) (Var (UnQual (Ident "happyReduction_7"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_7") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut8"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn8"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_8")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_8"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_8") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut10"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (App (Con (UnQual (Ident "CFDefExt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_9")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_9"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_9") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (App (Con (UnQual (Ident "CDeclExt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_10")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_10"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_10") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn9"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_11")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 2))) (Var (UnQual (Ident "happyReduction_11"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_11") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAsmExt"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn9"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_12")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_12"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_12") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (List [])) (Var (UnQual (Ident "happy_var_1")))) (List [])) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_13")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_13"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_13") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_14")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_14"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_14") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_15")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_15"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_15") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_16")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_16"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_16") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_17")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_17"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_17") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_18")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_18"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_18") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (List [])) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_19")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_19"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_19") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (List [])) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_20")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_20"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_20") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_21")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_21"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_21") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_22")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_22"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_22") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_23")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_23"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_23") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_24")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_24"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_24") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_25")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 3))) (Var (UnQual (Ident "happyReduction_25"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_25") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut76"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn10"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_26")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 4))) (Var (UnQual (Ident "happyReduction_26"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_26") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declr")) (UnGuardedRhs (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (InfixApp (InfixApp (Var (UnQual (Ident "enterScope"))) (QVarOp (UnQual (Symbol ">>"))) (App (Var (UnQual (Ident "doFuncParamDeclIdent"))) (Var (UnQual (Ident "declr"))))) (QVarOp (UnQual (Symbol ">>"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "declr")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn11"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_27")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_27"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_27") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut13"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_28")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_28"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_28") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_29")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_29"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_29") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut22"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_30")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_30"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_30") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut23"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_31")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_31"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_31") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut24"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_32")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_32"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_32") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut25"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn12"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_33")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 5))) (Var (UnQual (Ident "happyReduction_33"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_33") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut26"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (App (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Con (UnQual (Ident "CAsm"))) (Var (UnQual (Ident "happy_var_1")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn12"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_34")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_34"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_34") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CLabel"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_35")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_35"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_35") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCase"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_36")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_36"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_36") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CDefault"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_37")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 6))) (Var (UnQual (Ident "happyReduction_37"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_37") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCases"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn13"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_38")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 7))) (Var (UnQual (Ident "happyReduction_38"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_38") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompound"))) (List [])) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn14"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_39")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 7))) (Var (UnQual (Ident "happyReduction_39"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_39") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut21"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompound"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn14"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_40")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 0))) (Lit (PrimInt 8))) (Var (UnQual (Ident "happyReduction_40"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_40") [PParen (PVar (Ident "happyRest")),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Paren (Var (UnQual (Ident "enterScope")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn15"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_41")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 0))) (Lit (PrimInt 9))) (Var (UnQual (Ident "happyReduction_41"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_41") [PParen (PVar (Ident "happyRest")),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Paren (Var (UnQual (Ident "leaveScope")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn16"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_42")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 10))) (Var (UnQual (Ident "happyReduction_42"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_42")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn17"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_43")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 10))) (Var (UnQual (Ident "happyReduction_43"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_43") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut17"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut18"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn17"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_44")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 11))) (Var (UnQual (Ident "happyReduction_44"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_44") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn18"))) (Paren (App (Con (UnQual (Ident "CBlockStmt"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_45")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 11))) (Var (UnQual (Ident "happyReduction_45"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_45") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut19"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn18"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_46")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_46"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_46") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (App (Con (UnQual (Ident "CBlockDecl"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_47")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_47"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_47") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut20"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (App (Con (UnQual (Ident "CNestedFunDef"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_48")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 12))) (Var (UnQual (Ident "happyReduction_48"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_48") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut19"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn19"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_49")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_49"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_49") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_50")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_50"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_50") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_51")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_51"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_51") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_52")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_52"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_52") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2")))) (List [])) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_53")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 13))) (Var (UnQual (Ident "happyReduction_53"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_53") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut11"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "leaveScope"))) (QVarOp (UnQual (Symbol ">>"))) (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFunDef"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (Var (UnQual (Ident "happy_var_3")))) (List [])) (Var (UnQual (Ident "happy_var_4"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn20"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_54")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 14))) (Var (UnQual (Ident "happyReduction_54"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_54") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn21"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_55")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 14))) (Var (UnQual (Ident "happyReduction_55"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_55") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut21"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn21"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "rappendr"))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_56")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 15))) (Var (UnQual (Ident "happyReduction_56"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_56") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CExpr"))) (Con (UnQual (Ident "Nothing"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn22"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_57")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 15))) (Var (UnQual (Ident "happyReduction_57"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_57") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CExpr"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn22"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_58")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_58"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_58") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CIf"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Con (UnQual (Ident "Nothing"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_59")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_59"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_59") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CIf"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_7"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_60")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 16))) (Var (UnQual (Ident "happyReduction_60"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_60") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CSwitch"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn23"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_61")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_61"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_61") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CWhile"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))) (Con (UnQual (Ident "False"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_62")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_62"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_62") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CWhile"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_2")))) (Con (UnQual (Ident "True"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_63")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 9))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_63"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_63") [PParen (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_9")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_9")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFor"))) (Paren (App (Con (UnQual (Ident "Left"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_7")))) (Var (UnQual (Ident "happy_var_9"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_64")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 10))) (Lit (PrimInt 17))) (Var (UnQual (Ident "happyReduction_64"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_64") [PParen (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_7")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_7")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "happy_x_9")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_9")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CFor"))) (Paren (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "happy_var_7")))) (Var (UnQual (Ident "happy_var_9"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn24"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_65")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_65"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_65") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CGoto"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_66")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_66"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_66") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CGotoPtr"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_67")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_67"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_67") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CCont")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_68")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_68"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_68") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CBreak")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_69")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 18))) (Var (UnQual (Ident "happyReduction_69"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_69") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut119"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CReturn"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn25"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_70")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_70"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_70") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (List [])) (List [])) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_71")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 8))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_71"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_71") [PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (List [])) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_72")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 10))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_72"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_72") [PParen (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_8")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_8")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (Var (UnQual (Ident "happy_var_8")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_73")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 12))) (Lit (PrimInt 19))) (Var (UnQual (Ident "happyReduction_73"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_73") [PParen (PInfixApp (PVar (Ident "happy_x_12")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_11")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_10")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_9")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_8")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut27"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut28"))) (Var (UnQual (Ident "happy_x_8")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_8")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut31"))) (Var (UnQual (Ident "happy_x_10")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_10")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CAsmStmt"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6")))) (Var (UnQual (Ident "happy_var_8")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_10"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn26"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_74")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 20))) (Var (UnQual (Ident "happyReduction_74"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_74")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn27"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_75")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 20))) (Var (UnQual (Ident "happyReduction_75"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_75") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn27"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_76")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 21))) (Var (UnQual (Ident "happyReduction_76"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_76")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn28"))) (Paren (List [])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_77")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 21))) (Var (UnQual (Ident "happyReduction_77"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_77") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut29"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn28"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_78")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 22))) (Var (UnQual (Ident "happyReduction_78"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_78") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut30"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn29"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_79")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 22))) (Var (UnQual (Ident "happyReduction_79"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_79") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut29"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut30"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn29"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_80")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_80"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_80") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_81")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_81"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_81") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_82")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 23))) (Var (UnQual (Ident "happyReduction_82"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_82") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAsmOperand"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_6"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn30"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_83")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 24))) (Var (UnQual (Ident "happyReduction_83"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_83") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn31"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_84")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 24))) (Var (UnQual (Ident "happyReduction_84"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_84") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut31"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn31"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_85")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_85"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_85") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_86")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_86"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_86") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_87")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_87"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_87") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut36"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (Paren (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies"))))))))) (BDecls [])]))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_88")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 25))) (Var (UnQual (Ident "happyReduction_88"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_88") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut34"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (Paren (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies"))))))))) (BDecls [])]))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn32"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_89")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 26))) (Var (UnQual (Ident "happyReduction_89"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_89")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn33"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_90")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 26))) (Var (UnQual (Ident "happyReduction_90"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_90") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut33"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut32"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn33"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_91")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_91"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_91") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_92")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_92"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_92") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_93")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_93"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_93") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "happy_var_3")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (Var (UnQual (Ident "declspecs"))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_5")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_94")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_94"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_94") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "declspecs")) (UnGuardedRhs (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1"))))) (BDecls [])]) (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))])))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_95")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 27))) (Var (UnQual (Ident "happyReduction_95"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_95") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut34"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Tuple Boxed [App (Var (UnQual (Ident "fst"))) (Var (UnQual (Ident "happy_var_5"))),InfixApp (App (Var (UnQual (Ident "snd"))) (Var (UnQual (Ident "happy_var_5")))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_3")))])) (Var (UnQual (Ident "happy_var_4")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withLength"))) (Var (UnQual (Ident "at")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_6")),Con (UnQual (Ident "Nothing"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))))])) (BDecls [])]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn34"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_96")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 28))) (Var (UnQual (Ident "happyReduction_96"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_96") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut64"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn35"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Var (UnQual (Ident "happy_var_2"))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_97")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_97"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_97") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_98")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_98"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_98") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "declr")))),Qualifier (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_4")),Con (UnQual (Ident "Nothing"))]])))]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_99")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 29))) (Var (UnQual (Ident "happyReduction_99"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_99") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut36"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut35"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut91"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "declr")) (App (App (Var (UnQual (Ident "withAsmNameAttrs"))) (Tuple Boxed [App (Var (UnQual (Ident "fst"))) (Var (UnQual (Ident "happy_var_5"))),InfixApp (App (Var (UnQual (Ident "snd"))) (Var (UnQual (Ident "happy_var_5")))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_3")))])) (Var (UnQual (Ident "happy_var_4")))),Qualifier (App (App (Var (UnQual (Ident "doDeclIdent"))) (Var (UnQual (Ident "declspecs")))) (Var (UnQual (Ident "declr")))),Qualifier (App (Var (UnQual (Ident "return"))) (Paren (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "declr"))))),Var (UnQual (Ident "happy_var_6")),Con (UnQual (Ident "Nothing"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))))])) (BDecls [])]))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn36"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_100")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_100"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_100") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_101")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_101"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_101") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_102")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 30))) (Var (UnQual (Ident "happyReduction_102"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_102") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn37"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_103")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_103"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_103") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_104")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_104"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_104") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_105")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_105"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_105") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_106")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_106"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_106") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_107")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_107"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_107") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_108")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 31))) (Var (UnQual (Ident "happyReduction_108"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_108") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn38"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_109")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 32))) (Var (UnQual (Ident "happyReduction_109"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_109") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn39"))) (Paren (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_110")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 32))) (Var (UnQual (Ident "happyReduction_110"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_110") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn39"))) (Paren (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_111")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_111"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_111") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CTypedef")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_112")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_112"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_112") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CExtern")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_113")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_113"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_113") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CStatic")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_114")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_114"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_114") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CAuto")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_115")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_115"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_115") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CRegister")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_116")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 33))) (Var (UnQual (Ident "happyReduction_116"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_116") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CThread")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn40"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_117")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_117"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_117") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_118")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_118"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_118") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_119")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 34))) (Var (UnQual (Ident "happyReduction_119"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_119") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn41"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_120")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_120"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_120") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CVoidType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_121")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_121"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_121") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CCharType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_122")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_122"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_122") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CShortType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_123")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_123"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_123") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CIntType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_124")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_124"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_124") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CLongType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_125")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_125"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_125") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CFloatType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_126")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_126"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_126") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CDoubleType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_127")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_127"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_127") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CSignedType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_128")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_128"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_128") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CUnsigType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_129")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_129"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_129") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CBoolType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_130")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 35))) (Var (UnQual (Ident "happyReduction_130"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_130") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CComplexType")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn42"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_131")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_131"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_131") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_132")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_132"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_132") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_133")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_133"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_133") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_134")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_134"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_134") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_135")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 36))) (Var (UnQual (Ident "happyReduction_135"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_135") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut43"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn43"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_136")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_136"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_136") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_137")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_137"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_137") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "reverseList"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_138")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_138"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_138") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_139")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_139"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_139") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_140")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_140"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_140") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_141")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_141"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_141") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut42"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_142")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 37))) (Var (UnQual (Ident "happyReduction_142"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_142") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut44"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn44"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_143")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_143"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_143") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_144")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_144"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_144") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_145")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_145"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_145") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_146")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 38))) (Var (UnQual (Ident "happyReduction_146"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_146") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut45"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn45"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_147")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_147"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_147") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_148")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_148"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_148") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "reverseList"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_149")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_149"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_149") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_150")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_150"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_150") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut49"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_151")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_151"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_151") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_152")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 39))) (Var (UnQual (Ident "happyReduction_152"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_152") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut46"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn46"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_153")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_153"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_153") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut40"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CStorageSpec"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_154")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_154"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_154") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_155")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_155"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_155") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_156")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_156"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_156") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn47"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_157")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_157"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_157") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut39"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_158")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 40))) (Var (UnQual (Ident "happyReduction_158"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_158") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut47"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn47"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_159")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_159"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_159") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_160")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_160"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_160") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_161")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_161"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_161") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "singleton"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_162")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_162"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_162") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_163")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_163"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_163") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_164")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_164"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_164") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_165")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_165"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_165") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_2")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_166")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_166"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_166") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_167")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_167"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_167") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Paren (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_168")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_168"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_168") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_3")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeDef"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_169")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_169"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_169") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfExpr"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_170")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_170"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_170") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (InfixApp (InfixApp (App (App (Var (UnQual (Ident "rmap"))) (Con (UnQual (Ident "CTypeQual")))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CTypeOfType"))) (Var (UnQual (Ident "happy_var_5")))) (Var (UnQual (Ident "at"))))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn48"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_171")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_171"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_171") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn48"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeQual"))) (Var (UnQual (Ident "happy_var_2")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_172")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 41))) (Var (UnQual (Ident "happyReduction_172"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_172") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut48"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn48"))) (Paren (App (App (Var (UnQual (Ident "addTrailingAttrs"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_173")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 42))) (Var (UnQual (Ident "happyReduction_173"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_173") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut50"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSUType"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn49"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_174")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 42))) (Var (UnQual (Ident "happyReduction_174"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_174") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut58"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CEnumType"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn49"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_175")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_175"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_175") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_176")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_176"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_176") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_177")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 43))) (Var (UnQual (Ident "happyReduction_177"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_177") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut51"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn50"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_178")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 44))) (Var (UnQual (Ident "happyReduction_178"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_178") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn51"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CStructTag")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_179")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 44))) (Var (UnQual (Ident "happyReduction_179"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_179") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn51"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CUnionTag")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_180")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_180"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_180")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_181")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_181"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_181") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_182")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 45))) (Var (UnQual (Ident "happyReduction_182"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_182") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut52"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut53"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn52"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_183")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_183"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_183") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut55"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_184")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_184"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_184") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut54"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (App (Var (Qual (ModuleName "List") (Ident "reverse"))) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_185")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 46))) (Var (UnQual (Ident "happyReduction_185"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_185") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut53"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn53"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_186")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_186"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_186") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_3"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "d"),PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List [Tuple Boxed [Var (UnQual (Ident "d")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn54"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_187")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_187"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_187") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "d"),PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [Var (UnQual (Ident "d")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn54"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_188")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 47))) (Var (UnQual (Ident "happyReduction_188"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_188") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut54"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn54"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "at")]) (UnGuardedRhs (Case (Var (UnQual (Ident "happy_var_4"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "at"))))) (BDecls [])])) (BDecls [])]))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_189")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_189"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_189") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut56"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]]))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn55"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_190")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_190"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_190") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut55"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut56"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn55"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PVar (Ident "declspecs"),PVar (Ident "dies"),PVar (Ident "attr")]) (UnGuardedRhs (Case (Var (UnQual (Ident "happy_var_4"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "d")],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendObjAttrs"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (Var (UnQual (Ident "d")))),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "attr"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "s")]) (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "declspecs")))) (Paren (InfixApp (Tuple Boxed [Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "s"))]) (QConOp (Special Cons)) (Var (UnQual (Ident "dies")))))) (Var (UnQual (Ident "attr"))))) (BDecls [])])) (BDecls [])]))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_191")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 48))) (Var (UnQual (Ident "happyReduction_191"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_191") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn55"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_192")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_192"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_192") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_193")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_193"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_193") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [Con (UnQual (Ident "Nothing")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_194")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 49))) (Var (UnQual (Ident "happyReduction_194"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_194") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut63"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn56"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_195")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_195"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_195") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_196")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_196"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_196") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [Con (UnQual (Ident "Nothing")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2")))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_197")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_197"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_197") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_198")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 50))) (Var (UnQual (Ident "happyReduction_198"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_198") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut57"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn57"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Nothing")) [],PVar (Ident "expr")]) (UnGuardedRhs (Tuple Boxed [Con (UnQual (Ident "Nothing")),Var (UnQual (Ident "expr"))])) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "name"),PVar (Ident "derived"),PVar (Ident "asmname"),PVar (Ident "attrs"),PVar (Ident "node")])],PVar (Ident "bsz")]) (UnGuardedRhs (Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "name")))) (Var (UnQual (Ident "derived")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "node"))))),Var (UnQual (Ident "bsz"))])) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_199")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_199"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_199") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_200")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_200"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_200") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Con (UnQual (Ident "Nothing")))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_201")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_201"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_201") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_202")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_202"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_202") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Paren (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_203")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 51))) (Var (UnQual (Ident "happyReduction_203"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_203") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CEnum"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn58"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_204")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 52))) (Var (UnQual (Ident "happyReduction_204"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_204") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut60"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn59"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_205")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 52))) (Var (UnQual (Ident "happyReduction_205"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_205") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut59"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut60"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn59"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_206")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 53))) (Var (UnQual (Ident "happyReduction_206"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_206") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn60"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Con (UnQual (Ident "Nothing"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_207")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 53))) (Var (UnQual (Ident "happyReduction_207"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_207") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn60"))) (Paren (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_208")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_208"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_208") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CConstQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_209")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_209"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_209") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CVolatQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_210")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_210"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_210") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CRestrQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_211")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 54))) (Var (UnQual (Ident "happyReduction_211"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_211") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Con (UnQual (Ident "CInlineQual")))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn61"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_212")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_212"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_212") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (App (Var (UnQual (Ident "reverseList"))) (Paren (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "happy_var_1")))))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_213")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_213"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_213") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_214")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 55))) (Var (UnQual (Ident "happyReduction_214"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_214") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut61"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn62"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "rappend"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "happy_var_2")))))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_215")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 56))) (Var (UnQual (Ident "happyReduction_215"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_215") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn63"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_216")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 56))) (Var (UnQual (Ident "happyReduction_216"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_216") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut65"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn63"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_217")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 57))) (Var (UnQual (Ident "happyReduction_217"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_217")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn64"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_218")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 57))) (Var (UnQual (Ident "happyReduction_218"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_218") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn64"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_219")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 58))) (Var (UnQual (Ident "happyReduction_219"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_219") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn65"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_220")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 58))) (Var (UnQual (Ident "happyReduction_220"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_220") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn65"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_221")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_221"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_221") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn66"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_222")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_222"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_222") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (App (Var (UnQual (Ident "happy_var_2"))) (Paren (App (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn66"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_223")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 59))) (Var (UnQual (Ident "happyReduction_223"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_223") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn66"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_224")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_224"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_224") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut68"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn67"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_225")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_225"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_225") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_226")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_226"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_226") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_227")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_227"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_227") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_228")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 60))) (Var (UnQual (Ident "happyReduction_228"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_228") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn67"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_229")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_229"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_229") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn68"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_230")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_230"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_230") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_231")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_231"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_231") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_232")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 61))) (Var (UnQual (Ident "happyReduction_232"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_232") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut67"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn68"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_233")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_233"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_233") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut70"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn69"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_234")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_234"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_234") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_235")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_235"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_235") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_236")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_236"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_236") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_5")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_237")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_237"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_237") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_238")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_238"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_238") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_239")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 62))) (Var (UnQual (Ident "happyReduction_239"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_239") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn69"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_240")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_240"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_240") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn70"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_241")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_241"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_241") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn70"))) (Paren (App (Var (UnQual (Ident "happy_var_3"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_242")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 63))) (Var (UnQual (Ident "happyReduction_242"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_242") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut69"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn70"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_243")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 64))) (Var (UnQual (Ident "happyReduction_243"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_243") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn71"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_244")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 64))) (Var (UnQual (Ident "happyReduction_244"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_244") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut71"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn71"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_245")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 65))) (Var (UnQual (Ident "happyReduction_245"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_245") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn72"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_246")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 65))) (Var (UnQual (Ident "happyReduction_246"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_246") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn72"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_247")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_247"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_247") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut74"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn73"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_248")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_248"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_248") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_249")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_249"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_249") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_250")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_250"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_250") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_251")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 66))) (Var (UnQual (Ident "happyReduction_251"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_251") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_4")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn73"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_252")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_252"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_252") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (Var (UnQual (Ident "happy_var_2"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_253")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_253"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_253") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn74"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_254")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_254"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_254") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_255")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_255"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_255") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_256")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 67))) (Var (UnQual (Ident "happyReduction_256"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_256") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut73"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn74"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_257")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_257"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_257") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkVarDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn75"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_258")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_258"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_258") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn75"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_259")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 68))) (Var (UnQual (Ident "happyReduction_259"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_259") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn75"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_260")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 69))) (Var (UnQual (Ident "happyReduction_260"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_260") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn76"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_261")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_261"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_261") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut78"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn77"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_262")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_262"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_262") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn77"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_263")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 70))) (Var (UnQual (Ident "happyReduction_263"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_263") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn77"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_264")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_264"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_264") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut75"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Var (UnQual (Ident "funDeclr"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Con (UnQual (Ident "Left"))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn78"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_265")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_265"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_265") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn78"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_266")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 71))) (Var (UnQual (Ident "happyReduction_266"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_266") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut77"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn78"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_267")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_267"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_267")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [List [],Con (UnQual (Ident "False"))])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_268")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_268"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_268") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))),Con (UnQual (Ident "False"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_269")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 72))) (Var (UnQual (Ident "happyReduction_269"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_269") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn79"))) (Paren (Tuple Boxed [App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))),Con (UnQual (Ident "True"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_270")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 73))) (Var (UnQual (Ident "happyReduction_270"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_270") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut81"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn80"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_271")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 73))) (Var (UnQual (Ident "happyReduction_271"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_271") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut80"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut81"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn80"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_272")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_272"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_272") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_273")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_273"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_273") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_274")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_274"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_274") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_275")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_275"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_275") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut37"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_276")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_276"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_276") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_277")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_277"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_277") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_278")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_278"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_278") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut38"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_279")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_279"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_279") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_280")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_280"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_280") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_281")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_281"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_281") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_282")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_282"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_282") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut66"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$!"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_283")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_283"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_283") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_284")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_284"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_284") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_285")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_285"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_285") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_286")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 74))) (Var (UnQual (Ident "happyReduction_286"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_286") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut72"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (InfixApp (Var (UnQual (Ident "reverseDeclr"))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_2")))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn81"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_287")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 75))) (Var (UnQual (Ident "happyReduction_287"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_287") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn82"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_288")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 75))) (Var (UnQual (Ident "happyReduction_288"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_288") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut82"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_3")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn82"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_289")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_289"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_289") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_290")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_290"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_290") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut41"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Var (UnQual (Ident "happy_var_1")))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_291")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_291"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_291") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (InfixApp (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "++"))) (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "happy_var_2"))))))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_292")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 76))) (Var (UnQual (Ident "happyReduction_292"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_292") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CDecl"))) (Paren (App (Var (UnQual (Ident "liftTypeQuals"))) (Var (UnQual (Ident "happy_var_1")))))) (List [Tuple Boxed [App (Con (UnQual (Ident "Just"))) (Paren (App (Var (UnQual (Ident "reverseDeclr"))) (Var (UnQual (Ident "happy_var_2"))))),Con (UnQual (Ident "Nothing")),Con (UnQual (Ident "Nothing"))]]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn83"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_293")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_293"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_293") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_294")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_294"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_294") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_295")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 77))) (Var (UnQual (Ident "happyReduction_295"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_295") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn84"))) (Paren (App (Var (UnQual (Ident "happy_var_1"))) (Var (UnQual (Ident "emptyDeclr"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_296")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 78))) (Var (UnQual (Ident "happyReduction_296"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_296") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut86"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn85"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_297")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 78))) (Var (UnQual (Ident "happyReduction_297"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_297") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut79"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "params"),PVar (Ident "variadic")]) (UnGuardedRhs (App (App (App (App (Var (UnQual (Ident "funDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Con (UnQual (Ident "Right"))) (Tuple Boxed [Var (UnQual (Ident "params")),Var (UnQual (Ident "variadic"))])))) (List [])) (Var (UnQual (Ident "at"))))) (BDecls [])]))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn85"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_298")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 79))) (Var (UnQual (Ident "happyReduction_298"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_298") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut87"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn86"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_299")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 79))) (Var (UnQual (Ident "happyReduction_299"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_299") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut86"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut87"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn86"))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "decl")] (App (Var (UnQual (Ident "happy_var_2"))) (Paren (App (Var (UnQual (Ident "happy_var_1"))) (Var (UnQual (Ident "decl")))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_300")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_300"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_300") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_301")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_301"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_301") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_302")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_302"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_302") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_303")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_303"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_303") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut120"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "False")))) (Var (UnQual (Ident "happy_var_4")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_304")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_304"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_304") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_4")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_305")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_305"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_305") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_5")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_306")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_306"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_306") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_6")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_6")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "True")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_6")))))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_307")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_307"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_307") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_308")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_308"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_308") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_2"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_4")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (List [])) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_309")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_309"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_309") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_4")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_310")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 80))) (Var (UnQual (Ident "happyReduction_310"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_310") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttributePF"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_3"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_5")))))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at"),PVar (Ident "declr")] (App (App (App (App (App (App (Var (UnQual (Ident "arrDeclr"))) (Var (UnQual (Ident "declr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))) (Con (UnQual (Ident "True")))) (Con (UnQual (Ident "False")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "at")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn87"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_311")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_311"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_311") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_312")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_312"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_312") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut126"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_313")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_313"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_313") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_2")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_314")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_314"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_314") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut62"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_315")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_315"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_315") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "emptyDeclr")))) (List []))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_316")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 81))) (Var (UnQual (Ident "happyReduction_316"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_316") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut84"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (App (Var (UnQual (Ident "withAttribute"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_2")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Var (UnQual (Ident "ptrDeclr"))) (Var (UnQual (Ident "happy_var_3")))) (List []))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn88"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_317")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_317"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_317") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_318")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_318"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_318") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_319")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_319"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_319") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (Var (UnQual (Ident "happy_var_2"))) (Var (UnQual (Ident "emptyDeclr"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_320")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_320"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_320") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (Var (UnQual (Ident "happy_var_4"))) (Var (UnQual (Ident "happy_var_2")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_321")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_321"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_321") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_322")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_322"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_322") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_3")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_323")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_323"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_323") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_3"))) (Var (UnQual (Ident "emptyDeclr")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_324")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_324"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_324") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut88"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut85"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "happy_var_5"))) (Var (UnQual (Ident "happy_var_3")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_325")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 82))) (Var (UnQual (Ident "happyReduction_325"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_325") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut89"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn89"))) (Paren (App (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_326")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_326"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_326") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitExpr"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_327")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_327"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_327") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitList"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_328")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 83))) (Var (UnQual (Ident "happyReduction_328"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_328") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CInitList"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn90"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_329")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 84))) (Var (UnQual (Ident "happyReduction_329"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_329")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn91"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_330")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 84))) (Var (UnQual (Ident "happyReduction_330"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_330") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn91"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_331")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_331"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_331")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (Var (UnQual (Ident "empty")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_332")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_332"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_332") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Tuple Boxed [List [],Var (UnQual (Ident "happy_var_1"))]))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_333")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_333"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_333") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut93"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Tuple Boxed [Var (UnQual (Ident "happy_var_1")),Var (UnQual (Ident "happy_var_2"))]))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_334")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_334"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_334") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn92"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Tuple Boxed [List [],Var (UnQual (Ident "happy_var_3"))]))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_335")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 85))) (Var (UnQual (Ident "happyReduction_335"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_335") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut93"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut90"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn92"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Tuple Boxed [Var (UnQual (Ident "happy_var_3")),Var (UnQual (Ident "happy_var_4"))])))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_336")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_336"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_336") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut94"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn93"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_337")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_337"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_337") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Lambda (SrcLoc "" -1 -1) [PVar (Ident "at")] (List [App (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "at")))]))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn93"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_338")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 86))) (Var (UnQual (Ident "happyReduction_338"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_338") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut96"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn93"))) (Paren (List [Var (UnQual (Ident "happy_var_1"))])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_339")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 87))) (Var (UnQual (Ident "happyReduction_339"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_339") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut95"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn94"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_340")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 87))) (Var (UnQual (Ident "happyReduction_340"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_340") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut94"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut95"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn94"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_341")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_341"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_341") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CArrDesig"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn95"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_342")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_342"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_342") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn95"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_343")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 88))) (Var (UnQual (Ident "happyReduction_343"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_343") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut96"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn95"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_344")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 89))) (Var (UnQual (Ident "happyReduction_344"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_344") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CRangeDesig"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn96"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_345")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_345"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_345") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CVar"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_346")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_346"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_346") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut122"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (App (Con (UnQual (Ident "CConst"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_347")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_347"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_347") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut123"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (App (Con (UnQual (Ident "CConst"))) (Paren (App (Var (UnQual (Ident "liftStrLit"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_348")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_348"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_348") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn97"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_349")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_349"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_349") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut14"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CStatExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_350")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_350"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_350") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinVaArg"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_351")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_351"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_351") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinOffsetOf"))) (Var (UnQual (Ident "happy_var_3")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5")))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_352")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 90))) (Var (UnQual (Ident "happyReduction_352"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_352") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "CBuiltinExpr"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CBuiltinTypesCompatible"))) (Var (UnQual (Ident "happy_var_3")))) (Var (UnQual (Ident "happy_var_5")))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn97"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_353")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_353"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_353") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Var (UnQual (Ident "singleton"))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_1")))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_354")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_354"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_354") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (LeftSection (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc")))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CMemberDesig"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_355")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 91))) (Var (UnQual (Ident "happyReduction_355"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_355") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut98"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_3")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (LeftSection (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc")))) (QVarOp (UnQual (Symbol "."))) (App (Con (UnQual (Ident "CArrDesig"))) (Var (UnQual (Ident "happy_var_3")))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn98"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_356")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_356"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_356") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut97"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn99"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_357")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_357"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_357") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CIndex"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_358")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_358"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_358") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCall"))) (Var (UnQual (Ident "happy_var_1")))) (List []))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_359")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_359"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_359") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut100"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCall"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_360")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_360"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_360") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CMember"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (Con (UnQual (Ident "False"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_361")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_361"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_361") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CMember"))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3")))) (Con (UnQual (Ident "True"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_362")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_362"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_362") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPostIncOp")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_363")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_363"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_363") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPostDecOp")))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_364")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_364"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_364") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompoundLit"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_365")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 7))) (Lit (PrimInt 92))) (Var (UnQual (Ident "happyReduction_365"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_365") [PParen (PInfixApp (PVar (Ident "happy_x_7")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut92"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCompoundLit"))) (Var (UnQual (Ident "happy_var_2")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_5"))))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn99"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_366")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 93))) (Var (UnQual (Ident "happyReduction_366"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_366") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn100"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_367")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 93))) (Var (UnQual (Ident "happyReduction_367"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_367") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut100"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn100"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_368")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_368"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_368") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut99"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn101"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_369")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_369"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_369") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPreIncOp")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_370")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_370"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_370") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Con (UnQual (Ident "CPreDecOp")))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_371")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_371"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_371") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn101"))) (Paren (Var (UnQual (Ident "happy_var_2")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_372")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_372"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_372") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut102"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CUnary"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_1")))))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_373")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_373"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_373") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSizeofExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_374")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_374"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_374") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CSizeofType"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_375")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_375"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_375") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAlignofExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_376")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_376"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_376") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CAlignofType"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_377")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_377"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_377") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComplexReal"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_378")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_378"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_378") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComplexImag"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_379")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 94))) (Var (UnQual (Ident "happyReduction_379"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_379") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut125"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CLabAddrExpr"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn101"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_380")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_380"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_380") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAdrOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_381")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_381"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_381") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CIndOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_382")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_382"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_382") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CPlusOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_383")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_383"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_383") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CMinOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_384")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_384"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_384") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CCompOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_385")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 95))) (Var (UnQual (Ident "happyReduction_385"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_385") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn102"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CNegOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_386")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 96))) (Var (UnQual (Ident "happyReduction_386"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_386") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn103"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_387")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 96))) (Var (UnQual (Ident "happyReduction_387"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_387") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut83"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (Con (UnQual (Ident "CCast"))) (Var (UnQual (Ident "happy_var_2")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn103"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_388")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_388"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_388") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn104"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_389")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_389"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_389") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CMulOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_390")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_390"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_390") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CDivOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_391")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 97))) (Var (UnQual (Ident "happyReduction_391"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_391") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut103"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CRmdOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn104"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_392")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_392"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_392") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn105"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_393")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_393"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_393") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CAddOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn105"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_394")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 98))) (Var (UnQual (Ident "happyReduction_394"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_394") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut104"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CSubOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn105"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_395")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_395"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_395") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn106"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_396")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_396"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_396") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CShlOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn106"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_397")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 99))) (Var (UnQual (Ident "happyReduction_397"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_397") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut105"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CShrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn106"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_398")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_398"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_398") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn107"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_399")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_399"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_399") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLeOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_400")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_400"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_400") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CGrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_401")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_401"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_401") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_402")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 100))) (Var (UnQual (Ident "happyReduction_402"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_402") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut106"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CGeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn107"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_403")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_403"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_403") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn108"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_404")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_404"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_404") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CEqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn108"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_405")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 101))) (Var (UnQual (Ident "happyReduction_405"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_405") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut107"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CNeqOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn108"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_406")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 102))) (Var (UnQual (Ident "happyReduction_406"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_406") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn109"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_407")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 102))) (Var (UnQual (Ident "happyReduction_407"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_407") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut108"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CAndOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn109"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_408")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 103))) (Var (UnQual (Ident "happyReduction_408"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_408") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn110"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_409")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 103))) (Var (UnQual (Ident "happyReduction_409"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_409") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut109"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CXorOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn110"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_410")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 104))) (Var (UnQual (Ident "happyReduction_410"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_410") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn111"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_411")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 104))) (Var (UnQual (Ident "happyReduction_411"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_411") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut110"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "COrOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn111"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_412")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 105))) (Var (UnQual (Ident "happyReduction_412"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_412") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn112"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_413")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 105))) (Var (UnQual (Ident "happyReduction_413"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_413") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut111"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLndOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn112"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_414")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 106))) (Var (UnQual (Ident "happyReduction_414"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_414") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn113"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_415")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 106))) (Var (UnQual (Ident "happyReduction_415"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_415") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut112"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CBinary"))) (Con (UnQual (Ident "CLorOp")))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn113"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_416")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_416"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_416") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn114"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_417")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 5))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_417"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_417") [PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_5")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_5")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCond"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_3")))))) (Var (UnQual (Ident "happy_var_5"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn114"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_418")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 107))) (Var (UnQual (Ident "happyReduction_418"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_418") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut113"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CCond"))) (Var (UnQual (Ident "happy_var_1")))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "happy_var_4"))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn114"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_419")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 108))) (Var (UnQual (Ident "happyReduction_419"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_419") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn115"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_420")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 108))) (Var (UnQual (Ident "happyReduction_420"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_420") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut101"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut116"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (Con (UnQual (Ident "CAssign"))) (Paren (App (Var (UnQual (Ident "unL"))) (Var (UnQual (Ident "happy_var_2")))))) (Var (UnQual (Ident "happy_var_1")))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn115"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_421")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_421"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_421") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAssignOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_422")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_422"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_422") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CMulAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_423")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_423"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_423") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CDivAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_424")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_424"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_424") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CRmdAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_425")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_425"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_425") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAddAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_426")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_426"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_426") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CSubAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_427")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_427"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_427") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CShlAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_428")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_428"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_428") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CShrAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_429")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_429"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_429") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CAndAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_430")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_430"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_430") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "CXorAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_431")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 109))) (Var (UnQual (Ident "happyReduction_431"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_431") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn116"))) (Paren (App (App (Con (UnQual (Ident "L"))) (Con (UnQual (Ident "COrAssOp")))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "happy_var_1"))))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_432")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 110))) (Var (UnQual (Ident "happyReduction_432"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_432") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn117"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_433")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 110))) (Var (UnQual (Ident "happyReduction_433"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_433") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut118"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "es")) (UnGuardedRhs (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3"))))) (BDecls [])]) (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "es")))) (QVarOp (UnQual (Symbol "$"))) (App (Con (UnQual (Ident "CComma"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QConOp (Special Cons)) (Var (UnQual (Ident "es")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn117"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_434")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 111))) (Var (UnQual (Ident "happyReduction_434"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_434") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn118"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_435")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 111))) (Var (UnQual (Ident "happyReduction_435"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_435") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut118"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn118"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_436")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 112))) (Var (UnQual (Ident "happyReduction_436"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_436")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn119"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_437")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 112))) (Var (UnQual (Ident "happyReduction_437"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_437") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn119"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_438")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 113))) (Var (UnQual (Ident "happyReduction_438"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_438")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn120"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_439")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 113))) (Var (UnQual (Ident "happyReduction_439"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_439") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut115"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn120"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_440")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 114))) (Var (UnQual (Ident "happyReduction_440"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_440") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut114"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn121"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_441")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_441"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_441") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokILit")) [PWildCard,PVar (Ident "i")]) (UnGuardedRhs (App (Con (UnQual (Ident "CIntConst"))) (Var (UnQual (Ident "i"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_442")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_442"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_442") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCLit")) [PWildCard,PVar (Ident "c")]) (UnGuardedRhs (App (Con (UnQual (Ident "CCharConst"))) (Var (UnQual (Ident "c"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_443")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 115))) (Var (UnQual (Ident "happyReduction_443"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_443") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFLit")) [PWildCard,PVar (Ident "f")]) (UnGuardedRhs (App (Con (UnQual (Ident "CFloatConst"))) (Var (UnQual (Ident "f"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn122"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_444")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 116))) (Var (UnQual (Ident "happyReduction_444"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_444") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Con (UnQual (Ident "CStrLit"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn123"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_445")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 2))) (Lit (PrimInt 116))) (Var (UnQual (Ident "happyReduction_445"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_445") [PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut124"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Con (UnQual (Ident "CStrLit"))) (Paren (App (Var (UnQual (Ident "concatCStrings"))) (Paren (InfixApp (Var (UnQual (Ident "s"))) (QConOp (Special Cons)) (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_2")))))))))) (BDecls [])])))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn123"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_446")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 117))) (Var (UnQual (Ident "happyReduction_446"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_446") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn124"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_447")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 117))) (Var (UnQual (Ident "happyReduction_447"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_447") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut124"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn124"))) (Paren (Case (Var (UnQual (Ident "happy_var_2"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PVar (Ident "s")]) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "s"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_448")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 118))) (Var (UnQual (Ident "happyReduction_448"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_448") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn125"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_449")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 118))) (Var (UnQual (Ident "happyReduction_449"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_449") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn125"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_450")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 119))) (Var (UnQual (Ident "happyReduction_450"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_450")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn126"))) (Paren (List [])))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_451")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 119))) (Var (UnQual (Ident "happyReduction_451"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_451") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn126"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_452")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 120))) (Var (UnQual (Ident "happyReduction_452"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_452") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn127"))) (Paren (Var (UnQual (Ident "happy_var_1")))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_453")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_2"))) (Lit (PrimInt 120))) (Var (UnQual (Ident "happyReduction_453"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_453") [PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut127"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut128"))) (Var (UnQual (Ident "happy_x_2")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_2")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn127"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "happy_var_2"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_454")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyReduce"))) (Lit (PrimInt 6))) (Lit (PrimInt 121))) (Var (UnQual (Ident "happyReduction_454"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_454") [PParen (PInfixApp (PVar (Ident "happy_x_6")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_5")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest")))))))))))))] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut129"))) (Var (UnQual (Ident "happy_x_4")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_4")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "happyIn128"))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_4")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "happyRest"))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_455")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 122))) (Var (UnQual (Ident "happyReduction_455"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_455") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut130"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn129"))) (Paren (Case (Var (UnQual (Ident "happy_var_1"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (Var (UnQual (Ident "empty")))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "attr")]) (UnGuardedRhs (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "attr"))))) (BDecls [])])))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_456")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 122))) (Var (UnQual (Ident "happyReduction_456"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_456") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut129"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut130"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn129"))) (Paren (App (Paren (App (App (App (Var (UnQual (Ident "maybe"))) (Var (UnQual (Ident "id")))) (Paren (App (Var (UnQual (Ident "flip"))) (Var (UnQual (Ident "snoc")))))) (Var (UnQual (Ident "happy_var_3"))))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_457")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_0"))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_457"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduction_457")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn130"))) (Paren (Con (UnQual (Ident "Nothing")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_458")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_458"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_458") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_459")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 1))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_459"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_459") [PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Paren (App (Var (UnQual (Ident "internalIdent"))) (Lit (String "const"))))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_460")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 4))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_460"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_460") [PParen (PInfixApp (PVar (Ident "happy_x_4")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut131"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "happy_var_3")))))))))) (BDecls [])])) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_461")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyMonadReduce"))) (Lit (PrimInt 3))) (Lit (PrimInt 123))) (Var (UnQual (Ident "happyReduction_461"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_461") [PParen (PInfixApp (PVar (Ident "happy_x_3")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "happy_x_1")) (UnQual (Ident "HappyStk")) (PVar (Ident "happyRest"))))))),PVar (Ident "tk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (Case (App (Var (UnQual (Ident "happyOutTok"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_var_1")])) (UnGuardedRhs (Paren (InfixApp (App (Var (UnQual (Ident "withNodeInfo"))) (Var (UnQual (Ident "happy_var_1")))) (QVarOp (UnQual (Symbol "$"))) (InfixApp (Con (UnQual (Ident "Just"))) (QVarOp (UnQual (Symbol "."))) (App (App (Con (UnQual (Ident "CAttr"))) (Var (UnQual (Ident "happy_var_1")))) (List [])))))) (BDecls [])]))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyIn130"))) (Var (UnQual (Ident "r")))))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_462")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_1"))) (Lit (PrimInt 124))) (Var (UnQual (Ident "happyReduction_462"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_462") [PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn131"))) (Paren (App (Var (UnQual (Ident "singleton"))) (Var (UnQual (Ident "happy_var_1"))))))) (BDecls [])])) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReduce_463")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happySpecReduce_3"))) (Lit (PrimInt 124))) (Var (UnQual (Ident "happyReduction_463"))))) (BDecls []),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduction_463") [PVar (Ident "happy_x_3"),PVar (Ident "happy_x_2"),PVar (Ident "happy_x_1")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut131"))) (Var (UnQual (Ident "happy_x_1")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_1")) (UnGuardedRhs (Case (App (Var (UnQual (Ident "happyOut121"))) (Var (UnQual (Ident "happy_x_3")))) [Alt (SrcLoc "" -1 -1) (PVar (Ident "happy_var_3")) (UnGuardedRhs (App (Var (UnQual (Ident "happyIn131"))) (Paren (InfixApp (Var (UnQual (Ident "happy_var_1"))) (QVarOp (UnQual (Ident "snoc"))) (Var (UnQual (Ident "happy_var_3"))))))) (BDecls [])])) (BDecls [])])) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyNewToken") [PVar (Ident "action"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "lexC"))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "tk")] (Let (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "cont") [PVar (Ident "i")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls [])]]) (Case (Var (UnQual (Ident "tk"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEof")) []) (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Lit (PrimInt 101))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLParen")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 1)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRParen")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 2)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLBracket")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 3)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRBracket")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 4)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokArrow")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 5)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDot")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 6)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokExclam")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 7)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTilde")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 8)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInc")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 9)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDec")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 10)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPlus")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 11)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokMinus")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 12)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 13)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSlash")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 14)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPercent")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 15)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAmper")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 16)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShiftL")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 17)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShiftR")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 18)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLess")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 19)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLessEq")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 20)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHigh")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 21)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHighEq")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 22)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEqual")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 23)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnequal")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 24)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHat")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 25)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 26)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAnd")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 27)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokOr")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 28)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokQuest")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 29)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokColon")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 30)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAssign")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 31)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPlusAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 32)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokMinusAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 33)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStarAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 34)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSlashAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 35)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokPercAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 36)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAmpAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 37)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokHatAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 38)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBarAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 39)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 40)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSRAss")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 41)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokComma")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 42)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSemic")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 43)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLBrace")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 44)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRBrace")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 45)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEllipsis")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 46)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAlignof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 47)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAsm")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 48)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokAuto")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 49)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBreak")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 50)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokBool")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 51)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCase")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 52)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokChar")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 53)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokConst")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 54)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokContinue")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 55)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokComplex")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 56)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDefault")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 57)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDo")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 58)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokDouble")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 59)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokElse")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 60)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokEnum")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 61)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokExtern")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 62)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFloat")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 63)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFor")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 64)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGoto")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 65)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokIf")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 66)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInline")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 67)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokInt")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 68)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLong")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 69)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokLabel")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 70)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRegister")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 71)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokRestrict")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 72)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokReturn")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 73)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokShort")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 74)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSigned")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 75)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSizeof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 76)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStatic")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 77)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokStruct")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 78)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSwitch")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 79)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTypedef")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 80)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTypeof")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 81)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokThread")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 82)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnion")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 83)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokUnsigned")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 84)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokVoid")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 85)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokVolatile")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 86)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokWhile")) [PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 87)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokCLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 88)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokILit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 89)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokFLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 90)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokSLit")) [PWildCard,PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 91)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokIdent")) [PWildCard,PVar (Ident "happy_dollar_dollar")]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 92)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokTyIdent")) [PWildCard,PVar (Ident "happy_dollar_dollar")]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 93)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCAttrTok")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 94)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCExtTok")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 95)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCComplexReal")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 96)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCComplexImag")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 97)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCVaArg")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 98)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCOffsetof")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 99)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CTokGnuC")) [PApp (UnQual (Ident "GnuCTyCompat")) [],PWildCard]) (UnGuardedRhs (App (Var (UnQual (Ident "cont"))) (Lit (PrimInt 100)))) (BDecls []),Alt (SrcLoc "" -1 -1) PWildCard (UnGuardedRhs (App (Var (UnQual (Ident "happyError'"))) (Var (UnQual (Ident "tk"))))) (BDecls [])])))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyError_") [PVar (Ident "tk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyError'"))) (Var (UnQual (Ident "tk"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "happyThen"] (TyFun (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))) (TyFun (TyParen (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "b"))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "b"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyThen")) (UnGuardedRhs (Var (UnQual (Symbol ">>=")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyReturn"] (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReturn")) (UnGuardedRhs (Paren (Var (UnQual (Ident "return"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyThen1")) (UnGuardedRhs (Var (UnQual (Ident "happyThen")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyReturn1"] (TyFun (TyVar (Ident "a")) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyReturn1")) (UnGuardedRhs (Var (UnQual (Ident "happyReturn")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyError'"] (TyFun (TyCon (UnQual (Ident "CToken"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyError'") [PVar (Ident "tk")] Nothing (UnGuardedRhs (App (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "token")] (Var (UnQual (Ident "happyError"))))) (Var (UnQual (Ident "tk"))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "translation_unit")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 0))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut7"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "external_declaration")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 1))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut9"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "statement")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 2))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut12"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "expression")) (UnGuardedRhs (Var (UnQual (Ident "happySomeParser")))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySomeParser")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen"))) (Paren (App (Var (UnQual (Ident "happyParse"))) (Lit (PrimInt 3))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "x")] (App (Var (UnQual (Ident "happyReturn"))) (Paren (App (Var (UnQual (Ident "happyOut117"))) (Var (UnQual (Ident "x")))))))))) (BDecls [])]),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happySeq")) (UnGuardedRhs (Var (UnQual (Ident "happyDontSeq")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "reverseList"] (TyFun (TyList (TyVar (Ident "a"))) (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyVar (Ident "a"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "reverseList")) (UnGuardedRhs (InfixApp (Con (UnQual (Ident "Reversed"))) (QVarOp (UnQual (Symbol "."))) (Var (Qual (ModuleName "List") (Ident "reverse"))))) (BDecls []),DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Located") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "L") [TyBang BangedTy (TyVar (Ident "a")),TyBang BangedTy (TyCon (UnQual (Ident "Position")))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "unL"] (TyFun (TyApp (TyCon (UnQual (Ident "Located"))) (TyVar (Ident "a"))) (TyVar (Ident "a"))),FunBind [Match (SrcLoc "" -1 -1) (Ident "unL") [PParen (PApp (UnQual (Ident "L")) [PVar (Ident "a"),PVar (Ident "pos")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "a")))) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "Pos")) [TyParen (TyApp (TyCon (UnQual (Ident "Located"))) (TyVar (Ident "a")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "L")) [PWildCard,PVar (Ident "pos")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "pos")))) (BDecls [])])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withNodeInfo")),TypeSig (SrcLoc "" -1 -1) [Ident "withNodeInfo"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyVar (Ident "a")))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withNodeInfo") [PVar (Ident "node"),PVar (Ident "mkAttrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),Generator (SrcLoc "" -1 -1) (PVar (Ident "lastTok")) (Var (UnQual (Ident "getSavedToken"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "firstPos")) (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "firstPos")))) (Paren (InfixApp (Var (UnQual (Ident "posLenOfTok"))) (QVarOp (UnQual (Symbol "$!"))) (Var (UnQual (Ident "lastTok")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Paren (App (Var (UnQual (Ident "mkAttrNode"))) (Var (UnQual (Ident "attrs")))))))])) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withLength")),TypeSig (SrcLoc "" -1 -1) [Ident "withLength"] (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyVar (Ident "a")))) (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withLength") [PVar (Ident "nodeinfo"),PVar (Ident "mkAttrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "lastTok")) (Var (UnQual (Ident "getSavedToken"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "firstPos")) (UnGuardedRhs (App (Var (UnQual (Ident "posOfNode"))) (Var (UnQual (Ident "nodeinfo"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "mkNodeInfo'"))) (Var (UnQual (Ident "firstPos")))) (Paren (InfixApp (Var (UnQual (Ident "posLenOfTok"))) (QVarOp (UnQual (Symbol "$!"))) (Var (UnQual (Ident "lastTok")))))) (Paren (App (App (App (Var (UnQual (Ident "maybe"))) (Paren (App (Var (UnQual (Ident "error"))) (Lit (String "nameOfNode"))))) (Var (UnQual (Ident "id")))) (Paren (App (Var (UnQual (Ident "nameOfNode"))) (Var (UnQual (Ident "nodeinfo"))))))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Paren (App (Var (UnQual (Ident "mkAttrNode"))) (Var (UnQual (Ident "attrs")))))))])) (BDecls [])],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "CDeclrR") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "CDeclrR") [TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "Ident")))),TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDerivedDeclr"))))),TyParen (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))),TyList (TyCon (UnQual (Ident "CAttr"))),TyCon (UnQual (Ident "NodeInfo"))])] [],TypeSig (SrcLoc "" -1 -1) [Ident "reverseDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclr")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "reverseDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ide"),PVar (Ident "reversedDDs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "ide")))) (Paren (App (Var (UnQual (Ident "reverse"))) (Var (UnQual (Ident "reversedDDs")))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "CNode")) [TyParen (TyCon (UnQual (Ident "CDeclrR")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "nodeInfo") [PParen (PApp (UnQual (Ident "CDeclrR")) [PWildCard,PWildCard,PWildCard,PWildCard,PVar (Ident "n")])] Nothing (UnGuardedRhs (Var (UnQual (Ident "n")))) (BDecls [])])],InstDecl (SrcLoc "" -1 -1) Nothing [] [] (UnQual (Ident "Pos")) [TyParen (TyCon (UnQual (Ident "CDeclrR")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "CDeclrR")) [PWildCard,PWildCard,PWildCard,PWildCard,PVar (Ident "n")])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "n"))))) (BDecls [])])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withAttribute")),TypeSig (SrcLoc "" -1 -1) [Ident "withAttribute"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAttribute") [PVar (Ident "node"),PVar (Ident "cattrs"),PVar (Ident "mkDeclrNode")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (Var (UnQual (Ident "mkNodeInfo"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "newDeclr")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "cattrs")))) (QVarOp (UnQual (Symbol "$"))) (App (Var (UnQual (Ident "mkDeclrNode"))) (Var (UnQual (Ident "attrs")))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (InfixApp (Var (UnQual (Ident "newDeclr"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "newDeclr"))))))])) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "withAttributePF")),TypeSig (SrcLoc "" -1 -1) [Ident "withAttributePF"] (TyForall Nothing [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "node")]] (TyFun (TyVar (Ident "node")) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyParen (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))) (TyApp (TyCon (UnQual (Ident "P"))) (TyParen (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR")))))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAttributePF") [PVar (Ident "node"),PVar (Ident "cattrs"),PVar (Ident "mkDeclrCtor")] Nothing (UnGuardedRhs (Do [Generator (SrcLoc "" -1 -1) (PVar (Ident "name")) (Var (UnQual (Ident "getNewName"))),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "attrs")) (UnGuardedRhs (App (App (Var (UnQual (Ident "mkNodeInfo"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "node")))))) (Var (UnQual (Ident "name"))))) (BDecls [])]),LetStmt (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "newDeclr")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "appendDeclrAttrs"))) (Var (UnQual (Ident "cattrs")))) (QVarOp (UnQual (Symbol "."))) (App (Var (UnQual (Ident "mkDeclrCtor"))) (Var (UnQual (Ident "attrs")))))) (BDecls [])]),Qualifier (InfixApp (Var (UnQual (Ident "attrs"))) (QVarOp (UnQual (Ident "seq"))) (InfixApp (Var (UnQual (Ident "newDeclr"))) (QVarOp (UnQual (Ident "seq"))) (App (Var (UnQual (Ident "return"))) (Var (UnQual (Ident "newDeclr"))))))])) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendObjAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyCon (UnQual (Ident "CDeclr"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendObjAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "asmname"),PVar (Ident "cAttrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclr"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cAttrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendObjAttrsR"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendObjAttrsR") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "asmname"),PVar (Ident "cAttrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cAttrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "setAsmName"] (TyFun (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "setAsmName") [PVar (Ident "mAsmName"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "indirections"),PVar (Ident "oldName"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (Case (App (App (Var (UnQual (Ident "combineName"))) (Var (UnQual (Ident "mAsmName")))) (Var (UnQual (Ident "oldName")))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Left")) [PTuple Boxed [PVar (Ident "n1"),PVar (Ident "n2")]]) (UnGuardedRhs (App (App (Var (UnQual (Ident "failP"))) (Paren (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "n2")))))) (List [Lit (String "Duplicate assembler name: "),App (Var (UnQual (Ident "showName"))) (Var (UnQual (Ident "n1"))),App (Var (UnQual (Ident "showName"))) (Var (UnQual (Ident "n2")))]))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Right")) [PVar (Ident "newName")]) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "return"))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "indirections")))) (Var (UnQual (Ident "newName")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at")))))) (BDecls [])])) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "combineName") [PApp (UnQual (Ident "Nothing")) [],PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Con (UnQual (Ident "Nothing"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PApp (UnQual (Ident "Nothing")) [],PAsPat (Ident "oldname") (PParen (PApp (UnQual (Ident "Just")) [PWildCard]))] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "oldname"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PAsPat (Ident "newname") (PParen (PApp (UnQual (Ident "Just")) [PWildCard])),PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Right"))) (Var (UnQual (Ident "newname"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "combineName") [PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "n1")]),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "n2")])] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Left"))) (Tuple Boxed [Var (UnQual (Ident "n1")),Var (UnQual (Ident "n2"))]))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "showName") [PParen (PApp (UnQual (Ident "CStrLit")) [PVar (Ident "cstr"),PWildCard])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "show"))) (Var (UnQual (Ident "cstr"))))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "withAsmNameAttrs"] (TyFun (TyTuple Boxed [TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CStrLit"))),TyList (TyCon (UnQual (Ident "CAttr")))]) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "withAsmNameAttrs") [PTuple Boxed [PVar (Ident "mAsmName"),PVar (Ident "newAttrs")],PVar (Ident "declr")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "setAsmName"))) (Var (UnQual (Ident "mAsmName")))) (Paren (App (App (Var (UnQual (Ident "appendObjAttrsR"))) (Var (UnQual (Ident "newAttrs")))) (Var (UnQual (Ident "declr"))))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "appendDeclrAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "appendDeclrAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PParen (PApp (UnQual (Ident "Reversed")) [PList []]),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Var (UnQual (Ident "empty")))) (Var (UnQual (Ident "asmname")))) (Paren (InfixApp (Var (UnQual (Ident "cattrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendDeclrAttrs") [PVar (Ident "newAttrs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PParen (PApp (UnQual (Ident "Reversed")) [PParen (PInfixApp (PVar (Ident "x")) (Special Cons) (PVar (Ident "xs")))]),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (App (Con (UnQual (Ident "Reversed"))) (Paren (InfixApp (App (Var (UnQual (Ident "appendAttrs"))) (Var (UnQual (Ident "x")))) (QConOp (Special Cons)) (Var (UnQual (Ident "xs")))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CPtrDeclr")) [PVar (Ident "typeQuals"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (Con (UnQual (Ident "CPtrDeclr"))) (Paren (InfixApp (Var (UnQual (Ident "typeQuals"))) (QVarOp (UnQual (Symbol "++"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "newAttrs"))))))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CArrDeclr")) [PVar (Ident "typeQuals"),PVar (Ident "arraySize"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CArrDeclr"))) (Paren (InfixApp (Var (UnQual (Ident "typeQuals"))) (QVarOp (UnQual (Symbol "++"))) (App (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CAttrQual")))) (Var (UnQual (Ident "newAttrs"))))))) (Var (UnQual (Ident "arraySize")))) (Var (UnQual (Ident "at"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "appendAttrs") [PParen (PApp (UnQual (Ident "CFunDeclr")) [PVar (Ident "parameters"),PVar (Ident "cattrs"),PVar (Ident "at")])] Nothing (UnGuardedRhs (App (App (App (Con (UnQual (Ident "CFunDeclr"))) (Var (UnQual (Ident "parameters")))) (Paren (InfixApp (Var (UnQual (Ident "cattrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "newAttrs")))))) (Var (UnQual (Ident "at"))))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "ptrDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyList (TyCon (UnQual (Ident "CTypeQual")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "ptrDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "dat")]),PVar (Ident "tyquals"),PVar (Ident "at")] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (Con (UnQual (Ident "CPtrDeclr"))) (Var (UnQual (Ident "tyquals")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "dat"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "funDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyParen (TyApp (TyApp (TyCon (UnQual (Ident "Either"))) (TyList (TyCon (UnQual (Ident "Ident"))))) (TyTuple Boxed [TyList (TyCon (UnQual (Ident "CDecl"))),TyCon (UnQual (Ident "Bool"))]))) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "funDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "dcattrs"),PVar (Ident "dat")]),PVar (Ident "params"),PVar (Ident "cattrs"),PVar (Ident "at")] Nothing (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (App (Con (UnQual (Ident "CFunDeclr"))) (Var (UnQual (Ident "params")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "dcattrs")))) (Var (UnQual (Ident "dat"))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "arrDeclr"] (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyFun (TyList (TyCon (UnQual (Ident "CTypeQual")))) (TyFun (TyCon (UnQual (Ident "Bool"))) (TyFun (TyCon (UnQual (Ident "Bool"))) (TyFun (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "CExpr")))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "arrDeclr") [PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "ident"),PVar (Ident "derivedDeclrs"),PVar (Ident "asmname"),PVar (Ident "cattrs"),PVar (Ident "dat")]),PVar (Ident "tyquals"),PVar (Ident "var_sized"),PVar (Ident "static_size"),PVar (Ident "size_expr_opt"),PVar (Ident "at")] Nothing (UnGuardedRhs (InfixApp (Var (UnQual (Ident "arr_sz"))) (QVarOp (UnQual (Ident "seq"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Var (UnQual (Ident "ident")))) (Paren (InfixApp (Var (UnQual (Ident "derivedDeclrs"))) (QVarOp (UnQual (Ident "snoc"))) (App (App (App (Con (UnQual (Ident "CArrDeclr"))) (Var (UnQual (Ident "tyquals")))) (Var (UnQual (Ident "arr_sz")))) (Var (UnQual (Ident "at"))))))) (Var (UnQual (Ident "asmname")))) (Var (UnQual (Ident "cattrs")))) (Var (UnQual (Ident "dat"))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "arr_sz")) (UnGuardedRhs (Case (Var (UnQual (Ident "size_expr_opt"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "e")]) (UnGuardedRhs (App (App (Con (UnQual (Ident "CArrSize"))) (Var (UnQual (Ident "static_size")))) (Var (UnQual (Ident "e"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Con (UnQual (Ident "CNoArrSize"))) (Var (UnQual (Ident "var_sized"))))) (BDecls [])])) (BDecls [])])],TypeSig (SrcLoc "" -1 -1) [Ident "liftTypeQuals"] (TyFun (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CTypeQual"))))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "liftTypeQuals")) (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "map"))) (Con (UnQual (Ident "CTypeQual")))) (QVarOp (UnQual (Symbol "."))) (Var (UnQual (Ident "reverse"))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "liftCAttrs"] (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "liftCAttrs")) (UnGuardedRhs (App (Var (UnQual (Ident "map"))) (Paren (InfixApp (Con (UnQual (Ident "CTypeQual"))) (QVarOp (UnQual (Symbol "."))) (Con (UnQual (Ident "CAttrQual"))))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "addTrailingAttrs"] (TyFun (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))) (TyFun (TyList (TyCon (UnQual (Ident "CAttr")))) (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyList (TyCon (UnQual (Ident "CDeclSpec"))))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "addTrailingAttrs") [PVar (Ident "declspecs"),PVar (Ident "new_attrs")] Nothing (UnGuardedRhs (Case (App (Var (UnQual (Ident "viewr"))) (Var (UnQual (Ident "declspecs")))) [Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "specs_init"),PApp (UnQual (Ident "CTypeSpec")) [PParen (PApp (UnQual (Ident "CSUType")) [PParen (PApp (UnQual (Ident "CStruct")) [PVar (Ident "tag"),PVar (Ident "name"),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "def")]),PVar (Ident "def_attrs"),PVar (Ident "su_node")]),PVar (Ident "node")])]]) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "specs_init"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CSUType"))) (Paren (App (App (App (App (App (Con (UnQual (Ident "CStruct"))) (Var (UnQual (Ident "tag")))) (Var (UnQual (Ident "name")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "def")))))) (Paren (InfixApp (Var (UnQual (Ident "def_attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "new_attrs")))))) (Var (UnQual (Ident "su_node")))))) (Var (UnQual (Ident "node"))))))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PTuple Boxed [PVar (Ident "specs_init"),PApp (UnQual (Ident "CTypeSpec")) [PParen (PApp (UnQual (Ident "CEnumType")) [PParen (PApp (UnQual (Ident "CEnum")) [PVar (Ident "name"),PParen (PApp (UnQual (Ident "Just")) [PVar (Ident "def")]),PVar (Ident "def_attrs"),PVar (Ident "e_node")]),PVar (Ident "node")])]]) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "specs_init"))) (QVarOp (UnQual (Ident "snoc"))) (App (Con (UnQual (Ident "CTypeSpec"))) (Paren (App (App (Con (UnQual (Ident "CEnumType"))) (Paren (App (App (App (App (Con (UnQual (Ident "CEnum"))) (Var (UnQual (Ident "name")))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "def")))))) (Paren (InfixApp (Var (UnQual (Ident "def_attrs"))) (QVarOp (UnQual (Symbol "++"))) (Var (UnQual (Ident "new_attrs")))))) (Var (UnQual (Ident "e_node")))))) (Var (UnQual (Ident "node"))))))))) (BDecls []),Alt (SrcLoc "" -1 -1) PWildCard (UnGuardedRhs (InfixApp (Var (UnQual (Ident "declspecs"))) (QVarOp (UnQual (Ident "rappend"))) (Paren (App (Var (UnQual (Ident "liftCAttrs"))) (Var (UnQual (Ident "new_attrs"))))))) (BDecls [])])) (BDecls [])],InstDecl (SrcLoc "" -1 -1) Nothing [] [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "a")]] (UnQual (Ident "Pos")) [TyList (TyVar (Ident "a"))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PInfixApp (PVar (Ident "x")) (Special Cons) PWildCard)] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "x"))))) (BDecls [])])],InstDecl (SrcLoc "" -1 -1) Nothing [] [ClassA (UnQual (Ident "Pos")) [TyVar (Ident "a")]] (UnQual (Ident "Pos")) [TyParen (TyApp (TyCon (UnQual (Ident "Reversed"))) (TyVar (Ident "a")))] [InsDecl (FunBind [Match (SrcLoc "" -1 -1) (Ident "posOf") [PParen (PApp (UnQual (Ident "Reversed")) [PVar (Ident "x")])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "posOf"))) (Var (UnQual (Ident "x"))))) (BDecls [])])],TypeSig (SrcLoc "" -1 -1) [Ident "emptyDeclr"] (TyCon (UnQual (Ident "CDeclrR"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "emptyDeclr")) (UnGuardedRhs (App (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Con (UnQual (Ident "Nothing")))) (Var (UnQual (Ident "empty")))) (Con (UnQual (Ident "Nothing")))) (List [])) (Var (UnQual (Ident "undefNode"))))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "mkVarDeclr"] (TyFun (TyCon (UnQual (Ident "Ident"))) (TyFun (TyCon (UnQual (Ident "NodeInfo"))) (TyCon (UnQual (Ident "CDeclrR"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "mkVarDeclr") [PVar (Ident "ident")] Nothing (UnGuardedRhs (App (App (App (App (Con (UnQual (Ident "CDeclrR"))) (Paren (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "ident")))))) (Var (UnQual (Ident "empty")))) (Con (UnQual (Ident "Nothing")))) (List []))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "doDeclIdent"] (TyFun (TyList (TyCon (UnQual (Ident "CDeclSpec")))) (TyFun (TyCon (UnQual (Ident "CDeclrR"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (Special UnitCon))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "doDeclIdent") [PVar (Ident "declspecs"),PParen (PApp (UnQual (Ident "CDeclrR")) [PVar (Ident "mIdent"),PWildCard,PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (Case (Var (UnQual (Ident "mIdent"))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "ident")]) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (App (App (Var (UnQual (Ident "any"))) (Var (UnQual (Ident "iypedef")))) (Var (UnQual (Ident "declspecs"))))] (App (Var (UnQual (Ident "addTypedef"))) (Var (UnQual (Ident "ident")))),GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "otherwise")))] (App (Var (UnQual (Ident "shadowTypedef"))) (Var (UnQual (Ident "ident"))))]) (BDecls [])])) (BDecls [FunBind [Match (SrcLoc "" -1 -1) (Ident "iypedef") [PParen (PApp (UnQual (Ident "CStorageSpec")) [PParen (PApp (UnQual (Ident "CTypedef")) [PWildCard])])] Nothing (UnGuardedRhs (Con (UnQual (Ident "True")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "iypedef") [PWildCard] Nothing (UnGuardedRhs (Con (UnQual (Ident "False")))) (BDecls [])]])],TypeSig (SrcLoc "" -1 -1) [Ident "doFuncParamDeclIdent"] (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (Special UnitCon)))),FunBind [Match (SrcLoc "" -1 -1) (Ident "doFuncParamDeclIdent") [PParen (PApp (UnQual (Ident "CDeclr")) [PWildCard,PParen (PInfixApp (PApp (UnQual (Ident "CFunDeclr")) [PVar (Ident "params"),PWildCard,PWildCard]) (Special Cons) PWildCard),PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "sequence_"))) (ListComp (Case (App (Var (UnQual (Ident "getCDeclrIdent"))) (Var (UnQual (Ident "declr")))) [Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Nothing")) []) (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls []),Alt (SrcLoc "" -1 -1) (PApp (UnQual (Ident "Just")) [PVar (Ident "ident")]) (UnGuardedRhs (App (Var (UnQual (Ident "shadowTypedef"))) (Var (UnQual (Ident "ident"))))) (BDecls [])]) [QualStmt (Generator (SrcLoc "" -1 -1) (PApp (UnQual (Ident "CDecl")) [PWildCard,PVar (Ident "dle"),PWildCard]) (App (App (App (Var (UnQual (Ident "either"))) (Paren (App (Var (UnQual (Ident "const"))) (List [])))) (Var (UnQual (Ident "fst")))) (Var (UnQual (Ident "params"))))),QualStmt (Generator (SrcLoc "" -1 -1) (PTuple Boxed [PApp (UnQual (Ident "Just")) [PVar (Ident "declr")],PWildCard,PWildCard]) (Var (UnQual (Ident "dle"))))]))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "doFuncParamDeclIdent") [PWildCard] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "return"))) (Con (Special UnitCon)))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "getCDeclrIdent"] (TyFun (TyCon (UnQual (Ident "CDeclr"))) (TyApp (TyCon (UnQual (Ident "Maybe"))) (TyCon (UnQual (Ident "Ident"))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "getCDeclrIdent") [PParen (PApp (UnQual (Ident "CDeclr")) [PVar (Ident "mIdent"),PWildCard,PWildCard,PWildCard,PWildCard])] Nothing (UnGuardedRhs (Var (UnQual (Ident "mIdent")))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "happyError"] (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "happyError")) (UnGuardedRhs (Var (UnQual (Ident "parseError")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "parseC"] (TyFun (TyCon (UnQual (Ident "InputStream"))) (TyFun (TyCon (UnQual (Ident "Position"))) (TyApp (TyApp (TyCon (UnQual (Ident "Either"))) (TyCon (UnQual (Ident "ParseError")))) (TyCon (UnQual (Ident "CTranslUnit")))))),FunBind [Match (SrcLoc "" -1 -1) (Ident "parseC") [PVar (Ident "input"),PVar (Ident "initialPosition")] Nothing (UnGuardedRhs (InfixApp (App (Var (UnQual (Ident "fmap"))) (Var (UnQual (Ident "fst")))) (QVarOp (UnQual (Symbol "$"))) (App (App (App (App (App (Var (UnQual (Ident "execParser"))) (Var (UnQual (Ident "translUnitP")))) (Var (UnQual (Ident "input")))) (Var (UnQual (Ident "initialPosition")))) (Var (UnQual (Ident "builtinTypeNames")))) (Paren (App (Var (UnQual (Ident "namesStartingFrom"))) (Lit (Int 0))))))) (BDecls [])],TypeSig (SrcLoc "" -1 -1) [Ident "translUnitP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CTranslUnit")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "translUnitP")) (UnGuardedRhs (Var (UnQual (Ident "translation_unit")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "extDeclP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CExtDecl")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "extDeclP")) (UnGuardedRhs (Var (UnQual (Ident "external_declaration")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "statementP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CStat")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "statementP")) (UnGuardedRhs (Var (UnQual (Ident "statement")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "expressionP"] (TyApp (TyCon (UnQual (Ident "P"))) (TyCon (UnQual (Ident "CExpr")))),PatBind (SrcLoc "" -1 -1) (PVar (Ident "expressionP")) (UnGuardedRhs (Var (UnQual (Ident "expression")))) (BDecls []),DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Happy_IntList") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyCons") [TyCon (UnQual (Ident "Int#")),TyCon (UnQual (Ident "Happy_IntList"))])] [],InfixDecl (SrcLoc "" -1 -1) AssocRight 9 [ConOp (Ident "HappyStk")],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "HappyStk") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyStk") [TyVar (Ident "a"),TyParen (TyApp (TyCon (UnQual (Ident "HappyStk"))) (TyVar (Ident "a")))])] [],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyParse") [PVar (Ident "start_state")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "start_state")))) (Var (UnQual (Ident "notHappyAtAll")))) (Var (UnQual (Ident "notHappyAtAll"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyAccept") [PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PParen (PInfixApp PWildCard (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "ans")) (UnQual (Ident "HappyStk")) PWildCard)))] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyReturn1"))) (Var (UnQual (Ident "ans"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyAccept") [PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PParen (PApp (UnQual (Ident "HappyStk")) [PVar (Ident "ans"),PWildCard])] Nothing (UnGuardedRhs (App (Paren (App (App (Var (UnQual (Ident "happyTcHack"))) (Var (UnQual (Ident "j")))) (Paren (App (Var (UnQual (Ident "happyTcHack"))) (Var (UnQual (Ident "st"))))))) (Paren (App (Var (UnQual (Ident "happyReturn1"))) (Var (UnQual (Ident "ans"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDoAction") [PVar (Ident "i"),PVar (Ident "tk"),PVar (Ident "st")] Nothing (UnGuardedRhs (Case (Var (UnQual (Ident "action"))) [Alt (SrcLoc "" -1 -1) (PLit Signless (PrimInt 0)) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyFail"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PLit Negative (PrimInt 1)) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyAccept"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls []),Alt (SrcLoc "" -1 -1) (PVar (Ident "n")) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "<#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 0)) (TyCon (UnQual (Ident "Int#")))))))] (App (App (App (Paren (InfixApp (Var (UnQual (Ident "happyReduceArr"))) (QVarOp (UnQual (Symbol "!"))) (Var (UnQual (Ident "rule"))))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))]) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "rule")) (UnGuardedRhs (Paren (App (Con (UnQual (Ident "I#"))) (Paren (Paren (App (Var (UnQual (Ident "negateInt#"))) (Paren (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "+#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))))))))) (BDecls [])]),Alt (SrcLoc "" -1 -1) (PVar (Ident "n")) (UnGuardedRhs (App (App (App (App (Var (UnQual (Ident "happyShift"))) (Var (UnQual (Ident "new_state")))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st"))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (BDecls [])])])) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyActOffsets")))) (Var (UnQual (Ident "st"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "i")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "check")) (UnGuardedRhs (If (Paren (InfixApp (Var (UnQual (Ident "off_i"))) (QVarOp (UnQual (Symbol ">=#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 0)) (TyCon (UnQual (Ident "Int#"))))))) (Paren (InfixApp (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyCheck")))) (Var (UnQual (Ident "off_i")))) (QVarOp (UnQual (Symbol "==#"))) (Var (UnQual (Ident "i"))))) (Con (UnQual (Ident "False"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "action")) (GuardedRhss [GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "check")))] (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i")))),GuardedRhs (SrcLoc "" -1 -1) [Qualifier (Var (UnQual (Ident "otherwise")))] (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyDefActions")))) (Var (UnQual (Ident "st"))))]) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "indexShortOffAddr") [PParen (PApp (UnQual (Ident "HappyA#")) [PVar (Ident "arr")]),PVar (Ident "off")] Nothing (UnGuardedRhs (InfixApp (App (App (App (App (Var (UnQual (Ident "narrow16Int#"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "intToInt16#")))) (Var (UnQual (Ident "i")))) (Paren (InfixApp (Var (UnQual (Ident "i"))) (QVarOp (UnQual (Ident "iShiftL#"))) (Lit (PrimInt 16))))) (QVarOp (UnQual (Ident "iShiftRA#"))) (Lit (PrimInt 16)))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (App (Var (UnQual (Ident "word2Int#"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "high"))) (QVarOp (UnQual (Ident "uncheckedShiftL#"))) (Lit (PrimInt 8)))) (QVarOp (UnQual (Ident "or#"))) (Var (UnQual (Ident "low"))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (App (Var (UnQual (Ident "word2Int#"))) (Paren (InfixApp (Paren (InfixApp (Var (UnQual (Ident "high"))) (QVarOp (UnQual (Ident "shiftL#"))) (Lit (PrimInt 8)))) (QVarOp (UnQual (Ident "or#"))) (Var (UnQual (Ident "low"))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "high")) (UnGuardedRhs (App (Var (UnQual (Ident "int2Word#"))) (Paren (App (Var (UnQual (Ident "ord#"))) (Paren (App (App (Var (UnQual (Ident "indexCharOffAddr#"))) (Var (UnQual (Ident "arr")))) (Paren (InfixApp (Var (UnQual (Ident "off'"))) (QVarOp (UnQual (Symbol "+#"))) (Lit (PrimInt 1)))))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "low")) (UnGuardedRhs (App (Var (UnQual (Ident "int2Word#"))) (Paren (App (Var (UnQual (Ident "ord#"))) (Paren (App (App (Var (UnQual (Ident "indexCharOffAddr#"))) (Var (UnQual (Ident "arr")))) (Var (UnQual (Ident "off'"))))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off'")) (UnGuardedRhs (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "*#"))) (Lit (PrimInt 2)))) (BDecls [])])],DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "HappyAddr") [] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "HappyA#") [TyCon (UnQual (Ident "Addr#"))])] [],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyShift") [PVar (Ident "new_state"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PAsPat (Ident "stk") (PParen (PInfixApp (PVar (Ident "x")) (UnQual (Ident "HappyStk")) PWildCard))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "i")) (UnGuardedRhs (Paren (Case (App (Var (UnQual (Ident "unsafeCoerce#"))) (Var (UnQual (Ident "x")))) [Alt (SrcLoc "" -1 -1) (PParen (PApp (UnQual (Ident "I#")) [PParen (PVar (Ident "i"))])) (UnGuardedRhs (Var (UnQual (Ident "i")))) (BDecls [])]))) (BDecls [])]) (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "i")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "new_state")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (Var (UnQual (Ident "stk"))))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyShift") [PVar (Ident "new_state"),PVar (Ident "i"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "new_state")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (InfixApp (Paren (App (Var (UnQual (Ident "happyInTok"))) (Paren (Var (UnQual (Ident "tk")))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_0") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_0") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PAsPat (Ident "st") (PParen (PParen (PVar (Ident "action")))),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts"))))))) (Paren (InfixApp (Var (UnQual (Ident "fn"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_1") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_1") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'")))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_2") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_2") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))))]),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "v2")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'")))))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1")))) (Var (UnQual (Ident "v2"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_3") [PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happySpecReduce_3") [PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PWildCard,PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PAsPat (Ident "sts") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st") (PParen (PVar (Ident "action")))),PParen PWildCard]))))]))]),PParen (PInfixApp (PVar (Ident "v1")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "v2")) (UnQual (Ident "HappyStk")) (PParen (PInfixApp (PVar (Ident "v3")) (UnQual (Ident "HappyStk")) (PVar (Ident "stk'")))))))] Nothing (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "v1")))) (Var (UnQual (Ident "v2")))) (Var (UnQual (Ident "v3"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happySeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk'")))))))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyReduce") [PVar (Ident "k"),PVar (Ident "i"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (Case (App (App (Var (UnQual (Ident "happyDrop"))) (Paren (InfixApp (Var (UnQual (Ident "k"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "sts")))) [Alt (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (Let (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "r")) (UnGuardedRhs (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk"))))) (BDecls [])]) (App (App (Var (UnQual (Ident "happyDoSeq"))) (Var (UnQual (Ident "r")))) (Paren (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st1")))) (Var (UnQual (Ident "sts1")))) (Var (UnQual (Ident "r")))))))) (BDecls [])])) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyMonadReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyMonadReduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen1"))) (Paren (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk")))) (Var (UnQual (Ident "tk")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (App (App (App (App (App (Var (UnQual (Ident "happyGoto"))) (Var (UnQual (Ident "nt")))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st1")))) (Var (UnQual (Ident "sts1")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "drop_stk")))))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Var (UnQual (Ident "k")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts")))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "drop_stk")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Var (UnQual (Ident "k")))) (Var (UnQual (Ident "stk"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyMonad2Reduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyFail"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "st")))) (Var (UnQual (Ident "sts")))) (Var (UnQual (Ident "stk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyMonad2Reduce") [PVar (Ident "k"),PVar (Ident "nt"),PVar (Ident "fn"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st"),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyThen1"))) (Paren (App (App (Var (UnQual (Ident "fn"))) (Var (UnQual (Ident "stk")))) (Var (UnQual (Ident "tk")))))) (Paren (Lambda (SrcLoc "" -1 -1) [PVar (Ident "r")] (App (App (App (Var (UnQual (Ident "happyNewToken"))) (Var (UnQual (Ident "new_state")))) (Var (UnQual (Ident "sts1")))) (Paren (InfixApp (Var (UnQual (Ident "r"))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "drop_stk")))))))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PAsPat (Ident "sts1") (PParen (PParen (PApp (UnQual (Ident "HappyCons")) [PParen (PAsPat (Ident "st1") (PParen (PVar (Ident "action")))),PParen PWildCard])))) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Var (UnQual (Ident "k")))) (Paren (App (App (Con (UnQual (Ident "HappyCons"))) (Paren (Var (UnQual (Ident "st"))))) (Paren (Var (UnQual (Ident "sts")))))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "drop_stk")) (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Var (UnQual (Ident "k")))) (Var (UnQual (Ident "stk"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyGotoOffsets")))) (Var (UnQual (Ident "st1"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "nt")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDrop") [PLit Signless (PrimInt 0),PVar (Ident "l")] Nothing (UnGuardedRhs (Var (UnQual (Ident "l")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyDrop") [PVar (Ident "n"),PParen (PApp (UnQual (Ident "HappyCons")) [PParen PWildCard,PParen (PVar (Ident "t"))])] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDrop"))) (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "t"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDropStk") [PLit Signless (PrimInt 0),PVar (Ident "l")] Nothing (UnGuardedRhs (Var (UnQual (Ident "l")))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyDropStk") [PVar (Ident "n"),PParen (PInfixApp (PVar (Ident "x")) (UnQual (Ident "HappyStk")) (PVar (Ident "xs")))] Nothing (UnGuardedRhs (App (App (Var (UnQual (Ident "happyDropStk"))) (Paren (InfixApp (Var (UnQual (Ident "n"))) (QVarOp (UnQual (Symbol "-#"))) (Paren (ExpTypeSig (SrcLoc "" -1 -1) (Lit (PrimInt 1)) (TyCon (UnQual (Ident "Int#")))))))) (Var (UnQual (Ident "xs"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyGoto") [PVar (Ident "nt"),PVar (Ident "j"),PVar (Ident "tk"),PVar (Ident "st")] Nothing (UnGuardedRhs (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Var (UnQual (Ident "j")))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "new_state"))))) (BDecls [PatBind (SrcLoc "" -1 -1) (PVar (Ident "off")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyGotoOffsets")))) (Var (UnQual (Ident "st"))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "off_i")) (UnGuardedRhs (Paren (InfixApp (Var (UnQual (Ident "off"))) (QVarOp (UnQual (Symbol "+#"))) (Var (UnQual (Ident "nt")))))) (BDecls []),PatBind (SrcLoc "" -1 -1) (PVar (Ident "new_state")) (UnGuardedRhs (App (App (Var (UnQual (Ident "indexShortOffAddr"))) (Var (UnQual (Ident "happyTable")))) (Var (UnQual (Ident "off_i"))))) (BDecls [])])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyFail") [PLit Signless (PrimInt 0),PVar (Ident "tk"),PVar (Ident "old_st"),PWildCard,PVar (Ident "stk")] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "happyError_"))) (Var (UnQual (Ident "tk"))))) (BDecls []),Match (SrcLoc "" -1 -1) (Ident "happyFail") [PVar (Ident "i"),PVar (Ident "tk"),PParen (PVar (Ident "action")),PVar (Ident "sts"),PVar (Ident "stk")] Nothing (UnGuardedRhs (App (App (App (App (App (Var (UnQual (Ident "happyDoAction"))) (Lit (PrimInt 0))) (Var (UnQual (Ident "tk")))) (Var (UnQual (Ident "action")))) (Var (UnQual (Ident "sts")))) (Paren (InfixApp (Paren (App (Var (UnQual (Ident "unsafeCoerce#"))) (Paren (App (Con (UnQual (Ident "I#"))) (Paren (Var (UnQual (Ident "i")))))))) (QConOp (UnQual (Ident "HappyStk"))) (Var (UnQual (Ident "stk"))))))) (BDecls [])],PatBind (SrcLoc "" -1 -1) (PVar (Ident "notHappyAtAll")) (UnGuardedRhs (App (Var (UnQual (Ident "error"))) (Lit (String "Internal Happy error\n")))) (BDecls []),TypeSig (SrcLoc "" -1 -1) [Ident "happyTcHack"] (TyFun (TyCon (UnQual (Ident "Int#"))) (TyFun (TyVar (Ident "a")) (TyVar (Ident "a")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyTcHack") [PVar (Ident "x"),PVar (Ident "y")] Nothing (UnGuardedRhs (Var (UnQual (Ident "y")))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) True AlwaysActive (UnQual (Ident "happyTcHack")),TypeSig (SrcLoc "" -1 -1) [Ident "happyDoSeq",Ident "happyDontSeq"] (TyFun (TyVar (Ident "a")) (TyFun (TyVar (Ident "b")) (TyVar (Ident "b")))),FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDoSeq") [PVar (Ident "a"),PVar (Ident "b")] Nothing (UnGuardedRhs (InfixApp (Var (UnQual (Ident "a"))) (QVarOp (UnQual (Ident "seq"))) (Var (UnQual (Ident "b"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "happyDontSeq") [PVar (Ident "a"),PVar (Ident "b")] Nothing (UnGuardedRhs (Var (UnQual (Ident "b")))) (BDecls [])],InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyDoAction")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyTable")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyCheck")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyActOffsets")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyGotoOffsets")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyDefActions")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyShift")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_0")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_1")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_2")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happySpecReduce_3")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyReduce")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyMonadReduce")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyGoto")),InlineSig (SrcLoc "" -1 -1) False AlwaysActive (UnQual (Ident "happyFail"))]
-
diff --git a/tests/examples/CParser.hs.prettyprinter.golden b/tests/examples/CParser.hs.prettyprinter.golden
deleted file mode 100644
--- a/tests/examples/CParser.hs.prettyprinter.golden
+++ /dev/null
@@ -1,6540 +0,0 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
-{-# LANGUAGE MagicHash #-}
-module Language.C.Parser.Parser
-       (parseC, translUnitP, extDeclP, statementP, expressionP) where
-import Prelude hiding (reverse)
-import qualified Data.List as List
-import Control.Monad (mplus)
-import Language.C.Parser.Builtin (builtinTypeNames)
-import Language.C.Parser.Lexer (lexC, parseError)
-import Language.C.Parser.Tokens
-       (CToken(..), GnuCTok(..), posLenOfTok)
-import Language.C.Parser.ParserMonad
-       (P, failP, execParser, getNewName, addTypedef, shadowTypedef,
-        getCurrentPosition, enterScope, leaveScope, getLastToken,
-        getSavedToken, ParseError(..))
-import Language.C.Data.RList
-import Language.C.Data.InputStream
-import Language.C.Data.Ident
-import Language.C.Data.Name
-import Language.C.Data.Node
-import Language.C.Data.Position
-import Language.C.Syntax
-import Data.Array
-import Array
-import GHC.Exts
-import GlaExts
- 
-newtype HappyAbsSyn = HappyAbsSyn (() -> ())
- 
-happyIn7 :: (CTranslUnit) -> (HappyAbsSyn)
-happyIn7 x = unsafeCoerce# x
- 
-{-# INLINE happyIn7 #-}
- 
-happyOut7 :: (HappyAbsSyn) -> (CTranslUnit)
-happyOut7 x = unsafeCoerce# x
- 
-{-# INLINE happyOut7 #-}
- 
-happyIn8 :: (Reversed [CExtDecl]) -> (HappyAbsSyn)
-happyIn8 x = unsafeCoerce# x
- 
-{-# INLINE happyIn8 #-}
- 
-happyOut8 :: (HappyAbsSyn) -> (Reversed [CExtDecl])
-happyOut8 x = unsafeCoerce# x
- 
-{-# INLINE happyOut8 #-}
- 
-happyIn9 :: (CExtDecl) -> (HappyAbsSyn)
-happyIn9 x = unsafeCoerce# x
- 
-{-# INLINE happyIn9 #-}
- 
-happyOut9 :: (HappyAbsSyn) -> (CExtDecl)
-happyOut9 x = unsafeCoerce# x
- 
-{-# INLINE happyOut9 #-}
- 
-happyIn10 :: (CFunDef) -> (HappyAbsSyn)
-happyIn10 x = unsafeCoerce# x
- 
-{-# INLINE happyIn10 #-}
- 
-happyOut10 :: (HappyAbsSyn) -> (CFunDef)
-happyOut10 x = unsafeCoerce# x
- 
-{-# INLINE happyOut10 #-}
- 
-happyIn11 :: (CDeclr) -> (HappyAbsSyn)
-happyIn11 x = unsafeCoerce# x
- 
-{-# INLINE happyIn11 #-}
- 
-happyOut11 :: (HappyAbsSyn) -> (CDeclr)
-happyOut11 x = unsafeCoerce# x
- 
-{-# INLINE happyOut11 #-}
- 
-happyIn12 :: (CStat) -> (HappyAbsSyn)
-happyIn12 x = unsafeCoerce# x
- 
-{-# INLINE happyIn12 #-}
- 
-happyOut12 :: (HappyAbsSyn) -> (CStat)
-happyOut12 x = unsafeCoerce# x
- 
-{-# INLINE happyOut12 #-}
- 
-happyIn13 :: (CStat) -> (HappyAbsSyn)
-happyIn13 x = unsafeCoerce# x
- 
-{-# INLINE happyIn13 #-}
- 
-happyOut13 :: (HappyAbsSyn) -> (CStat)
-happyOut13 x = unsafeCoerce# x
- 
-{-# INLINE happyOut13 #-}
- 
-happyIn14 :: (CStat) -> (HappyAbsSyn)
-happyIn14 x = unsafeCoerce# x
- 
-{-# INLINE happyIn14 #-}
- 
-happyOut14 :: (HappyAbsSyn) -> (CStat)
-happyOut14 x = unsafeCoerce# x
- 
-{-# INLINE happyOut14 #-}
- 
-happyIn15 :: (()) -> (HappyAbsSyn)
-happyIn15 x = unsafeCoerce# x
- 
-{-# INLINE happyIn15 #-}
- 
-happyOut15 :: (HappyAbsSyn) -> (())
-happyOut15 x = unsafeCoerce# x
- 
-{-# INLINE happyOut15 #-}
- 
-happyIn16 :: (()) -> (HappyAbsSyn)
-happyIn16 x = unsafeCoerce# x
- 
-{-# INLINE happyIn16 #-}
- 
-happyOut16 :: (HappyAbsSyn) -> (())
-happyOut16 x = unsafeCoerce# x
- 
-{-# INLINE happyOut16 #-}
- 
-happyIn17 :: (Reversed [CBlockItem]) -> (HappyAbsSyn)
-happyIn17 x = unsafeCoerce# x
- 
-{-# INLINE happyIn17 #-}
- 
-happyOut17 :: (HappyAbsSyn) -> (Reversed [CBlockItem])
-happyOut17 x = unsafeCoerce# x
- 
-{-# INLINE happyOut17 #-}
- 
-happyIn18 :: (CBlockItem) -> (HappyAbsSyn)
-happyIn18 x = unsafeCoerce# x
- 
-{-# INLINE happyIn18 #-}
- 
-happyOut18 :: (HappyAbsSyn) -> (CBlockItem)
-happyOut18 x = unsafeCoerce# x
- 
-{-# INLINE happyOut18 #-}
- 
-happyIn19 :: (CBlockItem) -> (HappyAbsSyn)
-happyIn19 x = unsafeCoerce# x
- 
-{-# INLINE happyIn19 #-}
- 
-happyOut19 :: (HappyAbsSyn) -> (CBlockItem)
-happyOut19 x = unsafeCoerce# x
- 
-{-# INLINE happyOut19 #-}
- 
-happyIn20 :: (CFunDef) -> (HappyAbsSyn)
-happyIn20 x = unsafeCoerce# x
- 
-{-# INLINE happyIn20 #-}
- 
-happyOut20 :: (HappyAbsSyn) -> (CFunDef)
-happyOut20 x = unsafeCoerce# x
- 
-{-# INLINE happyOut20 #-}
- 
-happyIn21 :: (Reversed [Ident]) -> (HappyAbsSyn)
-happyIn21 x = unsafeCoerce# x
- 
-{-# INLINE happyIn21 #-}
- 
-happyOut21 :: (HappyAbsSyn) -> (Reversed [Ident])
-happyOut21 x = unsafeCoerce# x
- 
-{-# INLINE happyOut21 #-}
- 
-happyIn22 :: (CStat) -> (HappyAbsSyn)
-happyIn22 x = unsafeCoerce# x
- 
-{-# INLINE happyIn22 #-}
- 
-happyOut22 :: (HappyAbsSyn) -> (CStat)
-happyOut22 x = unsafeCoerce# x
- 
-{-# INLINE happyOut22 #-}
- 
-happyIn23 :: (CStat) -> (HappyAbsSyn)
-happyIn23 x = unsafeCoerce# x
- 
-{-# INLINE happyIn23 #-}
- 
-happyOut23 :: (HappyAbsSyn) -> (CStat)
-happyOut23 x = unsafeCoerce# x
- 
-{-# INLINE happyOut23 #-}
- 
-happyIn24 :: (CStat) -> (HappyAbsSyn)
-happyIn24 x = unsafeCoerce# x
- 
-{-# INLINE happyIn24 #-}
- 
-happyOut24 :: (HappyAbsSyn) -> (CStat)
-happyOut24 x = unsafeCoerce# x
- 
-{-# INLINE happyOut24 #-}
- 
-happyIn25 :: (CStat) -> (HappyAbsSyn)
-happyIn25 x = unsafeCoerce# x
- 
-{-# INLINE happyIn25 #-}
- 
-happyOut25 :: (HappyAbsSyn) -> (CStat)
-happyOut25 x = unsafeCoerce# x
- 
-{-# INLINE happyOut25 #-}
- 
-happyIn26 :: (CAsmStmt) -> (HappyAbsSyn)
-happyIn26 x = unsafeCoerce# x
- 
-{-# INLINE happyIn26 #-}
- 
-happyOut26 :: (HappyAbsSyn) -> (CAsmStmt)
-happyOut26 x = unsafeCoerce# x
- 
-{-# INLINE happyOut26 #-}
- 
-happyIn27 :: (Maybe CTypeQual) -> (HappyAbsSyn)
-happyIn27 x = unsafeCoerce# x
- 
-{-# INLINE happyIn27 #-}
- 
-happyOut27 :: (HappyAbsSyn) -> (Maybe CTypeQual)
-happyOut27 x = unsafeCoerce# x
- 
-{-# INLINE happyOut27 #-}
- 
-happyIn28 :: ([CAsmOperand]) -> (HappyAbsSyn)
-happyIn28 x = unsafeCoerce# x
- 
-{-# INLINE happyIn28 #-}
- 
-happyOut28 :: (HappyAbsSyn) -> ([CAsmOperand])
-happyOut28 x = unsafeCoerce# x
- 
-{-# INLINE happyOut28 #-}
- 
-happyIn29 :: (Reversed [CAsmOperand]) -> (HappyAbsSyn)
-happyIn29 x = unsafeCoerce# x
- 
-{-# INLINE happyIn29 #-}
- 
-happyOut29 :: (HappyAbsSyn) -> (Reversed [CAsmOperand])
-happyOut29 x = unsafeCoerce# x
- 
-{-# INLINE happyOut29 #-}
- 
-happyIn30 :: (CAsmOperand) -> (HappyAbsSyn)
-happyIn30 x = unsafeCoerce# x
- 
-{-# INLINE happyIn30 #-}
- 
-happyOut30 :: (HappyAbsSyn) -> (CAsmOperand)
-happyOut30 x = unsafeCoerce# x
- 
-{-# INLINE happyOut30 #-}
- 
-happyIn31 :: (Reversed [CStrLit]) -> (HappyAbsSyn)
-happyIn31 x = unsafeCoerce# x
- 
-{-# INLINE happyIn31 #-}
- 
-happyOut31 :: (HappyAbsSyn) -> (Reversed [CStrLit])
-happyOut31 x = unsafeCoerce# x
- 
-{-# INLINE happyOut31 #-}
- 
-happyIn32 :: (CDecl) -> (HappyAbsSyn)
-happyIn32 x = unsafeCoerce# x
- 
-{-# INLINE happyIn32 #-}
- 
-happyOut32 :: (HappyAbsSyn) -> (CDecl)
-happyOut32 x = unsafeCoerce# x
- 
-{-# INLINE happyOut32 #-}
- 
-happyIn33 :: (Reversed [CDecl]) -> (HappyAbsSyn)
-happyIn33 x = unsafeCoerce# x
- 
-{-# INLINE happyIn33 #-}
- 
-happyOut33 :: (HappyAbsSyn) -> (Reversed [CDecl])
-happyOut33 x = unsafeCoerce# x
- 
-{-# INLINE happyOut33 #-}
- 
-happyIn34 :: (CDecl) -> (HappyAbsSyn)
-happyIn34 x = unsafeCoerce# x
- 
-{-# INLINE happyIn34 #-}
- 
-happyOut34 :: (HappyAbsSyn) -> (CDecl)
-happyOut34 x = unsafeCoerce# x
- 
-{-# INLINE happyOut34 #-}
- 
-happyIn35 :: ((Maybe CStrLit, [CAttr])) -> (HappyAbsSyn)
-happyIn35 x = unsafeCoerce# x
- 
-{-# INLINE happyIn35 #-}
- 
-happyOut35 :: (HappyAbsSyn) -> ((Maybe CStrLit, [CAttr]))
-happyOut35 x = unsafeCoerce# x
- 
-{-# INLINE happyOut35 #-}
- 
-happyIn36 :: (CDecl) -> (HappyAbsSyn)
-happyIn36 x = unsafeCoerce# x
- 
-{-# INLINE happyIn36 #-}
- 
-happyOut36 :: (HappyAbsSyn) -> (CDecl)
-happyOut36 x = unsafeCoerce# x
- 
-{-# INLINE happyOut36 #-}
- 
-happyIn37 :: ([CDeclSpec]) -> (HappyAbsSyn)
-happyIn37 x = unsafeCoerce# x
- 
-{-# INLINE happyIn37 #-}
- 
-happyOut37 :: (HappyAbsSyn) -> ([CDeclSpec])
-happyOut37 x = unsafeCoerce# x
- 
-{-# INLINE happyOut37 #-}
- 
-happyIn38 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn38 x = unsafeCoerce# x
- 
-{-# INLINE happyIn38 #-}
- 
-happyOut38 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut38 x = unsafeCoerce# x
- 
-{-# INLINE happyOut38 #-}
- 
-happyIn39 :: (CDeclSpec) -> (HappyAbsSyn)
-happyIn39 x = unsafeCoerce# x
- 
-{-# INLINE happyIn39 #-}
- 
-happyOut39 :: (HappyAbsSyn) -> (CDeclSpec)
-happyOut39 x = unsafeCoerce# x
- 
-{-# INLINE happyOut39 #-}
- 
-happyIn40 :: (CStorageSpec) -> (HappyAbsSyn)
-happyIn40 x = unsafeCoerce# x
- 
-{-# INLINE happyIn40 #-}
- 
-happyOut40 :: (HappyAbsSyn) -> (CStorageSpec)
-happyOut40 x = unsafeCoerce# x
- 
-{-# INLINE happyOut40 #-}
- 
-happyIn41 :: ([CDeclSpec]) -> (HappyAbsSyn)
-happyIn41 x = unsafeCoerce# x
- 
-{-# INLINE happyIn41 #-}
- 
-happyOut41 :: (HappyAbsSyn) -> ([CDeclSpec])
-happyOut41 x = unsafeCoerce# x
- 
-{-# INLINE happyOut41 #-}
- 
-happyIn42 :: (CTypeSpec) -> (HappyAbsSyn)
-happyIn42 x = unsafeCoerce# x
- 
-{-# INLINE happyIn42 #-}
- 
-happyOut42 :: (HappyAbsSyn) -> (CTypeSpec)
-happyOut42 x = unsafeCoerce# x
- 
-{-# INLINE happyOut42 #-}
- 
-happyIn43 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn43 x = unsafeCoerce# x
- 
-{-# INLINE happyIn43 #-}
- 
-happyOut43 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut43 x = unsafeCoerce# x
- 
-{-# INLINE happyOut43 #-}
- 
-happyIn44 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn44 x = unsafeCoerce# x
- 
-{-# INLINE happyIn44 #-}
- 
-happyOut44 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut44 x = unsafeCoerce# x
- 
-{-# INLINE happyOut44 #-}
- 
-happyIn45 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn45 x = unsafeCoerce# x
- 
-{-# INLINE happyIn45 #-}
- 
-happyOut45 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut45 x = unsafeCoerce# x
- 
-{-# INLINE happyOut45 #-}
- 
-happyIn46 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn46 x = unsafeCoerce# x
- 
-{-# INLINE happyIn46 #-}
- 
-happyOut46 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut46 x = unsafeCoerce# x
- 
-{-# INLINE happyOut46 #-}
- 
-happyIn47 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn47 x = unsafeCoerce# x
- 
-{-# INLINE happyIn47 #-}
- 
-happyOut47 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut47 x = unsafeCoerce# x
- 
-{-# INLINE happyOut47 #-}
- 
-happyIn48 :: (Reversed [CDeclSpec]) -> (HappyAbsSyn)
-happyIn48 x = unsafeCoerce# x
- 
-{-# INLINE happyIn48 #-}
- 
-happyOut48 :: (HappyAbsSyn) -> (Reversed [CDeclSpec])
-happyOut48 x = unsafeCoerce# x
- 
-{-# INLINE happyOut48 #-}
- 
-happyIn49 :: (CTypeSpec) -> (HappyAbsSyn)
-happyIn49 x = unsafeCoerce# x
- 
-{-# INLINE happyIn49 #-}
- 
-happyOut49 :: (HappyAbsSyn) -> (CTypeSpec)
-happyOut49 x = unsafeCoerce# x
- 
-{-# INLINE happyOut49 #-}
- 
-happyIn50 :: (CStructUnion) -> (HappyAbsSyn)
-happyIn50 x = unsafeCoerce# x
- 
-{-# INLINE happyIn50 #-}
- 
-happyOut50 :: (HappyAbsSyn) -> (CStructUnion)
-happyOut50 x = unsafeCoerce# x
- 
-{-# INLINE happyOut50 #-}
- 
-happyIn51 :: (Located CStructTag) -> (HappyAbsSyn)
-happyIn51 x = unsafeCoerce# x
- 
-{-# INLINE happyIn51 #-}
- 
-happyOut51 :: (HappyAbsSyn) -> (Located CStructTag)
-happyOut51 x = unsafeCoerce# x
- 
-{-# INLINE happyOut51 #-}
- 
-happyIn52 :: (Reversed [CDecl]) -> (HappyAbsSyn)
-happyIn52 x = unsafeCoerce# x
- 
-{-# INLINE happyIn52 #-}
- 
-happyOut52 :: (HappyAbsSyn) -> (Reversed [CDecl])
-happyOut52 x = unsafeCoerce# x
- 
-{-# INLINE happyOut52 #-}
- 
-happyIn53 :: (CDecl) -> (HappyAbsSyn)
-happyIn53 x = unsafeCoerce# x
- 
-{-# INLINE happyIn53 #-}
- 
-happyOut53 :: (HappyAbsSyn) -> (CDecl)
-happyOut53 x = unsafeCoerce# x
- 
-{-# INLINE happyOut53 #-}
- 
-happyIn54 :: (CDecl) -> (HappyAbsSyn)
-happyIn54 x = unsafeCoerce# x
- 
-{-# INLINE happyIn54 #-}
- 
-happyOut54 :: (HappyAbsSyn) -> (CDecl)
-happyOut54 x = unsafeCoerce# x
- 
-{-# INLINE happyOut54 #-}
- 
-happyIn55 :: (CDecl) -> (HappyAbsSyn)
-happyIn55 x = unsafeCoerce# x
- 
-{-# INLINE happyIn55 #-}
- 
-happyOut55 :: (HappyAbsSyn) -> (CDecl)
-happyOut55 x = unsafeCoerce# x
- 
-{-# INLINE happyOut55 #-}
- 
-happyIn56 :: ((Maybe CDeclr, Maybe CExpr)) -> (HappyAbsSyn)
-happyIn56 x = unsafeCoerce# x
- 
-{-# INLINE happyIn56 #-}
- 
-happyOut56 :: (HappyAbsSyn) -> ((Maybe CDeclr, Maybe CExpr))
-happyOut56 x = unsafeCoerce# x
- 
-{-# INLINE happyOut56 #-}
- 
-happyIn57 :: ((Maybe CDeclr, Maybe CExpr)) -> (HappyAbsSyn)
-happyIn57 x = unsafeCoerce# x
- 
-{-# INLINE happyIn57 #-}
- 
-happyOut57 :: (HappyAbsSyn) -> ((Maybe CDeclr, Maybe CExpr))
-happyOut57 x = unsafeCoerce# x
- 
-{-# INLINE happyOut57 #-}
- 
-happyIn58 :: (CEnum) -> (HappyAbsSyn)
-happyIn58 x = unsafeCoerce# x
- 
-{-# INLINE happyIn58 #-}
- 
-happyOut58 :: (HappyAbsSyn) -> (CEnum)
-happyOut58 x = unsafeCoerce# x
- 
-{-# INLINE happyOut58 #-}
- 
-happyIn59 :: (Reversed [(Ident, Maybe CExpr)]) -> (HappyAbsSyn)
-happyIn59 x = unsafeCoerce# x
- 
-{-# INLINE happyIn59 #-}
- 
-happyOut59 :: (HappyAbsSyn) -> (Reversed [(Ident, Maybe CExpr)])
-happyOut59 x = unsafeCoerce# x
- 
-{-# INLINE happyOut59 #-}
- 
-happyIn60 :: ((Ident, Maybe CExpr)) -> (HappyAbsSyn)
-happyIn60 x = unsafeCoerce# x
- 
-{-# INLINE happyIn60 #-}
- 
-happyOut60 :: (HappyAbsSyn) -> ((Ident, Maybe CExpr))
-happyOut60 x = unsafeCoerce# x
- 
-{-# INLINE happyOut60 #-}
- 
-happyIn61 :: (CTypeQual) -> (HappyAbsSyn)
-happyIn61 x = unsafeCoerce# x
- 
-{-# INLINE happyIn61 #-}
- 
-happyOut61 :: (HappyAbsSyn) -> (CTypeQual)
-happyOut61 x = unsafeCoerce# x
- 
-{-# INLINE happyOut61 #-}
- 
-happyIn62 :: (Reversed [CTypeQual]) -> (HappyAbsSyn)
-happyIn62 x = unsafeCoerce# x
- 
-{-# INLINE happyIn62 #-}
- 
-happyOut62 :: (HappyAbsSyn) -> (Reversed [CTypeQual])
-happyOut62 x = unsafeCoerce# x
- 
-{-# INLINE happyOut62 #-}
- 
-happyIn63 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn63 x = unsafeCoerce# x
- 
-{-# INLINE happyIn63 #-}
- 
-happyOut63 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut63 x = unsafeCoerce# x
- 
-{-# INLINE happyOut63 #-}
- 
-happyIn64 :: (Maybe CStrLit) -> (HappyAbsSyn)
-happyIn64 x = unsafeCoerce# x
- 
-{-# INLINE happyIn64 #-}
- 
-happyOut64 :: (HappyAbsSyn) -> (Maybe CStrLit)
-happyOut64 x = unsafeCoerce# x
- 
-{-# INLINE happyOut64 #-}
- 
-happyIn65 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn65 x = unsafeCoerce# x
- 
-{-# INLINE happyIn65 #-}
- 
-happyOut65 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut65 x = unsafeCoerce# x
- 
-{-# INLINE happyOut65 #-}
- 
-happyIn66 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn66 x = unsafeCoerce# x
- 
-{-# INLINE happyIn66 #-}
- 
-happyOut66 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut66 x = unsafeCoerce# x
- 
-{-# INLINE happyOut66 #-}
- 
-happyIn67 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn67 x = unsafeCoerce# x
- 
-{-# INLINE happyIn67 #-}
- 
-happyOut67 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut67 x = unsafeCoerce# x
- 
-{-# INLINE happyOut67 #-}
- 
-happyIn68 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn68 x = unsafeCoerce# x
- 
-{-# INLINE happyIn68 #-}
- 
-happyOut68 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut68 x = unsafeCoerce# x
- 
-{-# INLINE happyOut68 #-}
- 
-happyIn69 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn69 x = unsafeCoerce# x
- 
-{-# INLINE happyIn69 #-}
- 
-happyOut69 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut69 x = unsafeCoerce# x
- 
-{-# INLINE happyOut69 #-}
- 
-happyIn70 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn70 x = unsafeCoerce# x
- 
-{-# INLINE happyIn70 #-}
- 
-happyOut70 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut70 x = unsafeCoerce# x
- 
-{-# INLINE happyOut70 #-}
- 
-happyIn71 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn71 x = unsafeCoerce# x
- 
-{-# INLINE happyIn71 #-}
- 
-happyOut71 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut71 x = unsafeCoerce# x
- 
-{-# INLINE happyOut71 #-}
- 
-happyIn72 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn72 x = unsafeCoerce# x
- 
-{-# INLINE happyIn72 #-}
- 
-happyOut72 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut72 x = unsafeCoerce# x
- 
-{-# INLINE happyOut72 #-}
- 
-happyIn73 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn73 x = unsafeCoerce# x
- 
-{-# INLINE happyIn73 #-}
- 
-happyOut73 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut73 x = unsafeCoerce# x
- 
-{-# INLINE happyOut73 #-}
- 
-happyIn74 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn74 x = unsafeCoerce# x
- 
-{-# INLINE happyIn74 #-}
- 
-happyOut74 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut74 x = unsafeCoerce# x
- 
-{-# INLINE happyOut74 #-}
- 
-happyIn75 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn75 x = unsafeCoerce# x
- 
-{-# INLINE happyIn75 #-}
- 
-happyOut75 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut75 x = unsafeCoerce# x
- 
-{-# INLINE happyOut75 #-}
- 
-happyIn76 :: (CDeclr) -> (HappyAbsSyn)
-happyIn76 x = unsafeCoerce# x
- 
-{-# INLINE happyIn76 #-}
- 
-happyOut76 :: (HappyAbsSyn) -> (CDeclr)
-happyOut76 x = unsafeCoerce# x
- 
-{-# INLINE happyOut76 #-}
- 
-happyIn77 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn77 x = unsafeCoerce# x
- 
-{-# INLINE happyIn77 #-}
- 
-happyOut77 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut77 x = unsafeCoerce# x
- 
-{-# INLINE happyOut77 #-}
- 
-happyIn78 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn78 x = unsafeCoerce# x
- 
-{-# INLINE happyIn78 #-}
- 
-happyOut78 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut78 x = unsafeCoerce# x
- 
-{-# INLINE happyOut78 #-}
- 
-happyIn79 :: (([CDecl], Bool)) -> (HappyAbsSyn)
-happyIn79 x = unsafeCoerce# x
- 
-{-# INLINE happyIn79 #-}
- 
-happyOut79 :: (HappyAbsSyn) -> (([CDecl], Bool))
-happyOut79 x = unsafeCoerce# x
- 
-{-# INLINE happyOut79 #-}
- 
-happyIn80 :: (Reversed [CDecl]) -> (HappyAbsSyn)
-happyIn80 x = unsafeCoerce# x
- 
-{-# INLINE happyIn80 #-}
- 
-happyOut80 :: (HappyAbsSyn) -> (Reversed [CDecl])
-happyOut80 x = unsafeCoerce# x
- 
-{-# INLINE happyOut80 #-}
- 
-happyIn81 :: (CDecl) -> (HappyAbsSyn)
-happyIn81 x = unsafeCoerce# x
- 
-{-# INLINE happyIn81 #-}
- 
-happyOut81 :: (HappyAbsSyn) -> (CDecl)
-happyOut81 x = unsafeCoerce# x
- 
-{-# INLINE happyOut81 #-}
- 
-happyIn82 :: (Reversed [Ident]) -> (HappyAbsSyn)
-happyIn82 x = unsafeCoerce# x
- 
-{-# INLINE happyIn82 #-}
- 
-happyOut82 :: (HappyAbsSyn) -> (Reversed [Ident])
-happyOut82 x = unsafeCoerce# x
- 
-{-# INLINE happyOut82 #-}
- 
-happyIn83 :: (CDecl) -> (HappyAbsSyn)
-happyIn83 x = unsafeCoerce# x
- 
-{-# INLINE happyIn83 #-}
- 
-happyOut83 :: (HappyAbsSyn) -> (CDecl)
-happyOut83 x = unsafeCoerce# x
- 
-{-# INLINE happyOut83 #-}
- 
-happyIn84 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn84 x = unsafeCoerce# x
- 
-{-# INLINE happyIn84 #-}
- 
-happyOut84 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut84 x = unsafeCoerce# x
- 
-{-# INLINE happyOut84 #-}
- 
-happyIn85 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn)
-happyIn85 x = unsafeCoerce# x
- 
-{-# INLINE happyIn85 #-}
- 
-happyOut85 :: (HappyAbsSyn) -> (CDeclrR -> CDeclrR)
-happyOut85 x = unsafeCoerce# x
- 
-{-# INLINE happyOut85 #-}
- 
-happyIn86 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn)
-happyIn86 x = unsafeCoerce# x
- 
-{-# INLINE happyIn86 #-}
- 
-happyOut86 :: (HappyAbsSyn) -> (CDeclrR -> CDeclrR)
-happyOut86 x = unsafeCoerce# x
- 
-{-# INLINE happyOut86 #-}
- 
-happyIn87 :: (CDeclrR -> CDeclrR) -> (HappyAbsSyn)
-happyIn87 x = unsafeCoerce# x
- 
-{-# INLINE happyIn87 #-}
- 
-happyOut87 :: (HappyAbsSyn) -> (CDeclrR -> CDeclrR)
-happyOut87 x = unsafeCoerce# x
- 
-{-# INLINE happyOut87 #-}
- 
-happyIn88 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn88 x = unsafeCoerce# x
- 
-{-# INLINE happyIn88 #-}
- 
-happyOut88 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut88 x = unsafeCoerce# x
- 
-{-# INLINE happyOut88 #-}
- 
-happyIn89 :: (CDeclrR) -> (HappyAbsSyn)
-happyIn89 x = unsafeCoerce# x
- 
-{-# INLINE happyIn89 #-}
- 
-happyOut89 :: (HappyAbsSyn) -> (CDeclrR)
-happyOut89 x = unsafeCoerce# x
- 
-{-# INLINE happyOut89 #-}
- 
-happyIn90 :: (CInit) -> (HappyAbsSyn)
-happyIn90 x = unsafeCoerce# x
- 
-{-# INLINE happyIn90 #-}
- 
-happyOut90 :: (HappyAbsSyn) -> (CInit)
-happyOut90 x = unsafeCoerce# x
- 
-{-# INLINE happyOut90 #-}
- 
-happyIn91 :: (Maybe CInit) -> (HappyAbsSyn)
-happyIn91 x = unsafeCoerce# x
- 
-{-# INLINE happyIn91 #-}
- 
-happyOut91 :: (HappyAbsSyn) -> (Maybe CInit)
-happyOut91 x = unsafeCoerce# x
- 
-{-# INLINE happyOut91 #-}
- 
-happyIn92 :: (Reversed CInitList) -> (HappyAbsSyn)
-happyIn92 x = unsafeCoerce# x
- 
-{-# INLINE happyIn92 #-}
- 
-happyOut92 :: (HappyAbsSyn) -> (Reversed CInitList)
-happyOut92 x = unsafeCoerce# x
- 
-{-# INLINE happyOut92 #-}
- 
-happyIn93 :: ([CDesignator]) -> (HappyAbsSyn)
-happyIn93 x = unsafeCoerce# x
- 
-{-# INLINE happyIn93 #-}
- 
-happyOut93 :: (HappyAbsSyn) -> ([CDesignator])
-happyOut93 x = unsafeCoerce# x
- 
-{-# INLINE happyOut93 #-}
- 
-happyIn94 :: (Reversed [CDesignator]) -> (HappyAbsSyn)
-happyIn94 x = unsafeCoerce# x
- 
-{-# INLINE happyIn94 #-}
- 
-happyOut94 :: (HappyAbsSyn) -> (Reversed [CDesignator])
-happyOut94 x = unsafeCoerce# x
- 
-{-# INLINE happyOut94 #-}
- 
-happyIn95 :: (CDesignator) -> (HappyAbsSyn)
-happyIn95 x = unsafeCoerce# x
- 
-{-# INLINE happyIn95 #-}
- 
-happyOut95 :: (HappyAbsSyn) -> (CDesignator)
-happyOut95 x = unsafeCoerce# x
- 
-{-# INLINE happyOut95 #-}
- 
-happyIn96 :: (CDesignator) -> (HappyAbsSyn)
-happyIn96 x = unsafeCoerce# x
- 
-{-# INLINE happyIn96 #-}
- 
-happyOut96 :: (HappyAbsSyn) -> (CDesignator)
-happyOut96 x = unsafeCoerce# x
- 
-{-# INLINE happyOut96 #-}
- 
-happyIn97 :: (CExpr) -> (HappyAbsSyn)
-happyIn97 x = unsafeCoerce# x
- 
-{-# INLINE happyIn97 #-}
- 
-happyOut97 :: (HappyAbsSyn) -> (CExpr)
-happyOut97 x = unsafeCoerce# x
- 
-{-# INLINE happyOut97 #-}
- 
-happyIn98 :: (Reversed [CDesignator]) -> (HappyAbsSyn)
-happyIn98 x = unsafeCoerce# x
- 
-{-# INLINE happyIn98 #-}
- 
-happyOut98 :: (HappyAbsSyn) -> (Reversed [CDesignator])
-happyOut98 x = unsafeCoerce# x
- 
-{-# INLINE happyOut98 #-}
- 
-happyIn99 :: (CExpr) -> (HappyAbsSyn)
-happyIn99 x = unsafeCoerce# x
- 
-{-# INLINE happyIn99 #-}
- 
-happyOut99 :: (HappyAbsSyn) -> (CExpr)
-happyOut99 x = unsafeCoerce# x
- 
-{-# INLINE happyOut99 #-}
- 
-happyIn100 :: (Reversed [CExpr]) -> (HappyAbsSyn)
-happyIn100 x = unsafeCoerce# x
- 
-{-# INLINE happyIn100 #-}
- 
-happyOut100 :: (HappyAbsSyn) -> (Reversed [CExpr])
-happyOut100 x = unsafeCoerce# x
- 
-{-# INLINE happyOut100 #-}
- 
-happyIn101 :: (CExpr) -> (HappyAbsSyn)
-happyIn101 x = unsafeCoerce# x
- 
-{-# INLINE happyIn101 #-}
- 
-happyOut101 :: (HappyAbsSyn) -> (CExpr)
-happyOut101 x = unsafeCoerce# x
- 
-{-# INLINE happyOut101 #-}
- 
-happyIn102 :: (Located CUnaryOp) -> (HappyAbsSyn)
-happyIn102 x = unsafeCoerce# x
- 
-{-# INLINE happyIn102 #-}
- 
-happyOut102 :: (HappyAbsSyn) -> (Located CUnaryOp)
-happyOut102 x = unsafeCoerce# x
- 
-{-# INLINE happyOut102 #-}
- 
-happyIn103 :: (CExpr) -> (HappyAbsSyn)
-happyIn103 x = unsafeCoerce# x
- 
-{-# INLINE happyIn103 #-}
- 
-happyOut103 :: (HappyAbsSyn) -> (CExpr)
-happyOut103 x = unsafeCoerce# x
- 
-{-# INLINE happyOut103 #-}
- 
-happyIn104 :: (CExpr) -> (HappyAbsSyn)
-happyIn104 x = unsafeCoerce# x
- 
-{-# INLINE happyIn104 #-}
- 
-happyOut104 :: (HappyAbsSyn) -> (CExpr)
-happyOut104 x = unsafeCoerce# x
- 
-{-# INLINE happyOut104 #-}
- 
-happyIn105 :: (CExpr) -> (HappyAbsSyn)
-happyIn105 x = unsafeCoerce# x
- 
-{-# INLINE happyIn105 #-}
- 
-happyOut105 :: (HappyAbsSyn) -> (CExpr)
-happyOut105 x = unsafeCoerce# x
- 
-{-# INLINE happyOut105 #-}
- 
-happyIn106 :: (CExpr) -> (HappyAbsSyn)
-happyIn106 x = unsafeCoerce# x
- 
-{-# INLINE happyIn106 #-}
- 
-happyOut106 :: (HappyAbsSyn) -> (CExpr)
-happyOut106 x = unsafeCoerce# x
- 
-{-# INLINE happyOut106 #-}
- 
-happyIn107 :: (CExpr) -> (HappyAbsSyn)
-happyIn107 x = unsafeCoerce# x
- 
-{-# INLINE happyIn107 #-}
- 
-happyOut107 :: (HappyAbsSyn) -> (CExpr)
-happyOut107 x = unsafeCoerce# x
- 
-{-# INLINE happyOut107 #-}
- 
-happyIn108 :: (CExpr) -> (HappyAbsSyn)
-happyIn108 x = unsafeCoerce# x
- 
-{-# INLINE happyIn108 #-}
- 
-happyOut108 :: (HappyAbsSyn) -> (CExpr)
-happyOut108 x = unsafeCoerce# x
- 
-{-# INLINE happyOut108 #-}
- 
-happyIn109 :: (CExpr) -> (HappyAbsSyn)
-happyIn109 x = unsafeCoerce# x
- 
-{-# INLINE happyIn109 #-}
- 
-happyOut109 :: (HappyAbsSyn) -> (CExpr)
-happyOut109 x = unsafeCoerce# x
- 
-{-# INLINE happyOut109 #-}
- 
-happyIn110 :: (CExpr) -> (HappyAbsSyn)
-happyIn110 x = unsafeCoerce# x
- 
-{-# INLINE happyIn110 #-}
- 
-happyOut110 :: (HappyAbsSyn) -> (CExpr)
-happyOut110 x = unsafeCoerce# x
- 
-{-# INLINE happyOut110 #-}
- 
-happyIn111 :: (CExpr) -> (HappyAbsSyn)
-happyIn111 x = unsafeCoerce# x
- 
-{-# INLINE happyIn111 #-}
- 
-happyOut111 :: (HappyAbsSyn) -> (CExpr)
-happyOut111 x = unsafeCoerce# x
- 
-{-# INLINE happyOut111 #-}
- 
-happyIn112 :: (CExpr) -> (HappyAbsSyn)
-happyIn112 x = unsafeCoerce# x
- 
-{-# INLINE happyIn112 #-}
- 
-happyOut112 :: (HappyAbsSyn) -> (CExpr)
-happyOut112 x = unsafeCoerce# x
- 
-{-# INLINE happyOut112 #-}
- 
-happyIn113 :: (CExpr) -> (HappyAbsSyn)
-happyIn113 x = unsafeCoerce# x
- 
-{-# INLINE happyIn113 #-}
- 
-happyOut113 :: (HappyAbsSyn) -> (CExpr)
-happyOut113 x = unsafeCoerce# x
- 
-{-# INLINE happyOut113 #-}
- 
-happyIn114 :: (CExpr) -> (HappyAbsSyn)
-happyIn114 x = unsafeCoerce# x
- 
-{-# INLINE happyIn114 #-}
- 
-happyOut114 :: (HappyAbsSyn) -> (CExpr)
-happyOut114 x = unsafeCoerce# x
- 
-{-# INLINE happyOut114 #-}
- 
-happyIn115 :: (CExpr) -> (HappyAbsSyn)
-happyIn115 x = unsafeCoerce# x
- 
-{-# INLINE happyIn115 #-}
- 
-happyOut115 :: (HappyAbsSyn) -> (CExpr)
-happyOut115 x = unsafeCoerce# x
- 
-{-# INLINE happyOut115 #-}
- 
-happyIn116 :: (Located CAssignOp) -> (HappyAbsSyn)
-happyIn116 x = unsafeCoerce# x
- 
-{-# INLINE happyIn116 #-}
- 
-happyOut116 :: (HappyAbsSyn) -> (Located CAssignOp)
-happyOut116 x = unsafeCoerce# x
- 
-{-# INLINE happyOut116 #-}
- 
-happyIn117 :: (CExpr) -> (HappyAbsSyn)
-happyIn117 x = unsafeCoerce# x
- 
-{-# INLINE happyIn117 #-}
- 
-happyOut117 :: (HappyAbsSyn) -> (CExpr)
-happyOut117 x = unsafeCoerce# x
- 
-{-# INLINE happyOut117 #-}
- 
-happyIn118 :: (Reversed [CExpr]) -> (HappyAbsSyn)
-happyIn118 x = unsafeCoerce# x
- 
-{-# INLINE happyIn118 #-}
- 
-happyOut118 :: (HappyAbsSyn) -> (Reversed [CExpr])
-happyOut118 x = unsafeCoerce# x
- 
-{-# INLINE happyOut118 #-}
- 
-happyIn119 :: (Maybe CExpr) -> (HappyAbsSyn)
-happyIn119 x = unsafeCoerce# x
- 
-{-# INLINE happyIn119 #-}
- 
-happyOut119 :: (HappyAbsSyn) -> (Maybe CExpr)
-happyOut119 x = unsafeCoerce# x
- 
-{-# INLINE happyOut119 #-}
- 
-happyIn120 :: (Maybe CExpr) -> (HappyAbsSyn)
-happyIn120 x = unsafeCoerce# x
- 
-{-# INLINE happyIn120 #-}
- 
-happyOut120 :: (HappyAbsSyn) -> (Maybe CExpr)
-happyOut120 x = unsafeCoerce# x
- 
-{-# INLINE happyOut120 #-}
- 
-happyIn121 :: (CExpr) -> (HappyAbsSyn)
-happyIn121 x = unsafeCoerce# x
- 
-{-# INLINE happyIn121 #-}
- 
-happyOut121 :: (HappyAbsSyn) -> (CExpr)
-happyOut121 x = unsafeCoerce# x
- 
-{-# INLINE happyOut121 #-}
- 
-happyIn122 :: (CConst) -> (HappyAbsSyn)
-happyIn122 x = unsafeCoerce# x
- 
-{-# INLINE happyIn122 #-}
- 
-happyOut122 :: (HappyAbsSyn) -> (CConst)
-happyOut122 x = unsafeCoerce# x
- 
-{-# INLINE happyOut122 #-}
- 
-happyIn123 :: (CStrLit) -> (HappyAbsSyn)
-happyIn123 x = unsafeCoerce# x
- 
-{-# INLINE happyIn123 #-}
- 
-happyOut123 :: (HappyAbsSyn) -> (CStrLit)
-happyOut123 x = unsafeCoerce# x
- 
-{-# INLINE happyOut123 #-}
- 
-happyIn124 :: (Reversed [CString]) -> (HappyAbsSyn)
-happyIn124 x = unsafeCoerce# x
- 
-{-# INLINE happyIn124 #-}
- 
-happyOut124 :: (HappyAbsSyn) -> (Reversed [CString])
-happyOut124 x = unsafeCoerce# x
- 
-{-# INLINE happyOut124 #-}
- 
-happyIn125 :: (Ident) -> (HappyAbsSyn)
-happyIn125 x = unsafeCoerce# x
- 
-{-# INLINE happyIn125 #-}
- 
-happyOut125 :: (HappyAbsSyn) -> (Ident)
-happyOut125 x = unsafeCoerce# x
- 
-{-# INLINE happyOut125 #-}
- 
-happyIn126 :: ([CAttr]) -> (HappyAbsSyn)
-happyIn126 x = unsafeCoerce# x
- 
-{-# INLINE happyIn126 #-}
- 
-happyOut126 :: (HappyAbsSyn) -> ([CAttr])
-happyOut126 x = unsafeCoerce# x
- 
-{-# INLINE happyOut126 #-}
- 
-happyIn127 :: ([CAttr]) -> (HappyAbsSyn)
-happyIn127 x = unsafeCoerce# x
- 
-{-# INLINE happyIn127 #-}
- 
-happyOut127 :: (HappyAbsSyn) -> ([CAttr])
-happyOut127 x = unsafeCoerce# x
- 
-{-# INLINE happyOut127 #-}
- 
-happyIn128 :: ([CAttr]) -> (HappyAbsSyn)
-happyIn128 x = unsafeCoerce# x
- 
-{-# INLINE happyIn128 #-}
- 
-happyOut128 :: (HappyAbsSyn) -> ([CAttr])
-happyOut128 x = unsafeCoerce# x
- 
-{-# INLINE happyOut128 #-}
- 
-happyIn129 :: (Reversed [CAttr]) -> (HappyAbsSyn)
-happyIn129 x = unsafeCoerce# x
- 
-{-# INLINE happyIn129 #-}
- 
-happyOut129 :: (HappyAbsSyn) -> (Reversed [CAttr])
-happyOut129 x = unsafeCoerce# x
- 
-{-# INLINE happyOut129 #-}
- 
-happyIn130 :: (Maybe CAttr) -> (HappyAbsSyn)
-happyIn130 x = unsafeCoerce# x
- 
-{-# INLINE happyIn130 #-}
- 
-happyOut130 :: (HappyAbsSyn) -> (Maybe CAttr)
-happyOut130 x = unsafeCoerce# x
- 
-{-# INLINE happyOut130 #-}
- 
-happyIn131 :: (Reversed [CExpr]) -> (HappyAbsSyn)
-happyIn131 x = unsafeCoerce# x
- 
-{-# INLINE happyIn131 #-}
- 
-happyOut131 :: (HappyAbsSyn) -> (Reversed [CExpr])
-happyOut131 x = unsafeCoerce# x
- 
-{-# INLINE happyOut131 #-}
- 
-happyInTok :: CToken -> (HappyAbsSyn)
-happyInTok x = unsafeCoerce# x
- 
-{-# INLINE happyInTok #-}
- 
-happyOutTok :: (HappyAbsSyn) -> CToken
-happyOutTok x = unsafeCoerce# x
- 
-{-# INLINE happyOutTok #-}
- 
-happyActOffsets :: HappyAddr
-happyActOffsets
-  = HappyA#
-      "\NUL\NUL\GS\SI\211\t1\SI\NUL\NUL\128\a\NUL\NUL\DEL\tw\SI1\SI\NUL\NUL\200\t\US\ENQ\ENQ\ENQ\DEL\ETX\240\EOTe\bT\bI\b>\b\198\EOT\NUL\NUL+\b\239\a\NUL\NUL\NUL\NUL\v\t\NUL\NUL\NUL\NUL\205\SO\205\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\EOT\175\SO\150\SO\NUL\NUL\NUL\NUL\NUL\NUL\246\a\NUL\NUL2\SO\DC4\SO\DC4\SO\&H\bG\b$\b\182\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\a\230\a\NUL\NUL\NUL\NULJ\ENQ\210\a\251\r\208\a\214\a\211\t\245\a$\NUL\237\a\251\r\236\a\213\a\198\a\NUL\NULv\a\NUL\NUL\174\a\NUL\NUL\149\EOT\142\EOT\SOH\SOH\213\DC1\NUL\NUL\SOH\SOH\NUL\NUL\154\EM\154\EM\DC1\CAN\SOH\CAN!\b!\b\NUL\NUL\NUL\NULq\a\NUL\NUL\166\DC1\NUL\NUL\NUL\NUL\NUL\NUL\217\SOH\NUL\NUL\NUL\NUL\NUL\NULJ\ENQ\137\DC2\NUL\NUL=\SOH=\SOH\203\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULk\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\187\a\GS\SIU\a\NUL\NUL\184\ao\tz\SOHY\a[\a\179\DC2\NUL\NUL\NUL\NULK\NUL\178\a\180\t\170\aK\NUL\134\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL\167\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL8\CAN\NUL\NUL\157\a\NUL\NUL\148\CAN\255\nr\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULw\DC1\151\a\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULg\a_\a\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULb\a\NUL\NULn\STXH\STX\SI\NULR\a\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NUL\NUL\NUL{\a\NUL\NULO\aS\a\NUL\NUL\ESC\a\NUL\NUL\ESC\a\NUL\NUL\NUL\NUL\251\r\251\r\NUL\NULM\a\251\rA\a\251\r\NUL\NULC\b\DC4\a\211\t\NUL\NUL\NUL\NUL\NUL\NUL\US\NUL\NUL\NULe\a\NUL\NUL.\a\244\ACK\NUL\NUL\195\SUB\195\SUB\251\r\NUL\NUL\v\t\NUL\NUL\NUL\NUL\240\ACK\NUL\NUL\NUL\NUL\v\t\NUL\NUL\v\t\NUL\NUL\NUL\NUL\NUL\NULN\a\151\ETX\231\SUB\171\EOT\171\EOTz\nL\aK\a\159\SUB\251\r\251\r\151\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\r\251\r6\EOT6\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\an\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\t\163\t\138\EOT\138\EOTO\EOTO\EOTO\EOTO\EOT\DEL\ETX\DEL\ETX\GS\EOT5\a+\a\SYN\a\f\a\251\r%\a\NUL\NUL\251\ACK\NUL\NULa\r\NUL\NUL\NUL\NUL\NUL\NUL\183\ACKW\SUB3\SUBH\DC1\NUL\SI\NUL\NUL\NUL\NUL\SI\a\SO\a\NUL\NUL\243\ACK\221\ACK\219\ACK\199\ACK\211\t\223\a\173\ACK\148\ACK|\ACK\211\t\251\r\NUL\NUL\203\ACKl\EM\171\ACK\167\ACK\NUL\NUL\196\ACK\NUL\NUL\195\ACK\193\ACK\234\NUL\216\NUL8\CAN\161\ACK]\ACK\170\ACK\NUL\NULo\t8\CAN\134\ACK\NUL\NUL\NUL\NUL\RS\EM[\v\NUL\NUL\NUL\NUL\177\SOH\147\SOH\142\ACK\136\ACK\SI\NULG\NUL\147\SOH\NUL\NUL8\CANf\ACK\NUL\NULI\ACK\NUL\NULo\t>\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\237\SOH\NUL\NULb\ACK\NUL\NUL8\CAN=\ACK\NUL\NUL\155\n\NUL\NUL)\ACK\224\v\t\NUL\206\ENQt\STX\255\SIt\STX!\b!\b\208\SI$\ACK\251\ENQ\NUL\NUL\ESC\SOHE\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\EM\DC1\216\NUL\234\DLEZ\DC2o\t8\CAN\EOT\ACK\NUL\NUL\EM\ACK\158\t\DC2\NUL\DC2\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\220\f\t\ACK\244\ENQ\204\ETX\ETX\ACK\254\ENQw\NUL\202\NUL\NUL\NUL\NUL\NUL\239\ENQ\NUL\NUL\NUL\NUL\205\STX\NUL\NUL\203\ENQ\204\ETX\170\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\220\fK\t\NUL\NUL\SI\NUL\NUL\NUL\253\f\NUL\NUL\200\ENQ\193\ENQ\140\ENQ\140\ENQ\187\DLE\NUL\NUL\241\NUL\201\NUL\140\ENQ\NUL\NULV\ENQf\CAN\NUL\NULS\ENQ\NUL\NUL\240\CAN\194\CAN\161\SI\222\DC2S\ENQS\ENQ\NUL\NULr\SII\aS\ENQ\NUL\NULS\ENQS\ENQ\NUL\NUL\171\EOTb\f\157\ENQ\155\ENQ\t\NUL\NUL\NUL\144\ENQF\ENQ7\n\t\NUL\NUL\NUL\NUL\NULo\t8\CANm\ENQ\NUL\NUL\143\ENQ\141\ENQ\220\ETB\NUL\NUL\NUL\NUL\NUL\NUL/\t\132\ENQ\SO\NUL\190\NUL\131\ENQ\SI\NUL\SI\NUL,\t\NUL\NUL\NUL\NUL\NUL\NUL\227\ne\NUL\NUL\NUL\NUL\NUL\129\ENQy\ENQ\DLE\ENQ\NUL\NUL\NUL\NUL\NUL\NUL5\ENQ5\ENQ\211\t\211\t\211\t\NUL\NUL\251\r\251\r\251\rB\ENQ\NUL\NUL\170\SOH\201\ETX\223\a\242\EOT\NUL\NUL#\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\216\NUL\140\DLE\216\NUL]\DLE-\ENQ\167\b\NUL\NUL{\SUB\154\ETX{\SUB\FS\ENQ\FS\ENQ\FS\ENQ0\f\NUL\NUL\162\t1\ENQ/\ENQ-\NUL3\DC2\NUL\NUL\NUL\NUL\254\v\251\r\NUL\NUL\251\r\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\STX\253\f\220\STX\NUL\NUL\153\SOH\NUL\NUL\212\EOT\251\r\154\ETX\254\v!\ENQ\r\ENQ\DC3\NUL\NUL\NUL\SI\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\EOT\t\ENQ\237\STX\NUL\NUL\249\EOT\NUL\NUL\192\EOT.\DLE\192\EOT\192\EOT\192\EOT\NUL\NUL\163\ETX\137\EOT\NUL\NUL\162\EOT*\NUL\211\t\199\EOT\156\EOT\151\EOT\DEL\EOT\NUL\NUL\NUL\NUL\136\EOT\136\EOT\161\EOT\NUL\NUL\NUL\NUL\"\t\NUL\NUL\NUL\NUL+\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\224\n\SI\NUL\NUL\NUL\175\ETB\212\STX\NUL\NUL\160\ETX\152\ETX\SI\SUB\194\DC2\NUL\NUL\NUL\NUL\190\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\159\EOT\154\EOT\139\EOT\134\EOT\t\NUL\n\EOT\NUL\NULz\EOT\NUL\NUL\NUL\NULh\EOT\251\r\NUL\NUL\NUL\NUL\NUL\NUL\180\EOT\159\NUL\EOT\DC2\NUL\NUL\NUL\NUL\220\n>\t$\n\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\US\SOH+\NUL+\NUL\SYN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\STX\251\r\244\NUL\NUL\NUL\228\fd\EOTw\NUL\NUL\NUL\NUL\NUL\NUL\NUL\168\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\222\NUL\NUL\NUL+\NUL_\SOH\205\NUL>\EOT\NUL\NUL\NUL\NUL\251\r<\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\221\ETX\ESC\EOT\251\r\158\NUL\235\EM\200\ETX\NUL\NUL\200\ETX\NUL\NUL\200\ETX\ACK\EOT\251\r\NUL\NUL\NUL\NUL\205\NUL\US\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\211\t\251\r\251\r\245\ETX\NUL\NUL\n\SOH\239\ETX\NUL\NUL\SUB\EOTI\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\223\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r@\ETX\NUL\NUL\NUL\NUL\NUL\NUL\SI\NUL\NUL\NUL\151\SOH\NUL\NUL\DLE\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\v\NUL\NUL\NUL\NUL\128\f\NUL\NUL\NUL\NUL\251\rc\v\NUL\NUL\NUL\NUL\NUL\NUL\ETX\EOT\NUL\NUL\SOH\EOT\225\ETX\251\r*\NUL\182\ETX*\NUL\NUL\NUL\216\ETX\211\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\158\NUL\212\STXj\ETX\NUL\NUL\251\r\NUL\NUL\NUL\NUL\185\ETX\NUL\NUL\NUL\NUL\NUL\NUL\251\r\NUL\NUL\NUL\NUL\NUL\NULJ\ETXJ\ETX\NUL\NUL\211\t\211\t\213\NUL\NUL\NUL\NUL\NUL\168\ETX;\ETX;\ETX\NUL\NUL\NUL\NULz\ETX\NUL\NUL\NUL\NULt\ETXr\ETX\NUL\NULF\ETX\v\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\NUL\NUL\NUL\NUL\NUL\251\r\251\rl\ETX[\ETX\ETB\ETX\233\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"#
- 
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets
-  = HappyA#
-      "6\ETXq\NUL\211\ACK\198\GS<\ETX8\NUL\NUL\NUL\NUL\NUL\197\STX5\r\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\NUL\NUL\NUL\NULq\r\164\v\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\STX\213\n\185\n\NUL\NUL\NUL\NUL\NUL\NUL\167\STX\NUL\NUL \f\190\ETX`\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\a\ETX\SUB\NUL\NUL\NULv\US\NUL\NUL\NUL\NUL\184\ACK\NUL\NUL\149\STX\NUL\NULL\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\ETX\NUL\NUL\NUL\NUL\NUL\NUL*\ACK\195\NUL\NUL\NUL\138\ENQ\NUL\NUL\DC4\NUL\SYN\SOHl\STX}\SOH\162\SOH\203\NUL\NUL\NUL\NUL\NUL\150\b\NUL\NUL\154\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\b\226\STX\NUL\NUL\NUL\NUL\187\STX\NAK\SOH\NUL\NUL\168\n\215\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\\\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\255\255\NUL\NUL\NUL\NUL\NUL\NUL\202\NAKq\STX]\STXj\STXw\b\NUL\NUL\NUL\NULp\STX\NUL\NUL[\b\NUL\NUL@\NUL\198\STX\NUL\NUL\NUL\NUL\NUL\NULR\STX\158\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\173\EOT\NUL\NULf\STX\NUL\NUL\168\DC3\SYN\ETB\169\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULQ\STX\144\STX\236\NUL\NUL\NUL\NUL\NUL\SUB\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\STXO\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\STX\154\DC3\232\SYN5\bu\STX\NUL\NUL\NUL\NUL\NUL\NULJ\STX\\\STX\NUL\NUL\NUL\NUL\NUL\NULb\STX1\STXV\STX\243\a\NUL\NUL\238\a\NUL\NUL\NUL\NUL\171\GS\144\GS\NUL\NUL\NUL\NULu\GS\NUL\NULZ\GS\NUL\NUL\152\ACK\NUL\NULN\ACK\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\235\SOH\233\a\NUL\NUL{\SYNS\SYN[\US\NUL\NUL\231\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\193\STX\NUL\NUL[\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULi\ENQ\155\NULx\NULP\NUL\137\SYN\NUL\NUL\NUL\NUL\172\ETX?\GS\199\US$\GS\226\US\b\NAK\132\NAK\253\US\241\vo\v\240\f\187\f@\f:\v\155\f\SUB\v\252\a&\a\193\v,\n\157\t\NUL\NUL@\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\t\GS\238\FS\219\SOH\205\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\US\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\a\NUL\NUL\NUL\NUL\NUL\NUL\198\SOHa\EOT\NUL\NULs\DC3\218\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL3\ACK5\STX3\STX\234\SOH~\SOH\CAN\ACK%\US\NUL\NUL\NUL\NUL\166\b\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NAK\ETX\145 \135\EOT\221\SOH\206\a\NUL\NUL\NUL\NUL\166\NAKL\EOT\183\SOH\NUL\NUL\NUL\NUL\218\DC3&\ETX\NUL\NUL\NUL\NULl\ENQ0\DC3\NUL\NUL\NUL\NUL\162\a6\STX\182\v\NUL\NUL&\EOT\160\SOH\NUL\NUL\NUL\NUL\167\SOHN\NAK\199\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL.\STX\176\SOH\NUL\NUL\NUL\NUL\235\ETX`\SOH\NUL\NUL\169\SYN\NUL\NUL\NUL\NUL\196\ESCj\a\DC4\SOH@ \CAN\DC4( \159\SOH\CAN\NUL,\DC4\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\166\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132 G\aw h\DC4\175\DC4*\NAK\197\ETXM\SOH\NUL\NUL\NUL\NULs\a\211\SOH\235\EOT'\a\NUL\NUL \a\NUL\NUL\NAK\a\NUL\NUL\NUL\NUL\191\ETX\NUL\NUL\NUL\NUL\185\SOH\NUL\NUL\NUL\NUL\253\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULD\EOT\NAK\a\NUL\NUL\217\ACK\NUL\NUL\169\ESC\NUL\NUL\NUL\NUL\NUL\NUL\SYN\STX\247\SOH\169\DC4\NUL\NULo\DC3\r\SO\244\SOH\NUL\NUL\NUL\NUL\n\DC4\NUL\NUL\150\ACK\NUL\NUL\NUL\EOT\NUL\NUL>\DC3`\ETBv\ACKh\ACK\NUL\NUL\ACK\DC3Y\ETB+\ACK\NUL\NUL\DLE\ACK\226\ENQ\NUL\NUL\219\NULb\ETB\NUL\NUL\NUL\NUL\223\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\224\SYN\217\ENQ\NUL\NUL\NUL\NUL\210\DC4d\ETXB\SOH\NUL\NUL\NUL\NUL\NUL\NUL1\SYN\\\SOH\NUL\NUL\NUL\NUL\255\ENQ\NUL\NUL\249\b`\a\NUL\NUL\241\ENQ\228\ENQ\225\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\146\f\CAN\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOHW\SOH\174\ENQ\147\ENQx\ENQ\NUL\NUL1\FS\SYN\FS\211\FS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\192\SOH3\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULT\tC\SOH\196\a>\SOH\NUL\NUL6\a\NUL\NUL@\SYN\213\255\225\DC4\NUL\NUL\NUL\NUL\NUL\NUL\199\STX\NUL\NUL\138\STX\NUL\NUL\NUL\NUL\249\NUL\150\DC4\NUL\NUL\NUL\NUL\DC3\ESC\n\US\NUL\NUL\145\US\NUL\NUL\239\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\142\ESC\157\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\212\RS\211\NUL\241\SUB\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\180\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\SOHg\SOH6\SOH\GS\SOH\ETB\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\244\255\SO\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\128\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\ENQ\NUL\NUL\NUL\NULk\SO\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\t\\\ENQ\NUL\NUL1\SYNj \NUL\NUL\NUL\NUL\NUL\NUL\EOT\EOT\185\SYN\NUL\NUL\NUL\NUL\"\SYN\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\206\EOT\176\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\RS\NUL\NUL\NUL\NUL\NUL\NUL\SUB\ETB\250\ENQd\DC4\NUL\NUL\NUL\NUL\128\SYN\154\ACK\202\EOT\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\195\STX\170\r6\r\250\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\158\RS\217\255\NUL\NULP\ESC\NUL\NULM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\145\ACK\191\ETXZ\ENQ\NUL\NUL\NUL\NUL\NUL\NUL\131\RS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL(\NUL\NUL\NULh\RSW\EOTa\EOTx\EOT\NUL\NUL\t\EOT\NUL\NUL\134\ETX\NUL\NULM\RS\NUL\NUL\NUL\NULZ\ENQ\171\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\243\EOT\251\ESC\224\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\185\NUL\NUL\NUL\NUL\NUL\NUL\NUL\184\FSD\NUL\NUL\NUL\NUL\NUL\NUL\NUL,\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL5\ESC\NUL\NUL\NUL\NULs\ESC\NUL\NUL\NUL\NUL2\RS5\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\157\FS\245\255\NUL\NUL\241\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETB\RS\NUL\NUL_\ETX[ \208\255\NUL\NUL\252\GS\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\225\GS\NUL\NUL\NUL\NUL\NUL\NUL\236\SOH\208\255\NUL\NUL\214\EOT\158\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL2\NUL\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\249\255I\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\FSg\FS\NUL\NUL\NUL\NUL\NUL\NUL\145\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"#
- 
-happyDefActions :: HappyAddr
-happyDefActions
-  = HappyA#
-      "\250\255=\254\NUL\NUL\NUL\NUL\NUL\NUL=\254\155\254\143\254}\254\NUL\NUL{\254w\254t\254q\254l\254i\254g\254e\254c\254a\254_\254\\\254O\254\NUL\NUL\165\254\164\254=\254~\254\DEL\254\NUL\NUL\NUL\NUL\129\254\128\254\130\254\131\254\NUL\NUL\NUL\NUL\NUL\NULE\254F\254D\254C\254\166\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\255\227\255\226\255\225\255\224\255\223\255\222\255\NUL\NUL\NUL\NUL\199\255\215\255\181\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULK\254\NUL\NUL\NUL\NUL\166\254>\254\NUL\NUL\247\255\NUL\NUL\246\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\152\255\NUL\NULw\255\155\255\138\255\154\255\137\255\153\255\136\255l\255R\255=\254Q\255\NUL\NUL\229\255\n\255\b\255\t\255\166\255\251\254\250\254\NUL\NUL<\254;\254\NUL\NUL=\254\NUL\NUL\141\255~\255\134\255}\255\129\255=\254\143\255\130\255\132\255\131\255\140\255\133\255\128\255\142\255M\255\144\255\NUL\NUL\139\255L\255\DEL\255\135\255\254\254`\255\NUL\NUL=\254\NUL\NUL\245\255\NUL\NUL=\254\NUL\NUL<\254\NUL\NUL\NUL\NUL\a\255\249\254<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\151\255v\255k\255&\255\166\255:\254\NUL\NULZ\255+\255/\255,\255-\255.\255=\254\ETX\255\215\254\213\254\244\254I\254\NUL\NUL\150\255u\255j\255*\255&\255\166\255\NUL\NUL\NUL\NUL]\255\NUL\NULf\255T\255S\255b\255\146\255\145\255a\255o\255h\255g\255\169\255n\255m\255\170\255{\255r\255s\255q\255z\255y\255x\255\NUL\NUL&\255'\255#\255 \255\US\255$\255\SYN\255(\255\166\255\NUL\NUL=\254\"\255\NUL\NUL\148\255|\255p\255&\255\166\255\147\255\NUL\NULe\255\NUL\NUL&\255\166\255=\254\168\255=\254\167\255\243\255\NUL\NUL\NUL\NULJ\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL?\254K\254\NUL\NUL\NUL\NUL\188\255}\254G\254\NUL\NUL\187\255\NUL\NUL\180\255\213\255=\254\198\255=\254=\254\NUL\NUL\133\254=\254\134\254\140\254B\254A\254\138\254=\254\136\254=\254\132\254\141\254\142\254\NUL\NUL\222\254\138\255\137\255\136\255\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\139\254\NUL\NULZ\254V\254U\254Y\254X\254W\254R\254Q\254P\254T\254S\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\254\148\254\248\255\249\255\151\254\150\254\NUL\NUL\NUL\NUL\145\254\153\254[\254x\254y\254z\254u\254v\254r\254s\254m\254o\254n\254p\254j\254k\254h\254f\254d\254b\254\NUL\NUL\NUL\NUL`\254M\254N\254\163\254\NUL\NUL\219\254\216\254\218\254\217\254\NUL\NUL\220\254\244\254\200\254\221\254\162\254\NUL\NUL\NUL\NUL@\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\214\255\213\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\219\255\NUL\NUL=\254\NUL\NUL\NUL\NUL\190\255\NUL\NUL\186\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\182\254=\254\NUL\NUL\241\255=\254=\254\182\254\239\255!\255\244\254\NUL\NUL\RS\255\DC2\255<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\f\255=\254\182\254\240\255N\255K\255=\254\NUL\NUL\149\255t\255i\255)\255&\255\166\255\NUL\NULW\255=\254\182\254\238\255I\254H\254\NUL\NULI\254\130\254=\254\239\254\235\254\232\254\154\255\137\255\228\254\NUL\NUL\243\254\241\254\NUL\NUL<\254\224\254\212\254\236\255\165\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254=\254=\254\182\254\242\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\246\254\253\254\STX\255\ACK\255\t\255\ENQ\255\248\254\NUL\NUL\NUL\NUL4\255\NUL\NUL\NUL\NUL\NUL\NUL6\254\NUL\NUL8\254\&4\254\&5\254_\255^\255\NUL\NUL3\255\&1\255\NUL\NUL\NUL\NUL\EOT\255\SOH\255\245\254\NUL\NUL\NUL\NUL\252\254\NUL\255\161\255\NUL\NUL\235\255\NUL\NUL\NUL\NUL&\255&\255\NUL\NUL(\255\NUL\NUL=\254&\255\247\254\NUL\NUL=\254\214\254=\254\226\254\NUL\NUL\227\254\244\254\200\254=\254=\254\231\254\244\254\200\254=\254\234\254=\254=\254\238\254=\254\NUL\NUL\NUL\NUL\NUL\NUL\130\254\211\254\NUL\NUL\NUL\NULI\254\130\254\163\255\231\255=\254=\254\182\254\237\255\NUL\NUL\NUL\NUL=\254K\255\157\255\233\255\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\SI\255\SUB\255\NUL\NUL\GS\255\FS\255\DC1\255\NUL\NUL\NUL\NUL\164\255\232\255\NUL\NUL\NUL\NUL\NUL\NUL\159\255\158\255\234\255&\255&\255\NUL\NUL\NUL\NUL\NUL\NUL\189\255K\254K\254\NUL\NUL\NUL\NUL\220\255\NUL\NUL\NUL\NUL\214\255\NUL\NUL\211\255\NUL\NUL\212\255\210\255\208\255\209\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL`\255=\254\221\255=\254\NUL\NUL=\254\NUL\NUL\137\254\135\254=\254\198\254\196\254\NUL\NUL\NUL\NUL\NUL\NUL<\254\186\254|\254\180\254\NUL\NUL]\254\NUL\NUL\152\254\NUL\NUL\154\254\144\254^\254L\254\179\254\NUL\NUL\NUL\NUL\NUL\NUL\172\254\173\254\185\254\NUL\NUL\NUL\NUL\NUL\NUL\180\254\NUL\NUL\NUL\NUL\NUL\NUL\193\254\194\254\192\254\195\254\197\254\199\254<\254\NUL\NUL\NUL\NUL\158\254\NUL\NUL\207\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\217\255\NUL\NUL\NUL\NUL\201\255\NUL\NUL\179\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\197\255\195\255\194\255\182\254\182\254\NUL\NULd\255c\255\NUL\NUL\ESC\255\DLE\255\NUL\NUL\NAK\255\EM\255\r\255\SO\255\NUL\NUL\CAN\255\v\255=\254@\255I\255\NUL\NUL\NUL\NUL=\254<\254J\255O\255=\254\\\255[\255\162\255\230\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\254=\254\209\254\NUL\NUL\210\254\204\254\NUL\NUL\NUL\NUL\237\254\236\254\233\254=\254\196\254<\254\230\254\229\254=\254\196\254<\254\225\254\240\254\242\254\223\254\NUL\NUL\NUL\NUL\NUL\NUL&\255Y\255X\255\181\254\255\254\244\255\NUL\NUL\NUL\NUL\NUL\NUL8\255\NUL\NUL\NUL\NUL6\254\&7\254\&9\254\&1\254\NUL\NUL2\254\&2\255\&7\255\&0\255\NUL\NUL6\255\NUL\NUL<\254<\254\NUL\NUL\207\254\203\254\NUL\NUL\NUL\NUL\208\254\202\254V\255U\255F\255D\255<\255\NUL\NUL\NUL\NUL<\254=\254H\255=\254G\255=\254?\255\NUL\NULP\255\ETB\255\NUL\NUL\NUL\NUL\DC4\255%\255\156\255\160\255\NUL\NULK\254K\254\NUL\NUL\218\255\NUL\NUL\178\255\177\255\NUL\NUL\NUL\NUL\185\255\216\255\200\255\206\255\204\255\205\255\NUL\NUL\203\255\159\254\160\254\NUL\NUL\NUL\NUL\161\254\191\254\189\254\190\254\188\254\NUL\NUL\169\254\NUL\NUL\174\254\171\254\168\254\175\254\178\254\NUL\NUL\147\254\177\254\NUL\NUL\146\254\170\254\NUL\NUL\NUL\NUL\184\254\187\254\157\254\NUL\NUL\202\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\179\255\193\255\NUL\NUL\NUL\NUL\196\255\DC3\255>\255\NUL\NULB\255\NUL\NUL\NUL\NULE\255;\255\NUL\NUL9\255\201\254\NUL\NUL\206\254\&5\255\&3\254\NUL\NUL0\254\205\254:\255=\254C\255=\255\NUL\NUL\NUL\NUL\NUL\NUL\184\255\176\255\NUL\NUL\NUL\NUL\NUL\NUL\156\254\183\254\NUL\NUL\176\254\167\254\NUL\NUL\NUL\NUL\175\255\NUL\NUL\NUL\NUL\214\255\192\255A\255\191\255\NUL\NUL\172\255\183\255\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\171\255\182\255\173\255\174\255"#
- 
-happyCheck :: HappyAddr
-happyCheck
-  = HappyA#
-      "\255\255\STX\NUL\ETX\NUL\EOT\NUL6\NULt\NUL\NAK\NUL\SYN\NUL\ETB\NUL\NAK\NUL\SYN\NUL\ETB\NUL\ETB\NUL\EOT\NUL5\NUL\SOH\NUL\SOH\NUL\CAN\NUL\ETX\NUL\SOH\NUL\EOT\NUL\STX\NUL\FS\NUL\STX\NUL\EM\NULt\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\SOH\NUL\ETX\NUL\DC4\NUL\STX\NUL[\NUL\r\NUL3\NUL9\NUL \NUL!\NUL7\NUL#\NUL\r\NUL!\NUL\STX\NUL\ETX\NUL\EOT\NUL\RS\NUL.\NUL*\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NUL\SOH\NULy\NUL6\NULv\NUL\SOH\NUL.\NUL6\NULv\NUL6\NUL\EM\NUL\t\NUL\ESC\NUL\r\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULt\NUL\SOH\NUL^\NULt\NULt\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL^\NUL\r\NUL\STX\NUL\ETX\NUL\EOT\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NULB\NULC\NULD\NUL[\NUL6\NUL\\\NUL]\NUL^\NUL\EM\NUL^\NUL\ESC\NULy\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\EOT\NUL\SOH\NUL\SOH\NULy\NUL\ETX\NUL\\\NUL3\NUL^\NULt\NUL\\\NUL7\NUL^\NUL\STX\NUL\r\NUL\r\NUL6\NUL6\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULy\NULv\NUL!\NUL\RS\NUL#\NUL#\NUL\SOH\NUL\a\NUL\\\NUL]\NUL^\NUL*\NUL+\NUL,\NUL\EOT\NUL{\NULy\NUL\SOH\NUL\r\NUL\STX\NUL3\NUL\SOH\NUL,\NUL6\NUL6\NUL*\NUL\\\NULT\NUL6\NUL\r\NUL\STX\NULT\NUL\SOH\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULC\NUL \NUL!\NUL\r\NUL#\NULH\NULw\NULx\NULy\NUL\SOH\NUL!\NUL*\NUL+\NUL,\NUL\EOT\NULy\NUL\SOH\NUL\RS\NUL*\NULV\NUL3\NUL\r\NULy\NUL6\NUL\\\NUL\\\NUL]\NUL^\NUL\r\NUL\\\NUL]\NUL6\NUL\SOH\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL-\NUL\STX\NUL!\NUL\r\NUL#\NULC\NUL6\NULx\NULy\NULy\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\\\NUL]\NUL^\NUL\STX\NUL\a\NUL3\NUL\SOH\NUL-\NUL6\NULV\NUL\a\NUL\\\NUL]\NUL^\NUL\RS\NUL\\\NUL]\NUL^\NUL\r\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL!\NUL#\NUL#\NUL\\\NUL]\NULy\NUL\a\NUL\SOH\NUL*\NUL+\NUL,\NUL\EOT\NUL\a\NULy\NUL*\NUL\\\NUL\EOT\NUL3\NULv\NUL\r\NUL7\NUL6\NUL\\\NUL]\NUL^\NUL\\\NUL]\NULw\NULx\NULy\NUL6\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NUL\\\NUL]\NUL!\NUL\SOH\NUL#\NULC\NUL \NUL!\NULy\NUL#\NULH\NUL*\NUL+\NUL,\NUL\EOT\NUL\r\NUL*\NUL+\NUL,\NUL\STX\NUL3\NULy\NUL\FS\NUL6\NULV\NUL3\NULz\NUL{\NUL6\NUL\FS\NUL\\\NUL]\NUL^\NULK\NULA\NULB\NULC\NULD\NULt\NULA\NULB\NULC\NULD\NUL!\NUL-\NUL#\NULw\NULx\NULy\NULy\NULy\NUL9\NUL*\NUL+\NUL,\NUL\SOH\NUL6\NULT\NUL9\NUL*\NUL\\\NUL3\NUL^\NUL\ETX\NUL6\NUL!\NUL\ACK\NUL\r\NULT\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULH\NULA\NULB\NULC\NULD\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL6\NULT\NULV\NULx\NULy\NUL\US\NUL4\NUL5\NUL\\\NULy\NUL^\NUL\r\NUL \NUL!\NUL*\NUL \NUL!\NUL-\NUL\ENQ\NUL\ACK\NUL\a\NUL\RS\NUL\t\NUL\SUB\NUL\v\NUL\f\NUL\r\NUL\a\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL-\NUL6\NUL\\\NUL]\NUL6\NUL\EM\NUL\SOH\NUL\ESC\NUL\ETX\NUL\GS\NUL\RS\NUL\US\NULy\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL4\NUL5\NUL\\\NUL]\NUL^\NULt\NUL3\NULT\NUL\n\NULy\NUL7\NULZ\NUL\SO\NUL\\\NULv\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULT\NULn\NUL\\\NUL]\NUL^\NUL\FS\NULs\NULt\NUL\FS\NULv\NULB\NULC\NULD\NULy\NUL,\NULZ\NULy\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL9\NULn\NULv\NUL9\NULT\NUL\FS\NULs\NULt\NULK\NULv\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\n\NUL\t\NULy\NUL\v\NUL\f\NUL\r\NULv\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL\FS\NULx\NULy\NUL\FS\NUL\EM\NUL9\NUL\ESC\NULv\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NULw\NULx\NULy\NUL\FS\NUL9\NUL3\NUL\a\NUL9\NUL\FS\NUL7\NUL\FS\NUL\FS\NUL\SOH\NUL\SUB\NUL*\NUL<\NUL=\NUL-\NUL\SOH\NUL\SUB\NUL\ETX\NULB\NULC\NULD\NUL\r\NUL\a\NUL\"\NUL#\NUL\SUB\NUL%\NUL\r\NUL'\NUL9\NUL)\NUL*\NUL+\NUL,\NUL9\NUL\a\NUL9\NUL9\NUL \NUL!\NUL3\NULZ\NULv\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NULn\NUL\\\NUL]\NUL^\NULL\NULs\NULt\NUL\SUB\NULv\NULw\NULx\NULy\NULy\NUL\a\NULA\NULB\NULC\NULD\NULZ\NULP\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NUL\\\NUL]\NUL^\NUL\a\NULs\NULt\NUL\\\NUL]\NULw\NULx\NULy\NUL\SOH\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL*\NULt\NUL\ETX\NUL-\NUL\r\NUL\ACK\NUL\"\NUL#\NULy\NUL%\NULv\NUL'\NULy\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\STX\NUL\ETX\NUL6\NUL\RS\NUL\ACK\NUL3\NULX\NULY\NUL*\NUL7\NUL6\NUL-\NUL\US\NUL\SUB\NUL6\NUL;\NUL<\NUL=\NUL>\NUL?\NULy\NULA\NULB\NULC\NULD\NUL\a\NUL\"\NUL#\NULv\NUL%\NULL\NUL'\NUL\b\NUL)\NUL*\NUL+\NUL,\NULM\NULN\NULO\NULP\NULQ\NULR\NUL3\NULZ\NULu\NUL\\\NUL7\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULv\NULn\NUL\\\NUL]\NULm\NULL\NULs\NULt\NUL\NUL\NUL\SOH\NULw\NULx\NULy\NULx\NULy\NUL\SOH\NULw\NULx\NULy\NULZ\NUL+\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\a\NULn\NULA\NULB\NULC\NULD\NULs\NULt\NUL6\NUL\STX\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL[\NULA\NULB\NULC\NULD\NUL\a\NULF\NULG\NUL\STX\NUL\"\NUL#\NUL+\NUL%\NUL\SOH\NUL'\NUL\SOH\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\EM\NUL\EOT\NUL\ESC\NUL3\NUL\GS\NUL\RS\NUL\US\NUL7\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL[\NUL3\NUL\SOH\NULL\NUL\ETX\NUL7\NUL\\\NUL]\NULx\NULy\NULA\NULB\NULC\NULD\NUL\r\NUL\\\NUL]\NULZ\NUL^\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULZ\NULn\NUL\\\NUL\EOT\NUL^\NUL_\NULs\NULt\NUL*\NUL+\NULw\NULx\NULy\NUL!\NUL^\NUL#\NUL*\NUL+\NUL\a\NUL*\NUL+\NUL#\NUL*\NUL+\NUL,\NULs\NULt\NUL\STX\NUL*\NUL+\NUL,\NUL3\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL3\NUL\ESC\NUL+\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL6\NUL\\\NUL]\NUL3\NULN\NULO\NULP\NUL7\NULw\NULx\NULy\NULA\NULB\NULC\NULD\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL,\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULZ\NUL*\NUL\\\NUL\SOH\NUL^\NUL_\NUL3\NULy\NUL+\NUL!\NUL7\NUL#\NUL\RS\NULy\NUL^\NUL#\NUL\\\NUL]\NUL*\NUL+\NUL,\NUL\a\NUL*\NUL+\NUL,\NULs\NULt\NUL3\NUL\ETB\NUL\CAN\NUL6\NUL3\NULy\NUL\RS\NUL6\NUL^\NULw\NULx\NULy\NUL\EM\NUL\EOT\NUL\ESC\NUL\EOT\NUL\GS\NUL\RS\NUL\US\NUL0\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\DC1\NUL\DC2\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\EOT\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL6\NULw\NULx\NULy\NUL\EOT\NUL3\NULw\NULx\NULy\NUL7\NUL#\NULA\NULB\NULC\NULD\NUL2\NUL\EOT\NUL*\NUL+\NUL,\NUL\a\NUL\EOT\NULx\NULy\NUL\\\NUL]\NUL3\NUL\v\NUL\f\NUL6\NULA\NULB\NULC\NULD\NUL\STX\NULw\NULx\NULy\NUL\EM\NUL\STX\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL\US\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\a\NUL\SOH\NUL-\NUL\ETX\NUL*\NUL+\NUL3\NUL<\NULx\NULy\NUL7\NUL*\NUL+\NUL\r\NUL+\NULw\NULx\NULy\NUL\EM\NUL+\NUL\ESC\NUL\STX\NUL\GS\NUL\RS\NUL\US\NUL+\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULy\NUL\ENQ\NUL\ACK\NUL\a\NUL\\\NUL]\NUL3\NUL6\NUL\FS\NUL\GS\NUL7\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL6\NUL!\NUL,\NUL#\NULC\NULw\NULx\NULy\NUL\RS\NULH\NUL*\NUL+\NUL,\NULC\NUL\ENQ\NUL\ACK\NUL\a\NUL\STX\NULH\NUL3\NULw\NULx\NULy\NULV\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\ETB\NUL\CAN\NUL^\NULV\NUL\STX\NULB\NULC\NULD\NUL\STX\NUL\\\NUL]\NUL^\NUL\ENQ\NUL\ACK\NUL\a\NUL\DC1\NUL\DC2\NULN\NULO\NULP\NULQ\NULR\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL7\NUL\STX\NULw\NULx\NULy\NULw\NULx\NULy\NUL\v\NUL\f\NULA\NULB\NULC\NULD\NULZ\NUL\STX\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULw\NULx\NULy\NUL,\NULs\NULt\NUL\RS\NULv\NULZ\NUL\\\NUL\\\NUL-\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\RS\NULn\NULw\NULx\NULy\NUL0\NULs\NULt\NULZ\NULv\NUL\\\NUL[\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL6\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\US\NULC\NUL\EOT\NUL\STX\NUL6\NUL\STX\NULH\NULM\NUL\EOT\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NUL\EOT\NULV\NUL\EOT\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL;\NUL<\NUL=\NULN\NULO\NULP\NULA\NULB\NULC\NULD\NUL^\NUL\\\NUL\ENQ\NUL\ACK\NUL\a\NULM\NULN\NULO\NULP\NULQ\NULR\NUL0\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\STX\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\STX\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL+\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULy\NULn\NULN\NULO\NULP\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NULN\NULO\NULP\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\STX\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL,\NULs\NULt\NUL\US\NULv\NUL*\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL^\NUL\EOT\NUL\EOT\NULN\NULO\NULP\NULN\NULO\NULP\NUL;\NUL<\NUL=\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULN\NULO\NULP\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULN\NULO\NULP\NULw\NULx\NULy\NUL\ENQ\NUL\ACK\NUL\a\NULw\NULx\NULy\NULw\NULx\NULy\NUL\US\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL8\NUL\SOH\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL,\NULA\NULB\NULC\NULD\NULE\NULF\NULG\NULZ\NULy\NUL\\\NUL,\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\US\NULn\NULw\NULx\NULy\NUL\STX\NULs\NULt\NULZ\NULv\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\b\NULn\NULw\NULx\NULy\NUL\US\NULs\NULt\NULZ\NULv\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL^\NULn\NUL\ENQ\NUL\ACK\NUL\a\NUL\US\NULs\NULt\NUL\STX\NULv\NUL\STX\NUL\STX\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\SOH\NUL<\NUL=\NUL>\NUL?\NUL@\NUL+\NULB\NULC\NULD\NUL+\NUL[\NUL\ENQ\NUL\ACK\NUL\a\NULA\NULB\NULC\NULD\NULw\NULx\NULy\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NULM\NULN\NULO\NULP\NULQ\NULR\NULw\NULx\NULy\NUL\\\NUL*\NULZ\NULF\NUL\\\NUL\STX\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NUL*\NULp\NULx\NULy\NULs\NULt\NULw\NULx\NULy\NUL\STX\NUL\STX\NULZ\NULy\NUL\\\NUL^\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL*\NULn\NULN\NULO\NULP\NUL\RS\NULs\NULt\NULZ\NULv\NUL\\\NUL\SUB\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\ESC\NULn\NUL\f\NUL\r\NUL\EM\NUL\DLE\NULs\NULt\NUL\EOT\NULv\NUL\SOH\NUL[\NUL\ETX\NUL\STX\NUL\STX\NUL\EM\NUL\STX\NUL\ESC\NUL^\NUL\GS\NUL\RS\NUL\US\NUL\r\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULN\NULO\NULP\NUL\SOH\NUL \NUL!\NUL3\NUL#\NULW\NUL+\NUL7\NULN\NULO\NULP\NUL*\NUL+\NUL,\NULF\NULN\NULO\NULP\NUL+\NUL^\NUL3\NUL,\NUL\SOH\NUL6\NUL,\NUL6\NULZ\NUL\SOH\NUL\\\NUL0\NUL^\NUL_\NUL`\NULa\NULA\NULB\NULC\NULD\NULC\NUL\r\NUL,\NUL0\NULZ\NULH\NUL\\\NUL,\NUL^\NUL_\NUL`\NUL7\NUL\SOH\NULs\NULt\NUL;\NUL<\NUL=\NUL,\NULV\NUL\ETX\NULA\NULB\NULC\NULD\NUL\\\NUL]\NUL^\NUL\SOH\NULs\NULt\NUL+\NUL\STX\NULw\NULx\NULy\NUL0\NUL1\NUL,\NUL3\NUL\STX\NUL5\NUL[\NUL^\NUL8\NUL\SOH\NULe\NUL;\NUL\SOH\NUL=\NUL>\NUL?\NULy\NULN\NULO\NULP\NULD\NULE\NUL\SOH\NULG\NUL\EOT\NUL^\NULJ\NULK\NUL\SOH\NULM\NULN\NUL^\NULP\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NULw\NULx\NULy\NUL,\NULe\NUL\\\NUL]\NUL^\NUL_\NUL\SOH\NULw\NULx\NULy\NUL\RS\NULe\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SOH\NUL\SOH\NUL\DLE\NULN\NULO\NULP\NULZ\NUL\RS\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NUL\ESC\NUL+\NUL8\NUL+\NUL:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\RS\NULA\NULB\NULC\NULD\NUL+\NUL+\NUL,\NULs\NULt\NUL/\NUL0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL:\NUL;\NULe\NUL=\NUL>\NUL?\NUL@\NULA\NULB\NULC\NULD\NULE\NUL\SOH\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\SOH\NUL\SOH\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL[\NUL1\NUL\DLE\NULe\NUL*\NULZ\NUL6\NUL\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NUL\ESC\NUL>\NULw\NULx\NULy\NUL\SUB\NULC\NULw\NULx\NULy\NULG\NULH\NULw\NULx\NULy\NUL\EM\NULM\NULs\NULt\NULP\NUL/\NULR\NUL1\NUL\DLE\NUL3\NULV\NUL5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL^\NUL=\NUL>\NUL?\NULN\NULO\NULP\NULC\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULN\NULO\NULP\NUL\255\255\&6\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULA\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\EM\NUL\255\255\ESC\NUL\ESC\NUL\GS\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL/\NUL\255\255\&1\NUL3\NUL3\NUL\255\255\&5\NUL7\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NULN\NULO\NULP\NUL\255\255D\NULE\NUL\255\255G\NULx\NULy\NULJ\NULK\NULL\NULM\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULw\NULx\NULy\NUL\255\255\&7\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255w\NULx\NULy\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\ESC\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\SOH\NUL\STX\NUL\ETX\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255\255\255<\NUL=\NUL,\NUL\255\255\255\255/\NULB\NULC\NULD\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\SOH\NUL\STX\NUL\ETX\NULD\NULE\NULw\NULx\NULy\NUL\255\255J\NULK\NULL\NUL\EOT\NULN\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULx\NULy\NUL\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\SOH\NULC\NUL\ETX\NUL\255\255\ENQ\NUL\ACK\NULH\NUL\255\255\t\NUL\n\NUL\ESC\NUL\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NULV\NULA\NULB\NULC\NULD\NUL\255\255\\\NUL\255\255^\NUL\255\255/\NUL\SOH\NUL\STX\NUL\ETX\NUL3\NUL\SOH\NUL5\NUL\ETX\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\r\NUL\r\NUL\SO\NUL\SI\NULD\NULE\NUL\SOH\NUL\STX\NUL\ETX\NUL\255\255J\NULK\NULL\NUL\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\r\NUL\SO\NUL\SI\NUL6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL6\NUL\255\255\255\255\255\255H\NUL;\NUL<\NUL=\NUL\ESC\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255Z\NULV\NUL\\\NUL\255\255^\NUL_\NUL`\NUL+\NUL,\NUL^\NUL\255\255/\NUL0\NUL\255\255\&2\NUL\255\255\&4\NUL\255\255\255\255\&7\NUL\255\255\&9\NUL:\NUL7\NUL\255\255s\NULt\NUL\255\255@\NULA\NULB\NUL\255\255\255\255A\NULB\NULC\NULD\NULI\NULF\NULG\NULL\NUL\255\255\255\255O\NUL\255\255\255\255\SOH\NUL\255\255\ETX\NULx\NULy\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\ESC\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255/\NUL\255\255D\NULE\NUL\255\255G\NUL\255\255\&6\NULJ\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULC\NUL\SOH\NUL\255\255\ETX\NUL\255\255H\NUL\\\NUL]\NUL^\NULL\NULM\NUL\255\255Z\NUL\r\NUL\\\NUL\255\255^\NUL_\NUL`\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255s\NULt\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\ESC\NUL=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255/\NULQ\NUL\255\255S\NULT\NULU\NULV\NUL6\NUL\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\255\255\255\255\255\255\255\255\SOH\NULC\NUL\ETX\NUL\255\255\SOH\NUL\255\255H\NUL\SOH\NUL\255\255\255\255L\NULM\NUL\r\NULB\NULC\NULD\NUL\r\NULF\NULG\NUL\r\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\&6\NULZ\NUL\255\255\\\NUL6\NUL^\NUL_\NUL6\NUL\ESC\NUL\255\255\255\255\255\255\255\255C\NULx\NULy\NUL\255\255C\NULH\NUL\255\255C\NUL\255\255H\NUL\255\255\255\255H\NULs\NULt\NUL/\NULZ\NUL\255\255\\\NULV\NUL^\NUL_\NUL6\NULV\NUL\255\255\\\NULV\NUL^\NUL\255\255\\\NUL]\NUL^\NUL\\\NUL]\NUL^\NULC\NUL\255\255\255\255\255\255\255\255H\NULs\NULt\NUL\255\255L\NULM\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\ETX\NUL\255\255\r\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\ETX\NUL\255\255\255\255\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL,\NUL-\NUL6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL-\NUL\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\ESC\NULF\NULG\NULZ\NUL\SOH\NUL\\\NUL\ETX\NUL^\NUL_\NUL\ACK\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&6\NULs\NULt\NUL\ESC\NUL\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NULx\NULy\NUL\255\255\SOH\NUL\255\255\ETX\NULs\NULt\NULV\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL6\NUL\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NUL\SOH\NUL\255\255\255\255\255\255\255\255V\NUL\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL^\NUL\255\255\DLE\NUL/\NUL\255\255s\NULt\NUL\255\255\255\255\255\255\&6\NUL\255\255Z\NUL\ESC\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255,\NUL\255\255L\NUL/\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255V\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\&6\NUL\255\255\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\SOH\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\STX\NUL\255\255\255\255\r\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULy\NUL\255\255\DLE\NULs\NULt\NUL\255\255\255\255\&6\NUL/\NUL\255\255Z\NUL\255\255\\\NUL\ESC\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULC\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\255\255,\NUL\255\255\255\255/\NUL\255\255s\NULt\NULL\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL\255\255^\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NULs\NULt\NUL\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255\ESC\NUL\SOH\NUL\STX\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL,\NUL\255\255Z\NUL/\NUL\\\NUL\255\255^\NUL_\NUL`\NUL\255\255\ESC\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NULs\NULt\NUL\255\255/\NUL\255\255L\NULx\NULy\NUL\255\255\255\255\ESC\NUL\255\255\255\255\RS\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL/\NUL\255\255L\NUL\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255L\NULs\NULt\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NULX\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULx\NULy\NUL\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL7\NUL\255\255\255\255L\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\ESC\NULA\NULB\NULC\NULD\NUL\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\SOH\NUL\ESC\NUL\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255\255\255\255\255\255\255\255\255/\NUL\255\255\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL/\NUL\255\255\255\255\255\255L\NULx\NULy\NUL\255\255\255\255\255\255\ESC\NUL\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NULL\NUL/\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\r\NUL_\NUL`\NULa\NULb\NULc\NULd\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\r\NUL\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\SOH\NUL\255\255\255\255\255\255\&6\NUL\255\255\a\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\DLE\NUL\255\255C\NUL\255\255\255\255\255\255\255\255H\NUL\255\255\255\255\255\255\ESC\NUL0\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NULV\NUL\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255^\NUL\255\255/\NULD\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\255\255\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL_\NULL\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255X\NULY\NULZ\NUL[\NUL\\\NUL\255\255\255\255_\NUL`\NULa\NULb\NULc\NULd\NUL\US\NUL \NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL\255\255\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\SOH\NUL1\NUL\ETX\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\r\NUL5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\SOH\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\r\NUL=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\SOH\NUL\255\255\\\NUL]\NUL^\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\r\NUL8\NUL\255\255\SOH\NUL;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\r\NULG\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\SOH\NUL\RS\NUL\ETX\NUL\255\255\255\255\255\255\\\NUL]\NUL^\NUL\255\255\&6\NUL\255\255\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&3\NULC\NUL5\NUL\255\255\255\255\&8\NULH\NUL\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255V\NUL\255\255\255\255J\NULK\NUL\255\255\\\NULN\NUL^\NUL\255\255Q\NUL6\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NULC\NUL\255\255\255\255\RS\NUL\US\NULH\NUL!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255V\NUL\255\255\255\255\255\255\255\255\&3\NUL\\\NUL\255\255^\NUL7\NUL\255\255\255\255\255\255\255\255<\NUL=\NUL\255\255\255\255\255\255\255\255B\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULB\NULC\NULD\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255x\NULy\NUL7\NUL<\NUL=\NUL>\NUL?\NUL@\NUL\255\255B\NULC\NULD\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NUL\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255<\NUL=\NUL>\NUL?\NUL@\NUL3\NULB\NULC\NULD\NUL7\NULF\NULG\NUL\255\255\255\255\255\255\255\255\255\255x\NULy\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\255\255H\NULI\NULJ\NULK\NUL\255\255\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NULH\NULI\NULJ\NUL\255\255\255\255\255\255\RS\NUL\US\NUL\255\255!\NUL\"\NUL#\NUL$\NUL%\NUL&\NUL'\NUL(\NUL)\NUL*\NUL+\NUL,\NUL\255\255 \NUL!\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255!\NUL6\NUL#\NUL\255\255w\NULx\NULy\NULJ\NUL\255\255*\NUL+\NUL,\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255w\NULx\NULy\NUL\255\255!\NUL\255\255#\NUL\255\255!\NUL\255\255#\NUL\255\255\255\255*\NUL+\NUL,\NULy\NUL*\NUL+\NUL,\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255<\NUL=\NUL\255\255\255\255x\NULy\NULB\NULC\NULD\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255N\NULO\NULP\NULQ\NULR\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL!\NUL\255\255#\NUL\255\255\255\255\255\255!\NUL\255\255#\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL3\NULy\NUL\255\255\&6\NULx\NULy\NUL3\NUL\255\255N\NULO\NULP\NULQ\NULR\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255A\NULB\NULC\NULD\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255y\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255\255\255\255\255\255\255\255\255L\NUL\255\255\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255y\NUL\255\255\255\255\255\255Z\NULL\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255w\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NUL\255\255\"\NUL#\NUL\255\255%\NUL\255\255'\NULL\NUL)\NUL*\NUL+\NUL,\NULs\NULt\NUL\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255Z\NUL7\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255L\NUL\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL\"\NUL#\NUL\255\255%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255.\NUL/\NUL0\NUL\"\NUL#\NUL3\NUL%\NUL\255\255'\NUL7\NUL)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\"\NUL#\NUL7\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL\255\255L\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\"\NUL#\NULL\NUL%\NUL\255\255'\NUL\255\255)\NUL*\NUL+\NUL,\NULw\NULx\NULy\NUL\255\255#\NUL\255\255\&3\NUL\255\255\255\255\255\255\&7\NUL*\NUL+\NUL,\NUL6\NULw\NULx\NULy\NUL\255\255\255\255\&3\NUL\255\255\255\255\&6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255L\NUL\255\255\255\255w\NULx\NULy\NULM\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL#\NUL\255\255\255\255\&6\NUL\255\255\255\255\255\255*\NUL+\NUL,\NUL\255\255\255\255\255\255\255\255\255\255\&2\NUL3\NUL\255\255\255\255\255\255\255\255\255\255w\NULx\NULy\NUL\255\255\255\255w\NULx\NULy\NULA\NULB\NULC\NULD\NUL\255\255\255\255\255\255x\NULy\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL6\NUL\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\&7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255F\NULG\NUL\255\255\255\255y\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL7\NUL\255\255\255\255\&6\NULq\NUL\255\255s\NULt\NUL;\NUL<\NUL=\NUL\255\255y\NUL\255\255A\NULB\NULC\NULD\NULw\NULx\NULy\NUL\255\255\255\255\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255\255\255w\NULx\NULy\NUL7\NULw\NULx\NULy\NUL;\NUL<\NUL=\NUL7\NUL6\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255Z\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255w\NULx\NULy\NUL\255\255\255\255s\NULt\NULw\NULx\NULy\NUL+\NUL\255\255-\NUL\255\255\255\255\255\255\255\255\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255+\NUL\255\255-\NUL\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255+\NULQ\NUL\255\255S\NULT\NULU\NUL1\NUL\255\255\255\255\255\255\255\255\&6\NUL\255\255]\NUL^\NUL_\NUL+\NUL\255\255\255\255>\NUL\255\255\255\255\&1\NUL\255\255C\NUL\255\255\255\255\&6\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL>\NUL\255\255P\NUL\255\255R\NULC\NUL\255\255\255\255V\NULG\NULH\NUL\255\255\255\255\255\255\255\255M\NUL^\NUL\255\255P\NUL\255\255R\NUL,\NUL\255\255\255\255V\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255.\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\\\NUL]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NULV\NUL\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\&1\NUL\255\255\&3\NUL\255\255\&5\NUL]\NUL^\NUL8\NUL\255\255\255\255;\NUL\255\255=\NUL>\NUL?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255G\NUL\255\255\255\255J\NULK\NUL\255\255M\NULN\NUL\255\255P\NULQ\NULR\NULS\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL1\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255\255\255>\NUL?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255G\NULH\NUL\255\255J\NULK\NUL\255\255M\NUL\255\255\255\255P\NUL\255\255R\NUL\255\255T\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL\255\255^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255]\NUL^\NUL_\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL\255\255\255\255;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NULV\NUL3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL\255\255\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255=\NUL\255\255?\NUL\255\255\255\255\255\255\255\255D\NULE\NUL\255\255\255\255\255\255\255\255J\NULK\NUL\255\255\255\255N\NUL\255\255\255\255Q\NUL\255\255S\NULT\NULU\NUL\255\255\&3\NUL\255\255\&5\NUL6\NUL\255\255\&8\NUL]\NUL^\NUL;\NUL\255\255\255\255\255\255?\NUL\255\255\255\255\255\255C\NULD\NULE\NUL\255\255\255\255H\NUL\255\255J\NULK\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255T\NULU\NULV\NUL\255\255\255\255\255\255\255\255\255\255\255\255S\NUL^\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULS\NULv\NUL\255\255V\NULW\NULX\NULY\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NULv\NUL\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NUL\255\255S\NUL\255\255\255\255\255\255\255\255\255\255|\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255S\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255q\NUL\255\255s\NULt\NUL\255\255Z\NUL\255\255\\\NULy\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255p\NUL\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL]\NUL^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255o\NUL\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255n\NUL\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NUL\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255r\NULs\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255s\NULt\NULZ\NUL\255\255\\\NUL\255\255^\NUL_\NUL`\NULa\NULb\NULc\NULd\NULe\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255s\NULt\NUL\255\255\255\255\255\255M\NULN\NULO\NULP\NULQ\NULR\NUL;\NUL<\NUL=\NUL\255\255\255\255\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\&1\NULM\NULN\NULO\NULP\NULQ\NULR\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL1\NULA\NULB\NULC\NULD\NUL\255\255\255\255\&8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL8\NUL\255\255:\NUL;\NUL<\NUL=\NUL>\NUL?\NUL\255\255A\NULB\NULC\NULD\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255"#
- 
-happyTable :: HappyAddr
-happyTable
-  = HappyA#
-      "\NUL\NUL\136\NULL\NULM\NUL\162\SOH{\ETX^\ETX\DC2\ETX\DC3\ETX\DC1\ETX\DC2\ETX\DC3\ETX`\ETX=\254\230\STX%\STX\141\SOHr\ETX\170\NUL\203\SOH5\ETX%\ETX\SUB\STXz\ETXN\NULi\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\212\STX\SYN\ETX\248\NUL{\STX\130\STX\239\NUL_\NUL\132\SOH\199\NUL\185\NUL`\NUL\200\NUL\247\SOH\188\NUL=\SOHL\NULM\NULu\SOH6\ETX{\ETXa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL%\STXO\ETX\186\NUL\131\STX\203\SOHv\SOH\189\NUL\226\SOH\249\NULN\NULq\ETXO\NUL&\STXP\NULQ\NULR\NUL\204\SOHS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\DC4\ETX\151\SOH\134\NUL\DC4\ETX\DC4\ETX\132\NUL_\NUL\134\NULs\ETX\132\NUL`\NUL\134\NUL\134\NUL\214\NULK\NULL\NULM\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\240\NULK\NUL\200\SOHc\NUL\201\SOH*\NUL\182\NUL\132\NUL\152\SOH\134\NULN\NUL\134\NULO\NUL\201\NULP\NULQ\NULR\NUL\190\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\170\NUL\203\SOH\ACK\STXO\ETX\170\NUL\132\NUL_\NUL\134\NULj\ETX\132\NUL`\NUL\134\NULU\ETX\204\SOH\a\STX\221\SOH\189\NULh\NULi\NULj\NULa\NULb\NULc\NULd\NULe\NULf\NULg\NUL\156\NUL9\ETX\171\NUL\251\STX\172\NUL\196\NUL%\STX;\ETX\132\NUL\152\SOH\134\NUL\173\NUL]\NUL^\NUL\215\NUL\225\STX\183\NUL\211\STX&\STX\224\STX_\NUL%\STX\157\SOH\174\NUL\197\NULV\ETX\222\SOH\n\ETX<\254\247\SOHm\ETX\v\ETX\246\SOH&\STX\175\NULb\NULc\NULd\NUL\176\NULf\NULg\NUL<\254\216\NUL\185\NUL\247\SOH\217\NUL<\254h\NULi\NULj\NUL\203\SOH\181\NUL\218\NUL]\NUL^\NUL\158\SOH\190\NUL\212\STXn\ETX\225\STX<\254_\NUL\204\SOH`\STX\186\NUL\132\NUL\132\NUL\215\NUL\134\NUL\247\SOH\240\NULK\NUL\182\NUL\213\NUL\161\NUL\219\NULb\NULc\NULd\NUL\220\NULf\NULg\NULT\ETXA\ETX\159\SOH\214\NUL\160\SOH\162\NUL\174\NUL\177\NULj\NUL\198\NUL\163\NUL\161\SOH]\NUL^\NUL\150\NUL\132\NUL\215\NUL\134\NUL\249\SOH\EM\ETX_\NUL\236\STX\232\STX\162\SOH\164\NUL\SUB\ETX\132\NUL\215\NUL\134\NULB\ETX\132\NUL\215\NUL\134\NUL\247\SOH\163\SOHb\NULc\NULd\NUL\164\SOHf\NULg\NUL\132\NUL\215\NUL\151\NUL\195\NUL\152\NUL\196\NUL\240\NULK\NUL\221\NUL\ESC\ETXl\NUL\153\NUL]\NUL^\NUL\134\STX\GS\ETX\183\NUL\250\SOH\132\NUL\137\STX_\NUL(\ETXm\NUL\f\STX\197\NUL\132\NUL\152\SOH\134\NUL\240\NULK\NUL\193\STX\128\STXj\NUL\161\NUL\154\NULb\NULc\NULd\NUL\155\NULf\NULg\NUL\132\NUL\215\NUL\171\NUL\203\SOH\172\NUL\162\NUL\216\NUL\185\NUL\156\NUL\217\NUL\163\NUL\173\NUL]\NUL^\NUL\FS\ETX\204\SOH\218\NUL]\NUL^\NULg\STX_\NUL`\STX\152\STX\174\NUL\164\NUL_\NUL\218\SOH\219\SOH\186\NUL\153\STX\132\NUL\215\NUL\134\NUL\140\STX\175\NULb\NULc\NUL\208\SOH\154\STX\219\NULb\NULc\NUL\208\SOH\159\SOH\168\STX\160\SOH\r\STX\140\NULj\NUL\156\NUL\198\NUL\132\SOH\161\SOH]\NUL^\NUL\151\SOH\161\NUL\180\STX\132\SOHh\STX\132\NUL_\NUL\134\NUL\168\254\162\SOH\188\NUL\168\254\214\NUL\236\SOH\162\NULn\ETX2\NUL3\NUL\215\SOH\163\NUL\163\SOHb\NULc\NUL\208\SOH\144\STX4\NUL5\NUL6\NUL7\NUL8\NUL%\STX\189\NUL\SYN\STX\164\NUL\135\STXj\NUL\168\254\218\STX\225\SOH\132\NUL\221\NUL\134\NUL&\STX\192\NUL\185\NUL7\ETX\184\NUL\185\NUL8\ETXF\STX2\NUL3\NUL\145\STX\141\STX\EM\STXH\STXI\STXJ\STX\ESC\STX4\NUL5\NUL6\NUL7\NUL8\NUL\RS\STX\186\NUL\240\NULK\NUL\186\NULK\STX\169\NULO\NUL\170\NULP\NULL\STXM\STX\156\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\224\SOH\225\SOH\132\NUL\152\SOH\134\NULB\STX_\NUL \STXp\SOH\190\NULO\STX\ACK\NULq\SOH\a\NUL\226\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL/\STX9\NUL\132\NUL\215\NUL\134\NUL\137\SOH\CAN\NUL\EM\NUL\168\SOH:\NUL\146\NULc\NUL\233\SOH\193\NUL\229\255\ACK\NUL\187\NUL\a\NUL\134\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\132\SOH9\NUL\226\SOH\132\SOH5\STX\198\SOH\CAN\NUL\EM\NULC\STX:\NULh\NUL\195\SOHj\NULF\STX2\NUL3\NULD\STXG\STX`\STXH\STXI\STXJ\STX?\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\146\SOH\SUB\STX\149\NULj\NUL\131\SOHK\STX\132\SOHO\NUL@\SOHP\NULL\STXM\STX\214\NULS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\r\SOHp\ETX\140\NULj\NUL\137\SOH\132\SOH_\NUL\134\SOH\132\SOH\153\SOHO\STX\168\SOH\198\SOH\151\SOH\130\SOH\234\STX#\STX\207\NUL\235\STX\ACK\STX\136\SOH\170\NUL\200\SOHc\NUL\201\SOH\214\NUL\138\SOH\SO\SOHU\NUL\152\SOH\SI\SOH\a\STX\DLE\SOH\132\SOH\DC1\SOH\\\NUL]\NUL^\NUL\132\SOH\154\SOH\132\SOH\132\SOH\192\NUL\185\NUL_\NUL\ACK\NUL\155\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\186\NUL9\NUL\132\NUL\215\NUL\134\NULh\SOH\CAN\NUL\EM\NUL\167\SOH:\NULh\NUL\195\SOHj\NUL\156\NUL\169\SOH\207\SOHb\NULc\NUL\208\SOH\ACK\NUL\188\SOH\a\NUL\197\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH\132\NUL\152\SOH\134\NUL\199\SOH\CAN\NUL\EM\NUL\132\NUL\215\NULh\NUL\NAK\SOHj\NUL\246\SOH\156\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH0\ETX\212\SOHu\STX1\ETX\247\SOHv\STX\SO\SOHU\NUL\193\NUL\SI\SOH\213\SOH\DLE\SOH\156\NUL\DC1\SOH\\\NUL]\NUL^\NUL\r\SOH \ETX!\ETX\159\NUL\EOT\ETX\"\ETX_\NUL+\ETX,\ETX\221\STX\DC2\SOH\174\NUL\222\STX.\ETX\164\NUL\174\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL\156\NUL\209\SOHb\NULc\NUL\208\SOH\231\NUL\SO\SOHU\NUL\237\NUL\SI\SOHi\SOH\DLE\SOH\250\NUL\DC1\SOH\\\NUL]\NUL^\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH_\NUL\ACK\NUL\EOT\SOH\a\NUL\DC2\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\n\SOH\DC4\SOH\132\NUL\215\NUL+\SOHk\SOH\CAN\NUL\EM\NUL\135\NUL\ENQ\NULh\NUL\NAK\SOHj\NUL-\STXj\NUL\ENQ\NUL\DEL\STX\128\STXj\NUL\ACK\NUL}\ETX\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\r\SOH\DC4\SOH8\STXb\NULc\NUL\208\SOH\CAN\NUL\EM\NUL\174\NUL~\ETXh\NUL\NAK\SOHj\NUL+\STX\206\NUL\207\NUL,\STX\209\NUL*\NUL\209\SOHb\NULc\NULd\NUL\181\STX\210\SOHg\NUL\DEL\ETX\SO\SOHU\NULu\ETX\SI\SOHv\ETX\DLE\SOHw\ETX\DC1\SOH\\\NUL]\NUL^\NUL8\ETX\166\NUL\167\NUL\190\SOHi\ETXO\NUL_\NULP\NUL\191\SOH\192\SOH\DC2\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NULZ\ETX \SOH!\SOH\"\SOH#\SOH*\NUL_\NULe\SOH\DC3\SOH\170\NUL\194\SOH\240\NULK\NUL-\STXj\NUL\249\STXb\NULc\NUL\208\SOHf\SOH=\ETX>\ETX\ACK\NUL\134\NUL\a\NULl\ETX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\ACK\NUL\DC4\SOH\a\NULX\ETX\NUL\SOH\t\NUL\CAN\NUL\EM\NUL\254\STX\255\STXh\NUL\NAK\SOHj\NUL\151\NUL\134\NUL\152\NUL\NUL\ETX\SOH\ETX\238\SOH\250\SOH\EM\ETX\152\NUL\153\NUL]\NUL^\NUL\CAN\NUL\EM\NUL]\ETX\153\NUL]\NUL^\NUL_\NUL^\ETXh\NUL\195\SOHj\NUL\190\SOH_\NULO\NUL`\ETXP\NUL\191\SOH\192\SOHc\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ETB\STX\250\SOH\143\STX\162\SOH\240\NULK\NUL_\NUL&\STX\166\NUL\167\NUL\194\SOHI\ETX\140\NULj\NUL\229\SOHb\NULc\NUL\208\SOH\190\SOHd\ETXO\NULe\ETXP\NUL\191\SOH\192\SOH=\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\ACK\NUL@\ETX\a\NUL?\ETX\STX\SOH\t\NUL_\NUL\156\NULC\ETX\159\SOH\194\SOH\160\SOHI\ETX\156\NUL\134\NUL\172\NUL\240\NULK\NUL\161\SOH]\NUL^\NUL!\STX\173\NUL]\NUL^\NUL\CAN\NUL\EM\NUL_\NUL\RS\SOH\US\SOH\162\SOH_\NUL\156\NULO\ETX\174\NUL\134\NULh\NUL\195\SOHj\NUL\190\SOHQ\ETXO\NULS\ETXP\NUL\191\SOH\192\SOH\134\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL0\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX_\NUL\146\NULc\NUL\147\NUL\194\SOH\148\NULg\NUL$\SOH%\SOHh\NUL\195\SOHj\NUL\190\SOH\227\STXO\NUL\134\NULP\NUL\191\SOH\192\SOH\240\STXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NUL\174\NUL\251\STX\252\STXj\NUL\241\STX_\NULJ\ETX\140\NULj\NUL\194\SOH\160\SOH\209\SOHb\NULc\NUL\208\SOHL\ETX\244\STX\161\SOH]\NUL^\NUL6\STX\245\STX\149\SOHj\NUL\240\NULK\NUL_\NUL&\SOH'\SOH\162\SOH\249\STXb\NULc\NUL\208\SOH\246\STXh\NUL\195\SOHj\NUL\190\SOH\247\STXO\NUL\n\ETXP\NUL\191\SOH\192\SOH\238\SOHS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\189\SOH\ACK\STX\CAN\ETX\170\NUL\228\NUL\229\NUL_\NUL\r\ETX\211\SOHj\NUL\194\SOH\230\NUL\231\NUL\a\STX\SO\ETXh\NUL\195\SOHj\NUL\190\SOH\SI\ETXO\NUL\DLE\ETXP\NUL\191\SOH\192\SOH\ETB\ETXS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\156\NULo\ETX2\NUL3\NUL\240\NULK\NUL_\NUL\161\NUL\CAN\SOH\EM\SOH\194\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\161\NUL\151\NUL=\NUL\152\NUL\162\NULK\ETX\140\NULj\NUL+\ETX\163\NUL\153\NUL]\NUL^\NUL\162\NULE\ETX2\NUL3\NUL\US\ETX\163\NUL_\NULh\NUL\195\SOHj\NUL\164\NUL4\NUL5\NUL6\NUL7\NUL8\NUL\RS\SOH\US\SOH\134\NUL\164\NUL#\ETX\200\SOHc\NUL\201\SOH&\ETX\132\NUL\215\NUL\134\NUL\DLE\ETX2\NUL3\NUL$\SOH%\SOHw\STX\166\NUL\167\NULx\STXy\STX4\NUL5\NUL6\NUL7\NUL8\NUL\232\SOH'\ETXh\NUL\195\SOHj\NUL\241\STX\140\NULj\NUL&\SOH'\SOH\143\NULb\NULc\NUL\208\SOH\ACK\NUL|\STX\a\NUL}\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL\242\STX\140\NULj\NULc\STX\CAN\NUL\EM\NUL>\254:\NUL\ACK\NUL\188\SOH\a\NUL\140\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\146\STX9\NULh\NUL\145\NULj\NUL\134\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL*\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\STX9\NUL\149\STX2\NUL3\NUL\161\NUL\CAN\NUL\EM\NUL\157\STX:\NUL\165\STX\167\STX4\NUL5\NUL6\NUL7\NUL8\NUL\238\SOH\162\NUL\202\NUL\179\STX\162\SOH\180\STX\163\NUL\188\STX\189\STX\158\STX\206\NUL\207\NUL\150\STX2\NUL3\NUL\229\SOHb\NULc\NUL\208\SOH\191\STX\164\NUL\192\STX4\NUL5\NUL6\NUL7\NUL8\NUL*\STX\206\NUL\207\NUL\ENQ\ETX\166\NUL\167\NUL\207\SOHb\NULc\NUL\208\SOH\134\NUL\209\STX\151\STX2\NUL3\NULf\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\134\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\203\NUL\214\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\215\STX\210\NULb\NULc\NULd\NUL\211\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL\218\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\156\NUL9\NUL&\STX\166\NUL\167\NUL\220\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\223\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\223\SOH9\NUL#\ETX\166\NUL\167\NUL\224\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\229\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\236\SOH9\NULA\STX2\NUL3\NUL\228\SOH\CAN\NUL\EM\NUL\238\SOH:\NUL\251\SOH\252\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\134\NUL\DC2\STX\224\NUL&\STX\166\NUL\167\NUL\162\STX\166\NUL\167\NUL*\STX\206\NUL\207\NULR\STX2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\163\STX\166\NUL\167\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH&\STX\166\NUL\167\NUL\184\STX\140\NULj\NULv\SOH2\NUL3\NUL\189\STX\140\NULj\NUL\194\STX\140\NULj\NUL\238\SOH4\NUL5\NUL6\NUL7\NUL8\NUL\225\NUL\EM\STX\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL=\NUL\210\NULb\NULc\NULd\NUL\226\NULf\NULg\NUL\ACK\NUL\156\NUL\a\NUL \STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\238\SOH9\NUL\195\STX\140\NULj\NUL(\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL)\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULx\SOH9\NUL\196\STX\140\NULj\NUL\238\SOH\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL4\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\134\NUL9\NUL\241\NUL2\NUL3\NUL\238\SOH\CAN\NUL\EM\NUL:\STX:\NUL;\STX<\STX4\NUL5\NUL6\NUL7\NUL8\NUL@\STX\146\SOH\207\NUL\147\SOH\209\NUL\157\STX=\STX\146\NULc\NUL\233\SOH>\STX*\NUL1\NUL2\NUL3\NUL\207\SOHb\NULc\NUL\208\SOH\200\STX\140\NULj\NUL4\NUL5\NUL6\NUL7\NUL8\NUL}\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\201\STX\140\NULj\NUL\188\SOHT\STX\ACK\NULF\STX\a\NULW\STX\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULU\STX\234\NULV\STXy\SOH\149\SOHj\NUL\CAN\NUL\EM\NUL\205\STX\140\NULj\NULX\STXY\STX\ACK\NUL\156\NUL\a\NUL\134\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NULd\STX9\NUL\216\STX\166\NUL\167\NULf\STX\CAN\NUL\EM\NUL\ACK\NUL:\NUL\a\NUL\ESC\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\SUB\SOH9\NUL\133\STXJ\STX\FS\SOH\GS\SOH\CAN\NUL\EM\NULi\STX:\NUL\ACK\STXk\SOH\170\NUL]\SOH^\SOHK\STXh\SOHO\NUL\134\NULP\NULL\STXM\STX\a\STXS\NULN\STXU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\165\NUL\166\NUL\167\NULt\SOH\216\NUL\185\NUL_\NUL\217\NULx\SOH|\SOHO\STX\230\SOH\166\NUL\167\NUL\218\NUL]\NUL^\NULs\SOH\231\SOH\166\NUL\167\NUL~\SOH\134\NUL_\NUL=\NUL\136\SOH\186\NUL=\NUL=\254\ACK\NULl\NUL\a\NUL\134\SOH\244\NUL\t\NUL\n\NULI\SOH\247\SOHb\NULc\NUL\208\SOH=\254m\NUL\229\255\134\SOH\ACK\NUL=\254\a\NUL=\NUL\244\NUL\t\NUL\ETX\SOH\165\STX\158\SOH\CAN\NUL\EM\NUL\142\SOH\206\NUL\207\NUL=\NUL=\254\170\NUL\143\NULb\NULc\NUL\208\SOH\132\NUL\215\NUL\134\NUL\197\SOH\CAN\NUL\EM\NUL?\SOH\205\SOHh\NUL\195\SOHj\NULn\NULo\NUL=\NULp\NUL\207\SOHq\NUL*\NUL\134\NULr\NUL\218\SOH\255\255s\NUL\138\NULt\NULu\NULv\NUL\221\NUL\165\NUL\166\NUL\167\NULw\NULx\NUL\139\NULy\NUL\136\STX\134\NULz\NUL{\NUL\142\NUL|\NUL}\NUL\134\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\233\NULh\NUL\144\SOHj\NUL=\NUL\255\255\132\NUL\133\NUL\134\NUL\135\NUL\ESC\NUL\SO\STX\140\NULj\NUL?\254\251\255\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\234\NUL\237\NUL#\NUL&\STX\166\NUL\167\NUL\ACK\NUL\243\NUL\a\NUL\241\NUL\244\NUL\t\NULa\STX$\NUL\244\NUL\203\NUL\248\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\252\NUL\210\NULb\NULc\NUL\208\SOH\253\NUL<\NUL=\NUL\CAN\NUL\EM\NUL%\NUL>\NULo\NUL?\NULp\NUL@\NULq\NUL=\254A\NULr\NULB\NULC\NULs\NUL\255\255t\NULu\NULv\NULD\NULE\NULF\NUL=\254w\NULx\NUL\254\NULy\NUL=\254G\NULz\NUL{\NUL&\NUL|\NUL}\NULH\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254I\NUL'\NUL(\NUL)\NUL*\NULJ\NULQ\STX\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL4\STX\140\NULj\NUL\255\NUL\NUL\SOH\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\ACK\SOHo\NUL#\NUL\255\255\ETB\SOH\ACK\NUL\161\NUL\a\NUL\SUB\SOH\244\NUL\t\NUL\n\NULJ\SOH$\NULu\NULo\SOH\140\NULj\NUL\ESC\SOH\162\NUL\128\SOH\140\NULj\NULy\NUL\163\NUL\129\SOH\140\NULj\NUL\FS\SOH|\NUL\CAN\NUL\EM\NUL~\NUL%\NUL\128\NUL\215\255\GS\SOH\215\255\164\NUL\215\255\215\255\NUL\NUL\215\255\NUL\NUL\NUL\NUL\215\255\134\NUL\215\255\215\255\215\255\139\SOH\166\NUL\167\NUL\215\255\215\255\215\255\NUL\NUL\215\255\215\255\NUL\NUL\215\255\215\255&\NUL\215\255\215\255\NUL\NUL\215\255\215\255\215\255\215\255\215\255\215\255\215\255\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\215\255\215\255,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\165\NUL\166\NUL\167\NUL\NUL\NUL\174\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\209\SOHb\NULc\NULd\NUL\NUL\NUL\210\SOHg\NUL>\STX\NUL\NULO\NUL$\NULP\NUL\191\SOH\192\SOH\NUL\NULS\NUL\193\SOHU\NULV\NULW\NULX\NULY\NULZ\NUL[\NUL\\\NUL]\NUL^\NUL\139\NUL\140\NULj\NUL%\NUL\NUL\NULo\NUL_\NULp\NUL\NUL\NULq\NUL\194\SOH\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\165\NUL\166\NUL\167\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\211\SOHj\NULz\NUL{\NUL&\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NULR\STX-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\180\NUL\140\NULj\NUL\NUL\NULY\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NULh\NUL\195\SOHj\NUL\141\SOHG\ETX\170\NUL\141\SOH\t\ETX\170\NUL$\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\141\SOH\162\STX\170\NUL\141\SOH\168\STX\170\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL=\NUL\NUL\NUL\NUL\NUL%\NUL\146\NULc\NUL\233\SOHp\NUL\SOH\STXq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\STX\STX\141\SOH\206\SOH\170\NULw\NULx\NULh\NUL[\STXj\NUL\NUL\NULz\NUL{\NUL&\NUL\138\STX}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\149\SOHj\NUL\NUL\NUL<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL8\SOH<\254\&9\SOH\NUL\NUL:\SOH;\SOH<\254\NUL\NUL<\SOH=\SOH$\NUL\NUL\NUL\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL<\254\210\NULb\NULc\NUL\208\SOH\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL%\NUL\141\SOH\235\SOH\170\NULp\NULe\SOHq\NUL\170\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NULf\SOH(\SOH)\SOH*\SOHw\NULx\NUL\169\NUL\206\SOH\170\NUL\NUL\NULz\NUL{\NUL&\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\133\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL(\SOH)\SOH*\SOH<\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL<\254\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254+\STX\206\NUL\207\NUL$\NUL\NUL\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\ACK\NUL<\254\a\NUL\NUL\NUL\244\NUL\t\NULF\SOH<\NUL=\NUL\134\NUL\NUL\NUL%\NUL>\NUL\NUL\NUL?\NUL\NUL\NUL@\NUL\NUL\NUL\NUL\NULA\NUL\NUL\NULB\NULC\NUL\142\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NULD\NULE\NULF\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NULd\NULG\NUL\144\NULg\NUL&\NUL\NUL\NUL\NUL\NULH\NUL\NUL\NUL\NUL\NUL\SOH\STX\NUL\NUL\170\NUL\ACK\ETXj\NULI\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\STX\STX,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\187\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\145\NULj\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\161\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\162\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\163\NUL\132\NUL\159\NUL\134\NUL&\NUL<\254\NUL\NUL\ACK\NULf\SOH\a\NUL\NUL\NUL\244\NUL\t\NULG\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\SYN\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL$\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL%\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL\161\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\180\NUL\134\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SOH\STX\162\NUL\170\NUL\NUL\NUL%\STX\NUL\NUL\163\NUL\161\STX\NUL\NUL\NUL\NUL&\NUL=\254\STX\STX\146\NULc\NUL\147\NUL&\STX\148\NULg\NUL\247\SOH\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\175\SOH\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\161\NUL\ACK\NUL\NUL\NUL\a\NUL\161\NUL\ACK\SOH\t\NUL\161\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NUL\149\NULj\NUL\NUL\NUL\162\NUL\163\NUL\NUL\NUL\162\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\163\NUL\CAN\NUL\EM\NUL%\NUL\ACK\NUL\NUL\NUL\a\NUL\164\NUL\b\SOH\t\NUL=\254\164\NUL\NUL\NUL\132\NUL\164\NUL\134\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\132\NUL\215\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\CAN\NUL\EM\NUL\NUL\NUL&\NUL\176\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL/\STX\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NULu\STX\NUL\NUL\214\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULK\SOH\ESC\NUL$\NULu\STX\NUL\NUL\NUL\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NULw\STXf\ETX\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULM\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX4\ETX\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\215\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULQ\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\DC1\STX\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\147\NUL$\NUL\148\NULg\NUL\ACK\NUL\ESC\NUL\a\NULu\STX\v\SOH\t\NULv\STX\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\CAN\NUL\EM\NUL$\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NULH\SOH\NUL\NUL<\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL<\254\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\149\SOHj\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\CAN\NUL\EM\NUL<\254\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULf\SOH\134\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NULR\SOH'\NUL(\NUL)\NUL*\NULJ\NULK\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\161\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\ETX\SOH\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\134\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\ACK\NUL$\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULN\SOH\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULw\STX\NUL\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\158\STX\206\NUL\207\NUL\159\STX\209\NUL\NUL\NUL\229\SOHb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\203\SOH\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\230\STX\NUL\NUL\NUL\NUL\204\SOH\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NULL\SOH\ESC\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\156\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\161\NUL%\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL$\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULO\SOH\162\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\CAN\NUL\EM\NUL&\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\NUL\NUL\134\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NULP\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\"\STX\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL$\NUL\ESC\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NULc\STX\NUL\NUL\ACK\NUL%\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL*\SOH\NUL\NUL$\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\CAN\NUL\EM\NUL\NUL\NUL%\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL%\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\f\SOH\t\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL&\NUL\CAN\NUL\EM\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX\NUL\NUL\146\NULc\NUL\233\SOH'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\149\SOHj\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\209\STX\NUL\NUL\NUL\NUL&\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL$\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\b\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\146\SOH\207\NUL\147\SOH\209\NUL\a\ETX\NUL\NUL\146\NULc\NUL\233\SOH\n\SOH$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL$\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL&\NUL%\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULe\SOH\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NULf\SOH,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL&\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NULm\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL\ESC\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\FS\NUL\GS\NUL\RS\NUL\US\NUL \NUL!\NUL\"\NUL\NUL\NUL\NUL\NUL#\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL$\NULn\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL=\254\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\134\NUL\NUL\NUL%\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\ACK\STX\NUL\NUL\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\135\NUL&\NUL\NUL\NUL\a\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL'\NUL(\NUL)\NUL*\NUL+\NUL\NUL\NUL\NUL\NUL,\NUL-\NUL.\NUL/\NUL0\NUL1\NUL-\SOH.\SOH/\SOH0\SOH1\SOH2\SOH3\SOH4\SOH5\SOH6\SOH7\SOH\NUL\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\133\NUL\134\NUL\SOH\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\STX\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NUL\203\SOHo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\204\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\167\SOH\134\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\179\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\180\NUL\134\NUL\ACK\STXo\NUL\170\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\a\STXt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\223\NUL\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\224\NUL\134\NULe\SOHo\NUL\170\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NULf\SOHt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\203\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\204\SOHq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NULl\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NULm\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NULm\NULr\NUL\NUL\NUL\203\SOHs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\204\SOHy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\SOH\STX\251\STX\170\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL\NUL\NUL\161\NUL\NUL\NUL\STX\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\162\NULq\NUL\NUL\NUL\NUL\NULr\NUL\163\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\164\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\132\NUL}\NUL\134\NUL\NUL\NUL\158\NUL=\254\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\132\NUL\159\NUL\134\NUL=\254\NUL\NUL\NUL\NUL\176\SOH\177\SOH=\254S\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\132\NUL\NUL\NUL\134\NUL\181\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\SOH\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL)\STX_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\199\STXj\NUL\146\NULc\NUL\233\SOH\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\149\SOHj\NUL\181\SOH\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH\NUL\NUL\146\NULc\NUL\233\SOH\NUL\NULh\NUL\204\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\\\STX\166\NUL\167\NUL]\STX^\STX\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\146\SOH\207\NUL\147\SOH\209\NUL\148\SOH_\NUL\146\NULc\NUL\147\NUL\181\SOH\148\NULg\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\149\SOHj\NUL\NUL\NULh\NUL_\STXj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\SOH\183\SOH\184\SOH\185\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\149\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\182\SOH\183\SOH\184\SOH\NUL\NUL\NUL\NUL\NUL\NUL\176\SOH\177\SOH\NUL\NULS\NUL\178\SOHU\NULV\NULW\NUL\179\SOH\180\SOHZ\NUL[\NUL\\\NUL]\NUL^\NUL\NUL\NUL\216\NUL\185\NUL\NUL\NUL\217\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\181\SOH\218\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\171\NUL\186\NUL\172\NUL\NUL\NULh\NUL\186\SOHj\NUL\206\STX\NUL\NUL\173\NUL]\NUL^\NUL\a\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\b\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\252\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\253\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NULh\NUL\186\SOHj\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\NUL\NUL\171\NUL\NUL\NUL\172\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\221\NUL\173\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL#\STX\207\NUL\NUL\NUL\NUL\NUL\254\SOH\255\SOH\200\SOHc\NUL\201\SOH\242\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\151\NUL\NUL\NUL\152\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\159\SOH\NUL\NUL\160\SOH\NUL\NUL\NUL\NUL\NUL\NUL\151\NUL\NUL\NUL\152\NUL\161\SOH]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL_\NUL\156\NUL\NUL\NUL\162\SOH\243\SOHj\NUL_\NUL\NUL\NULw\STX\166\NUL\167\NULx\STXy\STX\NUL\NUL\212\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\241\SOHb\NULc\NUL\208\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\DC2\SOH\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\182\STX\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\129\STX\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\183\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NULU\SOH\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\239\SOH\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\240\SOH\NUL\NUL\FS\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\GS\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NULT\SOH\NUL\NUL\SO\SOHU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH1\STX\DC1\SOH\\\NUL]\NUL^\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\ACK\NUL\DC2\SOH\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL2\STX\NUL\NUL\215\SOH\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\216\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\169\STXU\NUL\NUL\NUL\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\247\STX\171\STX\172\STX\169\STXU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\170\STX\171\STX\172\STX\SO\SOHU\NUL_\NUL\SI\SOH\NUL\NUL\DLE\SOH\173\STX\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\SO\SOHU\NUL\DC2\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\NUL\NUL\132\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\174\STXj\NUL\NUL\NUL\SO\SOHU\NULm\SOH\SI\SOH\NUL\NUL\DLE\SOH\NUL\NUL\DC1\SOH\\\NUL]\NUL^\NULh\NUL\174\STXj\NUL\NUL\NUL\172\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\DC2\SOH\173\NUL]\NUL^\NUL\174\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL_\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NULn\SOH\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL^\SOH_\SOH\166\NUL\167\NUL`\SOHa\SOH\152\NUL\NUL\NUL\NUL\NUL\174\NUL\NUL\NUL\NUL\NUL\NUL\NUL\153\NUL]\NUL^\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\248\STX_\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULh\NUL\NAK\SOHj\NUL\NUL\NUL\NUL\NUL\DEL\STX\236\STXj\NUL\249\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NULb\SOHc\SOH\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\162\SOH\NUL\NUL\NUL\NUL\NUL\NUL\DC2\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\141\SOH\DC3\STX\DC4\STXj\NUL\142\SOH\206\NUL\207\NUL\143\SOH\209\NUL\NUL\NUL\143\NULb\NULc\NULd\NUL\NUL\NUL\144\NULg\NUL\NUL\NUL\NUL\NUL\156\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\170\SOH\NUL\NUL\NUL\NUL\174\NUL\185\STX\NUL\NUL\CAN\NUL\EM\NUL+\STX\206\NUL\207\NUL\NUL\NUL\156\NUL\NUL\NUL\209\SOHb\NULc\NUL\208\SOHh\NUL\144\SOHj\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL~\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\172\SOH\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NULh\NUL\173\SOHj\NUL\197\STX\DEL\STX\237\STXj\NUL\142\SOH\206\NUL\207\NUL\202\STX\159\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\143\NULb\NULc\NUL\208\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NULZ\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\192\STX\NUL\NULh\NUL\198\STXj\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULh\NUL\203\STXj\NUL\176\STX\NUL\NUL\ENQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\176\STX\NUL\NUL\177\STX\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\192\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NULo\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\161\NUL\NUL\NUL\133\NUL\134\NUL\178\STX\195\NUL\NUL\NUL\NUL\NULu\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NUL\162\NUL\NUL\NUL\NUL\NUL\161\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NULu\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\162\NUL\NUL\NUL\NUL\NUL\164\NULy\NUL\163\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL|\NUL\134\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL=\NUL\NUL\NUL\NUL\NUL\164\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\208\STX\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\188\SOH\133\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254\NUL\NUL;\254;\254;\254;\254;\254;\254;\254\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254o\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\166\SOH\128\NUL\129\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\167\SOH\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL=\254\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\254w\NULx\NUL\NUL\NULy\NUL=\254\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL=\254\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\133\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\158\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\159\NUL\134\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NULy\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL}\NUL\NUL\NUL~\NUL\DEL\NUL\128\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NULo\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NUL\NUL\NULu\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NULy\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL|\NUL\NUL\NUL\NUL\NUL~\NUL\NUL\NUL\128\NUL\NUL\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\NUL\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\133\NUL\134\NUL\178\STXp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\NUL\NUL\NUL\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\179\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NUL;\254\NUL\NUL;\254;\254\NUL\NUL;\254\180\NUL\134\NUL;\254\NUL\NUL;\254\NUL\NUL;\254\NUL\NUL\NUL\NUL\NUL\NUL;\254;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL\NUL\NUL;\254\NUL\NUL;\254;\254;\254;\254p\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL;\254;\254s\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\166\SOH\NUL\NUL\129\NUL\130\NUL\131\NUL\164\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\167\SOH\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\158\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\NUL\NUL\NUL\NULr\NUL\159\NUL\134\NULs\NUL\NUL\NULt\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULw\NULx\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL}\NUL\NUL\NUL\NUL\NUL\DEL\NUL\NUL\NUL\129\NUL\130\NUL\131\NUL\NUL\NULp\NUL\NUL\NULq\NUL\161\NUL\NUL\NULr\NUL\133\NUL\134\NULs\NUL\NUL\NUL\NUL\NUL\NUL\NULv\NUL\NUL\NUL\NUL\NUL\NUL\NUL\162\NULw\NULx\NUL\NUL\NUL\NUL\NUL\163\NUL\NUL\NULz\NUL{\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\130\NUL\131\NUL\164\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULl\STX\134\NUL'\ETXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NULl\STXs\STXm\STXn\STXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL1\ETXs\STX\NUL\NUL2\ETXo\STXp\STXq\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NULs\STX\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\227\STX\CAN\NUL\EM\NUL\NUL\NULg\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\228\STX\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL.\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\215\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULr\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\171\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\SI\STX\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\ACK\NUL\NUL\NUL\a\NUL\156\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULC\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NULD\ETX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\147\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\148\STX\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\234\NUL\NUL\NUL\235\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULw\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULx\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULa\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL:\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\146\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULA\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NULB\SOH\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULC\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULW\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULZ\SOH\NUL\NUL\NUL\NUL[\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NULz\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL|\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL~\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\DEL\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\SYN\NUL\NUL\NUL\ETB\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULV\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULX\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL[\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULf\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULG\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULM\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULQ\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\232\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NUL\238\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL)\ETX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULi\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULk\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL@\STX\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULE\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\b\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\NAK\NULl\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NUL\245\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\246\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULj\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NUL\DC3\NUL\DC4\NULd\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NUL\DC2\NULY\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NUL\SI\NUL\DLE\NUL\DC1\NULV\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\ACK\NUL\NUL\NUL\a\NUL\NUL\NUL\244\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\SO\NULS\SOH\STX\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\CAN\NUL\EM\NUL\NUL\NUL\NUL\NUL\NUL\NUL\EOT\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\t\STX\206\NUL\207\NUL\NUL\NUL\NUL\NUL\NUL\NUL\n\STXb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NULY\ETX\v\STX_\SOH\166\NUL\167\NUL`\SOHa\SOH\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\SOH\ETX\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\STX\ETX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\203\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\225\NUL\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH7\STX\NUL\NUL\204\NUL\205\NUL\206\NUL\207\NUL\208\NUL\209\NUL\NUL\NUL\244\SOHb\NULc\NUL\208\SOH\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"#
-happyReduceArr
-  = array (4, 463)
-      [(4, happyReduce_4), (5, happyReduce_5), (6, happyReduce_6),
-       (7, happyReduce_7), (8, happyReduce_8), (9, happyReduce_9),
-       (10, happyReduce_10), (11, happyReduce_11), (12, happyReduce_12),
-       (13, happyReduce_13), (14, happyReduce_14), (15, happyReduce_15),
-       (16, happyReduce_16), (17, happyReduce_17), (18, happyReduce_18),
-       (19, happyReduce_19), (20, happyReduce_20), (21, happyReduce_21),
-       (22, happyReduce_22), (23, happyReduce_23), (24, happyReduce_24),
-       (25, happyReduce_25), (26, happyReduce_26), (27, happyReduce_27),
-       (28, happyReduce_28), (29, happyReduce_29), (30, happyReduce_30),
-       (31, happyReduce_31), (32, happyReduce_32), (33, happyReduce_33),
-       (34, happyReduce_34), (35, happyReduce_35), (36, happyReduce_36),
-       (37, happyReduce_37), (38, happyReduce_38), (39, happyReduce_39),
-       (40, happyReduce_40), (41, happyReduce_41), (42, happyReduce_42),
-       (43, happyReduce_43), (44, happyReduce_44), (45, happyReduce_45),
-       (46, happyReduce_46), (47, happyReduce_47), (48, happyReduce_48),
-       (49, happyReduce_49), (50, happyReduce_50), (51, happyReduce_51),
-       (52, happyReduce_52), (53, happyReduce_53), (54, happyReduce_54),
-       (55, happyReduce_55), (56, happyReduce_56), (57, happyReduce_57),
-       (58, happyReduce_58), (59, happyReduce_59), (60, happyReduce_60),
-       (61, happyReduce_61), (62, happyReduce_62), (63, happyReduce_63),
-       (64, happyReduce_64), (65, happyReduce_65), (66, happyReduce_66),
-       (67, happyReduce_67), (68, happyReduce_68), (69, happyReduce_69),
-       (70, happyReduce_70), (71, happyReduce_71), (72, happyReduce_72),
-       (73, happyReduce_73), (74, happyReduce_74), (75, happyReduce_75),
-       (76, happyReduce_76), (77, happyReduce_77), (78, happyReduce_78),
-       (79, happyReduce_79), (80, happyReduce_80), (81, happyReduce_81),
-       (82, happyReduce_82), (83, happyReduce_83), (84, happyReduce_84),
-       (85, happyReduce_85), (86, happyReduce_86), (87, happyReduce_87),
-       (88, happyReduce_88), (89, happyReduce_89), (90, happyReduce_90),
-       (91, happyReduce_91), (92, happyReduce_92), (93, happyReduce_93),
-       (94, happyReduce_94), (95, happyReduce_95), (96, happyReduce_96),
-       (97, happyReduce_97), (98, happyReduce_98), (99, happyReduce_99),
-       (100, happyReduce_100), (101, happyReduce_101),
-       (102, happyReduce_102), (103, happyReduce_103),
-       (104, happyReduce_104), (105, happyReduce_105),
-       (106, happyReduce_106), (107, happyReduce_107),
-       (108, happyReduce_108), (109, happyReduce_109),
-       (110, happyReduce_110), (111, happyReduce_111),
-       (112, happyReduce_112), (113, happyReduce_113),
-       (114, happyReduce_114), (115, happyReduce_115),
-       (116, happyReduce_116), (117, happyReduce_117),
-       (118, happyReduce_118), (119, happyReduce_119),
-       (120, happyReduce_120), (121, happyReduce_121),
-       (122, happyReduce_122), (123, happyReduce_123),
-       (124, happyReduce_124), (125, happyReduce_125),
-       (126, happyReduce_126), (127, happyReduce_127),
-       (128, happyReduce_128), (129, happyReduce_129),
-       (130, happyReduce_130), (131, happyReduce_131),
-       (132, happyReduce_132), (133, happyReduce_133),
-       (134, happyReduce_134), (135, happyReduce_135),
-       (136, happyReduce_136), (137, happyReduce_137),
-       (138, happyReduce_138), (139, happyReduce_139),
-       (140, happyReduce_140), (141, happyReduce_141),
-       (142, happyReduce_142), (143, happyReduce_143),
-       (144, happyReduce_144), (145, happyReduce_145),
-       (146, happyReduce_146), (147, happyReduce_147),
-       (148, happyReduce_148), (149, happyReduce_149),
-       (150, happyReduce_150), (151, happyReduce_151),
-       (152, happyReduce_152), (153, happyReduce_153),
-       (154, happyReduce_154), (155, happyReduce_155),
-       (156, happyReduce_156), (157, happyReduce_157),
-       (158, happyReduce_158), (159, happyReduce_159),
-       (160, happyReduce_160), (161, happyReduce_161),
-       (162, happyReduce_162), (163, happyReduce_163),
-       (164, happyReduce_164), (165, happyReduce_165),
-       (166, happyReduce_166), (167, happyReduce_167),
-       (168, happyReduce_168), (169, happyReduce_169),
-       (170, happyReduce_170), (171, happyReduce_171),
-       (172, happyReduce_172), (173, happyReduce_173),
-       (174, happyReduce_174), (175, happyReduce_175),
-       (176, happyReduce_176), (177, happyReduce_177),
-       (178, happyReduce_178), (179, happyReduce_179),
-       (180, happyReduce_180), (181, happyReduce_181),
-       (182, happyReduce_182), (183, happyReduce_183),
-       (184, happyReduce_184), (185, happyReduce_185),
-       (186, happyReduce_186), (187, happyReduce_187),
-       (188, happyReduce_188), (189, happyReduce_189),
-       (190, happyReduce_190), (191, happyReduce_191),
-       (192, happyReduce_192), (193, happyReduce_193),
-       (194, happyReduce_194), (195, happyReduce_195),
-       (196, happyReduce_196), (197, happyReduce_197),
-       (198, happyReduce_198), (199, happyReduce_199),
-       (200, happyReduce_200), (201, happyReduce_201),
-       (202, happyReduce_202), (203, happyReduce_203),
-       (204, happyReduce_204), (205, happyReduce_205),
-       (206, happyReduce_206), (207, happyReduce_207),
-       (208, happyReduce_208), (209, happyReduce_209),
-       (210, happyReduce_210), (211, happyReduce_211),
-       (212, happyReduce_212), (213, happyReduce_213),
-       (214, happyReduce_214), (215, happyReduce_215),
-       (216, happyReduce_216), (217, happyReduce_217),
-       (218, happyReduce_218), (219, happyReduce_219),
-       (220, happyReduce_220), (221, happyReduce_221),
-       (222, happyReduce_222), (223, happyReduce_223),
-       (224, happyReduce_224), (225, happyReduce_225),
-       (226, happyReduce_226), (227, happyReduce_227),
-       (228, happyReduce_228), (229, happyReduce_229),
-       (230, happyReduce_230), (231, happyReduce_231),
-       (232, happyReduce_232), (233, happyReduce_233),
-       (234, happyReduce_234), (235, happyReduce_235),
-       (236, happyReduce_236), (237, happyReduce_237),
-       (238, happyReduce_238), (239, happyReduce_239),
-       (240, happyReduce_240), (241, happyReduce_241),
-       (242, happyReduce_242), (243, happyReduce_243),
-       (244, happyReduce_244), (245, happyReduce_245),
-       (246, happyReduce_246), (247, happyReduce_247),
-       (248, happyReduce_248), (249, happyReduce_249),
-       (250, happyReduce_250), (251, happyReduce_251),
-       (252, happyReduce_252), (253, happyReduce_253),
-       (254, happyReduce_254), (255, happyReduce_255),
-       (256, happyReduce_256), (257, happyReduce_257),
-       (258, happyReduce_258), (259, happyReduce_259),
-       (260, happyReduce_260), (261, happyReduce_261),
-       (262, happyReduce_262), (263, happyReduce_263),
-       (264, happyReduce_264), (265, happyReduce_265),
-       (266, happyReduce_266), (267, happyReduce_267),
-       (268, happyReduce_268), (269, happyReduce_269),
-       (270, happyReduce_270), (271, happyReduce_271),
-       (272, happyReduce_272), (273, happyReduce_273),
-       (274, happyReduce_274), (275, happyReduce_275),
-       (276, happyReduce_276), (277, happyReduce_277),
-       (278, happyReduce_278), (279, happyReduce_279),
-       (280, happyReduce_280), (281, happyReduce_281),
-       (282, happyReduce_282), (283, happyReduce_283),
-       (284, happyReduce_284), (285, happyReduce_285),
-       (286, happyReduce_286), (287, happyReduce_287),
-       (288, happyReduce_288), (289, happyReduce_289),
-       (290, happyReduce_290), (291, happyReduce_291),
-       (292, happyReduce_292), (293, happyReduce_293),
-       (294, happyReduce_294), (295, happyReduce_295),
-       (296, happyReduce_296), (297, happyReduce_297),
-       (298, happyReduce_298), (299, happyReduce_299),
-       (300, happyReduce_300), (301, happyReduce_301),
-       (302, happyReduce_302), (303, happyReduce_303),
-       (304, happyReduce_304), (305, happyReduce_305),
-       (306, happyReduce_306), (307, happyReduce_307),
-       (308, happyReduce_308), (309, happyReduce_309),
-       (310, happyReduce_310), (311, happyReduce_311),
-       (312, happyReduce_312), (313, happyReduce_313),
-       (314, happyReduce_314), (315, happyReduce_315),
-       (316, happyReduce_316), (317, happyReduce_317),
-       (318, happyReduce_318), (319, happyReduce_319),
-       (320, happyReduce_320), (321, happyReduce_321),
-       (322, happyReduce_322), (323, happyReduce_323),
-       (324, happyReduce_324), (325, happyReduce_325),
-       (326, happyReduce_326), (327, happyReduce_327),
-       (328, happyReduce_328), (329, happyReduce_329),
-       (330, happyReduce_330), (331, happyReduce_331),
-       (332, happyReduce_332), (333, happyReduce_333),
-       (334, happyReduce_334), (335, happyReduce_335),
-       (336, happyReduce_336), (337, happyReduce_337),
-       (338, happyReduce_338), (339, happyReduce_339),
-       (340, happyReduce_340), (341, happyReduce_341),
-       (342, happyReduce_342), (343, happyReduce_343),
-       (344, happyReduce_344), (345, happyReduce_345),
-       (346, happyReduce_346), (347, happyReduce_347),
-       (348, happyReduce_348), (349, happyReduce_349),
-       (350, happyReduce_350), (351, happyReduce_351),
-       (352, happyReduce_352), (353, happyReduce_353),
-       (354, happyReduce_354), (355, happyReduce_355),
-       (356, happyReduce_356), (357, happyReduce_357),
-       (358, happyReduce_358), (359, happyReduce_359),
-       (360, happyReduce_360), (361, happyReduce_361),
-       (362, happyReduce_362), (363, happyReduce_363),
-       (364, happyReduce_364), (365, happyReduce_365),
-       (366, happyReduce_366), (367, happyReduce_367),
-       (368, happyReduce_368), (369, happyReduce_369),
-       (370, happyReduce_370), (371, happyReduce_371),
-       (372, happyReduce_372), (373, happyReduce_373),
-       (374, happyReduce_374), (375, happyReduce_375),
-       (376, happyReduce_376), (377, happyReduce_377),
-       (378, happyReduce_378), (379, happyReduce_379),
-       (380, happyReduce_380), (381, happyReduce_381),
-       (382, happyReduce_382), (383, happyReduce_383),
-       (384, happyReduce_384), (385, happyReduce_385),
-       (386, happyReduce_386), (387, happyReduce_387),
-       (388, happyReduce_388), (389, happyReduce_389),
-       (390, happyReduce_390), (391, happyReduce_391),
-       (392, happyReduce_392), (393, happyReduce_393),
-       (394, happyReduce_394), (395, happyReduce_395),
-       (396, happyReduce_396), (397, happyReduce_397),
-       (398, happyReduce_398), (399, happyReduce_399),
-       (400, happyReduce_400), (401, happyReduce_401),
-       (402, happyReduce_402), (403, happyReduce_403),
-       (404, happyReduce_404), (405, happyReduce_405),
-       (406, happyReduce_406), (407, happyReduce_407),
-       (408, happyReduce_408), (409, happyReduce_409),
-       (410, happyReduce_410), (411, happyReduce_411),
-       (412, happyReduce_412), (413, happyReduce_413),
-       (414, happyReduce_414), (415, happyReduce_415),
-       (416, happyReduce_416), (417, happyReduce_417),
-       (418, happyReduce_418), (419, happyReduce_419),
-       (420, happyReduce_420), (421, happyReduce_421),
-       (422, happyReduce_422), (423, happyReduce_423),
-       (424, happyReduce_424), (425, happyReduce_425),
-       (426, happyReduce_426), (427, happyReduce_427),
-       (428, happyReduce_428), (429, happyReduce_429),
-       (430, happyReduce_430), (431, happyReduce_431),
-       (432, happyReduce_432), (433, happyReduce_433),
-       (434, happyReduce_434), (435, happyReduce_435),
-       (436, happyReduce_436), (437, happyReduce_437),
-       (438, happyReduce_438), (439, happyReduce_439),
-       (440, happyReduce_440), (441, happyReduce_441),
-       (442, happyReduce_442), (443, happyReduce_443),
-       (444, happyReduce_444), (445, happyReduce_445),
-       (446, happyReduce_446), (447, happyReduce_447),
-       (448, happyReduce_448), (449, happyReduce_449),
-       (450, happyReduce_450), (451, happyReduce_451),
-       (452, happyReduce_452), (453, happyReduce_453),
-       (454, happyReduce_454), (455, happyReduce_455),
-       (456, happyReduce_456), (457, happyReduce_457),
-       (458, happyReduce_458), (459, happyReduce_459),
-       (460, happyReduce_460), (461, happyReduce_461),
-       (462, happyReduce_462), (463, happyReduce_463)]
-happy_n_terms = 102 :: Int
-happy_n_nonterms = 125 :: Int
-happyReduce_4 = happyMonadReduce 1# 0# happyReduction_4
-happyReduction_4 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut8 happy_x_1 of
-           happy_var_1 -> (let decls = reverse happy_var_1 in
-                             case decls of
-                                 [] -> do n <- getNewName
-                                          p <- getCurrentPosition
-                                          return $ CTranslUnit decls (mkNodeInfo' p (p, 0) n)
-                                 (d : ds) -> withNodeInfo d $ CTranslUnit decls))
-      (\ r -> happyReturn (happyIn7 r))
-happyReduce_5 = happySpecReduce_0 1# happyReduction_5
-happyReduction_5 = happyIn8 (empty)
-happyReduce_6 = happySpecReduce_2 1# happyReduction_6
-happyReduction_6 happy_x_2 happy_x_1
-  = case happyOut8 happy_x_1 of
-        happy_var_1 -> happyIn8 (happy_var_1)
-happyReduce_7 = happySpecReduce_2 1# happyReduction_7
-happyReduction_7 happy_x_2 happy_x_1
-  = case happyOut8 happy_x_1 of
-        happy_var_1 -> case happyOut9 happy_x_2 of
-                           happy_var_2 -> happyIn8 (happy_var_1 `snoc` happy_var_2)
-happyReduce_8 = happySpecReduce_1 2# happyReduction_8
-happyReduction_8 happy_x_1
-  = case happyOut10 happy_x_1 of
-        happy_var_1 -> happyIn9 (CFDefExt happy_var_1)
-happyReduce_9 = happySpecReduce_1 2# happyReduction_9
-happyReduction_9 happy_x_1
-  = case happyOut32 happy_x_1 of
-        happy_var_1 -> happyIn9 (CDeclExt happy_var_1)
-happyReduce_10 = happySpecReduce_2 2# happyReduction_10
-happyReduction_10 happy_x_2 happy_x_1
-  = case happyOut9 happy_x_2 of
-        happy_var_2 -> happyIn9 (happy_var_2)
-happyReduce_11 = happyMonadReduce 5# 2# happyReduction_11
-happyReduction_11
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut123 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $ CAsmExt happy_var_3))
-      (\ r -> happyReturn (happyIn9 r))
-happyReduce_12 = happyMonadReduce 2# 3# happyReduction_12
-happyReduction_12
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut11 happy_x_1 of
-           happy_var_1 -> case happyOut14 happy_x_2 of
-                              happy_var_2 -> (leaveScope >>
-                                                (withNodeInfo happy_var_1 $
-                                                   CFunDef [] happy_var_1 [] happy_var_2)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_13 = happyMonadReduce 3# 3# happyReduction_13
-happyReduction_13
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef
-                                                                        (liftCAttrs happy_var_1)
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_14 = happyMonadReduce 3# 3# happyReduction_14
-happyReduction_14
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef happy_var_1
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_15 = happyMonadReduce 3# 3# happyReduction_15
-happyReduction_15
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef happy_var_1
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_16 = happyMonadReduce 3# 3# happyReduction_16
-happyReduction_16
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef (reverse happy_var_1)
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_17 = happyMonadReduce 3# 3# happyReduction_17
-happyReduction_17
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef
-                                                                        (liftTypeQuals happy_var_1)
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_18 = happyMonadReduce 4# 3# happyReduction_18
-happyReduction_18
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut11 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (leaveScope >>
-                                                                                      (withNodeInfo
-                                                                                         happy_var_1
-                                                                                         $
-                                                                                         CFunDef
-                                                                                           (liftTypeQuals
-                                                                                              happy_var_1
-                                                                                              ++
-                                                                                              liftCAttrs
-                                                                                                happy_var_2)
-                                                                                           happy_var_3
-                                                                                           []
-                                                                                           happy_var_4)))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_19 = happyMonadReduce 3# 3# happyReduction_19
-happyReduction_19
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut76 happy_x_1 of
-           happy_var_1 -> case happyOut33 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CFunDef [] happy_var_1
-                                                                     (reverse happy_var_2)
-                                                                     happy_var_3))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_20 = happyMonadReduce 4# 3# happyReduction_20
-happyReduction_20
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOut76 happy_x_2 of
-                              happy_var_2 -> case happyOut33 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (withNodeInfo
-                                                                                      happy_var_2
-                                                                                      $
-                                                                                      CFunDef
-                                                                                        (liftCAttrs
-                                                                                           happy_var_1)
-                                                                                        happy_var_2
-                                                                                        (reverse
-                                                                                           happy_var_3)
-                                                                                        happy_var_4))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_21 = happyMonadReduce 4# 3# happyReduction_21
-happyReduction_21
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut76 happy_x_2 of
-                              happy_var_2 -> case happyOut33 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CFunDef
-                                                                                        happy_var_1
-                                                                                        happy_var_2
-                                                                                        (reverse
-                                                                                           happy_var_3)
-                                                                                        happy_var_4))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_22 = happyMonadReduce 4# 3# happyReduction_22
-happyReduction_22
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut76 happy_x_2 of
-                              happy_var_2 -> case happyOut33 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CFunDef
-                                                                                        happy_var_1
-                                                                                        happy_var_2
-                                                                                        (reverse
-                                                                                           happy_var_3)
-                                                                                        happy_var_4))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_23 = happyMonadReduce 4# 3# happyReduction_23
-happyReduction_23
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut76 happy_x_2 of
-                              happy_var_2 -> case happyOut33 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CFunDef
-                                                                                        (reverse
-                                                                                           happy_var_1)
-                                                                                        happy_var_2
-                                                                                        (reverse
-                                                                                           happy_var_3)
-                                                                                        happy_var_4))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_24 = happyMonadReduce 4# 3# happyReduction_24
-happyReduction_24
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut76 happy_x_2 of
-                              happy_var_2 -> case happyOut33 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CFunDef
-                                                                                        (liftTypeQuals
-                                                                                           happy_var_1)
-                                                                                        happy_var_2
-                                                                                        (reverse
-                                                                                           happy_var_3)
-                                                                                        happy_var_4))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_25 = happyMonadReduce 5# 3# happyReduction_25
-happyReduction_25
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut76 happy_x_3 of
-                                                 happy_var_3 -> case happyOut33 happy_x_4 of
-                                                                    happy_var_4 -> case
-                                                                                     happyOut14
-                                                                                       happy_x_5
-                                                                                     of
-                                                                                       happy_var_5 -> (withNodeInfo
-                                                                                                         happy_var_1
-                                                                                                         $
-                                                                                                         CFunDef
-                                                                                                           (liftTypeQuals
-                                                                                                              happy_var_1
-                                                                                                              ++
-                                                                                                              liftCAttrs
-                                                                                                                happy_var_2)
-                                                                                                           happy_var_3
-                                                                                                           (reverse
-                                                                                                              happy_var_4)
-                                                                                                           happy_var_5))
-      (\ r -> happyReturn (happyIn10 r))
-happyReduce_26 = happyMonadReduce 1# 4# happyReduction_26
-happyReduction_26 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut72 happy_x_1 of
-           happy_var_1 -> (let declr = reverseDeclr happy_var_1 in
-                             enterScope >> doFuncParamDeclIdent declr >> return declr))
-      (\ r -> happyReturn (happyIn11 r))
-happyReduce_27 = happySpecReduce_1 5# happyReduction_27
-happyReduction_27 happy_x_1
-  = case happyOut13 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_28 = happySpecReduce_1 5# happyReduction_28
-happyReduction_28 happy_x_1
-  = case happyOut14 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_29 = happySpecReduce_1 5# happyReduction_29
-happyReduction_29 happy_x_1
-  = case happyOut22 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_30 = happySpecReduce_1 5# happyReduction_30
-happyReduction_30 happy_x_1
-  = case happyOut23 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_31 = happySpecReduce_1 5# happyReduction_31
-happyReduction_31 happy_x_1
-  = case happyOut24 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_32 = happySpecReduce_1 5# happyReduction_32
-happyReduction_32 happy_x_1
-  = case happyOut25 happy_x_1 of
-        happy_var_1 -> happyIn12 (happy_var_1)
-happyReduce_33 = happyMonadReduce 1# 5# happyReduction_33
-happyReduction_33 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut26 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 (CAsm happy_var_1)))
-      (\ r -> happyReturn (happyIn12 r))
-happyReduce_34 = happyMonadReduce 4# 6# happyReduction_34
-happyReduction_34
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut125 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_3 of
-                              happy_var_3 -> case happyOut12 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CLabel happy_var_1 happy_var_4
-                                                                     happy_var_3))
-      (\ r -> happyReturn (happyIn13 r))
-happyReduce_35 = happyMonadReduce 4# 6# happyReduction_35
-happyReduction_35
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut121 happy_x_2 of
-                              happy_var_2 -> case happyOut12 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CCase happy_var_2 happy_var_4))
-      (\ r -> happyReturn (happyIn13 r))
-happyReduce_36 = happyMonadReduce 3# 6# happyReduction_36
-happyReduction_36
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut12 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $ CDefault happy_var_3))
-      (\ r -> happyReturn (happyIn13 r))
-happyReduce_37 = happyMonadReduce 6# 6# happyReduction_37
-happyReduction_37
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut121 happy_x_2 of
-                              happy_var_2 -> case happyOut121 happy_x_4 of
-                                                 happy_var_4 -> case happyOut12 happy_x_6 of
-                                                                    happy_var_6 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CCases
-                                                                                        happy_var_2
-                                                                                        happy_var_4
-                                                                                        happy_var_6))
-      (\ r -> happyReturn (happyIn13 r))
-happyReduce_38 = happyMonadReduce 5# 7# happyReduction_38
-happyReduction_38
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut17 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CCompound [] (reverse happy_var_3)))
-      (\ r -> happyReturn (happyIn14 r))
-happyReduce_39 = happyMonadReduce 6# 7# happyReduction_39
-happyReduction_39
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut21 happy_x_3 of
-                              happy_var_3 -> case happyOut17 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CCompound (reverse happy_var_3)
-                                                                     (reverse happy_var_4)))
-      (\ r -> happyReturn (happyIn14 r))
-happyReduce_40 = happyMonadReduce 0# 8# happyReduction_40
-happyReduction_40 (happyRest) tk
-  = happyThen ((enterScope)) (\ r -> happyReturn (happyIn15 r))
-happyReduce_41 = happyMonadReduce 0# 9# happyReduction_41
-happyReduction_41 (happyRest) tk
-  = happyThen ((leaveScope)) (\ r -> happyReturn (happyIn16 r))
-happyReduce_42 = happySpecReduce_0 10# happyReduction_42
-happyReduction_42 = happyIn17 (empty)
-happyReduce_43 = happySpecReduce_2 10# happyReduction_43
-happyReduction_43 happy_x_2 happy_x_1
-  = case happyOut17 happy_x_1 of
-        happy_var_1 -> case happyOut18 happy_x_2 of
-                           happy_var_2 -> happyIn17 (happy_var_1 `snoc` happy_var_2)
-happyReduce_44 = happySpecReduce_1 11# happyReduction_44
-happyReduction_44 happy_x_1
-  = case happyOut12 happy_x_1 of
-        happy_var_1 -> happyIn18 (CBlockStmt happy_var_1)
-happyReduce_45 = happySpecReduce_1 11# happyReduction_45
-happyReduction_45 happy_x_1
-  = case happyOut19 happy_x_1 of
-        happy_var_1 -> happyIn18 (happy_var_1)
-happyReduce_46 = happySpecReduce_1 12# happyReduction_46
-happyReduction_46 happy_x_1
-  = case happyOut32 happy_x_1 of
-        happy_var_1 -> happyIn19 (CBlockDecl happy_var_1)
-happyReduce_47 = happySpecReduce_1 12# happyReduction_47
-happyReduction_47 happy_x_1
-  = case happyOut20 happy_x_1 of
-        happy_var_1 -> happyIn19 (CNestedFunDef happy_var_1)
-happyReduce_48 = happySpecReduce_2 12# happyReduction_48
-happyReduction_48 happy_x_2 happy_x_1
-  = case happyOut19 happy_x_2 of
-        happy_var_2 -> happyIn19 (happy_var_2)
-happyReduce_49 = happyMonadReduce 3# 13# happyReduction_49
-happyReduction_49
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef happy_var_1
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn20 r))
-happyReduce_50 = happyMonadReduce 3# 13# happyReduction_50
-happyReduction_50
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef happy_var_1
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn20 r))
-happyReduce_51 = happyMonadReduce 3# 13# happyReduction_51
-happyReduction_51
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef (reverse happy_var_1)
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn20 r))
-happyReduce_52 = happyMonadReduce 3# 13# happyReduction_52
-happyReduction_52
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut11 happy_x_2 of
-                              happy_var_2 -> case happyOut14 happy_x_3 of
-                                                 happy_var_3 -> (leaveScope >>
-                                                                   (withNodeInfo happy_var_1 $
-                                                                      CFunDef
-                                                                        (liftTypeQuals happy_var_1)
-                                                                        happy_var_2
-                                                                        []
-                                                                        happy_var_3)))
-      (\ r -> happyReturn (happyIn20 r))
-happyReduce_53 = happyMonadReduce 4# 13# happyReduction_53
-happyReduction_53
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut11 happy_x_3 of
-                                                 happy_var_3 -> case happyOut14 happy_x_4 of
-                                                                    happy_var_4 -> (leaveScope >>
-                                                                                      (withNodeInfo
-                                                                                         happy_var_1
-                                                                                         $
-                                                                                         CFunDef
-                                                                                           (liftTypeQuals
-                                                                                              happy_var_1
-                                                                                              ++
-                                                                                              liftCAttrs
-                                                                                                happy_var_2)
-                                                                                           happy_var_3
-                                                                                           []
-                                                                                           happy_var_4)))
-      (\ r -> happyReturn (happyIn20 r))
-happyReduce_54 = happySpecReduce_3 14# happyReduction_54
-happyReduction_54 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut82 happy_x_2 of
-        happy_var_2 -> happyIn21 (happy_var_2)
-happyReduce_55 = happyReduce 4# 14# happyReduction_55
-happyReduction_55
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut21 happy_x_1 of
-        happy_var_1 -> case happyOut82 happy_x_3 of
-                           happy_var_3 -> happyIn21 (happy_var_1 `rappendr` happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_56 = happyMonadReduce 1# 15# happyReduction_56
-happyReduction_56 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CExpr Nothing))
-      (\ r -> happyReturn (happyIn22 r))
-happyReduce_57 = happyMonadReduce 2# 15# happyReduction_57
-happyReduction_57
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut117 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CExpr (Just happy_var_1)))
-      (\ r -> happyReturn (happyIn22 r))
-happyReduce_58 = happyMonadReduce 5# 16# happyReduction_58
-happyReduction_58
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> case happyOut12 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CIf happy_var_3 happy_var_5
-                                                                     Nothing))
-      (\ r -> happyReturn (happyIn23 r))
-happyReduce_59 = happyMonadReduce 7# 16# happyReduction_59
-happyReduction_59
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> case happyOut12 happy_x_5 of
-                                                 happy_var_5 -> case happyOut12 happy_x_7 of
-                                                                    happy_var_7 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CIf
-                                                                                        happy_var_3
-                                                                                        happy_var_5
-                                                                                        (Just
-                                                                                           happy_var_7)))
-      (\ r -> happyReturn (happyIn23 r))
-happyReduce_60 = happyMonadReduce 5# 16# happyReduction_60
-happyReduction_60
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> case happyOut12 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CSwitch happy_var_3 happy_var_5))
-      (\ r -> happyReturn (happyIn23 r))
-happyReduce_61 = happyMonadReduce 5# 17# happyReduction_61
-happyReduction_61
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> case happyOut12 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CWhile happy_var_3 happy_var_5
-                                                                     False))
-      (\ r -> happyReturn (happyIn24 r))
-happyReduce_62 = happyMonadReduce 7# 17# happyReduction_62
-happyReduction_62
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut12 happy_x_2 of
-                              happy_var_2 -> case happyOut117 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CWhile happy_var_5 happy_var_2
-                                                                     True))
-      (\ r -> happyReturn (happyIn24 r))
-happyReduce_63 = happyMonadReduce 9# 17# happyReduction_63
-happyReduction_63
-  (happy_x_9 `HappyStk`
-     (happy_x_8 `HappyStk`
-        (happy_x_7 `HappyStk`
-           (happy_x_6 `HappyStk`
-              (happy_x_5 `HappyStk`
-                 (happy_x_4 `HappyStk`
-                    (happy_x_3 `HappyStk`
-                       (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut119 happy_x_3 of
-                              happy_var_3 -> case happyOut119 happy_x_5 of
-                                                 happy_var_5 -> case happyOut119 happy_x_7 of
-                                                                    happy_var_7 -> case
-                                                                                     happyOut12
-                                                                                       happy_x_9
-                                                                                     of
-                                                                                       happy_var_9 -> (withNodeInfo
-                                                                                                         happy_var_1
-                                                                                                         $
-                                                                                                         CFor
-                                                                                                           (Left
-                                                                                                              happy_var_3)
-                                                                                                           happy_var_5
-                                                                                                           happy_var_7
-                                                                                                           happy_var_9))
-      (\ r -> happyReturn (happyIn24 r))
-happyReduce_64 = happyMonadReduce 10# 17# happyReduction_64
-happyReduction_64
-  (happy_x_10 `HappyStk`
-     (happy_x_9 `HappyStk`
-        (happy_x_8 `HappyStk`
-           (happy_x_7 `HappyStk`
-              (happy_x_6 `HappyStk`
-                 (happy_x_5 `HappyStk`
-                    (happy_x_4 `HappyStk`
-                       (happy_x_3 `HappyStk`
-                          (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut32 happy_x_4 of
-                              happy_var_4 -> case happyOut119 happy_x_5 of
-                                                 happy_var_5 -> case happyOut119 happy_x_7 of
-                                                                    happy_var_7 -> case
-                                                                                     happyOut12
-                                                                                       happy_x_9
-                                                                                     of
-                                                                                       happy_var_9 -> (withNodeInfo
-                                                                                                         happy_var_1
-                                                                                                         $
-                                                                                                         CFor
-                                                                                                           (Right
-                                                                                                              happy_var_4)
-                                                                                                           happy_var_5
-                                                                                                           happy_var_7
-                                                                                                           happy_var_9))
-      (\ r -> happyReturn (happyIn24 r))
-happyReduce_65 = happyMonadReduce 3# 18# happyReduction_65
-happyReduction_65
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $ CGoto happy_var_2))
-      (\ r -> happyReturn (happyIn25 r))
-happyReduce_66 = happyMonadReduce 4# 18# happyReduction_66
-happyReduction_66
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $ CGotoPtr happy_var_3))
-      (\ r -> happyReturn (happyIn25 r))
-happyReduce_67 = happyMonadReduce 2# 18# happyReduction_67
-happyReduction_67
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CCont))
-      (\ r -> happyReturn (happyIn25 r))
-happyReduce_68 = happyMonadReduce 2# 18# happyReduction_68
-happyReduction_68
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CBreak))
-      (\ r -> happyReturn (happyIn25 r))
-happyReduce_69 = happyMonadReduce 3# 18# happyReduction_69
-happyReduction_69
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut119 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $ CReturn happy_var_2))
-      (\ r -> happyReturn (happyIn25 r))
-happyReduce_70 = happyMonadReduce 6# 19# happyReduction_70
-happyReduction_70
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut27 happy_x_2 of
-                              happy_var_2 -> case happyOut123 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CAsmStmt happy_var_2 happy_var_4
-                                                                     []
-                                                                     []
-                                                                     []))
-      (\ r -> happyReturn (happyIn26 r))
-happyReduce_71 = happyMonadReduce 8# 19# happyReduction_71
-happyReduction_71
-  (happy_x_8 `HappyStk`
-     (happy_x_7 `HappyStk`
-        (happy_x_6 `HappyStk`
-           (happy_x_5 `HappyStk`
-              (happy_x_4 `HappyStk`
-                 (happy_x_3 `HappyStk`
-                    (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut27 happy_x_2 of
-                              happy_var_2 -> case happyOut123 happy_x_4 of
-                                                 happy_var_4 -> case happyOut28 happy_x_6 of
-                                                                    happy_var_6 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CAsmStmt
-                                                                                        happy_var_2
-                                                                                        happy_var_4
-                                                                                        happy_var_6
-                                                                                        []
-                                                                                        []))
-      (\ r -> happyReturn (happyIn26 r))
-happyReduce_72 = happyMonadReduce 10# 19# happyReduction_72
-happyReduction_72
-  (happy_x_10 `HappyStk`
-     (happy_x_9 `HappyStk`
-        (happy_x_8 `HappyStk`
-           (happy_x_7 `HappyStk`
-              (happy_x_6 `HappyStk`
-                 (happy_x_5 `HappyStk`
-                    (happy_x_4 `HappyStk`
-                       (happy_x_3 `HappyStk`
-                          (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut27 happy_x_2 of
-                              happy_var_2 -> case happyOut123 happy_x_4 of
-                                                 happy_var_4 -> case happyOut28 happy_x_6 of
-                                                                    happy_var_6 -> case
-                                                                                     happyOut28
-                                                                                       happy_x_8
-                                                                                     of
-                                                                                       happy_var_8 -> (withNodeInfo
-                                                                                                         happy_var_1
-                                                                                                         $
-                                                                                                         CAsmStmt
-                                                                                                           happy_var_2
-                                                                                                           happy_var_4
-                                                                                                           happy_var_6
-                                                                                                           happy_var_8
-                                                                                                           []))
-      (\ r -> happyReturn (happyIn26 r))
-happyReduce_73 = happyMonadReduce 12# 19# happyReduction_73
-happyReduction_73
-  (happy_x_12 `HappyStk`
-     (happy_x_11 `HappyStk`
-        (happy_x_10 `HappyStk`
-           (happy_x_9 `HappyStk`
-              (happy_x_8 `HappyStk`
-                 (happy_x_7 `HappyStk`
-                    (happy_x_6 `HappyStk`
-                       (happy_x_5 `HappyStk`
-                          (happy_x_4 `HappyStk`
-                             (happy_x_3 `HappyStk`
-                                (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut27 happy_x_2 of
-                              happy_var_2 -> case happyOut123 happy_x_4 of
-                                                 happy_var_4 -> case happyOut28 happy_x_6 of
-                                                                    happy_var_6 -> case
-                                                                                     happyOut28
-                                                                                       happy_x_8
-                                                                                     of
-                                                                                       happy_var_8 -> case
-                                                                                                        happyOut31
-                                                                                                          happy_x_10
-                                                                                                        of
-                                                                                                          happy_var_10 -> (withNodeInfo
-                                                                                                                             happy_var_1
-                                                                                                                             $
-                                                                                                                             CAsmStmt
-                                                                                                                               happy_var_2
-                                                                                                                               happy_var_4
-                                                                                                                               happy_var_6
-                                                                                                                               happy_var_8
-                                                                                                                               (reverse
-                                                                                                                                  happy_var_10)))
-      (\ r -> happyReturn (happyIn26 r))
-happyReduce_74 = happySpecReduce_0 20# happyReduction_74
-happyReduction_74 = happyIn27 (Nothing)
-happyReduce_75 = happySpecReduce_1 20# happyReduction_75
-happyReduction_75 happy_x_1
-  = case happyOut61 happy_x_1 of
-        happy_var_1 -> happyIn27 (Just happy_var_1)
-happyReduce_76 = happySpecReduce_0 21# happyReduction_76
-happyReduction_76 = happyIn28 ([])
-happyReduce_77 = happySpecReduce_1 21# happyReduction_77
-happyReduction_77 happy_x_1
-  = case happyOut29 happy_x_1 of
-        happy_var_1 -> happyIn28 (reverse happy_var_1)
-happyReduce_78 = happySpecReduce_1 22# happyReduction_78
-happyReduction_78 happy_x_1
-  = case happyOut30 happy_x_1 of
-        happy_var_1 -> happyIn29 (singleton happy_var_1)
-happyReduce_79 = happySpecReduce_3 22# happyReduction_79
-happyReduction_79 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut29 happy_x_1 of
-        happy_var_1 -> case happyOut30 happy_x_3 of
-                           happy_var_3 -> happyIn29 (happy_var_1 `snoc` happy_var_3)
-happyReduce_80 = happyMonadReduce 4# 23# happyReduction_80
-happyReduction_80
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut123 happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CAsmOperand Nothing happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn30 r))
-happyReduce_81 = happyMonadReduce 7# 23# happyReduction_81
-happyReduction_81
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              (CTokIdent _ happy_var_2) -> case happyOut123 happy_x_4 of
-                                                               happy_var_4 -> case
-                                                                                happyOut117
-                                                                                  happy_x_6
-                                                                                of
-                                                                                  happy_var_6 -> (withNodeInfo
-                                                                                                    happy_var_1
-                                                                                                    $
-                                                                                                    CAsmOperand
-                                                                                                      (Just
-                                                                                                         happy_var_2)
-                                                                                                      happy_var_4
-                                                                                                      happy_var_6))
-      (\ r -> happyReturn (happyIn30 r))
-happyReduce_82 = happyMonadReduce 7# 23# happyReduction_82
-happyReduction_82
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              (CTokTyIdent _ happy_var_2) -> case happyOut123 happy_x_4 of
-                                                                 happy_var_4 -> case
-                                                                                  happyOut117
-                                                                                    happy_x_6
-                                                                                  of
-                                                                                    happy_var_6 -> (withNodeInfo
-                                                                                                      happy_var_1
-                                                                                                      $
-                                                                                                      CAsmOperand
-                                                                                                        (Just
-                                                                                                           happy_var_2)
-                                                                                                        happy_var_4
-                                                                                                        happy_var_6))
-      (\ r -> happyReturn (happyIn30 r))
-happyReduce_83 = happySpecReduce_1 24# happyReduction_83
-happyReduction_83 happy_x_1
-  = case happyOut123 happy_x_1 of
-        happy_var_1 -> happyIn31 (singleton happy_var_1)
-happyReduce_84 = happySpecReduce_3 24# happyReduction_84
-happyReduction_84 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut31 happy_x_1 of
-        happy_var_1 -> case happyOut123 happy_x_3 of
-                           happy_var_3 -> happyIn31 (happy_var_1 `snoc` happy_var_3)
-happyReduce_85 = happyMonadReduce 2# 25# happyReduction_85
-happyReduction_85
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut45 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CDecl (reverse happy_var_1) []))
-      (\ r -> happyReturn (happyIn32 r))
-happyReduce_86 = happyMonadReduce 2# 25# happyReduction_86
-happyReduction_86
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut46 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CDecl (reverse happy_var_1) []))
-      (\ r -> happyReturn (happyIn32 r))
-happyReduce_87 = happyMonadReduce 2# 25# happyReduction_87
-happyReduction_87
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut36 happy_x_1 of
-           happy_var_1 -> (case happy_var_1 of
-                               CDecl declspecs dies at -> withLength at
-                                                            (CDecl declspecs (List.reverse dies))))
-      (\ r -> happyReturn (happyIn32 r))
-happyReduce_88 = happyMonadReduce 2# 25# happyReduction_88
-happyReduction_88
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut34 happy_x_1 of
-           happy_var_1 -> (case happy_var_1 of
-                               CDecl declspecs dies at -> withLength at
-                                                            (CDecl declspecs (List.reverse dies))))
-      (\ r -> happyReturn (happyIn32 r))
-happyReduce_89 = happySpecReduce_0 26# happyReduction_89
-happyReduction_89 = happyIn33 (empty)
-happyReduce_90 = happySpecReduce_2 26# happyReduction_90
-happyReduction_90 happy_x_2 happy_x_1
-  = case happyOut33 happy_x_1 of
-        happy_var_1 -> case happyOut32 happy_x_2 of
-                           happy_var_2 -> happyIn33 (happy_var_1 `snoc` happy_var_2)
-happyReduce_91 = happyMonadReduce 4# 27# happyReduction_91
-happyReduction_91
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut35 happy_x_3 of
-                                                 happy_var_3 -> case happyOut91 happy_x_4 of
-                                                                    happy_var_4 -> (let declspecs
-                                                                                          = reverse
-                                                                                              happy_var_1
-                                                                                      in
-                                                                                      do declr <- withAsmNameAttrs
-                                                                                                    happy_var_3
-                                                                                                    happy_var_2
-                                                                                         doDeclIdent
-                                                                                           declspecs
-                                                                                           declr
-                                                                                         withNodeInfo
-                                                                                           happy_var_1
-                                                                                           $
-                                                                                           CDecl
-                                                                                             declspecs
-                                                                                             [(Just
-                                                                                                 (reverseDeclr
-                                                                                                    declr),
-                                                                                               happy_var_4,
-                                                                                               Nothing)]))
-      (\ r -> happyReturn (happyIn34 r))
-happyReduce_92 = happyMonadReduce 4# 27# happyReduction_92
-happyReduction_92
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut35 happy_x_3 of
-                                                 happy_var_3 -> case happyOut91 happy_x_4 of
-                                                                    happy_var_4 -> (let declspecs
-                                                                                          = liftTypeQuals
-                                                                                              happy_var_1
-                                                                                      in
-                                                                                      do declr <- withAsmNameAttrs
-                                                                                                    happy_var_3
-                                                                                                    happy_var_2
-                                                                                         doDeclIdent
-                                                                                           declspecs
-                                                                                           declr
-                                                                                         withNodeInfo
-                                                                                           happy_var_1
-                                                                                           $
-                                                                                           CDecl
-                                                                                             declspecs
-                                                                                             [(Just
-                                                                                                 (reverseDeclr
-                                                                                                    declr),
-                                                                                               happy_var_4,
-                                                                                               Nothing)]))
-      (\ r -> happyReturn (happyIn34 r))
-happyReduce_93 = happyMonadReduce 5# 27# happyReduction_93
-happyReduction_93
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut72 happy_x_3 of
-                                                 happy_var_3 -> case happyOut35 happy_x_4 of
-                                                                    happy_var_4 -> case
-                                                                                     happyOut91
-                                                                                       happy_x_5
-                                                                                     of
-                                                                                       happy_var_5 -> (let declspecs
-                                                                                                             = liftTypeQuals
-                                                                                                                 happy_var_1
-                                                                                                         in
-                                                                                                         do declr <- withAsmNameAttrs
-                                                                                                                       happy_var_4
-                                                                                                                       happy_var_3
-                                                                                                            doDeclIdent
-                                                                                                              declspecs
-                                                                                                              declr
-                                                                                                            withNodeInfo
-                                                                                                              happy_var_1
-                                                                                                              $
-                                                                                                              CDecl
-                                                                                                                (declspecs
-                                                                                                                   ++
-                                                                                                                   liftCAttrs
-                                                                                                                     happy_var_2)
-                                                                                                                [(Just
-                                                                                                                    (reverseDeclr
-                                                                                                                       declr),
-                                                                                                                  happy_var_5,
-                                                                                                                  Nothing)]))
-      (\ r -> happyReturn (happyIn34 r))
-happyReduce_94 = happyMonadReduce 4# 27# happyReduction_94
-happyReduction_94
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut35 happy_x_3 of
-                                                 happy_var_3 -> case happyOut91 happy_x_4 of
-                                                                    happy_var_4 -> (let declspecs
-                                                                                          = liftCAttrs
-                                                                                              happy_var_1
-                                                                                      in
-                                                                                      do declr <- withAsmNameAttrs
-                                                                                                    happy_var_3
-                                                                                                    happy_var_2
-                                                                                         doDeclIdent
-                                                                                           declspecs
-                                                                                           declr
-                                                                                         withNodeInfo
-                                                                                           happy_var_1
-                                                                                           $
-                                                                                           CDecl
-                                                                                             declspecs
-                                                                                             [(Just
-                                                                                                 (reverseDeclr
-                                                                                                    declr),
-                                                                                               happy_var_4,
-                                                                                               Nothing)]))
-      (\ r -> happyReturn (happyIn34 r))
-happyReduce_95 = happyMonadReduce 6# 27# happyReduction_95
-happyReduction_95
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOut34 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_3 of
-                              happy_var_3 -> case happyOut72 happy_x_4 of
-                                                 happy_var_4 -> case happyOut35 happy_x_5 of
-                                                                    happy_var_5 -> case
-                                                                                     happyOut91
-                                                                                       happy_x_6
-                                                                                     of
-                                                                                       happy_var_6 -> (case
-                                                                                                         happy_var_1
-                                                                                                         of
-                                                                                                           CDecl
-                                                                                                             declspecs
-                                                                                                             dies
-                                                                                                             at -> do declr <- withAsmNameAttrs
-                                                                                                                                 (fst
-                                                                                                                                    happy_var_5,
-                                                                                                                                  snd
-                                                                                                                                    happy_var_5
-                                                                                                                                    ++
-                                                                                                                                    happy_var_3)
-                                                                                                                                 happy_var_4
-                                                                                                                      doDeclIdent
-                                                                                                                        declspecs
-                                                                                                                        declr
-                                                                                                                      withLength
-                                                                                                                        at
-                                                                                                                        $
-                                                                                                                        CDecl
-                                                                                                                          declspecs
-                                                                                                                          ((Just
-                                                                                                                              (reverseDeclr
-                                                                                                                                 declr),
-                                                                                                                            happy_var_6,
-                                                                                                                            Nothing)
-                                                                                                                             :
-                                                                                                                             dies)))
-      (\ r -> happyReturn (happyIn34 r))
-happyReduce_96 = happySpecReduce_2 28# happyReduction_96
-happyReduction_96 happy_x_2 happy_x_1
-  = case happyOut64 happy_x_1 of
-        happy_var_1 -> case happyOut126 happy_x_2 of
-                           happy_var_2 -> happyIn35 ((happy_var_1, happy_var_2))
-happyReduce_97 = happyMonadReduce 4# 29# happyReduction_97
-happyReduction_97
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut63 happy_x_2 of
-                              happy_var_2 -> case happyOut35 happy_x_3 of
-                                                 happy_var_3 -> case happyOut91 happy_x_4 of
-                                                                    happy_var_4 -> (do declr <- withAsmNameAttrs
-                                                                                                  happy_var_3
-                                                                                                  happy_var_2
-                                                                                       doDeclIdent
-                                                                                         happy_var_1
-                                                                                         declr
-                                                                                       withNodeInfo
-                                                                                         happy_var_1
-                                                                                         $
-                                                                                         CDecl
-                                                                                           happy_var_1
-                                                                                           [(Just
-                                                                                               (reverseDeclr
-                                                                                                  declr),
-                                                                                             happy_var_4,
-                                                                                             Nothing)]))
-      (\ r -> happyReturn (happyIn36 r))
-happyReduce_98 = happyMonadReduce 4# 29# happyReduction_98
-happyReduction_98
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut63 happy_x_2 of
-                              happy_var_2 -> case happyOut35 happy_x_3 of
-                                                 happy_var_3 -> case happyOut91 happy_x_4 of
-                                                                    happy_var_4 -> (do declr <- withAsmNameAttrs
-                                                                                                  happy_var_3
-                                                                                                  happy_var_2
-                                                                                       doDeclIdent
-                                                                                         happy_var_1
-                                                                                         declr
-                                                                                       withNodeInfo
-                                                                                         happy_var_1
-                                                                                         $
-                                                                                         CDecl
-                                                                                           happy_var_1
-                                                                                           [(Just
-                                                                                               (reverseDeclr
-                                                                                                  declr),
-                                                                                             happy_var_4,
-                                                                                             Nothing)]))
-      (\ r -> happyReturn (happyIn36 r))
-happyReduce_99 = happyMonadReduce 6# 29# happyReduction_99
-happyReduction_99
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOut36 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_3 of
-                              happy_var_3 -> case happyOut63 happy_x_4 of
-                                                 happy_var_4 -> case happyOut35 happy_x_5 of
-                                                                    happy_var_5 -> case
-                                                                                     happyOut91
-                                                                                       happy_x_6
-                                                                                     of
-                                                                                       happy_var_6 -> (case
-                                                                                                         happy_var_1
-                                                                                                         of
-                                                                                                           CDecl
-                                                                                                             declspecs
-                                                                                                             dies
-                                                                                                             at -> do declr <- withAsmNameAttrs
-                                                                                                                                 (fst
-                                                                                                                                    happy_var_5,
-                                                                                                                                  snd
-                                                                                                                                    happy_var_5
-                                                                                                                                    ++
-                                                                                                                                    happy_var_3)
-                                                                                                                                 happy_var_4
-                                                                                                                      doDeclIdent
-                                                                                                                        declspecs
-                                                                                                                        declr
-                                                                                                                      return
-                                                                                                                        (CDecl
-                                                                                                                           declspecs
-                                                                                                                           ((Just
-                                                                                                                               (reverseDeclr
-                                                                                                                                  declr),
-                                                                                                                             happy_var_6,
-                                                                                                                             Nothing)
-                                                                                                                              :
-                                                                                                                              dies)
-                                                                                                                           at)))
-      (\ r -> happyReturn (happyIn36 r))
-happyReduce_100 = happySpecReduce_1 30# happyReduction_100
-happyReduction_100 happy_x_1
-  = case happyOut43 happy_x_1 of
-        happy_var_1 -> happyIn37 (reverse happy_var_1)
-happyReduce_101 = happySpecReduce_1 30# happyReduction_101
-happyReduction_101 happy_x_1
-  = case happyOut45 happy_x_1 of
-        happy_var_1 -> happyIn37 (reverse happy_var_1)
-happyReduce_102 = happySpecReduce_1 30# happyReduction_102
-happyReduction_102 happy_x_1
-  = case happyOut47 happy_x_1 of
-        happy_var_1 -> happyIn37 (reverse happy_var_1)
-happyReduce_103 = happySpecReduce_1 31# happyReduction_103
-happyReduction_103 happy_x_1
-  = case happyOut40 happy_x_1 of
-        happy_var_1 -> happyIn38 (singleton (CStorageSpec happy_var_1))
-happyReduce_104 = happySpecReduce_2 31# happyReduction_104
-happyReduction_104 happy_x_2 happy_x_1
-  = case happyOut127 happy_x_1 of
-        happy_var_1 -> case happyOut40 happy_x_2 of
-                           happy_var_2 -> happyIn38
-                                            (reverseList (liftCAttrs happy_var_1) `snoc`
-                                               (CStorageSpec happy_var_2))
-happyReduce_105 = happySpecReduce_2 31# happyReduction_105
-happyReduction_105 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut40 happy_x_2 of
-                           happy_var_2 -> happyIn38
-                                            (rmap CTypeQual happy_var_1 `snoc`
-                                               CStorageSpec happy_var_2)
-happyReduce_106 = happySpecReduce_3 31# happyReduction_106
-happyReduction_106 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut127 happy_x_2 of
-                           happy_var_2 -> case happyOut40 happy_x_3 of
-                                              happy_var_3 -> happyIn38
-                                                               ((rmap CTypeQual happy_var_1
-                                                                   `rappend` liftCAttrs happy_var_2)
-                                                                  `snoc` CStorageSpec happy_var_3)
-happyReduce_107 = happySpecReduce_2 31# happyReduction_107
-happyReduction_107 happy_x_2 happy_x_1
-  = case happyOut38 happy_x_1 of
-        happy_var_1 -> case happyOut39 happy_x_2 of
-                           happy_var_2 -> happyIn38 (happy_var_1 `snoc` happy_var_2)
-happyReduce_108 = happySpecReduce_2 31# happyReduction_108
-happyReduction_108 happy_x_2 happy_x_1
-  = case happyOut38 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn38 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_109 = happySpecReduce_1 32# happyReduction_109
-happyReduction_109 happy_x_1
-  = case happyOut40 happy_x_1 of
-        happy_var_1 -> happyIn39 (CStorageSpec happy_var_1)
-happyReduce_110 = happySpecReduce_1 32# happyReduction_110
-happyReduction_110 happy_x_1
-  = case happyOut61 happy_x_1 of
-        happy_var_1 -> happyIn39 (CTypeQual happy_var_1)
-happyReduce_111 = happyMonadReduce 1# 33# happyReduction_111
-happyReduction_111 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CTypedef))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_112 = happyMonadReduce 1# 33# happyReduction_112
-happyReduction_112 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CExtern))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_113 = happyMonadReduce 1# 33# happyReduction_113
-happyReduction_113 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CStatic))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_114 = happyMonadReduce 1# 33# happyReduction_114
-happyReduction_114 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CAuto))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_115 = happyMonadReduce 1# 33# happyReduction_115
-happyReduction_115 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CRegister))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_116 = happyMonadReduce 1# 33# happyReduction_116
-happyReduction_116 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CThread))
-      (\ r -> happyReturn (happyIn40 r))
-happyReduce_117 = happySpecReduce_1 34# happyReduction_117
-happyReduction_117 happy_x_1
-  = case happyOut44 happy_x_1 of
-        happy_var_1 -> happyIn41 (reverse happy_var_1)
-happyReduce_118 = happySpecReduce_1 34# happyReduction_118
-happyReduction_118 happy_x_1
-  = case happyOut46 happy_x_1 of
-        happy_var_1 -> happyIn41 (reverse happy_var_1)
-happyReduce_119 = happySpecReduce_1 34# happyReduction_119
-happyReduction_119 happy_x_1
-  = case happyOut48 happy_x_1 of
-        happy_var_1 -> happyIn41 (reverse happy_var_1)
-happyReduce_120 = happyMonadReduce 1# 35# happyReduction_120
-happyReduction_120 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CVoidType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_121 = happyMonadReduce 1# 35# happyReduction_121
-happyReduction_121 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CCharType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_122 = happyMonadReduce 1# 35# happyReduction_122
-happyReduction_122 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CShortType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_123 = happyMonadReduce 1# 35# happyReduction_123
-happyReduction_123 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CIntType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_124 = happyMonadReduce 1# 35# happyReduction_124
-happyReduction_124 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CLongType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_125 = happyMonadReduce 1# 35# happyReduction_125
-happyReduction_125 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CFloatType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_126 = happyMonadReduce 1# 35# happyReduction_126
-happyReduction_126 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CDoubleType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_127 = happyMonadReduce 1# 35# happyReduction_127
-happyReduction_127 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CSignedType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_128 = happyMonadReduce 1# 35# happyReduction_128
-happyReduction_128 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CUnsigType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_129 = happyMonadReduce 1# 35# happyReduction_129
-happyReduction_129 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CBoolType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_130 = happyMonadReduce 1# 35# happyReduction_130
-happyReduction_130 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CComplexType))
-      (\ r -> happyReturn (happyIn42 r))
-happyReduce_131 = happySpecReduce_2 36# happyReduction_131
-happyReduction_131 happy_x_2 happy_x_1
-  = case happyOut38 happy_x_1 of
-        happy_var_1 -> case happyOut42 happy_x_2 of
-                           happy_var_2 -> happyIn43 (happy_var_1 `snoc` CTypeSpec happy_var_2)
-happyReduce_132 = happySpecReduce_2 36# happyReduction_132
-happyReduction_132 happy_x_2 happy_x_1
-  = case happyOut44 happy_x_1 of
-        happy_var_1 -> case happyOut40 happy_x_2 of
-                           happy_var_2 -> happyIn43
-                                            (happy_var_1 `snoc` CStorageSpec happy_var_2)
-happyReduce_133 = happySpecReduce_2 36# happyReduction_133
-happyReduction_133 happy_x_2 happy_x_1
-  = case happyOut43 happy_x_1 of
-        happy_var_1 -> case happyOut39 happy_x_2 of
-                           happy_var_2 -> happyIn43 (happy_var_1 `snoc` happy_var_2)
-happyReduce_134 = happySpecReduce_2 36# happyReduction_134
-happyReduction_134 happy_x_2 happy_x_1
-  = case happyOut43 happy_x_1 of
-        happy_var_1 -> case happyOut42 happy_x_2 of
-                           happy_var_2 -> happyIn43 (happy_var_1 `snoc` CTypeSpec happy_var_2)
-happyReduce_135 = happySpecReduce_2 36# happyReduction_135
-happyReduction_135 happy_x_2 happy_x_1
-  = case happyOut43 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn43 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_136 = happySpecReduce_1 37# happyReduction_136
-happyReduction_136 happy_x_1
-  = case happyOut42 happy_x_1 of
-        happy_var_1 -> happyIn44 (singleton (CTypeSpec happy_var_1))
-happyReduce_137 = happySpecReduce_2 37# happyReduction_137
-happyReduction_137 happy_x_2 happy_x_1
-  = case happyOut127 happy_x_1 of
-        happy_var_1 -> case happyOut42 happy_x_2 of
-                           happy_var_2 -> happyIn44
-                                            ((reverseList $ liftCAttrs happy_var_1) `snoc`
-                                               (CTypeSpec happy_var_2))
-happyReduce_138 = happySpecReduce_2 37# happyReduction_138
-happyReduction_138 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut42 happy_x_2 of
-                           happy_var_2 -> happyIn44
-                                            (rmap CTypeQual happy_var_1 `snoc`
-                                               CTypeSpec happy_var_2)
-happyReduce_139 = happySpecReduce_3 37# happyReduction_139
-happyReduction_139 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut127 happy_x_2 of
-                           happy_var_2 -> case happyOut42 happy_x_3 of
-                                              happy_var_3 -> happyIn44
-                                                               (rmap CTypeQual happy_var_1 `rappend`
-                                                                  (liftCAttrs happy_var_2)
-                                                                  `snoc` CTypeSpec happy_var_3)
-happyReduce_140 = happySpecReduce_2 37# happyReduction_140
-happyReduction_140 happy_x_2 happy_x_1
-  = case happyOut44 happy_x_1 of
-        happy_var_1 -> case happyOut61 happy_x_2 of
-                           happy_var_2 -> happyIn44 (happy_var_1 `snoc` CTypeQual happy_var_2)
-happyReduce_141 = happySpecReduce_2 37# happyReduction_141
-happyReduction_141 happy_x_2 happy_x_1
-  = case happyOut44 happy_x_1 of
-        happy_var_1 -> case happyOut42 happy_x_2 of
-                           happy_var_2 -> happyIn44 (happy_var_1 `snoc` CTypeSpec happy_var_2)
-happyReduce_142 = happySpecReduce_2 37# happyReduction_142
-happyReduction_142 happy_x_2 happy_x_1
-  = case happyOut44 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn44 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_143 = happySpecReduce_2 38# happyReduction_143
-happyReduction_143 happy_x_2 happy_x_1
-  = case happyOut38 happy_x_1 of
-        happy_var_1 -> case happyOut49 happy_x_2 of
-                           happy_var_2 -> happyIn45 (happy_var_1 `snoc` CTypeSpec happy_var_2)
-happyReduce_144 = happySpecReduce_2 38# happyReduction_144
-happyReduction_144 happy_x_2 happy_x_1
-  = case happyOut46 happy_x_1 of
-        happy_var_1 -> case happyOut40 happy_x_2 of
-                           happy_var_2 -> happyIn45
-                                            (happy_var_1 `snoc` CStorageSpec happy_var_2)
-happyReduce_145 = happySpecReduce_2 38# happyReduction_145
-happyReduction_145 happy_x_2 happy_x_1
-  = case happyOut45 happy_x_1 of
-        happy_var_1 -> case happyOut39 happy_x_2 of
-                           happy_var_2 -> happyIn45 (happy_var_1 `snoc` happy_var_2)
-happyReduce_146 = happySpecReduce_2 38# happyReduction_146
-happyReduction_146 happy_x_2 happy_x_1
-  = case happyOut45 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn45 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_147 = happySpecReduce_1 39# happyReduction_147
-happyReduction_147 happy_x_1
-  = case happyOut49 happy_x_1 of
-        happy_var_1 -> happyIn46 (singleton (CTypeSpec happy_var_1))
-happyReduce_148 = happySpecReduce_2 39# happyReduction_148
-happyReduction_148 happy_x_2 happy_x_1
-  = case happyOut127 happy_x_1 of
-        happy_var_1 -> case happyOut49 happy_x_2 of
-                           happy_var_2 -> happyIn46
-                                            ((reverseList $ liftCAttrs happy_var_1) `snoc`
-                                               (CTypeSpec happy_var_2))
-happyReduce_149 = happySpecReduce_2 39# happyReduction_149
-happyReduction_149 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut49 happy_x_2 of
-                           happy_var_2 -> happyIn46
-                                            (rmap CTypeQual happy_var_1 `snoc`
-                                               CTypeSpec happy_var_2)
-happyReduce_150 = happySpecReduce_3 39# happyReduction_150
-happyReduction_150 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut127 happy_x_2 of
-                           happy_var_2 -> case happyOut49 happy_x_3 of
-                                              happy_var_3 -> happyIn46
-                                                               (rmap CTypeQual happy_var_1 `rappend`
-                                                                  (liftCAttrs happy_var_2)
-                                                                  `snoc` CTypeSpec happy_var_3)
-happyReduce_151 = happySpecReduce_2 39# happyReduction_151
-happyReduction_151 happy_x_2 happy_x_1
-  = case happyOut46 happy_x_1 of
-        happy_var_1 -> case happyOut61 happy_x_2 of
-                           happy_var_2 -> happyIn46 (happy_var_1 `snoc` CTypeQual happy_var_2)
-happyReduce_152 = happySpecReduce_2 39# happyReduction_152
-happyReduction_152 happy_x_2 happy_x_1
-  = case happyOut46 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn46 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_153 = happySpecReduce_2 40# happyReduction_153
-happyReduction_153 happy_x_2 happy_x_1
-  = case happyOut48 happy_x_1 of
-        happy_var_1 -> case happyOut40 happy_x_2 of
-                           happy_var_2 -> happyIn47
-                                            (happy_var_1 `snoc` CStorageSpec happy_var_2)
-happyReduce_154 = happyMonadReduce 2# 40# happyReduction_154
-happyReduction_154
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              (CTokTyIdent _ happy_var_2) -> (withNodeInfo happy_var_2 $
-                                                                \ at ->
-                                                                  happy_var_1 `snoc`
-                                                                    CTypeSpec
-                                                                      (CTypeDef happy_var_2 at)))
-      (\ r -> happyReturn (happyIn47 r))
-happyReduce_155 = happyMonadReduce 5# 40# happyReduction_155
-happyReduction_155
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              happy_var_2 -> case happyOut117 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_2 $
-                                                                   \ at ->
-                                                                     happy_var_1 `snoc`
-                                                                       CTypeSpec
-                                                                         (CTypeOfExpr happy_var_4
-                                                                            at)))
-      (\ r -> happyReturn (happyIn47 r))
-happyReduce_156 = happyMonadReduce 5# 40# happyReduction_156
-happyReduction_156
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              happy_var_2 -> case happyOut83 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_2 $
-                                                                   \ at ->
-                                                                     happy_var_1 `snoc`
-                                                                       CTypeSpec
-                                                                         (CTypeOfType happy_var_4
-                                                                            at)))
-      (\ r -> happyReturn (happyIn47 r))
-happyReduce_157 = happySpecReduce_2 40# happyReduction_157
-happyReduction_157 happy_x_2 happy_x_1
-  = case happyOut47 happy_x_1 of
-        happy_var_1 -> case happyOut39 happy_x_2 of
-                           happy_var_2 -> happyIn47 (happy_var_1 `snoc` happy_var_2)
-happyReduce_158 = happySpecReduce_2 40# happyReduction_158
-happyReduction_158 happy_x_2 happy_x_1
-  = case happyOut47 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn47 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_159 = happyMonadReduce 1# 41# happyReduction_159
-happyReduction_159 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokTyIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                             \ at ->
-                                               singleton (CTypeSpec (CTypeDef happy_var_1 at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_160 = happyMonadReduce 4# 41# happyReduction_160
-happyReduction_160
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                \ at ->
-                                                  singleton
-                                                    (CTypeSpec (CTypeOfExpr happy_var_3 at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_161 = happyMonadReduce 4# 41# happyReduction_161
-happyReduction_161
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                \ at ->
-                                                  singleton
-                                                    (CTypeSpec (CTypeOfType happy_var_3 at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_162 = happyMonadReduce 2# 41# happyReduction_162
-happyReduction_162
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              (CTokTyIdent _ happy_var_2) -> (withNodeInfo happy_var_2 $
-                                                                \ at ->
-                                                                  rmap CTypeQual happy_var_1 `snoc`
-                                                                    CTypeSpec
-                                                                      (CTypeDef happy_var_2 at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_163 = happyMonadReduce 5# 41# happyReduction_163
-happyReduction_163
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              happy_var_2 -> case happyOut117 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_2 $
-                                                                   \ at ->
-                                                                     rmap CTypeQual happy_var_1
-                                                                       `snoc`
-                                                                       CTypeSpec
-                                                                         (CTypeOfExpr happy_var_4
-                                                                            at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_164 = happyMonadReduce 5# 41# happyReduction_164
-happyReduction_164
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              happy_var_2 -> case happyOut83 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_2 $
-                                                                   \ at ->
-                                                                     rmap CTypeQual happy_var_1
-                                                                       `snoc`
-                                                                       CTypeSpec
-                                                                         (CTypeOfType happy_var_4
-                                                                            at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_165 = happyMonadReduce 2# 41# happyReduction_165
-happyReduction_165
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              (CTokTyIdent _ happy_var_2) -> (withNodeInfo happy_var_2 $
-                                                                \ at ->
-                                                                  reverseList
-                                                                    (liftCAttrs happy_var_1)
-                                                                    `snoc`
-                                                                    (CTypeSpec
-                                                                       (CTypeDef happy_var_2 at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_166 = happyMonadReduce 5# 41# happyReduction_166
-happyReduction_166
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_4 of
-                              happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                \ at ->
-                                                  reverseList (liftCAttrs happy_var_1) `snoc`
-                                                    (CTypeSpec (CTypeOfExpr happy_var_4 at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_167 = happyMonadReduce 5# 41# happyReduction_167
-happyReduction_167
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOutTok happy_x_2 of
-                              happy_var_2 -> case happyOut83 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_2 $
-                                                                   \ at ->
-                                                                     reverseList
-                                                                       (liftCAttrs happy_var_1)
-                                                                       `snoc`
-                                                                       (CTypeSpec
-                                                                          (CTypeOfType happy_var_4
-                                                                             at))))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_168 = happyMonadReduce 3# 41# happyReduction_168
-happyReduction_168
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOutTok happy_x_3 of
-                                                 (CTokTyIdent _ happy_var_3) -> (withNodeInfo
-                                                                                   happy_var_3
-                                                                                   $
-                                                                                   \ at ->
-                                                                                     rmap CTypeQual
-                                                                                       happy_var_1
-                                                                                       `rappend`
-                                                                                       (liftCAttrs
-                                                                                          happy_var_2)
-                                                                                       `snoc`
-                                                                                       CTypeSpec
-                                                                                         (CTypeDef
-                                                                                            happy_var_3
-                                                                                            at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_169 = happyMonadReduce 6# 41# happyReduction_169
-happyReduction_169
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOutTok happy_x_3 of
-                                                 happy_var_3 -> case happyOut117 happy_x_5 of
-                                                                    happy_var_5 -> (withNodeInfo
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      \ at ->
-                                                                                        rmap
-                                                                                          CTypeQual
-                                                                                          happy_var_1
-                                                                                          `rappend`
-                                                                                          (liftCAttrs
-                                                                                             happy_var_2)
-                                                                                          `snoc`
-                                                                                          CTypeSpec
-                                                                                            (CTypeOfExpr
-                                                                                               happy_var_5
-                                                                                               at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_170 = happyMonadReduce 6# 41# happyReduction_170
-happyReduction_170
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOutTok happy_x_3 of
-                                                 happy_var_3 -> case happyOut83 happy_x_5 of
-                                                                    happy_var_5 -> (withNodeInfo
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      \ at ->
-                                                                                        rmap
-                                                                                          CTypeQual
-                                                                                          happy_var_1
-                                                                                          `rappend`
-                                                                                          (liftCAttrs
-                                                                                             happy_var_2)
-                                                                                          `snoc`
-                                                                                          CTypeSpec
-                                                                                            (CTypeOfType
-                                                                                               happy_var_5
-                                                                                               at)))
-      (\ r -> happyReturn (happyIn48 r))
-happyReduce_171 = happySpecReduce_2 41# happyReduction_171
-happyReduction_171 happy_x_2 happy_x_1
-  = case happyOut48 happy_x_1 of
-        happy_var_1 -> case happyOut61 happy_x_2 of
-                           happy_var_2 -> happyIn48 (happy_var_1 `snoc` CTypeQual happy_var_2)
-happyReduce_172 = happySpecReduce_2 41# happyReduction_172
-happyReduction_172 happy_x_2 happy_x_1
-  = case happyOut48 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn48 (addTrailingAttrs happy_var_1 happy_var_2)
-happyReduce_173 = happyMonadReduce 1# 42# happyReduction_173
-happyReduction_173 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut50 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CSUType happy_var_1))
-      (\ r -> happyReturn (happyIn49 r))
-happyReduce_174 = happyMonadReduce 1# 42# happyReduction_174
-happyReduction_174 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut58 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CEnumType happy_var_1))
-      (\ r -> happyReturn (happyIn49 r))
-happyReduce_175 = happyMonadReduce 6# 43# happyReduction_175
-happyReduction_175
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOut51 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut125 happy_x_3 of
-                                                 happy_var_3 -> case happyOut52 happy_x_5 of
-                                                                    happy_var_5 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CStruct
-                                                                                        (unL
-                                                                                           happy_var_1)
-                                                                                        (Just
-                                                                                           happy_var_3)
-                                                                                        (Just $
-                                                                                           reverse
-                                                                                             happy_var_5)
-                                                                                        happy_var_2))
-      (\ r -> happyReturn (happyIn50 r))
-happyReduce_176 = happyMonadReduce 5# 43# happyReduction_176
-happyReduction_176
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut51 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut52 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CStruct (unL happy_var_1) Nothing
-                                                                     (Just $ reverse happy_var_4)
-                                                                     happy_var_2))
-      (\ r -> happyReturn (happyIn50 r))
-happyReduce_177 = happyMonadReduce 3# 43# happyReduction_177
-happyReduction_177
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut51 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut125 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CStruct (unL happy_var_1)
-                                                                     (Just happy_var_3)
-                                                                     Nothing
-                                                                     happy_var_2))
-      (\ r -> happyReturn (happyIn50 r))
-happyReduce_178 = happySpecReduce_1 44# happyReduction_178
-happyReduction_178 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn51 (L CStructTag (posOf happy_var_1))
-happyReduce_179 = happySpecReduce_1 44# happyReduction_179
-happyReduction_179 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn51 (L CUnionTag (posOf happy_var_1))
-happyReduce_180 = happySpecReduce_0 45# happyReduction_180
-happyReduction_180 = happyIn52 (empty)
-happyReduce_181 = happySpecReduce_2 45# happyReduction_181
-happyReduction_181 happy_x_2 happy_x_1
-  = case happyOut52 happy_x_1 of
-        happy_var_1 -> happyIn52 (happy_var_1)
-happyReduce_182 = happySpecReduce_2 45# happyReduction_182
-happyReduction_182 happy_x_2 happy_x_1
-  = case happyOut52 happy_x_1 of
-        happy_var_1 -> case happyOut53 happy_x_2 of
-                           happy_var_2 -> happyIn52 (happy_var_1 `snoc` happy_var_2)
-happyReduce_183 = happySpecReduce_2 46# happyReduction_183
-happyReduction_183 happy_x_2 happy_x_1
-  = case happyOut55 happy_x_1 of
-        happy_var_1 -> happyIn53
-                         (case happy_var_1 of
-                              CDecl declspecs dies at -> CDecl declspecs (List.reverse dies) at)
-happyReduce_184 = happySpecReduce_2 46# happyReduction_184
-happyReduction_184 happy_x_2 happy_x_1
-  = case happyOut54 happy_x_1 of
-        happy_var_1 -> happyIn53
-                         (case happy_var_1 of
-                              CDecl declspecs dies at -> CDecl declspecs (List.reverse dies) at)
-happyReduce_185 = happySpecReduce_2 46# happyReduction_185
-happyReduction_185 happy_x_2 happy_x_1
-  = case happyOut53 happy_x_2 of
-        happy_var_2 -> happyIn53 (happy_var_2)
-happyReduce_186 = happyMonadReduce 3# 47# happyReduction_186
-happyReduction_186
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut57 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   case happy_var_3 of
-                                                                       (d, s) -> CDecl
-                                                                                   (liftTypeQuals
-                                                                                      happy_var_1
-                                                                                      ++
-                                                                                      liftCAttrs
-                                                                                        happy_var_2)
-                                                                                   [(d, Nothing,
-                                                                                     s)]))
-      (\ r -> happyReturn (happyIn54 r))
-happyReduce_187 = happyMonadReduce 2# 47# happyReduction_187
-happyReduction_187
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut127 happy_x_1 of
-           happy_var_1 -> case happyOut57 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                case happy_var_2 of
-                                                    (d, s) -> CDecl (liftCAttrs happy_var_1)
-                                                                [(d, Nothing, s)]))
-      (\ r -> happyReturn (happyIn54 r))
-happyReduce_188 = happyReduce 4# 47# happyReduction_188
-happyReduction_188
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut54 happy_x_1 of
-        happy_var_1 -> case happyOut126 happy_x_3 of
-                           happy_var_3 -> case happyOut57 happy_x_4 of
-                                              happy_var_4 -> happyIn54
-                                                               (case happy_var_1 of
-                                                                    CDecl declspecs dies at -> case
-                                                                                                 happy_var_4
-                                                                                                 of
-                                                                                                   (Just
-                                                                                                      d,
-                                                                                                    s) -> CDecl
-                                                                                                            declspecs
-                                                                                                            ((Just
-                                                                                                                $
-                                                                                                                appendObjAttrs
-                                                                                                                  happy_var_3
-                                                                                                                  d,
-                                                                                                              Nothing,
-                                                                                                              s)
-                                                                                                               :
-                                                                                                               dies)
-                                                                                                            at
-                                                                                                   (Nothing,
-                                                                                                    s) -> CDecl
-                                                                                                            declspecs
-                                                                                                            ((Nothing,
-                                                                                                              Nothing,
-                                                                                                              s)
-                                                                                                               :
-                                                                                                               dies)
-                                                                                                            at)
-                                                               `HappyStk` happyRest
-happyReduce_189 = happyMonadReduce 3# 48# happyReduction_189
-happyReduction_189
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut56 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   case happy_var_2 of
-                                                                       (Just d, s) -> CDecl
-                                                                                        happy_var_1
-                                                                                        [(Just $!
-                                                                                            appendObjAttrs
-                                                                                              happy_var_3
-                                                                                              d,
-                                                                                          Nothing,
-                                                                                          s)]
-                                                                       (Nothing, s) -> CDecl
-                                                                                         happy_var_1
-                                                                                         [(Nothing,
-                                                                                           Nothing,
-                                                                                           s)]))
-      (\ r -> happyReturn (happyIn55 r))
-happyReduce_190 = happyReduce 5# 48# happyReduction_190
-happyReduction_190
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  = case happyOut55 happy_x_1 of
-        happy_var_1 -> case happyOut126 happy_x_3 of
-                           happy_var_3 -> case happyOut56 happy_x_4 of
-                                              happy_var_4 -> case happyOut126 happy_x_5 of
-                                                                 happy_var_5 -> happyIn55
-                                                                                  (case happy_var_1
-                                                                                     of
-                                                                                       CDecl
-                                                                                         declspecs
-                                                                                         dies
-                                                                                         attr -> case
-                                                                                                   happy_var_4
-                                                                                                   of
-                                                                                                     (Just
-                                                                                                        d,
-                                                                                                      s) -> CDecl
-                                                                                                              declspecs
-                                                                                                              ((Just
-                                                                                                                  $
-                                                                                                                  appendObjAttrs
-                                                                                                                    (happy_var_3
-                                                                                                                       ++
-                                                                                                                       happy_var_5)
-                                                                                                                    d,
-                                                                                                                Nothing,
-                                                                                                                s)
-                                                                                                                 :
-                                                                                                                 dies)
-                                                                                                              attr
-                                                                                                     (Nothing,
-                                                                                                      s) -> CDecl
-                                                                                                              declspecs
-                                                                                                              ((Nothing,
-                                                                                                                Nothing,
-                                                                                                                s)
-                                                                                                                 :
-                                                                                                                 dies)
-                                                                                                              attr)
-                                                                                  `HappyStk`
-                                                                                  happyRest
-happyReduce_191 = happyMonadReduce 1# 48# happyReduction_191
-happyReduction_191 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CDecl happy_var_1 []))
-      (\ r -> happyReturn (happyIn55 r))
-happyReduce_192 = happySpecReduce_1 49# happyReduction_192
-happyReduction_192 happy_x_1
-  = case happyOut63 happy_x_1 of
-        happy_var_1 -> happyIn56
-                         ((Just (reverseDeclr happy_var_1), Nothing))
-happyReduce_193 = happySpecReduce_2 49# happyReduction_193
-happyReduction_193 happy_x_2 happy_x_1
-  = case happyOut121 happy_x_2 of
-        happy_var_2 -> happyIn56 ((Nothing, Just happy_var_2))
-happyReduce_194 = happySpecReduce_3 49# happyReduction_194
-happyReduction_194 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut63 happy_x_1 of
-        happy_var_1 -> case happyOut121 happy_x_3 of
-                           happy_var_3 -> happyIn56
-                                            ((Just (reverseDeclr happy_var_1), Just happy_var_3))
-happyReduce_195 = happySpecReduce_1 50# happyReduction_195
-happyReduction_195 happy_x_1
-  = case happyOut72 happy_x_1 of
-        happy_var_1 -> happyIn57
-                         ((Just (reverseDeclr happy_var_1), Nothing))
-happyReduce_196 = happySpecReduce_2 50# happyReduction_196
-happyReduction_196 happy_x_2 happy_x_1
-  = case happyOut121 happy_x_2 of
-        happy_var_2 -> happyIn57 ((Nothing, Just happy_var_2))
-happyReduce_197 = happySpecReduce_3 50# happyReduction_197
-happyReduction_197 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut72 happy_x_1 of
-        happy_var_1 -> case happyOut121 happy_x_3 of
-                           happy_var_3 -> happyIn57
-                                            ((Just (reverseDeclr happy_var_1), Just happy_var_3))
-happyReduce_198 = happySpecReduce_2 50# happyReduction_198
-happyReduction_198 happy_x_2 happy_x_1
-  = case happyOut57 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn57
-                                            (case happy_var_1 of
-                                                 (Nothing, expr) -> (Nothing, expr)
-                                                 (Just (CDeclr name derived asmname attrs node),
-                                                  bsz) -> (Just
-                                                             (CDeclr name derived asmname
-                                                                (attrs ++ happy_var_2)
-                                                                node),
-                                                           bsz))
-happyReduce_199 = happyMonadReduce 5# 51# happyReduction_199
-happyReduction_199
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut59 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CEnum Nothing
-                                                                     (Just $ reverse happy_var_4)
-                                                                     happy_var_2))
-      (\ r -> happyReturn (happyIn58 r))
-happyReduce_200 = happyMonadReduce 6# 51# happyReduction_200
-happyReduction_200
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut59 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CEnum Nothing
-                                                                     (Just $ reverse happy_var_4)
-                                                                     happy_var_2))
-      (\ r -> happyReturn (happyIn58 r))
-happyReduce_201 = happyMonadReduce 6# 51# happyReduction_201
-happyReduction_201
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut125 happy_x_3 of
-                                                 happy_var_3 -> case happyOut59 happy_x_5 of
-                                                                    happy_var_5 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CEnum
-                                                                                        (Just
-                                                                                           happy_var_3)
-                                                                                        (Just $
-                                                                                           reverse
-                                                                                             happy_var_5)
-                                                                                        happy_var_2))
-      (\ r -> happyReturn (happyIn58 r))
-happyReduce_202 = happyMonadReduce 7# 51# happyReduction_202
-happyReduction_202
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut125 happy_x_3 of
-                                                 happy_var_3 -> case happyOut59 happy_x_5 of
-                                                                    happy_var_5 -> (withNodeInfo
-                                                                                      happy_var_1
-                                                                                      $
-                                                                                      CEnum
-                                                                                        (Just
-                                                                                           happy_var_3)
-                                                                                        (Just $
-                                                                                           reverse
-                                                                                             happy_var_5)
-                                                                                        happy_var_2))
-      (\ r -> happyReturn (happyIn58 r))
-happyReduce_203 = happyMonadReduce 3# 51# happyReduction_203
-happyReduction_203
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_2 of
-                              happy_var_2 -> case happyOut125 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CEnum (Just happy_var_3) Nothing
-                                                                     happy_var_2))
-      (\ r -> happyReturn (happyIn58 r))
-happyReduce_204 = happySpecReduce_1 52# happyReduction_204
-happyReduction_204 happy_x_1
-  = case happyOut60 happy_x_1 of
-        happy_var_1 -> happyIn59 (singleton happy_var_1)
-happyReduce_205 = happySpecReduce_3 52# happyReduction_205
-happyReduction_205 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut59 happy_x_1 of
-        happy_var_1 -> case happyOut60 happy_x_3 of
-                           happy_var_3 -> happyIn59 (happy_var_1 `snoc` happy_var_3)
-happyReduce_206 = happySpecReduce_1 53# happyReduction_206
-happyReduction_206 happy_x_1
-  = case happyOut125 happy_x_1 of
-        happy_var_1 -> happyIn60 ((happy_var_1, Nothing))
-happyReduce_207 = happySpecReduce_3 53# happyReduction_207
-happyReduction_207 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut125 happy_x_1 of
-        happy_var_1 -> case happyOut121 happy_x_3 of
-                           happy_var_3 -> happyIn60 ((happy_var_1, Just happy_var_3))
-happyReduce_208 = happyMonadReduce 1# 54# happyReduction_208
-happyReduction_208 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CConstQual))
-      (\ r -> happyReturn (happyIn61 r))
-happyReduce_209 = happyMonadReduce 1# 54# happyReduction_209
-happyReduction_209 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CVolatQual))
-      (\ r -> happyReturn (happyIn61 r))
-happyReduce_210 = happyMonadReduce 1# 54# happyReduction_210
-happyReduction_210 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CRestrQual))
-      (\ r -> happyReturn (happyIn61 r))
-happyReduce_211 = happyMonadReduce 1# 54# happyReduction_211
-happyReduction_211 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CInlineQual))
-      (\ r -> happyReturn (happyIn61 r))
-happyReduce_212 = happySpecReduce_2 55# happyReduction_212
-happyReduction_212 happy_x_2 happy_x_1
-  = case happyOut126 happy_x_1 of
-        happy_var_1 -> case happyOut61 happy_x_2 of
-                           happy_var_2 -> happyIn62
-                                            (reverseList (map CAttrQual happy_var_1) `snoc`
-                                               happy_var_2)
-happyReduce_213 = happySpecReduce_2 55# happyReduction_213
-happyReduction_213 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut61 happy_x_2 of
-                           happy_var_2 -> happyIn62 (happy_var_1 `snoc` happy_var_2)
-happyReduce_214 = happySpecReduce_3 55# happyReduction_214
-happyReduction_214 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut62 happy_x_1 of
-        happy_var_1 -> case happyOut127 happy_x_2 of
-                           happy_var_2 -> case happyOut61 happy_x_3 of
-                                              happy_var_3 -> happyIn62
-                                                               ((happy_var_1 `rappend`
-                                                                   map CAttrQual happy_var_2)
-                                                                  `snoc` happy_var_3)
-happyReduce_215 = happySpecReduce_1 56# happyReduction_215
-happyReduction_215 happy_x_1
-  = case happyOut72 happy_x_1 of
-        happy_var_1 -> happyIn63 (happy_var_1)
-happyReduce_216 = happySpecReduce_1 56# happyReduction_216
-happyReduction_216 happy_x_1
-  = case happyOut65 happy_x_1 of
-        happy_var_1 -> happyIn63 (happy_var_1)
-happyReduce_217 = happySpecReduce_0 57# happyReduction_217
-happyReduction_217 = happyIn64 (Nothing)
-happyReduce_218 = happyReduce 4# 57# happyReduction_218
-happyReduction_218
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut123 happy_x_3 of
-        happy_var_3 -> happyIn64 (Just happy_var_3) `HappyStk` happyRest
-happyReduce_219 = happySpecReduce_1 58# happyReduction_219
-happyReduction_219 happy_x_1
-  = case happyOut69 happy_x_1 of
-        happy_var_1 -> happyIn65 (happy_var_1)
-happyReduce_220 = happySpecReduce_1 58# happyReduction_220
-happyReduction_220 happy_x_1
-  = case happyOut66 happy_x_1 of
-        happy_var_1 -> happyIn65 (happy_var_1)
-happyReduce_221 = happyMonadReduce 1# 59# happyReduction_221
-happyReduction_221 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokTyIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                             mkVarDeclr happy_var_1))
-      (\ r -> happyReturn (happyIn66 r))
-happyReduce_222 = happyMonadReduce 2# 59# happyReduction_222
-happyReduction_222
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokTyIdent _ happy_var_1) -> case happyOut85 happy_x_2 of
-                                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                                \ at ->
-                                                                  happy_var_2
-                                                                    (mkVarDeclr happy_var_1 at)))
-      (\ r -> happyReturn (happyIn66 r))
-happyReduce_223 = happySpecReduce_1 59# happyReduction_223
-happyReduction_223 happy_x_1
-  = case happyOut67 happy_x_1 of
-        happy_var_1 -> happyIn66 (happy_var_1)
-happyReduce_224 = happySpecReduce_1 60# happyReduction_224
-happyReduction_224 happy_x_1
-  = case happyOut68 happy_x_1 of
-        happy_var_1 -> happyIn67 (happy_var_1)
-happyReduce_225 = happyMonadReduce 2# 60# happyReduction_225
-happyReduction_225
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut66 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_2 []))
-      (\ r -> happyReturn (happyIn67 r))
-happyReduce_226 = happyMonadReduce 3# 60# happyReduction_226
-happyReduction_226
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut66 happy_x_3 of
-                                                 happy_var_3 -> (withAttribute happy_var_1
-                                                                   happy_var_2
-                                                                   $ ptrDeclr happy_var_3 []))
-      (\ r -> happyReturn (happyIn67 r))
-happyReduce_227 = happyMonadReduce 3# 60# happyReduction_227
-happyReduction_227
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut66 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_3
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn67 r))
-happyReduce_228 = happyMonadReduce 4# 60# happyReduction_228
-happyReduction_228
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut66 happy_x_4 of
-                                                                    happy_var_4 -> (withAttribute
-                                                                                      happy_var_1
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      ptrDeclr
-                                                                                        happy_var_4
-                                                                                        (reverse
-                                                                                           happy_var_2)))
-      (\ r -> happyReturn (happyIn67 r))
-happyReduce_229 = happySpecReduce_3 61# happyReduction_229
-happyReduction_229 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut67 happy_x_2 of
-        happy_var_2 -> happyIn68 (happy_var_2)
-happyReduce_230 = happyReduce 4# 61# happyReduction_230
-happyReduction_230
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut67 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_4 of
-                           happy_var_4 -> happyIn68 (happy_var_4 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_231 = happyReduce 4# 61# happyReduction_231
-happyReduction_231
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut67 happy_x_3 of
-                           happy_var_3 -> happyIn68 (appendDeclrAttrs happy_var_2 happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_232 = happyReduce 5# 61# happyReduction_232
-happyReduction_232
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut67 happy_x_3 of
-                           happy_var_3 -> case happyOut85 happy_x_5 of
-                                              happy_var_5 -> happyIn68
-                                                               (appendDeclrAttrs happy_var_2
-                                                                  (happy_var_5 happy_var_3))
-                                                               `HappyStk` happyRest
-happyReduce_233 = happySpecReduce_1 62# happyReduction_233
-happyReduction_233 happy_x_1
-  = case happyOut70 happy_x_1 of
-        happy_var_1 -> happyIn69 (happy_var_1)
-happyReduce_234 = happyMonadReduce 4# 62# happyReduction_234
-happyReduction_234
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut71 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_3 []))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_235 = happyMonadReduce 5# 62# happyReduction_235
-happyReduction_235
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut71 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_4
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_236 = happyMonadReduce 6# 62# happyReduction_236
-happyReduction_236
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut71 happy_x_5 of
-                                                                    happy_var_5 -> (withAttribute
-                                                                                      happy_var_1
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      ptrDeclr
-                                                                                        happy_var_5
-                                                                                        (reverse
-                                                                                           happy_var_2)))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_237 = happyMonadReduce 2# 62# happyReduction_237
-happyReduction_237
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut69 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_2 []))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_238 = happyMonadReduce 3# 62# happyReduction_238
-happyReduction_238
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut69 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_3
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_239 = happyMonadReduce 4# 62# happyReduction_239
-happyReduction_239
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut69 happy_x_4 of
-                                                                    happy_var_4 -> (withAttribute
-                                                                                      happy_var_1
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      ptrDeclr
-                                                                                        happy_var_4
-                                                                                        (reverse
-                                                                                           happy_var_2)))
-      (\ r -> happyReturn (happyIn69 r))
-happyReduce_240 = happySpecReduce_3 63# happyReduction_240
-happyReduction_240 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut69 happy_x_2 of
-        happy_var_2 -> happyIn70 (happy_var_2)
-happyReduce_241 = happyReduce 4# 63# happyReduction_241
-happyReduction_241
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut71 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_3 of
-                           happy_var_3 -> happyIn70 (happy_var_3 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_242 = happyReduce 4# 63# happyReduction_242
-happyReduction_242
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut69 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_4 of
-                           happy_var_4 -> happyIn70 (happy_var_4 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_243 = happyMonadReduce 1# 64# happyReduction_243
-happyReduction_243 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokTyIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                             mkVarDeclr happy_var_1))
-      (\ r -> happyReturn (happyIn71 r))
-happyReduce_244 = happySpecReduce_3 64# happyReduction_244
-happyReduction_244 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut71 happy_x_2 of
-        happy_var_2 -> happyIn71 (happy_var_2)
-happyReduce_245 = happySpecReduce_1 65# happyReduction_245
-happyReduction_245 happy_x_1
-  = case happyOut73 happy_x_1 of
-        happy_var_1 -> happyIn72 (happy_var_1)
-happyReduce_246 = happySpecReduce_1 65# happyReduction_246
-happyReduction_246 happy_x_1
-  = case happyOut75 happy_x_1 of
-        happy_var_1 -> happyIn72 (happy_var_1)
-happyReduce_247 = happySpecReduce_1 66# happyReduction_247
-happyReduction_247 happy_x_1
-  = case happyOut74 happy_x_1 of
-        happy_var_1 -> happyIn73 (happy_var_1)
-happyReduce_248 = happyMonadReduce 2# 66# happyReduction_248
-happyReduction_248
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_2 []))
-      (\ r -> happyReturn (happyIn73 r))
-happyReduce_249 = happyMonadReduce 3# 66# happyReduction_249
-happyReduction_249
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut72 happy_x_3 of
-                                                 happy_var_3 -> (withAttribute happy_var_1
-                                                                   happy_var_2
-                                                                   $ ptrDeclr happy_var_3 []))
-      (\ r -> happyReturn (happyIn73 r))
-happyReduce_250 = happyMonadReduce 3# 66# happyReduction_250
-happyReduction_250
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut72 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_3
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn73 r))
-happyReduce_251 = happyMonadReduce 4# 66# happyReduction_251
-happyReduction_251
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut72 happy_x_4 of
-                                                                    happy_var_4 -> (withAttribute
-                                                                                      happy_var_1
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      ptrDeclr
-                                                                                        happy_var_4
-                                                                                        (reverse
-                                                                                           happy_var_2)))
-      (\ r -> happyReturn (happyIn73 r))
-happyReduce_252 = happySpecReduce_2 67# happyReduction_252
-happyReduction_252 happy_x_2 happy_x_1
-  = case happyOut75 happy_x_1 of
-        happy_var_1 -> case happyOut85 happy_x_2 of
-                           happy_var_2 -> happyIn74 (happy_var_2 happy_var_1)
-happyReduce_253 = happySpecReduce_3 67# happyReduction_253
-happyReduction_253 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut73 happy_x_2 of
-        happy_var_2 -> happyIn74 (happy_var_2)
-happyReduce_254 = happyReduce 4# 67# happyReduction_254
-happyReduction_254
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut73 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_4 of
-                           happy_var_4 -> happyIn74 (happy_var_4 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_255 = happyReduce 4# 67# happyReduction_255
-happyReduction_255
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut73 happy_x_3 of
-                           happy_var_3 -> happyIn74 (appendDeclrAttrs happy_var_2 happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_256 = happyReduce 5# 67# happyReduction_256
-happyReduction_256
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut73 happy_x_3 of
-                           happy_var_3 -> case happyOut85 happy_x_5 of
-                                              happy_var_5 -> happyIn74
-                                                               (appendDeclrAttrs happy_var_2
-                                                                  (happy_var_5 happy_var_3))
-                                                               `HappyStk` happyRest
-happyReduce_257 = happyMonadReduce 1# 68# happyReduction_257
-happyReduction_257 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                           mkVarDeclr happy_var_1))
-      (\ r -> happyReturn (happyIn75 r))
-happyReduce_258 = happySpecReduce_3 68# happyReduction_258
-happyReduction_258 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut75 happy_x_2 of
-        happy_var_2 -> happyIn75 (happy_var_2)
-happyReduce_259 = happyReduce 4# 68# happyReduction_259
-happyReduction_259
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut75 happy_x_3 of
-                           happy_var_3 -> happyIn75 (appendDeclrAttrs happy_var_2 happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_260 = happySpecReduce_1 69# happyReduction_260
-happyReduction_260 happy_x_1
-  = case happyOut77 happy_x_1 of
-        happy_var_1 -> happyIn76 (reverseDeclr happy_var_1)
-happyReduce_261 = happySpecReduce_1 70# happyReduction_261
-happyReduction_261 happy_x_1
-  = case happyOut78 happy_x_1 of
-        happy_var_1 -> happyIn77 (happy_var_1)
-happyReduce_262 = happyMonadReduce 2# 70# happyReduction_262
-happyReduction_262
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut77 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_2 []))
-      (\ r -> happyReturn (happyIn77 r))
-happyReduce_263 = happyMonadReduce 3# 70# happyReduction_263
-happyReduction_263
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut77 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_3
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn77 r))
-happyReduce_264 = happyMonadReduce 4# 71# happyReduction_264
-happyReduction_264
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut75 happy_x_1 of
-           happy_var_1 -> case happyOut82 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                funDeclr happy_var_1 (Left $ reverse happy_var_3)
-                                                  []))
-      (\ r -> happyReturn (happyIn78 r))
-happyReduce_265 = happySpecReduce_3 71# happyReduction_265
-happyReduction_265 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut77 happy_x_2 of
-        happy_var_2 -> happyIn78 (happy_var_2)
-happyReduce_266 = happyReduce 4# 71# happyReduction_266
-happyReduction_266
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut77 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_4 of
-                           happy_var_4 -> happyIn78 (happy_var_4 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_267 = happySpecReduce_0 72# happyReduction_267
-happyReduction_267 = happyIn79 (([], False))
-happyReduce_268 = happySpecReduce_1 72# happyReduction_268
-happyReduction_268 happy_x_1
-  = case happyOut80 happy_x_1 of
-        happy_var_1 -> happyIn79 ((reverse happy_var_1, False))
-happyReduce_269 = happySpecReduce_3 72# happyReduction_269
-happyReduction_269 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut80 happy_x_1 of
-        happy_var_1 -> happyIn79 ((reverse happy_var_1, True))
-happyReduce_270 = happySpecReduce_1 73# happyReduction_270
-happyReduction_270 happy_x_1
-  = case happyOut81 happy_x_1 of
-        happy_var_1 -> happyIn80 (singleton happy_var_1)
-happyReduce_271 = happySpecReduce_3 73# happyReduction_271
-happyReduction_271 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut80 happy_x_1 of
-        happy_var_1 -> case happyOut81 happy_x_3 of
-                           happy_var_3 -> happyIn80 (happy_var_1 `snoc` happy_var_3)
-happyReduce_272 = happyMonadReduce 1# 74# happyReduction_272
-happyReduction_272 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CDecl happy_var_1 []))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_273 = happyMonadReduce 2# 74# happyReduction_273
-happyReduction_273
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl happy_var_1
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_274 = happyMonadReduce 3# 74# happyReduction_274
-happyReduction_274
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl happy_var_1
-                                                                     [(Just
-                                                                         (reverseDeclr $!
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_275 = happyMonadReduce 3# 74# happyReduction_275
-happyReduction_275
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut37 happy_x_1 of
-           happy_var_1 -> case happyOut66 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl happy_var_1
-                                                                     [(Just
-                                                                         (reverseDeclr $!
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_276 = happyMonadReduce 1# 74# happyReduction_276
-happyReduction_276 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CDecl (reverse happy_var_1) []))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_277 = happyMonadReduce 2# 74# happyReduction_277
-happyReduction_277
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl (reverse happy_var_1)
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_278 = happyMonadReduce 3# 74# happyReduction_278
-happyReduction_278
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut38 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl (reverse happy_var_1)
-                                                                     [(Just
-                                                                         (reverseDeclr $!
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_279 = happyMonadReduce 1# 74# happyReduction_279
-happyReduction_279 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CDecl happy_var_1 []))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_280 = happyMonadReduce 2# 74# happyReduction_280
-happyReduction_280
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl happy_var_1
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_281 = happyMonadReduce 3# 74# happyReduction_281
-happyReduction_281
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl happy_var_1
-                                                                     [(Just
-                                                                         (reverseDeclr $!
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_282 = happyMonadReduce 3# 74# happyReduction_282
-happyReduction_282
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut66 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl happy_var_1
-                                                                     [(Just
-                                                                         (reverseDeclr $!
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_283 = happyMonadReduce 1# 74# happyReduction_283
-happyReduction_283 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CDecl (liftTypeQuals happy_var_1) []))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_284 = happyMonadReduce 2# 74# happyReduction_284
-happyReduction_284
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut128 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl
-                                                  (liftTypeQuals happy_var_1 ++
-                                                     liftCAttrs happy_var_2)
-                                                  []))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_285 = happyMonadReduce 2# 74# happyReduction_285
-happyReduction_285
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl (liftTypeQuals happy_var_1)
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_286 = happyMonadReduce 3# 74# happyReduction_286
-happyReduction_286
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut72 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CDecl (liftTypeQuals happy_var_1)
-                                                                     [(Just
-                                                                         (reverseDeclr $
-                                                                            appendDeclrAttrs
-                                                                              happy_var_3
-                                                                              happy_var_2),
-                                                                       Nothing, Nothing)]))
-      (\ r -> happyReturn (happyIn81 r))
-happyReduce_287 = happySpecReduce_1 75# happyReduction_287
-happyReduction_287 happy_x_1
-  = case happyOutTok happy_x_1 of
-        (CTokIdent _ happy_var_1) -> happyIn82 (singleton happy_var_1)
-happyReduce_288 = happySpecReduce_3 75# happyReduction_288
-happyReduction_288 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut82 happy_x_1 of
-        happy_var_1 -> case happyOutTok happy_x_3 of
-                           (CTokIdent _ happy_var_3) -> happyIn82
-                                                          (happy_var_1 `snoc` happy_var_3)
-happyReduce_289 = happyMonadReduce 1# 76# happyReduction_289
-happyReduction_289 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CDecl happy_var_1 []))
-      (\ r -> happyReturn (happyIn83 r))
-happyReduce_290 = happyMonadReduce 2# 76# happyReduction_290
-happyReduction_290
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut41 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl happy_var_1
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn83 r))
-happyReduce_291 = happyMonadReduce 2# 76# happyReduction_291
-happyReduction_291
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut128 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl
-                                                  (liftTypeQuals happy_var_1 ++
-                                                     liftCAttrs happy_var_2)
-                                                  []))
-      (\ r -> happyReturn (happyIn83 r))
-happyReduce_292 = happyMonadReduce 2# 76# happyReduction_292
-happyReduction_292
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut62 happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CDecl (liftTypeQuals happy_var_1)
-                                                  [(Just (reverseDeclr happy_var_2), Nothing,
-                                                    Nothing)]))
-      (\ r -> happyReturn (happyIn83 r))
-happyReduce_293 = happySpecReduce_1 77# happyReduction_293
-happyReduction_293 happy_x_1
-  = case happyOut88 happy_x_1 of
-        happy_var_1 -> happyIn84 (happy_var_1)
-happyReduce_294 = happySpecReduce_1 77# happyReduction_294
-happyReduction_294 happy_x_1
-  = case happyOut89 happy_x_1 of
-        happy_var_1 -> happyIn84 (happy_var_1)
-happyReduce_295 = happySpecReduce_1 77# happyReduction_295
-happyReduction_295 happy_x_1
-  = case happyOut85 happy_x_1 of
-        happy_var_1 -> happyIn84 (happy_var_1 emptyDeclr)
-happyReduce_296 = happySpecReduce_1 78# happyReduction_296
-happyReduction_296 happy_x_1
-  = case happyOut86 happy_x_1 of
-        happy_var_1 -> happyIn85 (happy_var_1)
-happyReduce_297 = happyMonadReduce 3# 78# happyReduction_297
-happyReduction_297
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut79 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                \ at declr ->
-                                                  case happy_var_2 of
-                                                      (params, variadic) -> funDeclr declr
-                                                                              (Right
-                                                                                 (params, variadic))
-                                                                              []
-                                                                              at))
-      (\ r -> happyReturn (happyIn85 r))
-happyReduce_298 = happySpecReduce_1 79# happyReduction_298
-happyReduction_298 happy_x_1
-  = case happyOut87 happy_x_1 of
-        happy_var_1 -> happyIn86 (happy_var_1)
-happyReduce_299 = happySpecReduce_2 79# happyReduction_299
-happyReduction_299 happy_x_2 happy_x_1
-  = case happyOut86 happy_x_1 of
-        happy_var_1 -> case happyOut87 happy_x_2 of
-                           happy_var_2 -> happyIn86 (\ decl -> happy_var_2 (happy_var_1 decl))
-happyReduce_300 = happyMonadReduce 3# 80# happyReduction_300
-happyReduction_300
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut120 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                \ at declr ->
-                                                  arrDeclr declr [] False False happy_var_2 at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_301 = happyMonadReduce 4# 80# happyReduction_301
-happyReduction_301
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut120 happy_x_3 of
-                                                 happy_var_3 -> (withAttributePF happy_var_1
-                                                                   happy_var_2
-                                                                   $
-                                                                   \ at declr ->
-                                                                     arrDeclr declr [] False False
-                                                                       happy_var_3
-                                                                       at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_302 = happyMonadReduce 4# 80# happyReduction_302
-happyReduction_302
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut120 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   \ at declr ->
-                                                                     arrDeclr declr
-                                                                       (reverse happy_var_2)
-                                                                       False
-                                                                       False
-                                                                       happy_var_3
-                                                                       at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_303 = happyMonadReduce 5# 80# happyReduction_303
-happyReduction_303
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut120 happy_x_4 of
-                                                                    happy_var_4 -> (withAttributePF
-                                                                                      happy_var_1
-                                                                                      happy_var_3
-                                                                                      $
-                                                                                      \ at declr ->
-                                                                                        arrDeclr
-                                                                                          declr
-                                                                                          (reverse
-                                                                                             happy_var_2)
-                                                                                          False
-                                                                                          False
-                                                                                          happy_var_4
-                                                                                          at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_304 = happyMonadReduce 5# 80# happyReduction_304
-happyReduction_304
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_3 of
-                              happy_var_3 -> case happyOut115 happy_x_4 of
-                                                 happy_var_4 -> (withAttributePF happy_var_1
-                                                                   happy_var_3
-                                                                   $
-                                                                   \ at declr ->
-                                                                     arrDeclr declr [] False True
-                                                                       (Just happy_var_4)
-                                                                       at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_305 = happyMonadReduce 6# 80# happyReduction_305
-happyReduction_305
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_3 of
-                              happy_var_3 -> case happyOut126 happy_x_4 of
-                                                 happy_var_4 -> case happyOut115 happy_x_5 of
-                                                                    happy_var_5 -> (withAttributePF
-                                                                                      happy_var_1
-                                                                                      happy_var_4
-                                                                                      $
-                                                                                      \ at declr ->
-                                                                                        arrDeclr
-                                                                                          declr
-                                                                                          (reverse
-                                                                                             happy_var_3)
-                                                                                          False
-                                                                                          True
-                                                                                          (Just
-                                                                                             happy_var_5)
-                                                                                          at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_306 = happyMonadReduce 7# 80# happyReduction_306
-happyReduction_306
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> case happyOut126 happy_x_5 of
-                                                                    happy_var_5 -> case
-                                                                                     happyOut115
-                                                                                       happy_x_6
-                                                                                     of
-                                                                                       happy_var_6 -> (withAttributePF
-                                                                                                         happy_var_1
-                                                                                                         (happy_var_3
-                                                                                                            ++
-                                                                                                            happy_var_5)
-                                                                                                         $
-                                                                                                         \ at
-                                                                                                           declr
-                                                                                                           ->
-                                                                                                           arrDeclr
-                                                                                                             declr
-                                                                                                             (reverse
-                                                                                                                happy_var_2)
-                                                                                                             False
-                                                                                                             True
-                                                                                                             (Just
-                                                                                                                happy_var_6)
-                                                                                                             at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_307 = happyMonadReduce 4# 80# happyReduction_307
-happyReduction_307
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut126 happy_x_3 of
-                              happy_var_3 -> (withAttributePF happy_var_1 happy_var_3 $
-                                                \ at declr ->
-                                                  arrDeclr declr [] True False Nothing at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_308 = happyMonadReduce 5# 80# happyReduction_308
-happyReduction_308
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_4 of
-                                                 happy_var_4 -> (withAttributePF happy_var_1
-                                                                   (happy_var_2 ++ happy_var_4)
-                                                                   $
-                                                                   \ at declr ->
-                                                                     arrDeclr declr [] True False
-                                                                       Nothing
-                                                                       at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_309 = happyMonadReduce 5# 80# happyReduction_309
-happyReduction_309
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_4 of
-                                                 happy_var_4 -> (withAttributePF happy_var_1
-                                                                   happy_var_4
-                                                                   $
-                                                                   \ at declr ->
-                                                                     arrDeclr declr
-                                                                       (reverse happy_var_2)
-                                                                       True
-                                                                       False
-                                                                       Nothing
-                                                                       at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_310 = happyMonadReduce 6# 80# happyReduction_310
-happyReduction_310
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut127 happy_x_3 of
-                                                 happy_var_3 -> case happyOut126 happy_x_5 of
-                                                                    happy_var_5 -> (withAttributePF
-                                                                                      happy_var_1
-                                                                                      (happy_var_3
-                                                                                         ++
-                                                                                         happy_var_5)
-                                                                                      $
-                                                                                      \ at declr ->
-                                                                                        arrDeclr
-                                                                                          declr
-                                                                                          (reverse
-                                                                                             happy_var_2)
-                                                                                          True
-                                                                                          False
-                                                                                          Nothing
-                                                                                          at))
-      (\ r -> happyReturn (happyIn87 r))
-happyReduce_311 = happyMonadReduce 1# 81# happyReduction_311
-happyReduction_311 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ ptrDeclr emptyDeclr []))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_312 = happyMonadReduce 3# 81# happyReduction_312
-happyReduction_312
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut126 happy_x_3 of
-                                                 happy_var_3 -> (withAttribute happy_var_1
-                                                                   happy_var_3
-                                                                   $
-                                                                   ptrDeclr emptyDeclr
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_313 = happyMonadReduce 2# 81# happyReduction_313
-happyReduction_313
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut84 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                ptrDeclr happy_var_2 []))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_314 = happyMonadReduce 3# 81# happyReduction_314
-happyReduction_314
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut62 happy_x_2 of
-                              happy_var_2 -> case happyOut84 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   ptrDeclr happy_var_3
-                                                                     (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_315 = happyMonadReduce 2# 81# happyReduction_315
-happyReduction_315
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> (withAttribute happy_var_1 happy_var_2 $
-                                                ptrDeclr emptyDeclr []))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_316 = happyMonadReduce 3# 81# happyReduction_316
-happyReduction_316
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut127 happy_x_2 of
-                              happy_var_2 -> case happyOut84 happy_x_3 of
-                                                 happy_var_3 -> (withAttribute happy_var_1
-                                                                   happy_var_2
-                                                                   $ ptrDeclr happy_var_3 []))
-      (\ r -> happyReturn (happyIn88 r))
-happyReduce_317 = happySpecReduce_3 82# happyReduction_317
-happyReduction_317 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut88 happy_x_2 of
-        happy_var_2 -> happyIn89 (happy_var_2)
-happyReduce_318 = happySpecReduce_3 82# happyReduction_318
-happyReduction_318 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut89 happy_x_2 of
-        happy_var_2 -> happyIn89 (happy_var_2)
-happyReduce_319 = happySpecReduce_3 82# happyReduction_319
-happyReduction_319 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut85 happy_x_2 of
-        happy_var_2 -> happyIn89 (happy_var_2 emptyDeclr)
-happyReduce_320 = happyReduce 4# 82# happyReduction_320
-happyReduction_320
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut88 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_4 of
-                           happy_var_4 -> happyIn89 (happy_var_4 happy_var_2) `HappyStk`
-                                            happyRest
-happyReduce_321 = happyReduce 4# 82# happyReduction_321
-happyReduction_321
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut88 happy_x_3 of
-                           happy_var_3 -> happyIn89 (appendDeclrAttrs happy_var_2 happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_322 = happyReduce 4# 82# happyReduction_322
-happyReduction_322
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut89 happy_x_3 of
-                           happy_var_3 -> happyIn89 (appendDeclrAttrs happy_var_2 happy_var_3)
-                                            `HappyStk` happyRest
-happyReduce_323 = happyReduce 4# 82# happyReduction_323
-happyReduction_323
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut85 happy_x_3 of
-                           happy_var_3 -> happyIn89
-                                            (appendDeclrAttrs happy_var_2 (happy_var_3 emptyDeclr))
-                                            `HappyStk` happyRest
-happyReduce_324 = happyReduce 5# 82# happyReduction_324
-happyReduction_324
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  = case happyOut127 happy_x_2 of
-        happy_var_2 -> case happyOut88 happy_x_3 of
-                           happy_var_3 -> case happyOut85 happy_x_5 of
-                                              happy_var_5 -> happyIn89
-                                                               (appendDeclrAttrs happy_var_2
-                                                                  (happy_var_5 happy_var_3))
-                                                               `HappyStk` happyRest
-happyReduce_325 = happySpecReduce_2 82# happyReduction_325
-happyReduction_325 happy_x_2 happy_x_1
-  = case happyOut89 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn89 (appendDeclrAttrs happy_var_2 happy_var_1)
-happyReduce_326 = happyMonadReduce 1# 83# happyReduction_326
-happyReduction_326 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut115 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CInitExpr happy_var_1))
-      (\ r -> happyReturn (happyIn90 r))
-happyReduce_327 = happyMonadReduce 3# 83# happyReduction_327
-happyReduction_327
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut92 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CInitList (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn90 r))
-happyReduce_328 = happyMonadReduce 4# 83# happyReduction_328
-happyReduction_328
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut92 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CInitList (reverse happy_var_2)))
-      (\ r -> happyReturn (happyIn90 r))
-happyReduce_329 = happySpecReduce_0 84# happyReduction_329
-happyReduction_329 = happyIn91 (Nothing)
-happyReduce_330 = happySpecReduce_2 84# happyReduction_330
-happyReduction_330 happy_x_2 happy_x_1
-  = case happyOut90 happy_x_2 of
-        happy_var_2 -> happyIn91 (Just happy_var_2)
-happyReduce_331 = happySpecReduce_0 85# happyReduction_331
-happyReduction_331 = happyIn92 (empty)
-happyReduce_332 = happySpecReduce_1 85# happyReduction_332
-happyReduction_332 happy_x_1
-  = case happyOut90 happy_x_1 of
-        happy_var_1 -> happyIn92 (singleton ([], happy_var_1))
-happyReduce_333 = happySpecReduce_2 85# happyReduction_333
-happyReduction_333 happy_x_2 happy_x_1
-  = case happyOut93 happy_x_1 of
-        happy_var_1 -> case happyOut90 happy_x_2 of
-                           happy_var_2 -> happyIn92 (singleton (happy_var_1, happy_var_2))
-happyReduce_334 = happySpecReduce_3 85# happyReduction_334
-happyReduction_334 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut92 happy_x_1 of
-        happy_var_1 -> case happyOut90 happy_x_3 of
-                           happy_var_3 -> happyIn92 (happy_var_1 `snoc` ([], happy_var_3))
-happyReduce_335 = happyReduce 4# 85# happyReduction_335
-happyReduction_335
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  = case happyOut92 happy_x_1 of
-        happy_var_1 -> case happyOut93 happy_x_3 of
-                           happy_var_3 -> case happyOut90 happy_x_4 of
-                                              happy_var_4 -> happyIn92
-                                                               (happy_var_1 `snoc`
-                                                                  (happy_var_3, happy_var_4))
-                                                               `HappyStk` happyRest
-happyReduce_336 = happySpecReduce_2 86# happyReduction_336
-happyReduction_336 happy_x_2 happy_x_1
-  = case happyOut94 happy_x_1 of
-        happy_var_1 -> happyIn93 (reverse happy_var_1)
-happyReduce_337 = happyMonadReduce 2# 86# happyReduction_337
-happyReduction_337
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut125 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             \ at -> [CMemberDesig happy_var_1 at]))
-      (\ r -> happyReturn (happyIn93 r))
-happyReduce_338 = happySpecReduce_1 86# happyReduction_338
-happyReduction_338 happy_x_1
-  = case happyOut96 happy_x_1 of
-        happy_var_1 -> happyIn93 ([happy_var_1])
-happyReduce_339 = happySpecReduce_1 87# happyReduction_339
-happyReduction_339 happy_x_1
-  = case happyOut95 happy_x_1 of
-        happy_var_1 -> happyIn94 (singleton happy_var_1)
-happyReduce_340 = happySpecReduce_2 87# happyReduction_340
-happyReduction_340 happy_x_2 happy_x_1
-  = case happyOut94 happy_x_1 of
-        happy_var_1 -> case happyOut95 happy_x_2 of
-                           happy_var_2 -> happyIn94 (happy_var_1 `snoc` happy_var_2)
-happyReduce_341 = happyMonadReduce 3# 88# happyReduction_341
-happyReduction_341
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut121 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $ CArrDesig happy_var_2))
-      (\ r -> happyReturn (happyIn95 r))
-happyReduce_342 = happyMonadReduce 2# 88# happyReduction_342
-happyReduction_342
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CMemberDesig happy_var_2))
-      (\ r -> happyReturn (happyIn95 r))
-happyReduce_343 = happySpecReduce_1 88# happyReduction_343
-happyReduction_343 happy_x_1
-  = case happyOut96 happy_x_1 of
-        happy_var_1 -> happyIn95 (happy_var_1)
-happyReduce_344 = happyMonadReduce 5# 89# happyReduction_344
-happyReduction_344
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut121 happy_x_2 of
-                              happy_var_2 -> case happyOut121 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CRangeDesig happy_var_2
-                                                                     happy_var_4))
-      (\ r -> happyReturn (happyIn96 r))
-happyReduce_345 = happyMonadReduce 1# 90# happyReduction_345
-happyReduction_345 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                           CVar happy_var_1))
-      (\ r -> happyReturn (happyIn97 r))
-happyReduce_346 = happySpecReduce_1 90# happyReduction_346
-happyReduction_346 happy_x_1
-  = case happyOut122 happy_x_1 of
-        happy_var_1 -> happyIn97 (CConst happy_var_1)
-happyReduce_347 = happySpecReduce_1 90# happyReduction_347
-happyReduction_347 happy_x_1
-  = case happyOut123 happy_x_1 of
-        happy_var_1 -> happyIn97 (CConst (liftStrLit happy_var_1))
-happyReduce_348 = happySpecReduce_3 90# happyReduction_348
-happyReduction_348 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut117 happy_x_2 of
-        happy_var_2 -> happyIn97 (happy_var_2)
-happyReduce_349 = happyMonadReduce 3# 90# happyReduction_349
-happyReduction_349
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut14 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $ CStatExpr happy_var_2))
-      (\ r -> happyReturn (happyIn97 r))
-happyReduce_350 = happyMonadReduce 6# 90# happyReduction_350
-happyReduction_350
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut115 happy_x_3 of
-                              happy_var_3 -> case happyOut83 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CBuiltinExpr .
-                                                                     CBuiltinVaArg happy_var_3
-                                                                       happy_var_5))
-      (\ r -> happyReturn (happyIn97 r))
-happyReduce_351 = happyMonadReduce 6# 90# happyReduction_351
-happyReduction_351
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_3 of
-                              happy_var_3 -> case happyOut98 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CBuiltinExpr .
-                                                                     CBuiltinOffsetOf happy_var_3
-                                                                       (reverse happy_var_5)))
-      (\ r -> happyReturn (happyIn97 r))
-happyReduce_352 = happyMonadReduce 6# 90# happyReduction_352
-happyReduction_352
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_3 of
-                              happy_var_3 -> case happyOut83 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CBuiltinExpr .
-                                                                     CBuiltinTypesCompatible
-                                                                       happy_var_3
-                                                                       happy_var_5))
-      (\ r -> happyReturn (happyIn97 r))
-happyReduce_353 = happyMonadReduce 1# 91# happyReduction_353
-happyReduction_353 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOut125 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             singleton . CMemberDesig happy_var_1))
-      (\ r -> happyReturn (happyIn98 r))
-happyReduce_354 = happyMonadReduce 3# 91# happyReduction_354
-happyReduction_354
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut98 happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_3 $
-                                                (happy_var_1 `snoc`) . CMemberDesig happy_var_3))
-      (\ r -> happyReturn (happyIn98 r))
-happyReduce_355 = happyMonadReduce 4# 91# happyReduction_355
-happyReduction_355
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut98 happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_3 $
-                                                (happy_var_1 `snoc`) . CArrDesig happy_var_3))
-      (\ r -> happyReturn (happyIn98 r))
-happyReduce_356 = happySpecReduce_1 92# happyReduction_356
-happyReduction_356 happy_x_1
-  = case happyOut97 happy_x_1 of
-        happy_var_1 -> happyIn99 (happy_var_1)
-happyReduce_357 = happyMonadReduce 4# 92# happyReduction_357
-happyReduction_357
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CIndex happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_358 = happyMonadReduce 3# 92# happyReduction_358
-happyReduction_358
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $ CCall happy_var_1 []))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_359 = happyMonadReduce 4# 92# happyReduction_359
-happyReduction_359
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> case happyOut100 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CCall happy_var_1 (reverse happy_var_3)))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_360 = happyMonadReduce 3# 92# happyReduction_360
-happyReduction_360
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CMember happy_var_1 happy_var_3 False))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_361 = happyMonadReduce 3# 92# happyReduction_361
-happyReduction_361
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CMember happy_var_1 happy_var_3 True))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_362 = happyMonadReduce 2# 92# happyReduction_362
-happyReduction_362
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CUnary CPostIncOp happy_var_1))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_363 = happyMonadReduce 2# 92# happyReduction_363
-happyReduction_363
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut99 happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             CUnary CPostDecOp happy_var_1))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_364 = happyMonadReduce 6# 92# happyReduction_364
-happyReduction_364
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_2 of
-                              happy_var_2 -> case happyOut92 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CCompoundLit happy_var_2
-                                                                     (reverse happy_var_5)))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_365 = happyMonadReduce 7# 92# happyReduction_365
-happyReduction_365
-  (happy_x_7 `HappyStk`
-     (happy_x_6 `HappyStk`
-        (happy_x_5 `HappyStk`
-           (happy_x_4 `HappyStk`
-              (happy_x_3 `HappyStk`
-                 (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_2 of
-                              happy_var_2 -> case happyOut92 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CCompoundLit happy_var_2
-                                                                     (reverse happy_var_5)))
-      (\ r -> happyReturn (happyIn99 r))
-happyReduce_366 = happySpecReduce_1 93# happyReduction_366
-happyReduction_366 happy_x_1
-  = case happyOut115 happy_x_1 of
-        happy_var_1 -> happyIn100 (singleton happy_var_1)
-happyReduce_367 = happySpecReduce_3 93# happyReduction_367
-happyReduction_367 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut100 happy_x_1 of
-        happy_var_1 -> case happyOut115 happy_x_3 of
-                           happy_var_3 -> happyIn100 (happy_var_1 `snoc` happy_var_3)
-happyReduce_368 = happySpecReduce_1 94# happyReduction_368
-happyReduction_368 happy_x_1
-  = case happyOut99 happy_x_1 of
-        happy_var_1 -> happyIn101 (happy_var_1)
-happyReduce_369 = happyMonadReduce 2# 94# happyReduction_369
-happyReduction_369
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CUnary CPreIncOp happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_370 = happyMonadReduce 2# 94# happyReduction_370
-happyReduction_370
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CUnary CPreDecOp happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_371 = happySpecReduce_2 94# happyReduction_371
-happyReduction_371 happy_x_2 happy_x_1
-  = case happyOut103 happy_x_2 of
-        happy_var_2 -> happyIn101 (happy_var_2)
-happyReduce_372 = happyMonadReduce 2# 94# happyReduction_372
-happyReduction_372
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOut102 happy_x_1 of
-           happy_var_1 -> case happyOut103 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CUnary (unL happy_var_1) happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_373 = happyMonadReduce 2# 94# happyReduction_373
-happyReduction_373
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CSizeofExpr happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_374 = happyMonadReduce 4# 94# happyReduction_374
-happyReduction_374
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CSizeofType happy_var_3))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_375 = happyMonadReduce 2# 94# happyReduction_375
-happyReduction_375
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CAlignofExpr happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_376 = happyMonadReduce 4# 94# happyReduction_376
-happyReduction_376
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CAlignofType happy_var_3))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_377 = happyMonadReduce 2# 94# happyReduction_377
-happyReduction_377
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CComplexReal happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_378 = happyMonadReduce 2# 94# happyReduction_378
-happyReduction_378
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut101 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CComplexImag happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_379 = happyMonadReduce 2# 94# happyReduction_379
-happyReduction_379
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut125 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                CLabAddrExpr happy_var_2))
-      (\ r -> happyReturn (happyIn101 r))
-happyReduce_380 = happySpecReduce_1 95# happyReduction_380
-happyReduction_380 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CAdrOp (posOf happy_var_1))
-happyReduce_381 = happySpecReduce_1 95# happyReduction_381
-happyReduction_381 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CIndOp (posOf happy_var_1))
-happyReduce_382 = happySpecReduce_1 95# happyReduction_382
-happyReduction_382 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CPlusOp (posOf happy_var_1))
-happyReduce_383 = happySpecReduce_1 95# happyReduction_383
-happyReduction_383 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CMinOp (posOf happy_var_1))
-happyReduce_384 = happySpecReduce_1 95# happyReduction_384
-happyReduction_384 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CCompOp (posOf happy_var_1))
-happyReduce_385 = happySpecReduce_1 95# happyReduction_385
-happyReduction_385 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn102 (L CNegOp (posOf happy_var_1))
-happyReduce_386 = happySpecReduce_1 96# happyReduction_386
-happyReduction_386 happy_x_1
-  = case happyOut101 happy_x_1 of
-        happy_var_1 -> happyIn103 (happy_var_1)
-happyReduce_387 = happyMonadReduce 4# 96# happyReduction_387
-happyReduction_387
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut83 happy_x_2 of
-                              happy_var_2 -> case happyOut103 happy_x_4 of
-                                                 happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                                   CCast happy_var_2 happy_var_4))
-      (\ r -> happyReturn (happyIn103 r))
-happyReduce_388 = happySpecReduce_1 97# happyReduction_388
-happyReduction_388 happy_x_1
-  = case happyOut103 happy_x_1 of
-        happy_var_1 -> happyIn104 (happy_var_1)
-happyReduce_389 = happyMonadReduce 3# 97# happyReduction_389
-happyReduction_389
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut104 happy_x_1 of
-           happy_var_1 -> case happyOut103 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CMulOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn104 r))
-happyReduce_390 = happyMonadReduce 3# 97# happyReduction_390
-happyReduction_390
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut104 happy_x_1 of
-           happy_var_1 -> case happyOut103 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CDivOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn104 r))
-happyReduce_391 = happyMonadReduce 3# 97# happyReduction_391
-happyReduction_391
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut104 happy_x_1 of
-           happy_var_1 -> case happyOut103 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CRmdOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn104 r))
-happyReduce_392 = happySpecReduce_1 98# happyReduction_392
-happyReduction_392 happy_x_1
-  = case happyOut104 happy_x_1 of
-        happy_var_1 -> happyIn105 (happy_var_1)
-happyReduce_393 = happyMonadReduce 3# 98# happyReduction_393
-happyReduction_393
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut105 happy_x_1 of
-           happy_var_1 -> case happyOut104 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CAddOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn105 r))
-happyReduce_394 = happyMonadReduce 3# 98# happyReduction_394
-happyReduction_394
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut105 happy_x_1 of
-           happy_var_1 -> case happyOut104 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CSubOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn105 r))
-happyReduce_395 = happySpecReduce_1 99# happyReduction_395
-happyReduction_395 happy_x_1
-  = case happyOut105 happy_x_1 of
-        happy_var_1 -> happyIn106 (happy_var_1)
-happyReduce_396 = happyMonadReduce 3# 99# happyReduction_396
-happyReduction_396
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut106 happy_x_1 of
-           happy_var_1 -> case happyOut105 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CShlOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn106 r))
-happyReduce_397 = happyMonadReduce 3# 99# happyReduction_397
-happyReduction_397
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut106 happy_x_1 of
-           happy_var_1 -> case happyOut105 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CShrOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn106 r))
-happyReduce_398 = happySpecReduce_1 100# happyReduction_398
-happyReduction_398 happy_x_1
-  = case happyOut106 happy_x_1 of
-        happy_var_1 -> happyIn107 (happy_var_1)
-happyReduce_399 = happyMonadReduce 3# 100# happyReduction_399
-happyReduction_399
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut107 happy_x_1 of
-           happy_var_1 -> case happyOut106 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CLeOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn107 r))
-happyReduce_400 = happyMonadReduce 3# 100# happyReduction_400
-happyReduction_400
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut107 happy_x_1 of
-           happy_var_1 -> case happyOut106 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CGrOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn107 r))
-happyReduce_401 = happyMonadReduce 3# 100# happyReduction_401
-happyReduction_401
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut107 happy_x_1 of
-           happy_var_1 -> case happyOut106 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CLeqOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn107 r))
-happyReduce_402 = happyMonadReduce 3# 100# happyReduction_402
-happyReduction_402
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut107 happy_x_1 of
-           happy_var_1 -> case happyOut106 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CGeqOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn107 r))
-happyReduce_403 = happySpecReduce_1 101# happyReduction_403
-happyReduction_403 happy_x_1
-  = case happyOut107 happy_x_1 of
-        happy_var_1 -> happyIn108 (happy_var_1)
-happyReduce_404 = happyMonadReduce 3# 101# happyReduction_404
-happyReduction_404
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut108 happy_x_1 of
-           happy_var_1 -> case happyOut107 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CEqOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn108 r))
-happyReduce_405 = happyMonadReduce 3# 101# happyReduction_405
-happyReduction_405
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut108 happy_x_1 of
-           happy_var_1 -> case happyOut107 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CNeqOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn108 r))
-happyReduce_406 = happySpecReduce_1 102# happyReduction_406
-happyReduction_406 happy_x_1
-  = case happyOut108 happy_x_1 of
-        happy_var_1 -> happyIn109 (happy_var_1)
-happyReduce_407 = happyMonadReduce 3# 102# happyReduction_407
-happyReduction_407
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut109 happy_x_1 of
-           happy_var_1 -> case happyOut108 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CAndOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn109 r))
-happyReduce_408 = happySpecReduce_1 103# happyReduction_408
-happyReduction_408 happy_x_1
-  = case happyOut109 happy_x_1 of
-        happy_var_1 -> happyIn110 (happy_var_1)
-happyReduce_409 = happyMonadReduce 3# 103# happyReduction_409
-happyReduction_409
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut110 happy_x_1 of
-           happy_var_1 -> case happyOut109 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CXorOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn110 r))
-happyReduce_410 = happySpecReduce_1 104# happyReduction_410
-happyReduction_410 happy_x_1
-  = case happyOut110 happy_x_1 of
-        happy_var_1 -> happyIn111 (happy_var_1)
-happyReduce_411 = happyMonadReduce 3# 104# happyReduction_411
-happyReduction_411
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut111 happy_x_1 of
-           happy_var_1 -> case happyOut110 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary COrOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn111 r))
-happyReduce_412 = happySpecReduce_1 105# happyReduction_412
-happyReduction_412 happy_x_1
-  = case happyOut111 happy_x_1 of
-        happy_var_1 -> happyIn112 (happy_var_1)
-happyReduce_413 = happyMonadReduce 3# 105# happyReduction_413
-happyReduction_413
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut112 happy_x_1 of
-           happy_var_1 -> case happyOut111 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CLndOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn112 r))
-happyReduce_414 = happySpecReduce_1 106# happyReduction_414
-happyReduction_414 happy_x_1
-  = case happyOut112 happy_x_1 of
-        happy_var_1 -> happyIn113 (happy_var_1)
-happyReduce_415 = happyMonadReduce 3# 106# happyReduction_415
-happyReduction_415
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut113 happy_x_1 of
-           happy_var_1 -> case happyOut112 happy_x_3 of
-                              happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                CBinary CLorOp happy_var_1 happy_var_3))
-      (\ r -> happyReturn (happyIn113 r))
-happyReduce_416 = happySpecReduce_1 107# happyReduction_416
-happyReduction_416 happy_x_1
-  = case happyOut113 happy_x_1 of
-        happy_var_1 -> happyIn114 (happy_var_1)
-happyReduce_417 = happyMonadReduce 5# 107# happyReduction_417
-happyReduction_417
-  (happy_x_5 `HappyStk`
-     (happy_x_4 `HappyStk`
-        (happy_x_3 `HappyStk`
-           (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))))
-  tk
-  = happyThen
-      (case happyOut113 happy_x_1 of
-           happy_var_1 -> case happyOut117 happy_x_3 of
-                              happy_var_3 -> case happyOut114 happy_x_5 of
-                                                 happy_var_5 -> (withNodeInfo happy_var_1 $
-                                                                   CCond happy_var_1
-                                                                     (Just happy_var_3)
-                                                                     happy_var_5))
-      (\ r -> happyReturn (happyIn114 r))
-happyReduce_418 = happyMonadReduce 4# 107# happyReduction_418
-happyReduction_418
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOut113 happy_x_1 of
-           happy_var_1 -> case happyOut114 happy_x_4 of
-                              happy_var_4 -> (withNodeInfo happy_var_1 $
-                                                CCond happy_var_1 Nothing happy_var_4))
-      (\ r -> happyReturn (happyIn114 r))
-happyReduce_419 = happySpecReduce_1 108# happyReduction_419
-happyReduction_419 happy_x_1
-  = case happyOut114 happy_x_1 of
-        happy_var_1 -> happyIn115 (happy_var_1)
-happyReduce_420 = happyMonadReduce 3# 108# happyReduction_420
-happyReduction_420
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut101 happy_x_1 of
-           happy_var_1 -> case happyOut116 happy_x_2 of
-                              happy_var_2 -> case happyOut115 happy_x_3 of
-                                                 happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                                   CAssign (unL happy_var_2)
-                                                                     happy_var_1
-                                                                     happy_var_3))
-      (\ r -> happyReturn (happyIn115 r))
-happyReduce_421 = happySpecReduce_1 109# happyReduction_421
-happyReduction_421 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CAssignOp (posOf happy_var_1))
-happyReduce_422 = happySpecReduce_1 109# happyReduction_422
-happyReduction_422 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CMulAssOp (posOf happy_var_1))
-happyReduce_423 = happySpecReduce_1 109# happyReduction_423
-happyReduction_423 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CDivAssOp (posOf happy_var_1))
-happyReduce_424 = happySpecReduce_1 109# happyReduction_424
-happyReduction_424 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CRmdAssOp (posOf happy_var_1))
-happyReduce_425 = happySpecReduce_1 109# happyReduction_425
-happyReduction_425 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CAddAssOp (posOf happy_var_1))
-happyReduce_426 = happySpecReduce_1 109# happyReduction_426
-happyReduction_426 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CSubAssOp (posOf happy_var_1))
-happyReduce_427 = happySpecReduce_1 109# happyReduction_427
-happyReduction_427 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CShlAssOp (posOf happy_var_1))
-happyReduce_428 = happySpecReduce_1 109# happyReduction_428
-happyReduction_428 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CShrAssOp (posOf happy_var_1))
-happyReduce_429 = happySpecReduce_1 109# happyReduction_429
-happyReduction_429 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CAndAssOp (posOf happy_var_1))
-happyReduce_430 = happySpecReduce_1 109# happyReduction_430
-happyReduction_430 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L CXorAssOp (posOf happy_var_1))
-happyReduce_431 = happySpecReduce_1 109# happyReduction_431
-happyReduction_431 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn116 (L COrAssOp (posOf happy_var_1))
-happyReduce_432 = happySpecReduce_1 110# happyReduction_432
-happyReduction_432 happy_x_1
-  = case happyOut115 happy_x_1 of
-        happy_var_1 -> happyIn117 (happy_var_1)
-happyReduce_433 = happyMonadReduce 3# 110# happyReduction_433
-happyReduction_433
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOut115 happy_x_1 of
-           happy_var_1 -> case happyOut118 happy_x_3 of
-                              happy_var_3 -> (let es = reverse happy_var_3 in
-                                                withNodeInfo es $ CComma (happy_var_1 : es)))
-      (\ r -> happyReturn (happyIn117 r))
-happyReduce_434 = happySpecReduce_1 111# happyReduction_434
-happyReduction_434 happy_x_1
-  = case happyOut115 happy_x_1 of
-        happy_var_1 -> happyIn118 (singleton happy_var_1)
-happyReduce_435 = happySpecReduce_3 111# happyReduction_435
-happyReduction_435 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut118 happy_x_1 of
-        happy_var_1 -> case happyOut115 happy_x_3 of
-                           happy_var_3 -> happyIn118 (happy_var_1 `snoc` happy_var_3)
-happyReduce_436 = happySpecReduce_0 112# happyReduction_436
-happyReduction_436 = happyIn119 (Nothing)
-happyReduce_437 = happySpecReduce_1 112# happyReduction_437
-happyReduction_437 happy_x_1
-  = case happyOut117 happy_x_1 of
-        happy_var_1 -> happyIn119 (Just happy_var_1)
-happyReduce_438 = happySpecReduce_0 113# happyReduction_438
-happyReduction_438 = happyIn120 (Nothing)
-happyReduce_439 = happySpecReduce_1 113# happyReduction_439
-happyReduction_439 happy_x_1
-  = case happyOut115 happy_x_1 of
-        happy_var_1 -> happyIn120 (Just happy_var_1)
-happyReduce_440 = happySpecReduce_1 114# happyReduction_440
-happyReduction_440 happy_x_1
-  = case happyOut114 happy_x_1 of
-        happy_var_1 -> happyIn121 (happy_var_1)
-happyReduce_441 = happyMonadReduce 1# 115# happyReduction_441
-happyReduction_441 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             case happy_var_1 of
-                                 CTokILit _ i -> CIntConst i))
-      (\ r -> happyReturn (happyIn122 r))
-happyReduce_442 = happyMonadReduce 1# 115# happyReduction_442
-happyReduction_442 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             case happy_var_1 of
-                                 CTokCLit _ c -> CCharConst c))
-      (\ r -> happyReturn (happyIn122 r))
-happyReduce_443 = happyMonadReduce 1# 115# happyReduction_443
-happyReduction_443 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             case happy_var_1 of
-                                 CTokFLit _ f -> CFloatConst f))
-      (\ r -> happyReturn (happyIn122 r))
-happyReduce_444 = happyMonadReduce 1# 116# happyReduction_444
-happyReduction_444 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             case happy_var_1 of
-                                 CTokSLit _ s -> CStrLit s))
-      (\ r -> happyReturn (happyIn123 r))
-happyReduce_445 = happyMonadReduce 2# 116# happyReduction_445
-happyReduction_445
-  (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> case happyOut124 happy_x_2 of
-                              happy_var_2 -> (withNodeInfo happy_var_1 $
-                                                case happy_var_1 of
-                                                    CTokSLit _ s -> CStrLit
-                                                                      (concatCStrings
-                                                                         (s :
-                                                                            reverse happy_var_2))))
-      (\ r -> happyReturn (happyIn123 r))
-happyReduce_446 = happySpecReduce_1 117# happyReduction_446
-happyReduction_446 happy_x_1
-  = case happyOutTok happy_x_1 of
-        happy_var_1 -> happyIn124
-                         (case happy_var_1 of
-                              CTokSLit _ s -> singleton s)
-happyReduce_447 = happySpecReduce_2 117# happyReduction_447
-happyReduction_447 happy_x_2 happy_x_1
-  = case happyOut124 happy_x_1 of
-        happy_var_1 -> case happyOutTok happy_x_2 of
-                           happy_var_2 -> happyIn124
-                                            (case happy_var_2 of
-                                                 CTokSLit _ s -> happy_var_1 `snoc` s)
-happyReduce_448 = happySpecReduce_1 118# happyReduction_448
-happyReduction_448 happy_x_1
-  = case happyOutTok happy_x_1 of
-        (CTokIdent _ happy_var_1) -> happyIn125 (happy_var_1)
-happyReduce_449 = happySpecReduce_1 118# happyReduction_449
-happyReduction_449 happy_x_1
-  = case happyOutTok happy_x_1 of
-        (CTokTyIdent _ happy_var_1) -> happyIn125 (happy_var_1)
-happyReduce_450 = happySpecReduce_0 119# happyReduction_450
-happyReduction_450 = happyIn126 ([])
-happyReduce_451 = happySpecReduce_1 119# happyReduction_451
-happyReduction_451 happy_x_1
-  = case happyOut127 happy_x_1 of
-        happy_var_1 -> happyIn126 (happy_var_1)
-happyReduce_452 = happySpecReduce_1 120# happyReduction_452
-happyReduction_452 happy_x_1
-  = case happyOut128 happy_x_1 of
-        happy_var_1 -> happyIn127 (happy_var_1)
-happyReduce_453 = happySpecReduce_2 120# happyReduction_453
-happyReduction_453 happy_x_2 happy_x_1
-  = case happyOut127 happy_x_1 of
-        happy_var_1 -> case happyOut128 happy_x_2 of
-                           happy_var_2 -> happyIn127 (happy_var_1 ++ happy_var_2)
-happyReduce_454 = happyReduce 6# 121# happyReduction_454
-happyReduction_454
-  (happy_x_6 `HappyStk`
-     (happy_x_5 `HappyStk`
-        (happy_x_4 `HappyStk`
-           (happy_x_3 `HappyStk`
-              (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))))
-  = case happyOut129 happy_x_4 of
-        happy_var_4 -> happyIn128 (reverse happy_var_4) `HappyStk`
-                         happyRest
-happyReduce_455 = happySpecReduce_1 122# happyReduction_455
-happyReduction_455 happy_x_1
-  = case happyOut130 happy_x_1 of
-        happy_var_1 -> happyIn129
-                         (case happy_var_1 of
-                              Nothing -> empty
-                              Just attr -> singleton attr)
-happyReduce_456 = happySpecReduce_3 122# happyReduction_456
-happyReduction_456 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut129 happy_x_1 of
-        happy_var_1 -> case happyOut130 happy_x_3 of
-                           happy_var_3 -> happyIn129
-                                            ((maybe id (flip snoc) happy_var_3) happy_var_1)
-happyReduce_457 = happySpecReduce_0 123# happyReduction_457
-happyReduction_457 = happyIn130 (Nothing)
-happyReduce_458 = happyMonadReduce 1# 123# happyReduction_458
-happyReduction_458 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                           Just . CAttr happy_var_1 []))
-      (\ r -> happyReturn (happyIn130 r))
-happyReduce_459 = happyMonadReduce 1# 123# happyReduction_459
-happyReduction_459 (happy_x_1 `HappyStk` happyRest) tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           happy_var_1 -> (withNodeInfo happy_var_1 $
-                             Just . CAttr (internalIdent "const") []))
-      (\ r -> happyReturn (happyIn130 r))
-happyReduce_460 = happyMonadReduce 4# 123# happyReduction_460
-happyReduction_460
-  (happy_x_4 `HappyStk`
-     (happy_x_3 `HappyStk`
-        (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest))))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokIdent _ happy_var_1) -> case happyOut131 happy_x_3 of
-                                            happy_var_3 -> (withNodeInfo happy_var_1 $
-                                                              Just .
-                                                                CAttr happy_var_1
-                                                                  (reverse happy_var_3)))
-      (\ r -> happyReturn (happyIn130 r))
-happyReduce_461 = happyMonadReduce 3# 123# happyReduction_461
-happyReduction_461
-  (happy_x_3 `HappyStk`
-     (happy_x_2 `HappyStk` (happy_x_1 `HappyStk` happyRest)))
-  tk
-  = happyThen
-      (case happyOutTok happy_x_1 of
-           (CTokIdent _ happy_var_1) -> (withNodeInfo happy_var_1 $
-                                           Just . CAttr happy_var_1 []))
-      (\ r -> happyReturn (happyIn130 r))
-happyReduce_462 = happySpecReduce_1 124# happyReduction_462
-happyReduction_462 happy_x_1
-  = case happyOut121 happy_x_1 of
-        happy_var_1 -> happyIn131 (singleton happy_var_1)
-happyReduce_463 = happySpecReduce_3 124# happyReduction_463
-happyReduction_463 happy_x_3 happy_x_2 happy_x_1
-  = case happyOut131 happy_x_1 of
-        happy_var_1 -> case happyOut121 happy_x_3 of
-                           happy_var_3 -> happyIn131 (happy_var_1 `snoc` happy_var_3)
-happyNewToken action sts stk
-  = lexC
-      (\ tk ->
-         let cont i = happyDoAction i tk action sts stk in
-           case tk of
-               CTokEof -> happyDoAction 101# tk action sts stk
-               CTokLParen _ -> cont 1#
-               CTokRParen _ -> cont 2#
-               CTokLBracket _ -> cont 3#
-               CTokRBracket _ -> cont 4#
-               CTokArrow _ -> cont 5#
-               CTokDot _ -> cont 6#
-               CTokExclam _ -> cont 7#
-               CTokTilde _ -> cont 8#
-               CTokInc _ -> cont 9#
-               CTokDec _ -> cont 10#
-               CTokPlus _ -> cont 11#
-               CTokMinus _ -> cont 12#
-               CTokStar _ -> cont 13#
-               CTokSlash _ -> cont 14#
-               CTokPercent _ -> cont 15#
-               CTokAmper _ -> cont 16#
-               CTokShiftL _ -> cont 17#
-               CTokShiftR _ -> cont 18#
-               CTokLess _ -> cont 19#
-               CTokLessEq _ -> cont 20#
-               CTokHigh _ -> cont 21#
-               CTokHighEq _ -> cont 22#
-               CTokEqual _ -> cont 23#
-               CTokUnequal _ -> cont 24#
-               CTokHat _ -> cont 25#
-               CTokBar _ -> cont 26#
-               CTokAnd _ -> cont 27#
-               CTokOr _ -> cont 28#
-               CTokQuest _ -> cont 29#
-               CTokColon _ -> cont 30#
-               CTokAssign _ -> cont 31#
-               CTokPlusAss _ -> cont 32#
-               CTokMinusAss _ -> cont 33#
-               CTokStarAss _ -> cont 34#
-               CTokSlashAss _ -> cont 35#
-               CTokPercAss _ -> cont 36#
-               CTokAmpAss _ -> cont 37#
-               CTokHatAss _ -> cont 38#
-               CTokBarAss _ -> cont 39#
-               CTokSLAss _ -> cont 40#
-               CTokSRAss _ -> cont 41#
-               CTokComma _ -> cont 42#
-               CTokSemic _ -> cont 43#
-               CTokLBrace _ -> cont 44#
-               CTokRBrace _ -> cont 45#
-               CTokEllipsis _ -> cont 46#
-               CTokAlignof _ -> cont 47#
-               CTokAsm _ -> cont 48#
-               CTokAuto _ -> cont 49#
-               CTokBreak _ -> cont 50#
-               CTokBool _ -> cont 51#
-               CTokCase _ -> cont 52#
-               CTokChar _ -> cont 53#
-               CTokConst _ -> cont 54#
-               CTokContinue _ -> cont 55#
-               CTokComplex _ -> cont 56#
-               CTokDefault _ -> cont 57#
-               CTokDo _ -> cont 58#
-               CTokDouble _ -> cont 59#
-               CTokElse _ -> cont 60#
-               CTokEnum _ -> cont 61#
-               CTokExtern _ -> cont 62#
-               CTokFloat _ -> cont 63#
-               CTokFor _ -> cont 64#
-               CTokGoto _ -> cont 65#
-               CTokIf _ -> cont 66#
-               CTokInline _ -> cont 67#
-               CTokInt _ -> cont 68#
-               CTokLong _ -> cont 69#
-               CTokLabel _ -> cont 70#
-               CTokRegister _ -> cont 71#
-               CTokRestrict _ -> cont 72#
-               CTokReturn _ -> cont 73#
-               CTokShort _ -> cont 74#
-               CTokSigned _ -> cont 75#
-               CTokSizeof _ -> cont 76#
-               CTokStatic _ -> cont 77#
-               CTokStruct _ -> cont 78#
-               CTokSwitch _ -> cont 79#
-               CTokTypedef _ -> cont 80#
-               CTokTypeof _ -> cont 81#
-               CTokThread _ -> cont 82#
-               CTokUnion _ -> cont 83#
-               CTokUnsigned _ -> cont 84#
-               CTokVoid _ -> cont 85#
-               CTokVolatile _ -> cont 86#
-               CTokWhile _ -> cont 87#
-               CTokCLit _ _ -> cont 88#
-               CTokILit _ _ -> cont 89#
-               CTokFLit _ _ -> cont 90#
-               CTokSLit _ _ -> cont 91#
-               CTokIdent _ happy_dollar_dollar -> cont 92#
-               CTokTyIdent _ happy_dollar_dollar -> cont 93#
-               CTokGnuC GnuCAttrTok _ -> cont 94#
-               CTokGnuC GnuCExtTok _ -> cont 95#
-               CTokGnuC GnuCComplexReal _ -> cont 96#
-               CTokGnuC GnuCComplexImag _ -> cont 97#
-               CTokGnuC GnuCVaArg _ -> cont 98#
-               CTokGnuC GnuCOffsetof _ -> cont 99#
-               CTokGnuC GnuCTyCompat _ -> cont 100#
-               _ -> happyError' tk)
-happyError_ tk = happyError' tk
- 
-happyThen :: P a -> (a -> P b) -> P b
-happyThen = (>>=)
- 
-happyReturn :: a -> P a
-happyReturn = (return)
-happyThen1 = happyThen
- 
-happyReturn1 :: a -> P a
-happyReturn1 = happyReturn
- 
-happyError' :: CToken -> P a
-happyError' tk = (\ token -> happyError) tk
-translation_unit = happySomeParser
-  where happySomeParser
-          = happyThen (happyParse 0#) (\ x -> happyReturn (happyOut7 x))
-external_declaration = happySomeParser
-  where happySomeParser
-          = happyThen (happyParse 1#) (\ x -> happyReturn (happyOut9 x))
-statement = happySomeParser
-  where happySomeParser
-          = happyThen (happyParse 2#) (\ x -> happyReturn (happyOut12 x))
-expression = happySomeParser
-  where happySomeParser
-          = happyThen (happyParse 3#) (\ x -> happyReturn (happyOut117 x))
-happySeq = happyDontSeq
- 
-reverseList :: [a] -> Reversed [a]
-reverseList = Reversed . List.reverse
- 
-data Located a = L !a !Position
- 
-unL :: Located a -> a
-unL (L a pos) = a
- 
-instance Pos (Located a) where
-        posOf (L _ pos) = pos
- 
-{-# INLINE withNodeInfo #-}
- 
-withNodeInfo :: Pos node => node -> (NodeInfo -> a) -> P a
-withNodeInfo node mkAttrNode
-  = do name <- getNewName
-       lastTok <- getSavedToken
-       let firstPos = posOf node
-       let attrs = mkNodeInfo' firstPos (posLenOfTok $! lastTok) name
-       attrs `seq` return (mkAttrNode attrs)
- 
-{-# INLINE withLength #-}
- 
-withLength :: NodeInfo -> (NodeInfo -> a) -> P a
-withLength nodeinfo mkAttrNode
-  = do lastTok <- getSavedToken
-       let firstPos = posOfNode nodeinfo
-       let attrs
-             = mkNodeInfo' firstPos (posLenOfTok $! lastTok)
-                 (maybe (error "nameOfNode") id (nameOfNode nodeinfo))
-       attrs `seq` return (mkAttrNode attrs)
- 
-data CDeclrR = CDeclrR (Maybe Ident) (Reversed [CDerivedDeclr])
-                       (Maybe CStrLit) [CAttr] NodeInfo
- 
-reverseDeclr :: CDeclrR -> CDeclr
-reverseDeclr (CDeclrR ide reversedDDs asmname cattrs at)
-  = CDeclr ide (reverse reversedDDs) asmname cattrs at
- 
-instance CNode (CDeclrR) where
-        nodeInfo (CDeclrR _ _ _ _ n) = n
- 
-instance Pos (CDeclrR) where
-        posOf (CDeclrR _ _ _ _ n) = posOf n
- 
-{-# INLINE withAttribute #-}
- 
-withAttribute ::
-                Pos node => node -> [CAttr] -> (NodeInfo -> CDeclrR) -> P CDeclrR
-withAttribute node cattrs mkDeclrNode
-  = do name <- getNewName
-       let attrs = mkNodeInfo (posOf node) name
-       let newDeclr = appendDeclrAttrs cattrs $ mkDeclrNode attrs
-       attrs `seq` newDeclr `seq` return newDeclr
- 
-{-# INLINE withAttributePF #-}
- 
-withAttributePF ::
-                  Pos node =>
-                  node ->
-                    [CAttr] ->
-                      (NodeInfo -> CDeclrR -> CDeclrR) -> P (CDeclrR -> CDeclrR)
-withAttributePF node cattrs mkDeclrCtor
-  = do name <- getNewName
-       let attrs = mkNodeInfo (posOf node) name
-       let newDeclr = appendDeclrAttrs cattrs . mkDeclrCtor attrs
-       attrs `seq` newDeclr `seq` return newDeclr
- 
-appendObjAttrs :: [CAttr] -> CDeclr -> CDeclr
-appendObjAttrs newAttrs
-  (CDeclr ident indirections asmname cAttrs at)
-  = CDeclr ident indirections asmname (cAttrs ++ newAttrs) at
- 
-appendObjAttrsR :: [CAttr] -> CDeclrR -> CDeclrR
-appendObjAttrsR newAttrs
-  (CDeclrR ident indirections asmname cAttrs at)
-  = CDeclrR ident indirections asmname (cAttrs ++ newAttrs) at
- 
-setAsmName :: Maybe CStrLit -> CDeclrR -> P CDeclrR
-setAsmName mAsmName (CDeclrR ident indirections oldName cattrs at)
-  = case combineName mAsmName oldName of
-        Left (n1, n2) -> failP (posOf n2)
-                           ["Duplicate assembler name: ", showName n1, showName n2]
-        Right newName -> return $
-                           CDeclrR ident indirections newName cattrs at
-  where combineName Nothing Nothing = Right Nothing
-        combineName Nothing oldname@(Just _) = Right oldname
-        combineName newname@(Just _) Nothing = Right newname
-        combineName (Just n1) (Just n2) = Left (n1, n2)
-        showName (CStrLit cstr _) = show cstr
- 
-withAsmNameAttrs ::
-                 (Maybe CStrLit, [CAttr]) -> CDeclrR -> P CDeclrR
-withAsmNameAttrs (mAsmName, newAttrs) declr
-  = setAsmName mAsmName (appendObjAttrsR newAttrs declr)
- 
-appendDeclrAttrs :: [CAttr] -> CDeclrR -> CDeclrR
-appendDeclrAttrs newAttrs
-  (CDeclrR ident (Reversed []) asmname cattrs at)
-  = CDeclrR ident empty asmname (cattrs ++ newAttrs) at
-appendDeclrAttrs newAttrs
-  (CDeclrR ident (Reversed (x : xs)) asmname cattrs at)
-  = CDeclrR ident (Reversed (appendAttrs x : xs)) asmname cattrs at
-  where appendAttrs (CPtrDeclr typeQuals at)
-          = CPtrDeclr (typeQuals ++ map CAttrQual newAttrs) at
-        appendAttrs (CArrDeclr typeQuals arraySize at)
-          = CArrDeclr (typeQuals ++ map CAttrQual newAttrs) arraySize at
-        appendAttrs (CFunDeclr parameters cattrs at)
-          = CFunDeclr parameters (cattrs ++ newAttrs) at
- 
-ptrDeclr :: CDeclrR -> [CTypeQual] -> NodeInfo -> CDeclrR
-ptrDeclr (CDeclrR ident derivedDeclrs asmname cattrs dat) tyquals
-  at
-  = CDeclrR ident (derivedDeclrs `snoc` CPtrDeclr tyquals at) asmname
-      cattrs
-      dat
- 
-funDeclr ::
-         CDeclrR ->
-           (Either [Ident] ([CDecl], Bool)) -> [CAttr] -> NodeInfo -> CDeclrR
-funDeclr (CDeclrR ident derivedDeclrs asmname dcattrs dat) params
-  cattrs at
-  = CDeclrR ident (derivedDeclrs `snoc` CFunDeclr params cattrs at)
-      asmname
-      dcattrs
-      dat
- 
-arrDeclr ::
-         CDeclrR ->
-           [CTypeQual] -> Bool -> Bool -> Maybe CExpr -> NodeInfo -> CDeclrR
-arrDeclr (CDeclrR ident derivedDeclrs asmname cattrs dat) tyquals
-  var_sized static_size size_expr_opt at
-  = arr_sz `seq`
-      (CDeclrR ident (derivedDeclrs `snoc` CArrDeclr tyquals arr_sz at)
-         asmname
-         cattrs
-         dat)
-  where arr_sz
-          = case size_expr_opt of
-                Just e -> CArrSize static_size e
-                Nothing -> CNoArrSize var_sized
- 
-liftTypeQuals :: Reversed [CTypeQual] -> [CDeclSpec]
-liftTypeQuals = map CTypeQual . reverse
- 
-liftCAttrs :: [CAttr] -> [CDeclSpec]
-liftCAttrs = map (CTypeQual . CAttrQual)
- 
-addTrailingAttrs ::
-                 Reversed [CDeclSpec] -> [CAttr] -> Reversed [CDeclSpec]
-addTrailingAttrs declspecs new_attrs
-  = case viewr declspecs of
-        (specs_init,
-         CTypeSpec
-           (CSUType (CStruct tag name (Just def) def_attrs su_node)
-              node)) -> (specs_init `snoc`
-                           CTypeSpec
-                             (CSUType
-                                (CStruct tag name (Just def) (def_attrs ++ new_attrs) su_node)
-                                node))
-        (specs_init,
-         CTypeSpec
-           (CEnumType (CEnum name (Just def) def_attrs e_node)
-              node)) -> (specs_init `snoc`
-                           CTypeSpec
-                             (CEnumType (CEnum name (Just def) (def_attrs ++ new_attrs) e_node)
-                                node))
-        _ -> declspecs `rappend` (liftCAttrs new_attrs)
- 
-instance Pos a => Pos [a] where
-        posOf (x : _) = posOf x
- 
-instance Pos a => Pos (Reversed a) where
-        posOf (Reversed x) = posOf x
- 
-emptyDeclr :: CDeclrR
-emptyDeclr = CDeclrR Nothing empty Nothing [] undefNode
- 
-mkVarDeclr :: Ident -> NodeInfo -> CDeclrR
-mkVarDeclr ident = CDeclrR (Just ident) empty Nothing []
- 
-doDeclIdent :: [CDeclSpec] -> CDeclrR -> P ()
-doDeclIdent declspecs (CDeclrR mIdent _ _ _ _)
-  = case mIdent of
-        Nothing -> return ()
-        Just ident | any iypedef declspecs -> addTypedef ident
-                   | otherwise -> shadowTypedef ident
-  where iypedef (CStorageSpec (CTypedef _)) = True
-        iypedef _ = False
- 
-doFuncParamDeclIdent :: CDeclr -> P ()
-doFuncParamDeclIdent (CDeclr _ (CFunDeclr params _ _ : _) _ _ _)
-  = sequence_
-      [case getCDeclrIdent declr of
-           Nothing -> return ()
-           Just ident -> shadowTypedef ident
-       | CDecl _ dle _ <- either (const []) fst params,
-       (Just declr, _, _) <- dle]
-doFuncParamDeclIdent _ = return ()
- 
-getCDeclrIdent :: CDeclr -> Maybe Ident
-getCDeclrIdent (CDeclr mIdent _ _ _ _) = mIdent
- 
-happyError :: P a
-happyError = parseError
- 
-parseC :: InputStream -> Position -> Either ParseError CTranslUnit
-parseC input initialPosition
-  = fmap fst $
-      execParser translUnitP input initialPosition builtinTypeNames
-        (namesStartingFrom 0)
- 
-translUnitP :: P CTranslUnit
-translUnitP = translation_unit
- 
-extDeclP :: P CExtDecl
-extDeclP = external_declaration
- 
-statementP :: P CStat
-statementP = statement
- 
-expressionP :: P CExpr
-expressionP = expression
- 
-data Happy_IntList = HappyCons Int# Happy_IntList
- 
-infixr 9 `HappyStk`
- 
-data HappyStk a = HappyStk a (HappyStk a)
-happyParse start_state
-  = happyNewToken start_state notHappyAtAll notHappyAtAll
-happyAccept 0# tk st sts (_ `HappyStk` (ans `HappyStk` _))
-  = happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _)
-  = (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-happyDoAction i tk st
-  = case action of
-        0# -> happyFail i tk st
-        -1# -> happyAccept i tk st
-        n | (n <# (0# :: Int#)) -> (happyReduceArr ! rule) i tk st
-          where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))
-        n -> happyShift new_state i tk st
-          where new_state = (n -# (1# :: Int#))
-  where off = indexShortOffAddr happyActOffsets st
-        off_i = (off +# i)
-        check
-          = if (off_i >=# (0# :: Int#)) then
-              (indexShortOffAddr happyCheck off_i ==# i) else False
-        action
-          | check = indexShortOffAddr happyTable off_i
-          | otherwise = indexShortOffAddr happyDefActions st
-indexShortOffAddr (HappyA# arr) off
-  = narrow16Int# i intToInt16# i (i `iShiftL#` 16#) `iShiftRA#` 16#
-  where i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
-        i = word2Int# ((high `shiftL#` 8#) `or#` low)
-        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-        low = int2Word# (ord# (indexCharOffAddr# arr off'))
-        off' = off *# 2#
- 
-data HappyAddr = HappyA# Addr#
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _)
-  = let i = (case unsafeCoerce# x of
-                 (I# (i)) -> i)
-      in happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-happyShift new_state i tk st sts stk
-  = happyNewToken new_state (HappyCons (st) (sts))
-      ((happyInTok (tk)) `HappyStk` stk)
-happySpecReduce_0 i fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-  = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-happySpecReduce_1 i fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_)))
-  (v1 `HappyStk` stk')
-  = let r = fn v1 in
-      happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-happySpecReduce_2 i fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _
-  (HappyCons (_) (sts@((HappyCons (st@(action)) (_)))))
-  (v1 `HappyStk` (v2 `HappyStk` stk'))
-  = let r = fn v1 v2 in
-      happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-happySpecReduce_3 i fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _
-  (HappyCons (_)
-     ((HappyCons (_) (sts@((HappyCons (st@(action)) (_)))))))
-  (v1 `HappyStk` (v2 `HappyStk` (v3 `HappyStk` stk')))
-  = let r = fn v1 v2 v3 in
-      happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-happyReduce k i fn 0# tk st sts stk = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-  = case happyDrop (k -# (1# :: Int#)) sts of
-        sts1@((HappyCons (st1@(action)) (_))) -> let r = fn stk in
-                                                   happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-happyMonadReduce k nt fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk
-  = happyThen1 (fn stk tk)
-      (\ r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-  where sts1@((HappyCons (st1@(action)) (_)))
-          = happyDrop k (HappyCons (st) (sts))
-        drop_stk = happyDropStk k stk
-happyMonad2Reduce k nt fn 0# tk st sts stk
-  = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk
-  = happyThen1 (fn stk tk)
-      (\ r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-  where sts1@((HappyCons (st1@(action)) (_)))
-          = happyDrop k (HappyCons (st) (sts))
-        drop_stk = happyDropStk k stk
-        off = indexShortOffAddr happyGotoOffsets st1
-        off_i = (off +# nt)
-        new_state = indexShortOffAddr happyTable off_i
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n -# (1# :: Int#)) t
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs)
-  = happyDropStk (n -# (1# :: Int#)) xs
-happyGoto nt j tk st = happyDoAction j tk new_state
-  where off = indexShortOffAddr happyGotoOffsets st
-        off_i = (off +# nt)
-        new_state = indexShortOffAddr happyTable off_i
-happyFail 0# tk old_st _ stk = happyError_ tk
-happyFail i tk (action) sts stk
-  = happyDoAction 0# tk action sts
-      ((unsafeCoerce# (I# (i))) `HappyStk` stk)
-notHappyAtAll = error "Internal Happy error\n"
- 
-happyTcHack :: Int# -> a -> a
-happyTcHack x y = y
- 
-{-# INLINE happyTcHack #-}
- 
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq a b = a `seq` b
-happyDontSeq a b = b
- 
-{-# NOINLINE happyDoAction #-}
- 
-{-# NOINLINE happyTable #-}
- 
-{-# NOINLINE happyCheck #-}
- 
-{-# NOINLINE happyActOffsets #-}
- 
-{-# NOINLINE happyGotoOffsets #-}
- 
-{-# NOINLINE happyDefActions #-}
- 
-{-# NOINLINE happyShift #-}
- 
-{-# NOINLINE happySpecReduce_0 #-}
- 
-{-# NOINLINE happySpecReduce_1 #-}
- 
-{-# NOINLINE happySpecReduce_2 #-}
- 
-{-# NOINLINE happySpecReduce_3 #-}
- 
-{-# NOINLINE happyReduce #-}
- 
-{-# NOINLINE happyMonadReduce #-}
- 
-{-# NOINLINE happyGoto #-}
- 
-{-# NOINLINE happyFail #-}
diff --git a/tests/examples/CStyleLinePragmas.hs.parser.golden b/tests/examples/CStyleLinePragmas.hs.parser.golden
--- a/tests/examples/CStyleLinePragmas.hs.parser.golden
+++ b/tests/examples/CStyleLinePragmas.hs.parser.golden
@@ -1,1 +1,2 @@
-ParseFailed (SrcLoc "tests/examples/CStyleLinePragmas.hs" 1 1) "Parse error: #"
+ParseFailed
+  (SrcLoc "tests/examples/CStyleLinePragmas.hs" 1 1) "Parse error: #"
diff --git a/tests/examples/ClassContext.hs.parser.golden b/tests/examples/ClassContext.hs.parser.golden
--- a/tests/examples/ClassContext.hs.parser.golden
+++ b/tests/examples/ClassContext.hs.parser.golden
@@ -1,1 +1,228 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1,SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1,SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1,SrcSpan "tests/examples/ClassContext.hs" 2 1 2 1,SrcSpan "tests/examples/ClassContext.hs" 3 1 3 1,SrcSpan "tests/examples/ClassContext.hs" 3 1 3 1]}) Nothing [] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 1 35, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 3 1 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 1 2, srcInfoPoints = []}) "f"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 35, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9, srcInfoPoints = []}) "Ord")) [TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 10 1 17, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 10 1 11,SrcSpan "tests/examples/ClassContext.hs" 1 16 1 17]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 11 1 16, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 11 1 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 11 1 12, srcInfoPoints = []}) "i")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16, srcInfoPoints = []}) "Int"))))]))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 35, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 1 27 1 29]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 26, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 22, srcInfoPoints = []}) "i")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26, srcInfoPoints = []}) "Int")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 35, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 31, srcInfoPoints = []}) "i")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35, srcInfoPoints = []}) "Int")))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 2, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 3 2 14, srcInfoPoints = [SrcSpan "tests/examples/ClassContext.hs" 2 3 2 4]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14, srcInfoPoints = []}) "undefined")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClassContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClassContext.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ClassContext.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ClassContext.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 1 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassContext.hs" 1 3 1 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 1 1 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 35
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9
+                                    , srcInfoPoints = []
+                                    }
+                                  "Ord")))
+                         (TyParen
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 10 1 17
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ClassContext.hs" 1 10 1 11
+                                  , SrcSpan "tests/examples/ClassContext.hs" 1 16 1 17
+                                  ]
+                              }
+                            (TyApp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 11 1 16
+                                 , srcInfoPoints = []
+                                 }
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassContext.hs" 1 11 1 12
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassContext.hs" 1 11 1 12
+                                       , srcInfoPoints = []
+                                       }
+                                     "i"))
+                               (TyCon
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassContext.hs" 1 13 1 16
+                                          , srcInfoPoints = []
+                                          }
+                                        "Int")))))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ClassContext.hs" 1 27 1 29 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 26
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 21 1 22
+                           , srcInfoPoints = []
+                           }
+                         "i"))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 23 1 26
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 35
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 30 1 31
+                           , srcInfoPoints = []
+                           }
+                         "i"))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 32 1 35
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 1 2 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 3 2 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ClassContext.hs" 2 3 2 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 2 5 2 14
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ClassContext.hs.prettyprinter.golden b/tests/examples/ClassContext.hs.prettyprinter.golden
--- a/tests/examples/ClassContext.hs.prettyprinter.golden
+++ b/tests/examples/ClassContext.hs.prettyprinter.golden
@@ -1,4 +1,2 @@
-module Main (main) where
- 
 f :: Ord (i Int) => i Int -> i Int
 f = undefined
diff --git a/tests/examples/ClassDeclSrcSpan.hs.parser.golden b/tests/examples/ClassDeclSrcSpan.hs.parser.golden
--- a/tests/examples/ClassDeclSrcSpan.hs.parser.golden
+++ b/tests/examples/ClassDeclSrcSpan.hs.parser.golden
@@ -1,1 +1,204 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1]}) Nothing [] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 3 28, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 6,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 12 2 17,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 5,SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 11, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9, srcInfoPoints = []}) "C1")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11, srcInfoPoints = []}) "a"))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 13, srcInfoPoints = []}) "toString"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 28, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 19 3 21]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28, srcInfoPoints = []}) "String")))))]),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 13, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 4 5 6]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 3, srcInfoPoints = []}) "t1"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13, srcInfoPoints = []}) "String"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 13, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3, srcInfoPoints = []}) "t1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 13, srcInfoPoints = [SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 5]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13, srcInfoPoints = []}) "Hello" "Hello"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1
+            , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 3 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 1 2 6
+                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 12 2 17
+                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 5
+                , SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 7 2 9
+                     , srcInfoPoints = []
+                     }
+                   "C1"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 2 10 2 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 14 3 16 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 5 3 13
+                          , srcInfoPoints = []
+                          }
+                        "toString"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 19 3 21 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 17 3 18
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 3 22 3 28
+                                  , srcInfoPoints = []
+                                  }
+                                "String")))))
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 4 5 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 1 5 3
+                , srcInfoPoints = []
+                }
+              "t1"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 5 7 5 13
+                     , srcInfoPoints = []
+                     }
+                   "String")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 1 6 3
+                  , srcInfoPoints = []
+                  }
+                "t1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 13
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 4 6 5 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13
+                  , srcInfoPoints = []
+                  }
+                (String
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClassDeclSrcSpan.hs" 6 6 6 13
+                     , srcInfoPoints = []
+                     }
+                   "Hello"
+                   "Hello")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ClassDeclSrcSpan.hs.prettyprinter.golden b/tests/examples/ClassDeclSrcSpan.hs.prettyprinter.golden
--- a/tests/examples/ClassDeclSrcSpan.hs.prettyprinter.golden
+++ b/tests/examples/ClassDeclSrcSpan.hs.prettyprinter.golden
@@ -1,8 +1,5 @@
-module Main (main) where
- 
 class C1 a where
-         
         toString :: a -> String
- 
+
 t1 :: String
 t1 = "Hello"
diff --git a/tests/examples/ClassInstType.hs.parser.golden b/tests/examples/ClassInstType.hs.parser.golden
--- a/tests/examples/ClassInstType.hs.parser.golden
+++ b/tests/examples/ClassInstType.hs.parser.golden
@@ -1,1 +1,1420 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 1 18 1, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 1,SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 1,SrcSpan "tests/examples/ClassInstType.hs" 3 1 3 1,SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 1,SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 1,SrcSpan "tests/examples/ClassInstType.hs" 18 1 18 1,SrcSpan "tests/examples/ClassInstType.hs" 18 1 18 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 27, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 7,SrcSpan "tests/examples/ClassInstType.hs" 1 22 1 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 8 1 21, srcInfoPoints = []}) "ClassInstType") Nothing Nothing)) [] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 1 4 31, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 3 1 3 6,SrcSpan "tests/examples/ClassInstType.hs" 3 13 3 18,SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 3,SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 12, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 10, srcInfoPoints = []}) "Dir")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 11 3 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 11 3 12, srcInfoPoints = []}) "d"))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 31, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 4 12 4 14]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 31, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 4 12 4 14]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 11, srcInfoPoints = []}) "localDir"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 31, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 4 17 4 19]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 16, srcInfoPoints = []}) "d")) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 31, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31, srcInfoPoints = []}) "FilePath"))))))]),InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 1 17 0, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 9,SrcSpan "tests/examples/ClassInstType.hs" 6 24 6 29,SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 3,SrcSpan "tests/examples/ClassInstType.hs" 9 3 9 3,SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 23, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 23, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13, srcInfoPoints = []}) "Dir"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23, srcInfoPoints = []}) "Directory"))))) (Just [InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 15 37, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 15 37, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 11, srcInfoPoints = []}) "localDir") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 12 7 21, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 7 12 7 13,SrcSpan "tests/examples/ClassInstType.hs" 7 20 7 21]}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 18, srcInfoPoints = []}) "Local")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 19 7 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 19 7 20, srcInfoPoints = []}) "f")])] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 22 7 32, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 7 22 7 23]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32, srcInfoPoints = []}) "f"))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 3 15 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 3 9 11, srcInfoPoints = []}) "localDir") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 12 9 74, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 12 9 13,SrcSpan "tests/examples/ClassInstType.hs" 9 73 9 74]}) (PRec (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 73, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 19 9 20,SrcSpan "tests/examples/ClassInstType.hs" 9 27 9 28,SrcSpan "tests/examples/ClassInstType.hs" 9 52 9 53,SrcSpan "tests/examples/ClassInstType.hs" 9 72 9 73]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 18, srcInfoPoints = []}) "Darcs")) [PFieldPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 27, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 23 9 24]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 23, srcInfoPoints = []}) "url")) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 24 9 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 24 9 27, srcInfoPoints = []}) "url")),PFieldPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 52, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 40 9 41]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 40, srcInfoPoints = []}) "darcsVersion")) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 41 9 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 41 9 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 41 9 46, srcInfoPoints = []}) "Patch")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 47 9 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 47 9 52, srcInfoPoints = []}) "patch")]),PFieldPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 72, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 65 9 66]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 65, srcInfoPoints = []}) "subDirectory")) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 66 9 72, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 66 9 72, srcInfoPoints = []}) "subDir"))])] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 75 15 37, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 75 9 76]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 77 15 37, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 9 77 9 79,SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 5,SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 5,SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 5,SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 5,SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 5,SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 5,SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 38, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 10 9 10 11]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 8, srcInfoPoints = []}) "tmp")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 38, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 25, srcInfoPoints = []}) "createTempDir"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 26 10 27, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 26 10 27, srcInfoPoints = []}) 0 "0"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 28 10 38, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 10 28 10 38, srcInfoPoints = []}) "haskelld" "haskelld"))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 91, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 11 14 11 16]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 13, srcInfoPoints = []}) "darcsOut")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 91, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 42, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 32, srcInfoPoints = []}) "runDarcsCommand"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 33 11 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 33 11 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 33 11 36, srcInfoPoints = []}) "tmp")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 37 11 42, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 37 11 42, srcInfoPoints = []}) "get" "get"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 43 11 91, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 11 43 11 44,SrcSpan "tests/examples/ClassInstType.hs" 11 52 11 53,SrcSpan "tests/examples/ClassInstType.hs" 11 65 11 66,SrcSpan "tests/examples/ClassInstType.hs" 11 81 11 82,SrcSpan "tests/examples/ClassInstType.hs" 11 85 11 86,SrcSpan "tests/examples/ClassInstType.hs" 11 90 11 91]}) [Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 44 11 52, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 44 11 52, srcInfoPoints = []}) "--lazy" "--lazy"),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 53 11 65, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 53 11 65, srcInfoPoints = []}) "--to-match" "--to-match"),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 66 11 81, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 66 11 73, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 66 11 73, srcInfoPoints = []}) "hash " "hash ")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 73 11 75, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 73 11 75, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 73 11 75, srcInfoPoints = []}) "++"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 76 11 81, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 76 11 81, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 76 11 81, srcInfoPoints = []}) "patch"))),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 82 11 85, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 82 11 85, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 82 11 85, srcInfoPoints = []}) "url")),Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 86 11 90, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 11 86 11 90, srcInfoPoints = []}) "fs" "fs")])),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 19, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 10, srcInfoPoints = []}) "print"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 11 12 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 11 12 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 12 11 12 19, srcInfoPoints = []}) "darcsOut")))),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 40, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 8]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 40, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 9,SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 40, srcInfoPoints = []}) (PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 29, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 10,SrcSpan "tests/examples/ClassInstType.hs" 13 21 13 22,SrcSpan "tests/examples/ClassInstType.hs" 13 24 13 25,SrcSpan "tests/examples/ClassInstType.hs" 13 28 13 29]}) Boxed [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 10 13 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 10 13 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 10 13 21, srcInfoPoints = []}) "ExitSuccess")) [],PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 22 13 24, srcInfoPoints = []}) (Signless (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 22 13 24, srcInfoPoints = []})) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 22 13 24, srcInfoPoints = []}) "" ""),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 25 13 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 25 13 28, srcInfoPoints = []}) "out")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 30 13 40, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 13 30 13 31]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 32 13 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 32 13 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 13 32 13 40, srcInfoPoints = []}) "darcsOut")))) Nothing]),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 14, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 14, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 10, srcInfoPoints = []}) "print"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 11 14 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 11 14 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 14 11 14 14, srcInfoPoints = []}) "out")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 37, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 11, srcInfoPoints = []}) "return"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 12 15 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 12 15 13, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 12 15 13, srcInfoPoints = []}) "$"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 37, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 17, srcInfoPoints = []}) "tmp"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 18 15 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 18 15 21, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 18 15 21, srcInfoPoints = []}) "</>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 22 15 26, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 22 15 26, srcInfoPoints = []}) "fs" "fs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 27 15 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 27 15 30, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 27 15 30, srcInfoPoints = []}) "</>"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 31 15 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 31 15 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 15 31 15 37, srcInfoPoints = []}) "subDir")))))])) Nothing])]),TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 18, srcInfoPoints = [SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 5,SrcSpan "tests/examples/ClassInstType.hs" 17 10 17 11]}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 6 17 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 6 17 9, srcInfoPoints = []}) "URL")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18, srcInfoPoints = []}) "String")))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 1 18 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 18 1 18 1
+            , SrcSpan "tests/examples/ClassInstType.hs" 18 1 18 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ClassInstType.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/ClassInstType.hs" 1 22 1 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 1 8 1 21
+                 , srcInfoPoints = []
+                 }
+               "ClassInstType")
+            Nothing
+            Nothing))
+      []
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 1 4 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassInstType.hs" 3 1 3 6
+                , SrcSpan "tests/examples/ClassInstType.hs" 3 13 3 18
+                , SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 3
+                , SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 7 3 10
+                     , srcInfoPoints = []
+                     }
+                   "Dir"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 11 3 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 3 11 3 12
+                     , srcInfoPoints = []
+                     }
+                   "d")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ClassInstType.hs" 4 12 4 14 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ClassInstType.hs" 4 12 4 14 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 3 4 11
+                          , srcInfoPoints = []
+                          }
+                        "localDir"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ClassInstType.hs" 4 17 4 19 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 15 4 16
+                               , srcInfoPoints = []
+                               }
+                             "d"))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 31
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 4 20 4 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "IO")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 4 23 4 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "FilePath"))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 1 17 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassInstType.hs" 6 1 6 9
+                , SrcSpan "tests/examples/ClassInstType.hs" 6 24 6 29
+                , SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 3
+                , SrcSpan "tests/examples/ClassInstType.hs" 9 3 9 3
+                , SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 23
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 23
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 10 6 13
+                           , srcInfoPoints = []
+                           }
+                         "Dir")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 6 14 6 23
+                           , srcInfoPoints = []
+                           }
+                         "Directory")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 15 37
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 15 37
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 32
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 3 7 11
+                             , srcInfoPoints = []
+                             }
+                           "localDir")
+                        [ PParen
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 12 7 21
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ClassInstType.hs" 7 12 7 13
+                                  , SrcSpan "tests/examples/ClassInstType.hs" 7 20 7 21
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 20
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 18
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 7 13 7 18
+                                       , srcInfoPoints = []
+                                       }
+                                     "Local"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 7 19 7 20
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 7 19 7 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "f")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 22 7 32
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/ClassInstType.hs" 7 22 7 23 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 32
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/ClassInstType.hs" 7 24 7 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "return")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/ClassInstType.hs" 7 31 7 32
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))))
+                        Nothing
+                    , Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 3 15 37
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 3 9 11
+                             , srcInfoPoints = []
+                             }
+                           "localDir")
+                        [ PParen
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 12 9 74
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ClassInstType.hs" 9 12 9 13
+                                  , SrcSpan "tests/examples/ClassInstType.hs" 9 73 9 74
+                                  ]
+                              }
+                            (PRec
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 73
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/ClassInstType.hs" 9 19 9 20
+                                     , SrcSpan "tests/examples/ClassInstType.hs" 9 27 9 28
+                                     , SrcSpan "tests/examples/ClassInstType.hs" 9 52 9 53
+                                     , SrcSpan "tests/examples/ClassInstType.hs" 9 72 9 73
+                                     ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 18
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 9 13 9 18
+                                       , srcInfoPoints = []
+                                       }
+                                     "Darcs"))
+                               [ PFieldPat
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 27
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/ClassInstType.hs" 9 23 9 24 ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 20 9 23
+                                           , srcInfoPoints = []
+                                           }
+                                         "url"))
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 24 9 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 24 9 27
+                                           , srcInfoPoints = []
+                                           }
+                                         "url"))
+                               , PFieldPat
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 52
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/ClassInstType.hs" 9 40 9 41 ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 40
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 28 9 40
+                                           , srcInfoPoints = []
+                                           }
+                                         "darcsVersion"))
+                                   (PApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 41 9 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 41 9 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 9 41 9 46
+                                              , srcInfoPoints = []
+                                              }
+                                            "Patch"))
+                                      [ PVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/ClassInstType.hs" 9 47 9 52
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/ClassInstType.hs" 9 47 9 52
+                                               , srcInfoPoints = []
+                                               }
+                                             "patch")
+                                      ])
+                               , PFieldPat
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 72
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/ClassInstType.hs" 9 65 9 66 ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 65
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 53 9 65
+                                           , srcInfoPoints = []
+                                           }
+                                         "subDirectory"))
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ClassInstType.hs" 9 66 9 72
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 9 66 9 72
+                                           , srcInfoPoints = []
+                                           }
+                                         "subDir"))
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ClassInstType.hs" 9 75 15 37
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/ClassInstType.hs" 9 75 9 76 ]
+                             }
+                           (Do
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/ClassInstType.hs" 9 77 15 37
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/ClassInstType.hs" 9 77 9 79
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 5
+                                    , SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 0
+                                    ]
+                                }
+                              [ Generator
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 38
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/ClassInstType.hs" 10 9 10 11 ]
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 8
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 10 5 10 8
+                                          , srcInfoPoints = []
+                                          }
+                                        "tmp"))
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 38
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 10 12 10 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 10 12 10 25
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 10 12 10 25
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         10
+                                                         12
+                                                         10
+                                                         25
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "createTempDir")))
+                                        (Lit
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 10 26 10 27
+                                             , srcInfoPoints = []
+                                             }
+                                           (Int
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 10 26 10 27
+                                                , srcInfoPoints = []
+                                                }
+                                              0
+                                              "0")))
+                                     (Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 10 28 10 38
+                                          , srcInfoPoints = []
+                                          }
+                                        (String
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 10 28 10 38
+                                             , srcInfoPoints = []
+                                             }
+                                           "haskelld"
+                                           "haskelld")))
+                              , Generator
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 91
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/ClassInstType.hs" 11 14 11 16 ]
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 13
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 11 5 11 13
+                                          , srcInfoPoints = []
+                                          }
+                                        "darcsOut"))
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 91
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 11 17 11 42
+                                          , srcInfoPoints = []
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 11 17 11 36
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 11 17 11 32
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         11
+                                                         17
+                                                         11
+                                                         32
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/ClassInstType.hs"
+                                                            11
+                                                            17
+                                                            11
+                                                            32
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "runDarcsCommand")))
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 11 33 11 36
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         11
+                                                         33
+                                                         11
+                                                         36
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/ClassInstType.hs"
+                                                            11
+                                                            33
+                                                            11
+                                                            36
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "tmp"))))
+                                        (Lit
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 11 37 11 42
+                                             , srcInfoPoints = []
+                                             }
+                                           (String
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 11 37 11 42
+                                                , srcInfoPoints = []
+                                                }
+                                              "get"
+                                              "get")))
+                                     (List
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 11 43 11 91
+                                          , srcInfoPoints =
+                                              [ SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 43 11 44
+                                              , SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 52 11 53
+                                              , SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 65 11 66
+                                              , SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 81 11 82
+                                              , SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 85 11 86
+                                              , SrcSpan
+                                                  "tests/examples/ClassInstType.hs" 11 90 11 91
+                                              ]
+                                          }
+                                        [ Lit
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 11 44 11 52
+                                              , srcInfoPoints = []
+                                              }
+                                            (String
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 44 11 52
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "--lazy"
+                                               "--lazy")
+                                        , Lit
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 11 53 11 65
+                                              , srcInfoPoints = []
+                                              }
+                                            (String
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 53 11 65
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "--to-match"
+                                               "--to-match")
+                                        , InfixApp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 11 66 11 81
+                                              , srcInfoPoints = []
+                                              }
+                                            (Lit
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 66 11 73
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (String
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/ClassInstType.hs"
+                                                          11
+                                                          66
+                                                          11
+                                                          73
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "hash "
+                                                  "hash "))
+                                            (QVarOp
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 73 11 75
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/ClassInstType.hs"
+                                                          11
+                                                          73
+                                                          11
+                                                          75
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Symbol
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/ClassInstType.hs"
+                                                             11
+                                                             73
+                                                             11
+                                                             75
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "++")))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 76 11 81
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/ClassInstType.hs"
+                                                          11
+                                                          76
+                                                          11
+                                                          81
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/ClassInstType.hs"
+                                                             11
+                                                             76
+                                                             11
+                                                             81
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "patch")))
+                                        , Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 11 82 11 85
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 82 11 85
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/ClassInstType.hs"
+                                                          11
+                                                          82
+                                                          11
+                                                          85
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "url"))
+                                        , Lit
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 11 86 11 90
+                                              , srcInfoPoints = []
+                                              }
+                                            (String
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 11 86 11 90
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "fs"
+                                               "fs")
+                                        ]))
+                              , Qualifier
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 19
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 19
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 12 5 12 10
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 12 5 12 10
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 12 5 12 10
+                                                , srcInfoPoints = []
+                                                }
+                                              "print")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 12 11 12 19
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 12 11 12 19
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 12 11 12 19
+                                                , srcInfoPoints = []
+                                                }
+                                              "darcsOut"))))
+                              , LetStmt
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 40
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/ClassInstType.hs" 13 5 13 8 ]
+                                    }
+                                  (BDecls
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 40
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 9
+                                           , SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 0
+                                           ]
+                                       }
+                                     [ PatBind
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ClassInstType.hs" 13 9 13 40
+                                           , srcInfoPoints = []
+                                           }
+                                         (PTuple
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 13 9 13 29
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 13 9 13 10
+                                                  , SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 13 21 13 22
+                                                  , SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 13 24 13 25
+                                                  , SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 13 28 13 29
+                                                  ]
+                                              }
+                                            Boxed
+                                            [ PApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/ClassInstType.hs"
+                                                        13
+                                                        10
+                                                        13
+                                                        21
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/ClassInstType.hs"
+                                                           13
+                                                           10
+                                                           13
+                                                           21
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/ClassInstType.hs"
+                                                              13
+                                                              10
+                                                              13
+                                                              21
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "ExitSuccess"))
+                                                []
+                                            , PLit
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/ClassInstType.hs"
+                                                        13
+                                                        22
+                                                        13
+                                                        24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Signless
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/ClassInstType.hs"
+                                                           13
+                                                           22
+                                                           13
+                                                           24
+                                                     , srcInfoPoints = []
+                                                     })
+                                                (String
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/ClassInstType.hs"
+                                                           13
+                                                           22
+                                                           13
+                                                           24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   ""
+                                                   "")
+                                            , PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/ClassInstType.hs"
+                                                        13
+                                                        25
+                                                        13
+                                                        28
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/ClassInstType.hs"
+                                                           13
+                                                           25
+                                                           13
+                                                           28
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "out")
+                                            ])
+                                         (UnGuardedRhs
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ClassInstType.hs" 13 30 13 40
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 13 30 13 31
+                                                  ]
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/ClassInstType.hs" 13 32 13 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/ClassInstType.hs"
+                                                          13
+                                                          32
+                                                          13
+                                                          40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/ClassInstType.hs"
+                                                             13
+                                                             32
+                                                             13
+                                                             40
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "darcsOut"))))
+                                         Nothing
+                                     ])
+                              , Qualifier
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 14
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 14 5 14 10
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 14 5 14 10
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 14 5 14 10
+                                                , srcInfoPoints = []
+                                                }
+                                              "print")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 14 11 14 14
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 14 11 14 14
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 14 11 14 14
+                                                , srcInfoPoints = []
+                                                }
+                                              "out"))))
+                              , Qualifier
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 37
+                                    , srcInfoPoints = []
+                                    }
+                                  (InfixApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 37
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 15 5 15 11
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 15 5 15 11
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 5 15 11
+                                                , srcInfoPoints = []
+                                                }
+                                              "return")))
+                                     (QVarOp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 15 12 15 13
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 15 12 15 13
+                                             , srcInfoPoints = []
+                                             }
+                                           (Symbol
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 12 15 13
+                                                , srcInfoPoints = []
+                                                }
+                                              "$")))
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ClassInstType.hs" 15 14 15 37
+                                          , srcInfoPoints = []
+                                          }
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 15 14 15 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 14 15 17
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         15
+                                                         14
+                                                         15
+                                                         17
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/ClassInstType.hs"
+                                                            15
+                                                            14
+                                                            15
+                                                            17
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "tmp")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 18 15 21
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         15
+                                                         18
+                                                         15
+                                                         21
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/ClassInstType.hs"
+                                                            15
+                                                            18
+                                                            15
+                                                            21
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "</>")))
+                                           (Lit
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 22 15 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (String
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         15
+                                                         22
+                                                         15
+                                                         26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "fs"
+                                                 "fs")))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 15 27 15 30
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 27 15 30
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         15
+                                                         27
+                                                         15
+                                                         30
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "</>")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/ClassInstType.hs" 15 31 15 37
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/ClassInstType.hs" 15 31 15 37
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/ClassInstType.hs"
+                                                         15
+                                                         31
+                                                         15
+                                                         37
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "subDir")))))
+                              ]))
+                        Nothing
+                    ])
+             ])
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClassInstType.hs" 17 1 17 5
+                , SrcSpan "tests/examples/ClassInstType.hs" 17 10 17 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 6 17 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ClassInstType.hs" 17 6 17 9
+                  , srcInfoPoints = []
+                  }
+                "URL"))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClassInstType.hs" 17 12 17 18
+                     , srcInfoPoints = []
+                     }
+                   "String")))
+      ]
+  , []
+  )
diff --git a/tests/examples/ClassInstType.hs.prettyprinter.golden b/tests/examples/ClassInstType.hs.prettyprinter.golden
--- a/tests/examples/ClassInstType.hs.prettyprinter.golden
+++ b/tests/examples/ClassInstType.hs.prettyprinter.golden
@@ -1,9 +1,8 @@
 module ClassInstType where
- 
+
 class Dir d where
-         
         localDir :: d -> IO FilePath
- 
+
 instance Dir Directory where
         localDir (Local f) = return f
         localDir
@@ -16,5 +15,5 @@
                let (ExitSuccess, "", out) = darcsOut
                print out
                return $ tmp </> "fs" </> subDir
- 
+
 type URL = String
diff --git a/tests/examples/ClosedTypeFamily.hs.parser.golden b/tests/examples/ClosedTypeFamily.hs.parser.golden
--- a/tests/examples/ClosedTypeFamily.hs.parser.golden
+++ b/tests/examples/ClosedTypeFamily.hs.parser.golden
@@ -1,1 +1,293 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 9 1, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 1,SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 1,SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 1,SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 1,SrcSpan "tests/examples/ClosedTypeFamily.hs" 9 1 9 1,SrcSpan "tests/examples/ClosedTypeFamily.hs" 9 1 9 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 30, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 7,SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 25 3 30]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 8 3 24, srcInfoPoints = []}) "ClosedTypeFamily") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 41, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 13,SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 26 1 27,SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 38 1 41]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 28 1 37, srcInfoPoints = []}) "DataKinds"]] [] [ClosedTypeFamDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 19, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 5,SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 6 5 12,SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 20 5 25]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 19, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 17, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 15, srcInfoPoints = []}) "Eq")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 16 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 16 5 17, srcInfoPoints = []}) "x"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 18 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 18 5 19, srcInfoPoints = []}) "y"))) Nothing [TypeEqn (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 16, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 10 6 11]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 9, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 7, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5, srcInfoPoints = []}) "Eq"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 6 6 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 6 6 7, srcInfoPoints = []}) "x"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 8 6 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 8 6 9, srcInfoPoints = []}) "x"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16, srcInfoPoints = []}) "True"))),TypeEqn (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 17, srcInfoPoints = [SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 10 7 11]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 9, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 7, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5, srcInfoPoints = []}) "Eq"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 6 7 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 6 7 7, srcInfoPoints = []}) "x"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 8 7 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 8 7 9, srcInfoPoints = []}) "y"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17, srcInfoPoints = []}) "False")))]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ClosedTypeFamily.hs" 9 1 9 1
+            , SrcSpan "tests/examples/ClosedTypeFamily.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 30
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 25 3 30
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ClosedTypeFamily.hs" 3 8 3 24
+                 , srcInfoPoints = []
+                 }
+               "ClosedTypeFamily")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 26 1 27
+                , SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 38 1 41
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ClosedTypeFamily.hs" 1 28 1 37
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      ]
+      []
+      [ ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 1 5 5
+                , SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 6 5 12
+                , SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 20 5 25
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 17
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 13 5 15
+                        , srcInfoPoints = []
+                        }
+                      "Eq"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 16 5 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 16 5 17
+                        , srcInfoPoints = []
+                        }
+                      "x")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 18 5 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ClosedTypeFamily.hs" 5 18 5 19
+                     , srcInfoPoints = []
+                     }
+                   "y")))
+          Nothing
+          Nothing
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 10 6 11 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 9
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 7
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 3 6 5
+                               , srcInfoPoints = []
+                               }
+                             "Eq")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 6 6 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 6 6 7
+                            , srcInfoPoints = []
+                            }
+                          "x")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 8 6 9
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 8 6 9
+                         , srcInfoPoints = []
+                         }
+                       "x")))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 6 12 6 16
+                         , srcInfoPoints = []
+                         }
+                       "True")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 10 7 11 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 9
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 7
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 3 7 5
+                               , srcInfoPoints = []
+                               }
+                             "Eq")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 6 7 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 6 7 7
+                            , srcInfoPoints = []
+                            }
+                          "x")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 8 7 9
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 8 7 9
+                         , srcInfoPoints = []
+                         }
+                       "y")))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ClosedTypeFamily.hs" 7 12 7 17
+                         , srcInfoPoints = []
+                         }
+                       "False")))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ClosedTypeFamily.hs.prettyprinter.golden b/tests/examples/ClosedTypeFamily.hs.prettyprinter.golden
--- a/tests/examples/ClosedTypeFamily.hs.prettyprinter.golden
+++ b/tests/examples/ClosedTypeFamily.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 {-# LANGUAGE TypeFamilies, DataKinds #-}
 module ClosedTypeFamily where
- 
+
 type family Eq x y where
         Eq x x = True
         Eq x y = False
diff --git a/tests/examples/Completesig03A.hs b/tests/examples/Completesig03A.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Completesig03A.hs
@@ -0,0 +1,6 @@
+module Completesig03A where
+
+data A = A | B
+
+{-# COMPLETE A #-}
+
diff --git a/tests/examples/Completesig03A.hs.exactprinter.golden b/tests/examples/Completesig03A.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Completesig03A.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Completesig03A.hs.parser.golden b/tests/examples/Completesig03A.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Completesig03A.hs.parser.golden
@@ -0,0 +1,123 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Completesig03A.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Completesig03A.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Completesig03A.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Completesig03A.hs" 5 1 5 1
+            , SrcSpan "tests/examples/Completesig03A.hs" 7 1 7 1
+            , SrcSpan "tests/examples/Completesig03A.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 1 1 1 28
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Completesig03A.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/Completesig03A.hs" 1 23 1 28
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 1 8 1 22
+                 , srcInfoPoints = []
+                 }
+               "Completesig03A")
+            Nothing
+            Nothing))
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 3 1 3 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Completesig03A.hs" 3 8 3 9
+                , SrcSpan "tests/examples/Completesig03A.hs" 3 12 3 13
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 3 6 3 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                "A"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/Completesig03A.hs" 3 10 3 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/Completesig03A.hs" 3 10 3 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/Completesig03A.hs" 3 10 3 11
+                      , srcInfoPoints = []
+                      }
+                    "A")
+                 [])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/Completesig03A.hs" 3 14 3 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/Completesig03A.hs" 3 14 3 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/Completesig03A.hs" 3 14 3 15
+                      , srcInfoPoints = []
+                      }
+                    "B")
+                 [])
+          ]
+          []
+      , CompletePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Completesig03A.hs" 5 1 5 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Completesig03A.hs" 5 1 5 13
+                , SrcSpan "tests/examples/Completesig03A.hs" 5 16 5 19
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/Completesig03A.hs" 5 14 5 15
+                , srcInfoPoints = []
+                }
+              "A"
+          ]
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/Completesig03A.hs.prettyparser.golden b/tests/examples/Completesig03A.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Completesig03A.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Completesig03A.hs.prettyprinter.golden b/tests/examples/Completesig03A.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Completesig03A.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+module Completesig03A where
+
+data A = A
+       | B
+
+{-# COMPLETE A #-}
diff --git a/tests/examples/ConstraintKinds.hs.parser.golden b/tests/examples/ConstraintKinds.hs.parser.golden
--- a/tests/examples/ConstraintKinds.hs.parser.golden
+++ b/tests/examples/ConstraintKinds.hs.parser.golden
@@ -1,1 +1,493 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 11 1, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 1,SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 1,SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 1,SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1,SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1,SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1,SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1,SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 1,SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 1,SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 1,SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1,SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 13,SrcSpan "tests/examples/ConstraintKinds.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 33, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 13,SrcSpan "tests/examples/ConstraintKinds.hs" 2 30 2 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 2 14 2 29, srcInfoPoints = []}) "ConstraintKinds"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 39, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 13,SrcSpan "tests/examples/ConstraintKinds.hs" 3 36 3 39]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 3 14 3 35, srcInfoPoints = []}) "MultiParamTypeClasses"]] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 6 0, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 6,SrcSpan "tests/examples/ConstraintKinds.hs" 4 13 4 18,SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1,SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1,SrcSpan "tests/examples/ConstraintKinds.hs" 6 0 6 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 12, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10, srcInfoPoints = []}) "Foo")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12, srcInfoPoints = []}) "a"))) [] (Just []),DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5, srcInfoPoints = []}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 11, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9, srcInfoPoints = []}) "Bar")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11, srcInfoPoints = []}) "a"))) [] Nothing,TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 37, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 5,SrcSpan "tests/examples/ConstraintKinds.hs" 7 18 7 19]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 17, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 15, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13, srcInfoPoints = []}) "Bazable")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17, srcInfoPoints = []}) "b"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 37, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 21,SrcSpan "tests/examples/ConstraintKinds.hs" 7 36 7 37]}) (TyEquals (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 36, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 7 27 7 28]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 26, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24, srcInfoPoints = []}) "Bar"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26, srcInfoPoints = []}) "a"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 36, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34, srcInfoPoints = []}) "Maybe"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36, srcInfoPoints = []}) "b"))))),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 29, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 9 5 9 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 4, srcInfoPoints = []}) "baz"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 29, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15, srcInfoPoints = []}) "Bazable")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19, srcInfoPoints = []}) "b")]))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 29, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 9 25 9 27]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24, srcInfoPoints = []}) "a")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29, srcInfoPoints = []}) "a")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 9, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4, srcInfoPoints = []}) "baz")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 9, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9, srcInfoPoints = []}) "id")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 11 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1
+            , SrcSpan "tests/examples/ConstraintKinds.hs" 11 1 11 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 2 1 2 13
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 2 30 2 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds.hs" 2 14 2 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 3 1 3 13
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 3 36 3 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds.hs" 3 14 3 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 6 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 4 1 4 6
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 4 13 4 18
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 1
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 6 0 6 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 4 7 4 10
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 4 11 4 12
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just [])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 1 6 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 6 6 6 9
+                     , srcInfoPoints = []
+                     }
+                   "Bar"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 6 10 6 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          []
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 1 7 5
+                , SrcSpan "tests/examples/ConstraintKinds.hs" 7 18 7 19
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 17
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 15
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 6 7 13
+                        , srcInfoPoints = []
+                        }
+                      "Bazable"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 14 7 15
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 16 7 17
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyParen
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 20 7 21
+                   , SrcSpan "tests/examples/ConstraintKinds.hs" 7 36 7 37
+                   ]
+               }
+             (TyEquals
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ConstraintKinds.hs" 7 27 7 28 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 26
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstraintKinds.hs" 7 21 7 24
+                              , srcInfoPoints = []
+                              }
+                            "Bar")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 25 7 26
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 36
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstraintKinds.hs" 7 29 7 34
+                              , srcInfoPoints = []
+                              }
+                            "Maybe")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstraintKinds.hs" 7 35 7 36
+                           , srcInfoPoints = []
+                           }
+                         "b")))))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 5 9 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds.hs" 9 1 9 4
+                , srcInfoPoints = []
+                }
+              "baz"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 29
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15
+                                       , srcInfoPoints = []
+                                       }
+                                     "Bazable")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ConstraintKinds.hs" 9 16 9 17
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19
+                                 , srcInfoPoints = []
+                                 }
+                               "b"))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 25 9 27 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 23 9 24
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 9 28 9 29
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 9
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 10 1 10 4
+                  , srcInfoPoints = []
+                  }
+                "baz"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 9
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ConstraintKinds.hs" 10 5 10 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds.hs" 10 7 10 9
+                        , srcInfoPoints = []
+                        }
+                      "id"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ConstraintKinds.hs.prettyprinter.golden b/tests/examples/ConstraintKinds.hs.prettyprinter.golden
--- a/tests/examples/ConstraintKinds.hs.prettyprinter.golden
+++ b/tests/examples/ConstraintKinds.hs.prettyprinter.golden
@@ -1,13 +1,12 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
-module Main (main) where
- 
-class Foo a
- 
+
+class Foo a where
+
 data Bar a
- 
+
 type Bazable a b = (Bar a ~ Maybe b)
- 
+
 baz :: Bazable a b => a -> a
 baz = id
diff --git a/tests/examples/ConstraintKinds2.hs.parser.golden b/tests/examples/ConstraintKinds2.hs.parser.golden
--- a/tests/examples/ConstraintKinds2.hs.parser.golden
+++ b/tests/examples/ConstraintKinds2.hs.parser.golden
@@ -1,1 +1,216 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 1,SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 13,SrcSpan "tests/examples/ConstraintKinds2.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 1 14 1 29, srcInfoPoints = []}) "ConstraintKinds"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 23, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 13,SrcSpan "tests/examples/ConstraintKinds2.hs" 2 20 2 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 2 14 2 19, srcInfoPoints = []}) "GADTs"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 28, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 13,SrcSpan "tests/examples/ConstraintKinds2.hs" 3 25 3 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 3 14 3 24, srcInfoPoints = []}) "RankNTypes"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 7 0, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 5 13 5 18,SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 5,SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 0]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 12, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 10, srcInfoPoints = []}) "Dict")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 11 5 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 5 11 5 12, srcInfoPoints = []}) "p"))) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 24, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 6 10 6 12]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 9, srcInfoPoints = []}) "Dict") Nothing (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 24, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17]}) (VarA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17, srcInfoPoints = [SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 14, srcInfoPoints = []}) "p")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 24, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22, srcInfoPoints = []}) "Dict"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 23 6 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ConstraintKinds2.hs" 6 23 6 24, srcInfoPoints = []}) "p"))))] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ConstraintKinds2.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds2.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds2.hs" 2 1 2 13
+                , SrcSpan "tests/examples/ConstraintKinds2.hs" 2 20 2 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds2.hs" 2 14 2 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds2.hs" 3 1 3 13
+                , SrcSpan "tests/examples/ConstraintKinds2.hs" 3 25 3 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds2.hs" 3 14 3 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 7 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds2.hs" 5 13 5 18
+                , SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 5
+                , SrcSpan "tests/examples/ConstraintKinds2.hs" 7 1 7 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds2.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds2.hs" 5 6 5 10
+                     , srcInfoPoints = []
+                     }
+                   "Dict"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds2.hs" 5 11 5 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds2.hs" 5 11 5 12
+                     , srcInfoPoints = []
+                     }
+                   "p")))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 24
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 10 6 12 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ConstraintKinds2.hs" 6 5 6 9
+                   , srcInfoPoints = []
+                   }
+                 "Dict")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 24
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]
+                         }
+                       (TypeA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 14
+                                  , srcInfoPoints = []
+                                  }
+                                "p")))))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 24
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ConstraintKinds2.hs" 6 18 6 22
+                               , srcInfoPoints = []
+                               }
+                             "Dict")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ConstraintKinds2.hs" 6 23 6 24
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ConstraintKinds2.hs" 6 23 6 24
+                            , srcInfoPoints = []
+                            }
+                          "p"))))
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/ConstraintKinds2.hs.prettyprinter.golden b/tests/examples/ConstraintKinds2.hs.prettyprinter.golden
--- a/tests/examples/ConstraintKinds2.hs.prettyprinter.golden
+++ b/tests/examples/ConstraintKinds2.hs.prettyprinter.golden
@@ -1,7 +1,6 @@
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE RankNTypes #-}
-module Main (main) where
- 
+
 data Dict p where
         Dict :: p => Dict p
diff --git a/tests/examples/ConstraintKinds3.hs b/tests/examples/ConstraintKinds3.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstraintKinds3.hs
@@ -0,0 +1,7 @@
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+class Foo c a where
+
+  bar :: (c a) => a -> a
+
diff --git a/tests/examples/ConstraintKinds3.hs.exactprinter.golden b/tests/examples/ConstraintKinds3.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstraintKinds3.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ConstraintKinds3.hs.parser.golden b/tests/examples/ConstraintKinds3.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstraintKinds3.hs.parser.golden
@@ -0,0 +1,246 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 1
+            , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ConstraintKinds3.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds3.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 2 1 2 13
+                , SrcSpan "tests/examples/ConstraintKinds3.hs" 2 36 2 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstraintKinds3.hs" 2 14 2 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 6 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 4 1 4 6
+                , SrcSpan "tests/examples/ConstraintKinds3.hs" 4 15 4 20
+                , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 3
+                , SrcSpan "tests/examples/ConstraintKinds3.hs" 8 1 8 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 14
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 12
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds3.hs" 4 7 4 10
+                        , srcInfoPoints = []
+                        }
+                      "Foo"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 11 4 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstraintKinds3.hs" 4 11 4 12
+                        , srcInfoPoints = []
+                        }
+                      "c")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstraintKinds3.hs" 4 13 4 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstraintKinds3.hs" 4 13 4 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 25
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 7 6 9 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 25
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 7 6 9 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ConstraintKinds3.hs" 6 3 6 6
+                          , srcInfoPoints = []
+                          }
+                        "bar"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 25
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 18
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 11
+                                   , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 14 6 15
+                                   , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 16 6 18
+                                   ]
+                               }
+                             (ParenA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 18
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 10 6 11
+                                      , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 14 6 15
+                                      , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 16 6 18
+                                      ]
+                                  }
+                                (TypeA
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/ConstraintKinds3.hs" 6 11 6 14
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ConstraintKinds3.hs" 6 11 6 12
+                                              , srcInfoPoints = []
+                                              }
+                                            "c"))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/ConstraintKinds3.hs" 6 13 6 14
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/ConstraintKinds3.hs" 6 13 6 14
+                                              , srcInfoPoints = []
+                                              }
+                                            "a")))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 25
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ConstraintKinds3.hs" 6 21 6 23 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 19 6 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ConstraintKinds3.hs" 6 24 6 25
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ConstraintKinds3.hs" 6 24 6 25
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/ConstraintKinds3.hs.prettyparser.golden b/tests/examples/ConstraintKinds3.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstraintKinds3.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ConstraintKinds3.hs.prettyprinter.golden b/tests/examples/ConstraintKinds3.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstraintKinds3.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+class Foo c a where
+        bar :: (c a) => a -> a
diff --git a/tests/examples/ConstructorAndClassOperators.hs b/tests/examples/ConstructorAndClassOperators.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstructorAndClassOperators.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE TypeOperators, MultiParamTypeClasses #-}
+
+ins :: (:=>) b h => b :- h
+
+data (:><:) a b = (:><:) a b
diff --git a/tests/examples/ConstructorAndClassOperators.hs.exactprinter.golden b/tests/examples/ConstructorAndClassOperators.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstructorAndClassOperators.hs.exactprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE TypeOperators, MultiParamTypeClasses #-}
+
+ins :: (:=>) b h => b :- h
+
+data :><:   a b = :><:   a b
+
diff --git a/tests/examples/ConstructorAndClassOperators.hs.parser.golden b/tests/examples/ConstructorAndClassOperators.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstructorAndClassOperators.hs.parser.golden
@@ -0,0 +1,354 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 1 1 54
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 1 1 13
+                , SrcSpan
+                    "tests/examples/ConstructorAndClassOperators.hs" 1 27 1 28
+                , SrcSpan
+                    "tests/examples/ConstructorAndClassOperators.hs" 1 51 1 54
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 1 29 1 50
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 1 3 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 5 3 7
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 1 3 4
+                , srcInfoPoints = []
+                }
+              "ins"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 27
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20
+                     , srcInfoPoints =
+                         [ SrcSpan
+                             "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20
+                        , srcInfoPoints =
+                            [ SrcSpan
+                                "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20
+                            ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20
+                           , srcInfoPoints =
+                               [ SrcSpan
+                                   "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20
+                               ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20
+                              , srcInfoPoints =
+                                  [ SrcSpan
+                                      "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20
+                                  ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20
+                                 , srcInfoPoints =
+                                     [ SrcSpan
+                                         "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20
+                                     ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 13
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 9
+                                        , SrcSpan
+                                            "tests/examples/ConstructorAndClassOperators.hs"
+                                            3
+                                            9
+                                            3
+                                            12
+                                        , SrcSpan
+                                            "tests/examples/ConstructorAndClassOperators.hs"
+                                            3
+                                            12
+                                            3
+                                            13
+                                        ]
+                                    }
+                                  (Symbol
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/ConstructorAndClassOperators.hs"
+                                             3
+                                             9
+                                             3
+                                             12
+                                       , srcInfoPoints = []
+                                       }
+                                     ":=>")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/ConstructorAndClassOperators.hs" 3 14 3 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/ConstructorAndClassOperators.hs" 3 14 3 15
+                                    , srcInfoPoints = []
+                                    }
+                                  "b")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 16 3 17
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/ConstructorAndClassOperators.hs" 3 16 3 17
+                                 , srcInfoPoints = []
+                                 }
+                               "h"))))))
+             (TyInfix
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 21 3 27
+                  , srcInfoPoints = []
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 21 3 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 21 3 22
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (UnpromotedName
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 23 3 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 23 3 25
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 23 3 25
+                           , srcInfoPoints = []
+                           }
+                         ":-")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 26 3 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 26 3 27
+                        , srcInfoPoints = []
+                        }
+                      "h"))))
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 1 5 29
+            , srcInfoPoints =
+                [ SrcSpan
+                    "tests/examples/ConstructorAndClassOperators.hs" 5 17 5 18
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 6 5 16
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 6 5 14
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 6 5 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 6 5 7
+                         , SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 7 5 11
+                         , SrcSpan
+                             "tests/examples/ConstructorAndClassOperators.hs" 5 11 5 12
+                         ]
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 7 5 11
+                        , srcInfoPoints = []
+                        }
+                      ":><:"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 13 5 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 13 5 14
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 15 5 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 15 5 16
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 19 5 29
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 19 5 29
+                   , srcInfoPoints = []
+                   }
+                 (Symbol
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 20 5 24
+                      , srcInfoPoints = []
+                      }
+                    ":><:")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 26 5 27
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 26 5 27
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 28 5 29
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 5 28 5 29
+                          , srcInfoPoints = []
+                          }
+                        "b")
+                 ])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/ConstructorAndClassOperators.hs.prettyparser.golden b/tests/examples/ConstructorAndClassOperators.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstructorAndClassOperators.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ConstructorAndClassOperators.hs.prettyprinter.golden b/tests/examples/ConstructorAndClassOperators.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ConstructorAndClassOperators.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE TypeOperators, MultiParamTypeClasses #-}
+
+ins :: (:=>) b h => b :- h
+
+data (:><:) a b = (:><:) a b
diff --git a/tests/examples/ContextOrdering.hs b/tests/examples/ContextOrdering.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ContextOrdering.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE ConstraintKinds #-}
+module ContextOrdering where
+
+foo :: (x m a) => Int
+foo = 5
diff --git a/tests/examples/ContextOrdering.hs.exactprinter.golden b/tests/examples/ContextOrdering.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ContextOrdering.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ContextOrdering.hs.parser.golden b/tests/examples/ContextOrdering.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ContextOrdering.hs.parser.golden
@@ -0,0 +1,208 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ContextOrdering.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ContextOrdering.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ContextOrdering.hs" 2 1 2 29
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ContextOrdering.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ContextOrdering.hs" 2 24 2 29
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ContextOrdering.hs" 2 8 2 23
+                 , srcInfoPoints = []
+                 }
+               "ContextOrdering")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ContextOrdering.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ContextOrdering.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ContextOrdering.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ContextOrdering.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ContextOrdering.hs" 4 1 4 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ContextOrdering.hs" 4 5 4 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 4 1 4 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ContextOrdering.hs" 4 8 4 22
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ContextOrdering.hs" 4 8 4 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ContextOrdering.hs" 4 8 4 9
+                         , SrcSpan "tests/examples/ContextOrdering.hs" 4 14 4 15
+                         , SrcSpan "tests/examples/ContextOrdering.hs" 4 16 4 18
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ContextOrdering.hs" 4 8 4 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ContextOrdering.hs" 4 8 4 9
+                            , SrcSpan "tests/examples/ContextOrdering.hs" 4 14 4 15
+                            , SrcSpan "tests/examples/ContextOrdering.hs" 4 16 4 18
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14
+                              , srcInfoPoints = []
+                              }
+                            (TyApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14
+                                 , srcInfoPoints = []
+                                 }
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 10
+                                       , srcInfoPoints = []
+                                       }
+                                     "x"))
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ContextOrdering.hs" 4 11 4 12
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ContextOrdering.hs" 4 11 4 12
+                                       , srcInfoPoints = []
+                                       }
+                                     "m")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ContextOrdering.hs" 4 13 4 14
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ContextOrdering.hs" 4 13 4 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ContextOrdering.hs" 4 19 4 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ContextOrdering.hs" 4 19 4 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ContextOrdering.hs" 4 19 4 22
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 1 5 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 1 5 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 1 5 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 5 5 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ContextOrdering.hs" 5 5 5 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 7 5 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ContextOrdering.hs" 5 7 5 8
+                     , srcInfoPoints = []
+                     }
+                   5
+                   "5")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ContextOrdering.hs.prettyparser.golden b/tests/examples/ContextOrdering.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ContextOrdering.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ContextOrdering.hs.prettyprinter.golden b/tests/examples/ContextOrdering.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ContextOrdering.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE ConstraintKinds #-}
+module ContextOrdering where
+
+foo :: (x m a) => Int
+foo = 5
diff --git a/tests/examples/CxtWhitespace.hs.parser.golden b/tests/examples/CxtWhitespace.hs.parser.golden
--- a/tests/examples/CxtWhitespace.hs.parser.golden
+++ b/tests/examples/CxtWhitespace.hs.parser.golden
@@ -1,1 +1,268 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 1,SrcSpan "tests/examples/CxtWhitespace.hs" 7 1 7 1,SrcSpan "tests/examples/CxtWhitespace.hs" 7 1 7 1]}) Nothing [] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 9]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 25, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 20, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 11,SrcSpan "tests/examples/CxtWhitespace.hs" 2 16 2 17,SrcSpan "tests/examples/CxtWhitespace.hs" 2 18 2 20]}) (ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 20, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 11,SrcSpan "tests/examples/CxtWhitespace.hs" 2 16 2 17,SrcSpan "tests/examples/CxtWhitespace.hs" 2 18 2 20]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 15 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 15 2 16, srcInfoPoints = []}) "h")])))) (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 25, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23, srcInfoPoints = []}) "Eq"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 24 2 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 24 2 25, srcInfoPoints = []}) "h")))) Nothing,InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 31, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 9]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 31, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 26, srcInfoPoints = [SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 11,SrcSpan "tests/examples/CxtWhitespace.hs" 5 16 5 17,SrcSpan "tests/examples/CxtWhitespace.hs" 5 22 5 23,SrcSpan "tests/examples/CxtWhitespace.hs" 5 24 5 26]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 15 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 15 5 16, srcInfoPoints = []}) "h")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 21 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 21 5 22, srcInfoPoints = []}) "h")]])) (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 31, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29, srcInfoPoints = []}) "Eq"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 30 5 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 30 5 31, srcInfoPoints = []}) "h")))) Nothing],[Comment False (SrcSpan "tests/examples/CxtWhitespace.hs" 1 1 1 13) " is not ok",Comment False (SrcSpan "tests/examples/CxtWhitespace.hs" 4 1 4 9) " is ok"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 1
+            , SrcSpan "tests/examples/CxtWhitespace.hs" 7 1 7 1
+            , SrcSpan "tests/examples/CxtWhitespace.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/CxtWhitespace.hs" 2 1 2 9 ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 25
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 11
+                         , SrcSpan "tests/examples/CxtWhitespace.hs" 2 16 2 17
+                         , SrcSpan "tests/examples/CxtWhitespace.hs" 2 18 2 20
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 20
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/CxtWhitespace.hs" 2 10 2 11
+                            , SrcSpan "tests/examples/CxtWhitespace.hs" 2 16 2 17
+                            , SrcSpan "tests/examples/CxtWhitespace.hs" 2 18 2 20
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14
+                                       , srcInfoPoints = []
+                                       }
+                                     "Eq")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 15 2 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/CxtWhitespace.hs" 2 15 2 16
+                                    , srcInfoPoints = []
+                                    }
+                                  "h")))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 25
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 21 2 23
+                           , srcInfoPoints = []
+                           }
+                         "Eq")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 24 2 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 24 2 25
+                        , srcInfoPoints = []
+                        }
+                      "h"))))
+          Nothing
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/CxtWhitespace.hs" 5 1 5 9 ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 31
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/CxtWhitespace.hs" 5 10 5 11
+                         , SrcSpan "tests/examples/CxtWhitespace.hs" 5 16 5 17
+                         , SrcSpan "tests/examples/CxtWhitespace.hs" 5 22 5 23
+                         , SrcSpan "tests/examples/CxtWhitespace.hs" 5 24 5 26
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 15 5 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/CxtWhitespace.hs" 5 15 5 16
+                                  , srcInfoPoints = []
+                                  }
+                                "h")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 21 5 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/CxtWhitespace.hs" 5 21 5 22
+                                  , srcInfoPoints = []
+                                  }
+                                "h")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 31
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 27 5 29
+                           , srcInfoPoints = []
+                           }
+                         "Eq")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 30 5 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 30 5 31
+                        , srcInfoPoints = []
+                        }
+                      "h"))))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/CxtWhitespace.hs" 1 1 1 13)
+        " is not ok"
+    , Comment
+        False (SrcSpan "tests/examples/CxtWhitespace.hs" 4 1 4 9) " is ok"
+    ]
+  )
diff --git a/tests/examples/CxtWhitespace.hs.prettyprinter.golden b/tests/examples/CxtWhitespace.hs.prettyprinter.golden
--- a/tests/examples/CxtWhitespace.hs.prettyprinter.golden
+++ b/tests/examples/CxtWhitespace.hs.prettyprinter.golden
@@ -1,5 +1,3 @@
-module Main (main) where
- 
 instance (Eq h) => Eq h
- 
+
 instance (Eq h, Eq h) => Eq h
diff --git a/tests/examples/DataHeadParen.hs.parser.golden b/tests/examples/DataHeadParen.hs.parser.golden
--- a/tests/examples/DataHeadParen.hs.parser.golden
+++ b/tests/examples/DataHeadParen.hs.parser.golden
@@ -1,1 +1,129 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 1,SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 1,SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 1,SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 1,SrcSpan "tests/examples/DataHeadParen.hs" 5 1 5 1,SrcSpan "tests/examples/DataHeadParen.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 7,SrcSpan "tests/examples/DataHeadParen.hs" 2 22 2 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 2 8 2 21, srcInfoPoints = []}) "DataHeadParen") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 13,SrcSpan "tests/examples/DataHeadParen.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 14 1 27, srcInfoPoints = []}) "TypeOperators"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 23, srcInfoPoints = [SrcSpan "tests/examples/DataHeadParen.hs" 4 18 4 19]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 5, srcInfoPoints = []})) Nothing (DHParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 6 4 16, srcInfoPoints = [SrcSpan "tests/examples/DataHeadParen.hs" 4 6 4 7,SrcSpan "tests/examples/DataHeadParen.hs" 4 15 4 16]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 15, srcInfoPoints = []}) (DHInfix (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 15, srcInfoPoints = []}) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 9, srcInfoPoints = []}) "a1")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 10 4 12, srcInfoPoints = []}) ":<")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 13 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 13 4 15, srcInfoPoints = []}) "a2")))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23, srcInfoPoints = []}) "Foo") [])] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DataHeadParen.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DataHeadParen.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DataHeadParen.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/DataHeadParen.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "DataHeadParen")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataHeadParen.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DataHeadParen.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataHeadParen.hs" 4 18 4 19 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 1 4 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHParen
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 6 4 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataHeadParen.hs" 4 6 4 7
+                   , SrcSpan "tests/examples/DataHeadParen.hs" 4 15 4 16
+                   ]
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 15
+                  , srcInfoPoints = []
+                  }
+                (DHInfix
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 15
+                     , srcInfoPoints = []
+                     }
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 7 4 9
+                           , srcInfoPoints = []
+                           }
+                         "a1"))
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 10 4 12
+                        , srcInfoPoints = []
+                        }
+                      ":<"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 13 4 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 13 4 15
+                        , srcInfoPoints = []
+                        }
+                      "a2"))))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DataHeadParen.hs" 4 20 4 23
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/DataHeadParen.hs.prettyprinter.golden b/tests/examples/DataHeadParen.hs.prettyprinter.golden
--- a/tests/examples/DataHeadParen.hs.prettyprinter.golden
+++ b/tests/examples/DataHeadParen.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 {-# LANGUAGE TypeOperators #-}
 module DataHeadParen where
- 
-data (:<) a1 a2 = Foo
+
+data (a1 :< a2) = Foo
diff --git a/tests/examples/DataKinds.hs b/tests/examples/DataKinds.hs
--- a/tests/examples/DataKinds.hs
+++ b/tests/examples/DataKinds.hs
@@ -1,15 +1,24 @@
 {-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
 
 class C1 (a :: Bool {- 1 -}) where
     c :: proxy a -> Int
 
 class C2 (a :: [ * ])
 
-class C3 (a :: [(Int, Double)])
+data Baz = Baz
+data Foo = Foo
 
+class C3 (a :: [(Baz, Foo)])
+
 class C4 (a :: ( * ))
 
+
+class C5 (a :: App foo baz)
+
+class C6 (a :: (parens))
+
 data X (a :: [*])
 
 x1 = undefined :: X '[Int]
@@ -19,3 +28,7 @@
 
 y1 = undefined :: Y '(Double, True)
 y2 = undefined :: Y '(Double, 'False {-comment-})
+
+
+z1 = undefined :: X [ a -> b, X '[] ]
+z2 = undefined :: Y (a -> b, True)
diff --git a/tests/examples/DataKinds.hs.parser.golden b/tests/examples/DataKinds.hs.parser.golden
--- a/tests/examples/DataKinds.hs.parser.golden
+++ b/tests/examples/DataKinds.hs.parser.golden
@@ -1,1 +1,1523 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 1 22 1, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 1 1 1 1,SrcSpan "tests/examples/DataKinds.hs" 2 1 2 1,SrcSpan "tests/examples/DataKinds.hs" 4 1 4 1,SrcSpan "tests/examples/DataKinds.hs" 4 1 4 1,SrcSpan "tests/examples/DataKinds.hs" 4 1 4 1,SrcSpan "tests/examples/DataKinds.hs" 7 1 7 1,SrcSpan "tests/examples/DataKinds.hs" 9 1 9 1,SrcSpan "tests/examples/DataKinds.hs" 11 1 11 1,SrcSpan "tests/examples/DataKinds.hs" 13 1 13 1,SrcSpan "tests/examples/DataKinds.hs" 15 1 15 1,SrcSpan "tests/examples/DataKinds.hs" 16 1 16 1,SrcSpan "tests/examples/DataKinds.hs" 18 1 18 1,SrcSpan "tests/examples/DataKinds.hs" 20 1 20 1,SrcSpan "tests/examples/DataKinds.hs" 21 1 21 1,SrcSpan "tests/examples/DataKinds.hs" 22 1 22 1,SrcSpan "tests/examples/DataKinds.hs" 22 1 22 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 1 1 1 13,SrcSpan "tests/examples/DataKinds.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 14 1 28, srcInfoPoints = []}) "KindSignatures"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 2 1 2 13,SrcSpan "tests/examples/DataKinds.hs" 2 24 2 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 2 14 2 23, srcInfoPoints = []}) "DataKinds"]] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 1 5 24, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 4 1 4 6,SrcSpan "tests/examples/DataKinds.hs" 4 30 4 35,SrcSpan "tests/examples/DataKinds.hs" 5 5 5 5,SrcSpan "tests/examples/DataKinds.hs" 7 1 7 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 7 4 29, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 7 4 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 7 4 9, srcInfoPoints = []}) "C1")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 10 4 29, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 4 10 4 11,SrcSpan "tests/examples/DataKinds.hs" 4 13 4 15,SrcSpan "tests/examples/DataKinds.hs" 4 28 4 29]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 11 4 12, srcInfoPoints = []}) "a") (KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 16 4 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 16 4 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 4 16 4 20, srcInfoPoints = []}) "Bool"))))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 5 5 24, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 5 7 5 9]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 5 5 24, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 5 7 5 9]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 5 5 6, srcInfoPoints = []}) "c"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 10 5 24, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 5 18 5 20]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 10 5 17, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 10 5 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 10 5 15, srcInfoPoints = []}) "proxy")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 17, srcInfoPoints = []}) "a"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 21 5 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 21 5 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 21 5 24, srcInfoPoints = []}) "Int")))))]),ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 1 7 22, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 7 1 7 6]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 7 7 22, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 7 7 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 7 7 9, srcInfoPoints = []}) "C2")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 10 7 22, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 7 10 7 11,SrcSpan "tests/examples/DataKinds.hs" 7 13 7 15,SrcSpan "tests/examples/DataKinds.hs" 7 21 7 22]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 11 7 12, srcInfoPoints = []}) "a") (KindList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 16 7 21, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 7 16 7 17,SrcSpan "tests/examples/DataKinds.hs" 7 20 7 21]}) [KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 7 18 7 19, srcInfoPoints = []})]))) [] Nothing,ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 1 9 32, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 9 1 9 6]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 7 9 32, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 7 9 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 7 9 9, srcInfoPoints = []}) "C3")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 10 9 32, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 9 10 9 11,SrcSpan "tests/examples/DataKinds.hs" 9 13 9 15,SrcSpan "tests/examples/DataKinds.hs" 9 31 9 32]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 11 9 12, srcInfoPoints = []}) "a") (KindList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 16 9 31, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 9 16 9 17,SrcSpan "tests/examples/DataKinds.hs" 9 30 9 31]}) [KindTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 17 9 30, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 9 17 9 18,SrcSpan "tests/examples/DataKinds.hs" 9 21 9 22,SrcSpan "tests/examples/DataKinds.hs" 9 29 9 30]}) [KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 18 9 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 18 9 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 18 9 21, srcInfoPoints = []}) "Int")),KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 23 9 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 23 9 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 9 23 9 29, srcInfoPoints = []}) "Double"))]]))) [] Nothing,ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 1 11 22, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 11 1 11 6]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 7 11 22, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 7 11 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 7 11 9, srcInfoPoints = []}) "C4")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 10 11 22, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 11 10 11 11,SrcSpan "tests/examples/DataKinds.hs" 11 13 11 15,SrcSpan "tests/examples/DataKinds.hs" 11 21 11 22]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 11 11 12, srcInfoPoints = []}) "a") (KindParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 16 11 21, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 11 16 11 17,SrcSpan "tests/examples/DataKinds.hs" 11 20 11 21]}) (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 18 11 19, srcInfoPoints = []}))))) [] Nothing,DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 1 13 5, srcInfoPoints = []}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 1 13 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 6 13 18, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 6 13 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 6 13 7, srcInfoPoints = []}) "X")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 8 13 18, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 13 8 13 9,SrcSpan "tests/examples/DataKinds.hs" 13 11 13 13,SrcSpan "tests/examples/DataKinds.hs" 13 17 13 18]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 9 13 10, srcInfoPoints = []}) "a") (KindList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 14 13 17, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 13 14 13 15,SrcSpan "tests/examples/DataKinds.hs" 13 16 13 17]}) [KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 15 13 16, srcInfoPoints = []})]))) [] Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 1 15 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 1 15 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 1 15 3, srcInfoPoints = []}) "x1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 4 15 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 15 4 15 5]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 6 15 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 15 16 15 18]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 6 15 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 6 15 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 6 15 15, srcInfoPoints = []}) "undefined"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 19 15 27, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 19 15 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 19 15 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 19 15 20, srcInfoPoints = []}) "X"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 21 15 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 15 21 15 22,SrcSpan "tests/examples/DataKinds.hs" 15 26 15 27]}) (PromotedList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 21 15 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 15 21 15 22,SrcSpan "tests/examples/DataKinds.hs" 15 26 15 27]}) True [PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 23 15 26, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 23 15 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 23 15 26, srcInfoPoints = []}) "Int"))]))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 1 16 35, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 1 16 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 1 16 3, srcInfoPoints = []}) "x2")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 4 16 35, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 16 4 16 5]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 6 16 35, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 16 16 16 18]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 6 16 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 6 16 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 6 16 15, srcInfoPoints = []}) "undefined"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 19 16 35, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 19 16 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 19 16 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 19 16 20, srcInfoPoints = []}) "X"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 21 16 35, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 16 21 16 22,SrcSpan "tests/examples/DataKinds.hs" 16 26 16 27,SrcSpan "tests/examples/DataKinds.hs" 16 34 16 35]}) (PromotedList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 21 16 35, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 16 21 16 22,SrcSpan "tests/examples/DataKinds.hs" 16 26 16 27,SrcSpan "tests/examples/DataKinds.hs" 16 34 16 35]}) True [PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 23 16 26, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 23 16 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 23 16 26, srcInfoPoints = []}) "Int")),PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 28 16 34, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 28 16 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 16 28 16 34, srcInfoPoints = []}) "Double"))]))))) Nothing,DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 1 18 5, srcInfoPoints = []}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 1 18 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 6 18 24, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 6 18 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 6 18 7, srcInfoPoints = []}) "Y")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 8 18 24, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 18 8 18 9,SrcSpan "tests/examples/DataKinds.hs" 18 11 18 13,SrcSpan "tests/examples/DataKinds.hs" 18 23 18 24]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 9 18 10, srcInfoPoints = []}) "a") (KindTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 14 18 23, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 18 14 18 15,SrcSpan "tests/examples/DataKinds.hs" 18 16 18 17,SrcSpan "tests/examples/DataKinds.hs" 18 22 18 23]}) [KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 15 18 16, srcInfoPoints = []}),KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 18 18 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 18 18 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 18 18 22, srcInfoPoints = []}) "Bool"))]))) [] Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 1 20 36, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 1 20 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 1 20 3, srcInfoPoints = []}) "y1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 4 20 36, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 20 4 20 5]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 6 20 36, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 20 16 20 18]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 6 20 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 6 20 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 6 20 15, srcInfoPoints = []}) "undefined"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 19 20 36, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 19 20 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 19 20 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 19 20 20, srcInfoPoints = []}) "Y"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 21 20 36, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 20 21 20 22,SrcSpan "tests/examples/DataKinds.hs" 20 29 20 30,SrcSpan "tests/examples/DataKinds.hs" 20 35 20 36]}) (PromotedTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 21 20 36, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 20 21 20 22,SrcSpan "tests/examples/DataKinds.hs" 20 29 20 30,SrcSpan "tests/examples/DataKinds.hs" 20 35 20 36]}) [PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 23 20 29, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 23 20 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 23 20 29, srcInfoPoints = []}) "Double")),PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 31 20 35, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 31 20 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 31 20 35, srcInfoPoints = []}) "True"))]))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 1 21 50, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 1 21 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 1 21 3, srcInfoPoints = []}) "y2")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 4 21 50, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 21 4 21 5]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 6 21 50, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 21 16 21 18]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 6 21 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 6 21 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 6 21 15, srcInfoPoints = []}) "undefined"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 19 21 50, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 19 21 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 19 21 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 19 21 20, srcInfoPoints = []}) "Y"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 21 21 50, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 21 21 21 22,SrcSpan "tests/examples/DataKinds.hs" 21 29 21 30,SrcSpan "tests/examples/DataKinds.hs" 21 49 21 50]}) (PromotedTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 21 21 50, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 21 21 21 22,SrcSpan "tests/examples/DataKinds.hs" 21 29 21 30,SrcSpan "tests/examples/DataKinds.hs" 21 49 21 50]}) [PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 23 21 29, srcInfoPoints = []}) False (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 23 21 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 23 21 29, srcInfoPoints = []}) "Double")),PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 31 21 37, srcInfoPoints = [SrcSpan "tests/examples/DataKinds.hs" 21 31 21 32]}) True (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 32 21 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 21 32 21 37, srcInfoPoints = []}) "False"))]))))) Nothing],[Comment True (SrcSpan "tests/examples/DataKinds.hs" 4 21 4 28) " 1 ",Comment True (SrcSpan "tests/examples/DataKinds.hs" 21 38 21 49) "comment"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 1 35 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DataKinds.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DataKinds.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DataKinds.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DataKinds.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DataKinds.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DataKinds.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DataKinds.hs" 8 1 8 1
+            , SrcSpan "tests/examples/DataKinds.hs" 10 1 10 1
+            , SrcSpan "tests/examples/DataKinds.hs" 11 1 11 1
+            , SrcSpan "tests/examples/DataKinds.hs" 13 1 13 1
+            , SrcSpan "tests/examples/DataKinds.hs" 15 1 15 1
+            , SrcSpan "tests/examples/DataKinds.hs" 18 1 18 1
+            , SrcSpan "tests/examples/DataKinds.hs" 20 1 20 1
+            , SrcSpan "tests/examples/DataKinds.hs" 22 1 22 1
+            , SrcSpan "tests/examples/DataKinds.hs" 24 1 24 1
+            , SrcSpan "tests/examples/DataKinds.hs" 25 1 25 1
+            , SrcSpan "tests/examples/DataKinds.hs" 27 1 27 1
+            , SrcSpan "tests/examples/DataKinds.hs" 29 1 29 1
+            , SrcSpan "tests/examples/DataKinds.hs" 30 1 30 1
+            , SrcSpan "tests/examples/DataKinds.hs" 33 1 33 1
+            , SrcSpan "tests/examples/DataKinds.hs" 34 1 34 1
+            , SrcSpan "tests/examples/DataKinds.hs" 35 1 35 1
+            , SrcSpan "tests/examples/DataKinds.hs" 35 1 35 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DataKinds.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 2 1 2 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 2 1 2 13
+                , SrcSpan "tests/examples/DataKinds.hs" 2 24 2 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 2 14 2 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 3 1 3 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 3 1 3 13
+                , SrcSpan "tests/examples/DataKinds.hs" 3 24 3 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 3 14 3 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 1 6 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 5 1 5 6
+                , SrcSpan "tests/examples/DataKinds.hs" 5 30 5 35
+                , SrcSpan "tests/examples/DataKinds.hs" 6 5 6 5
+                , SrcSpan "tests/examples/DataKinds.hs" 8 1 8 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 7 5 29
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 7 5 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 7 5 9
+                     , srcInfoPoints = []
+                     }
+                   "C1"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 10 5 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 5 10 5 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 5 13 5 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 5 28 5 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 11 5 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 20
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 5 6 24
+                   , srcInfoPoints = [ SrcSpan "tests/examples/DataKinds.hs" 6 7 6 9 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 5 6 24
+                      , srcInfoPoints = [ SrcSpan "tests/examples/DataKinds.hs" 6 7 6 9 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 5 6 6
+                          , srcInfoPoints = []
+                          }
+                        "c"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 10 6 24
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DataKinds.hs" 6 18 6 20 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 10 6 17
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 10 6 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 10 6 15
+                                  , srcInfoPoints = []
+                                  }
+                                "proxy"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 16 6 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 16 6 17
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 21 6 24
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 21 6 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 6 21 6 24
+                                  , srcInfoPoints = []
+                                  }
+                                "Int")))))
+             ])
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 1 8 22
+            , srcInfoPoints = [ SrcSpan "tests/examples/DataKinds.hs" 8 1 8 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 7 8 22
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 7 8 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 7 8 9
+                     , srcInfoPoints = []
+                     }
+                   "C2"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 10 8 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 8 10 8 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 8 13 8 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 8 21 8 22
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 11 8 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 16 8 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 8 16 8 17
+                         , SrcSpan "tests/examples/DataKinds.hs" 8 20 8 21
+                         ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 18 8 19
+                        , srcInfoPoints = []
+                        }))))
+          []
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 1 10 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 10 10 10 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 1 10 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 6 10 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 6 10 9
+                  , srcInfoPoints = []
+                  }
+                "Baz"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 12 10 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 12 10 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 10 12 10 15
+                      , srcInfoPoints = []
+                      }
+                    "Baz")
+                 [])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 1 11 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 11 10 11 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 1 11 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 6 11 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 6 11 9
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 12 11 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 12 11 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 11 12 11 15
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [])
+          ]
+          []
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 1 13 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 13 1 13 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 7 13 29
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 7 13 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 7 13 9
+                     , srcInfoPoints = []
+                     }
+                   "C3"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 10 13 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 13 10 13 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 13 13 13 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 13 28 13 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 11 13 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 16 13 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 13 16 13 17
+                         , SrcSpan "tests/examples/DataKinds.hs" 13 27 13 28
+                         ]
+                     }
+                   (TyTuple
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 17 13 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 13 17 13 18
+                            , SrcSpan "tests/examples/DataKinds.hs" 13 21 13 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 13 26 13 27
+                            ]
+                        }
+                      Boxed
+                      [ TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 18 13 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 18 13 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 18 13 21
+                                  , srcInfoPoints = []
+                                  }
+                                "Baz"))
+                      , TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 23 13 26
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 23 13 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 23 13 26
+                                  , srcInfoPoints = []
+                                  }
+                                "Foo"))
+                      ]))))
+          []
+          Nothing
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 1 15 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 15 1 15 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 7 15 22
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 7 15 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 7 15 9
+                     , srcInfoPoints = []
+                     }
+                   "C4"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 10 15 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 15 10 15 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 15 13 15 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 15 21 15 22
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 11 15 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 16 15 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 15 16 15 17
+                         , SrcSpan "tests/examples/DataKinds.hs" 15 20 15 21
+                         ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 18 15 19
+                        , srcInfoPoints = []
+                        }))))
+          []
+          Nothing
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 1 18 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 18 1 18 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 7 18 28
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 7 18 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 7 18 9
+                     , srcInfoPoints = []
+                     }
+                   "C5"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 10 18 28
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 18 10 18 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 18 13 18 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 18 27 18 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 11 18 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 27
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 23
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 19
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 19
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 19
+                                 , srcInfoPoints = []
+                                 }
+                               "App")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 20 18 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 20 18 23
+                              , srcInfoPoints = []
+                              }
+                            "foo")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 24 18 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 24 18 27
+                           , srcInfoPoints = []
+                           }
+                         "baz")))))
+          []
+          Nothing
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 1 20 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds.hs" 20 1 20 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 7 20 25
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 7 20 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 7 20 9
+                     , srcInfoPoints = []
+                     }
+                   "C6"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 10 20 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 20 10 20 11
+                      , SrcSpan "tests/examples/DataKinds.hs" 20 13 20 15
+                      , SrcSpan "tests/examples/DataKinds.hs" 20 24 20 25
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 11 20 12
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 16 20 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 20 16 20 17
+                         , SrcSpan "tests/examples/DataKinds.hs" 20 23 20 24
+                         ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 17 20 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 17 20 23
+                           , srcInfoPoints = []
+                           }
+                         "parens")))))
+          []
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 1 22 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 1 22 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 6 22 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 6 22 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 6 22 7
+                     , srcInfoPoints = []
+                     }
+                   "X"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 8 22 18
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 22 8 22 9
+                      , SrcSpan "tests/examples/DataKinds.hs" 22 11 22 13
+                      , SrcSpan "tests/examples/DataKinds.hs" 22 17 22 18
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 9 22 10
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 14 22 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 22 14 22 15
+                         , SrcSpan "tests/examples/DataKinds.hs" 22 16 22 17
+                         ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 15 22 16
+                        , srcInfoPoints = []
+                        }))))
+          []
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 1 24 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 1 24 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 1 24 3
+                  , srcInfoPoints = []
+                  }
+                "x1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 4 24 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 24 4 24 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 6 24 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 24 16 24 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 6 24 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 6 24 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 6 24 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 19 24 27
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 19 24 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 19 24 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 19 24 20
+                              , srcInfoPoints = []
+                              }
+                            "X")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 21 24 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 24 21 24 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 24 26 24 27
+                            ]
+                        }
+                      (PromotedList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 21 24 27
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DataKinds.hs" 24 21 24 22
+                               , SrcSpan "tests/examples/DataKinds.hs" 24 26 24 27
+                               ]
+                           }
+                         True
+                         [ TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 23 24 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 24 23 24 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 24 23 24 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))
+                         ])))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 1 25 35
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 1 25 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 1 25 3
+                  , srcInfoPoints = []
+                  }
+                "x2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 4 25 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 25 4 25 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 6 25 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 25 16 25 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 6 25 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 6 25 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 6 25 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 19 25 35
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 19 25 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 19 25 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 19 25 20
+                              , srcInfoPoints = []
+                              }
+                            "X")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 21 25 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 25 21 25 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 25 26 25 27
+                            , SrcSpan "tests/examples/DataKinds.hs" 25 34 25 35
+                            ]
+                        }
+                      (PromotedList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 21 25 35
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DataKinds.hs" 25 21 25 22
+                               , SrcSpan "tests/examples/DataKinds.hs" 25 26 25 27
+                               , SrcSpan "tests/examples/DataKinds.hs" 25 34 25 35
+                               ]
+                           }
+                         True
+                         [ TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 23 25 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 23 25 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 25 23 25 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))
+                         , TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 28 25 34
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 25 28 25 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 25 28 25 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "Double"))
+                         ])))))
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 1 27 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 1 27 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 6 27 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 6 27 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 6 27 7
+                     , srcInfoPoints = []
+                     }
+                   "Y"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 8 27 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 27 8 27 9
+                      , SrcSpan "tests/examples/DataKinds.hs" 27 11 27 13
+                      , SrcSpan "tests/examples/DataKinds.hs" 27 23 27 24
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 9 27 10
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 14 27 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds.hs" 27 14 27 15
+                         , SrcSpan "tests/examples/DataKinds.hs" 27 16 27 17
+                         , SrcSpan "tests/examples/DataKinds.hs" 27 22 27 23
+                         ]
+                     }
+                   Boxed
+                   [ TyStar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 15 27 16
+                         , srcInfoPoints = []
+                         }
+                   , TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 18 27 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 18 27 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 18 27 22
+                               , srcInfoPoints = []
+                               }
+                             "Bool"))
+                   ])))
+          []
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 1 29 36
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 1 29 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 1 29 3
+                  , srcInfoPoints = []
+                  }
+                "y1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 4 29 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 29 4 29 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 6 29 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 29 16 29 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 6 29 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 6 29 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 6 29 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 19 29 36
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 19 29 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 19 29 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 19 29 20
+                              , srcInfoPoints = []
+                              }
+                            "Y")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 21 29 36
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 29 21 29 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 29 29 29 30
+                            , SrcSpan "tests/examples/DataKinds.hs" 29 35 29 36
+                            ]
+                        }
+                      (PromotedTuple
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 21 29 36
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DataKinds.hs" 29 21 29 22
+                               , SrcSpan "tests/examples/DataKinds.hs" 29 29 29 30
+                               , SrcSpan "tests/examples/DataKinds.hs" 29 35 29 36
+                               ]
+                           }
+                         [ TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 23 29 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 23 29 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 29 23 29 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "Double"))
+                         , TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 31 29 35
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 29 31 29 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 29 31 29 35
+                                     , srcInfoPoints = []
+                                     }
+                                   "True"))
+                         ])))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 1 30 50
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 1 30 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 1 30 3
+                  , srcInfoPoints = []
+                  }
+                "y2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 4 30 50
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 30 4 30 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 6 30 50
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 30 16 30 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 6 30 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 6 30 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 6 30 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 19 30 50
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 19 30 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 19 30 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 19 30 20
+                              , srcInfoPoints = []
+                              }
+                            "Y")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 21 30 50
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 30 21 30 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 30 29 30 30
+                            , SrcSpan "tests/examples/DataKinds.hs" 30 49 30 50
+                            ]
+                        }
+                      (PromotedTuple
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 21 30 50
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DataKinds.hs" 30 21 30 22
+                               , SrcSpan "tests/examples/DataKinds.hs" 30 29 30 30
+                               , SrcSpan "tests/examples/DataKinds.hs" 30 49 30 50
+                               ]
+                           }
+                         [ TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 23 30 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 23 30 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 30 23 30 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "Double"))
+                         , TyPromoted
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 31 30 37
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DataKinds.hs" 30 31 30 32 ]
+                               }
+                             (PromotedCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 30 31 30 37
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DataKinds.hs" 30 31 30 32 ]
+                                  }
+                                True
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 30 32 30 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DataKinds.hs" 30 32 30 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "False")))
+                         ])))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 1 33 38
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 1 33 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 1 33 3
+                  , srcInfoPoints = []
+                  }
+                "z1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 4 33 38
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 33 4 33 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 6 33 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 33 16 33 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 6 33 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 6 33 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 6 33 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 19 33 38
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 19 33 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 19 33 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 19 33 20
+                              , srcInfoPoints = []
+                              }
+                            "X")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 21 33 38
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 33 21 33 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 33 29 33 30
+                            , SrcSpan "tests/examples/DataKinds.hs" 33 37 33 38
+                            ]
+                        }
+                      (PromotedList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 21 33 38
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DataKinds.hs" 33 21 33 22
+                               , SrcSpan "tests/examples/DataKinds.hs" 33 29 33 30
+                               , SrcSpan "tests/examples/DataKinds.hs" 33 37 33 38
+                               ]
+                           }
+                         False
+                         [ TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 23 33 29
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DataKinds.hs" 33 25 33 27 ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 23 33 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 33 23 33 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 28 33 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 33 28 33 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))
+                         , TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 31 33 36
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 31 33 32
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 33 31 33 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DataKinds.hs" 33 31 33 32
+                                        , srcInfoPoints = []
+                                        }
+                                      "X")))
+                             (TyPromoted
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 33 33 33 36
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DataKinds.hs" 33 33 33 34
+                                      , SrcSpan "tests/examples/DataKinds.hs" 33 35 33 36
+                                      ]
+                                  }
+                                (PromotedList
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DataKinds.hs" 33 33 33 36
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DataKinds.hs" 33 33 33 34
+                                         , SrcSpan "tests/examples/DataKinds.hs" 33 35 33 36
+                                         ]
+                                     }
+                                   True
+                                   []))
+                         ])))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 1 34 35
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 1 34 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 1 34 3
+                  , srcInfoPoints = []
+                  }
+                "z2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 4 34 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DataKinds.hs" 34 4 34 5 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 6 34 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DataKinds.hs" 34 16 34 18 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 6 34 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 6 34 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 6 34 15
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 19 34 35
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 19 34 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 19 34 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 19 34 20
+                              , srcInfoPoints = []
+                              }
+                            "Y")))
+                   (TyTuple
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 21 34 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DataKinds.hs" 34 21 34 22
+                            , SrcSpan "tests/examples/DataKinds.hs" 34 28 34 29
+                            , SrcSpan "tests/examples/DataKinds.hs" 34 34 34 35
+                            ]
+                        }
+                      Boxed
+                      [ TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 22 34 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DataKinds.hs" 34 24 34 26 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 22 34 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 22 34 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 27 34 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 27 34 28
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                      , TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 30 34 34
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 30 34 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 34 30 34 34
+                                  , srcInfoPoints = []
+                                  }
+                                "True"))
+                      ]))))
+          Nothing
+      ]
+  , [ Comment
+        True (SrcSpan "tests/examples/DataKinds.hs" 5 21 5 28) " 1 "
+    , Comment
+        True (SrcSpan "tests/examples/DataKinds.hs" 30 38 30 49) "comment"
+    ]
+  )
diff --git a/tests/examples/DataKinds.hs.prettyprinter.golden b/tests/examples/DataKinds.hs.prettyprinter.golden
--- a/tests/examples/DataKinds.hs.prettyprinter.golden
+++ b/tests/examples/DataKinds.hs.prettyprinter.golden
@@ -1,21 +1,30 @@
 {-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE DataKinds #-}
-module Main (main) where
- 
+{-# LANGUAGE PolyKinds #-}
+
 class C1 (a :: Bool) where
-         
         c :: proxy a -> Int
- 
+
 class C2 (a :: [*])
- 
-class C3 (a :: [(Int, Double)])
- 
+
+data Baz = Baz
+
+data Foo = Foo
+
+class C3 (a :: [(Baz, Foo)])
+
 class C4 (a :: (*))
- 
+
+class C5 (a :: App foo baz)
+
+class C6 (a :: (parens))
+
 data X (a :: [*])
 x1 = undefined :: X '[Int]
 x2 = undefined :: X '[Int, Double]
- 
+
 data Y (a :: (*, Bool))
 y1 = undefined :: Y '(Double, True)
 y2 = undefined :: Y '(Double, 'False)
+z1 = undefined :: X [a -> b, X '[]]
+z2 = undefined :: Y (a -> b, True)
diff --git a/tests/examples/DataKinds2.hs.parser.golden b/tests/examples/DataKinds2.hs.parser.golden
--- a/tests/examples/DataKinds2.hs.parser.golden
+++ b/tests/examples/DataKinds2.hs.parser.golden
@@ -1,1 +1,283 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 1 10 1, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 1,SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1,SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1,SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1,SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 1,SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 1,SrcSpan "tests/examples/DataKinds2.hs" 9 1 9 1,SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1,SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 27, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 13,SrcSpan "tests/examples/DataKinds2.hs" 1 24 1 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 14 1 23, srcInfoPoints = []}) "DataKinds"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 17, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 3 12 3 13]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 11, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 9, srcInfoPoints = []}) "Foo")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 10 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 10 3 11, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17, srcInfoPoints = []}) "Foo") [])] Nothing,TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 20, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 5,SrcSpan "tests/examples/DataKinds2.hs" 5 11 5 12]}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 6 5 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 6 5 10, srcInfoPoints = []}) "FooB")) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 20, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16, srcInfoPoints = []}) "Foo"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 17 5 20, srcInfoPoints = []}) (PromotedString (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 17 5 20, srcInfoPoints = []}) "a" "a"))),TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 18, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 5,SrcSpan "tests/examples/DataKinds2.hs" 7 11 7 12]}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 6 7 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 6 7 10, srcInfoPoints = []}) "FooC")) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 18, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16, srcInfoPoints = []}) "Foo"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 17 7 18, srcInfoPoints = []}) (PromotedInteger (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 17 7 18, srcInfoPoints = []}) 1 "1"))),InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 1 10 0, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 9 1 9 9,SrcSpan "tests/examples/DataKinds2.hs" 9 27 9 32,SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1,SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1,SrcSpan "tests/examples/DataKinds2.hs" 10 0 10 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 26, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 26, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14, srcInfoPoints = []}) "Show"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 15 9 26, srcInfoPoints = [SrcSpan "tests/examples/DataKinds2.hs" 9 15 9 16,SrcSpan "tests/examples/DataKinds2.hs" 9 25 9 26]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 25, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19, srcInfoPoints = []}) "Foo"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 20 9 25, srcInfoPoints = []}) (PromotedString (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 20 9 25, srcInfoPoints = []}) "bar" "bar")))))) (Just [])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 9 1 9 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1
+            , SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DataKinds2.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds2.hs" 3 12 3 13 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 6 3 9
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 10 3 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 10 3 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 3 14 3 17
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [])
+          ]
+          []
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds2.hs" 5 1 5 5
+                , SrcSpan "tests/examples/DataKinds2.hs" 5 11 5 12
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 6 5 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 6 5 10
+                  , srcInfoPoints = []
+                  }
+                "FooB"))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 20
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 13 5 16
+                        , srcInfoPoints = []
+                        }
+                      "Foo")))
+             (TyPromoted
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 17 5 20
+                  , srcInfoPoints = []
+                  }
+                (PromotedString
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 5 17 5 20
+                     , srcInfoPoints = []
+                     }
+                   "a"
+                   "a")))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds2.hs" 7 1 7 5
+                , SrcSpan "tests/examples/DataKinds2.hs" 7 11 7 12
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 6 7 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 6 7 10
+                  , srcInfoPoints = []
+                  }
+                "FooC"))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 18
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 13 7 16
+                        , srcInfoPoints = []
+                        }
+                      "Foo")))
+             (TyPromoted
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 17 7 18
+                  , srcInfoPoints = []
+                  }
+                (PromotedInteger
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 7 17 7 18
+                     , srcInfoPoints = []
+                     }
+                   1
+                   "1")))
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 1 10 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DataKinds2.hs" 9 1 9 9
+                , SrcSpan "tests/examples/DataKinds2.hs" 9 27 9 32
+                , SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1
+                , SrcSpan "tests/examples/DataKinds2.hs" 10 1 10 1
+                , SrcSpan "tests/examples/DataKinds2.hs" 10 0 10 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 26
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 26
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 10 9 14
+                           , srcInfoPoints = []
+                           }
+                         "Show")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 15 9 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DataKinds2.hs" 9 15 9 16
+                         , SrcSpan "tests/examples/DataKinds2.hs" 9 25 9 26
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 25
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 16 9 19
+                                 , srcInfoPoints = []
+                                 }
+                               "Foo")))
+                      (TyPromoted
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 20 9 25
+                           , srcInfoPoints = []
+                           }
+                         (PromotedString
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DataKinds2.hs" 9 20 9 25
+                              , srcInfoPoints = []
+                              }
+                            "bar"
+                            "bar"))))))
+          (Just [])
+      ]
+  , []
+  )
diff --git a/tests/examples/DataKinds2.hs.prettyprinter.golden b/tests/examples/DataKinds2.hs.prettyprinter.golden
--- a/tests/examples/DataKinds2.hs.prettyprinter.golden
+++ b/tests/examples/DataKinds2.hs.prettyprinter.golden
@@ -1,10 +1,9 @@
 {-# LANGUAGE DataKinds #-}
-module Main (main) where
- 
+
 data Foo a = Foo
- 
+
 type FooB = Foo "a"
- 
+
 type FooC = Foo 1
- 
-instance Show (Foo "bar")
+
+instance Show (Foo "bar") where
diff --git a/tests/examples/DefaultSignatures.hs.parser.golden b/tests/examples/DefaultSignatures.hs.parser.golden
--- a/tests/examples/DefaultSignatures.hs.parser.golden
+++ b/tests/examples/DefaultSignatures.hs.parser.golden
@@ -1,1 +1,441 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 1,SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1,SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1,SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1,SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 1,SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 35, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 13,SrcSpan "tests/examples/DefaultSignatures.hs" 1 32 1 35]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 1 14 1 31, srcInfoPoints = []}) "DefaultSignatures"]] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 5 19, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 6,SrcSpan "tests/examples/DefaultSignatures.hs" 2 11 2 16,SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 5,SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 5,SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 5,SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 10, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 8, srcInfoPoints = []}) "C")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 9 2 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 2 9 2 10, srcInfoPoints = []}) "a"))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 24, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 3 7 3 9]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 24, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 3 7 3 9]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 6, srcInfoPoints = []}) "f"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 24, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 3 12 3 14]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 11, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 24, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 3 17 3 19]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 16, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24, srcInfoPoints = []}) "Bool")))))),ClsDefSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 42, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 12,SrcSpan "tests/examples/DefaultSignatures.hs" 4 15 4 17]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 13 4 14, srcInfoPoints = []}) "f") (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 42, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 27, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 19,SrcSpan "tests/examples/DefaultSignatures.hs" 4 23 4 24,SrcSpan "tests/examples/DefaultSignatures.hs" 4 25 4 27]}) (ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 27, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 19,SrcSpan "tests/examples/DefaultSignatures.hs" 4 23 4 24,SrcSpan "tests/examples/DefaultSignatures.hs" 4 25 4 27]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 21, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 22 4 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 22 4 23, srcInfoPoints = []}) "a")])))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 42, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 4 30 4 32]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 29, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 42, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 4 35 4 37]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 34, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42, srcInfoPoints = []}) "Bool")))))),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 6, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 7 5 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 7 5 8, srcInfoPoints = []}) "x"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 9 5 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 9 5 10, srcInfoPoints = []}) "y")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 11 5 19, srcInfoPoints = [SrcSpan "tests/examples/DefaultSignatures.hs" 5 11 5 12]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17, srcInfoPoints = []}) "=="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19, srcInfoPoints = []}) "y"))))) Nothing])])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 1
+            , SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DefaultSignatures.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 1 32 1 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DefaultSignatures.hs" 1 14 1 31
+                , srcInfoPoints = []
+                }
+              "DefaultSignatures"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 5 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DefaultSignatures.hs" 2 1 2 6
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 2 11 2 16
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 5
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 5
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 5
+                , SrcSpan "tests/examples/DefaultSignatures.hs" 6 1 6 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DefaultSignatures.hs" 2 7 2 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DefaultSignatures.hs" 2 9 2 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DefaultSignatures.hs" 2 9 2 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DefaultSignatures.hs" 3 7 3 9 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DefaultSignatures.hs" 3 7 3 9 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DefaultSignatures.hs" 3 5 3 6
+                          , srcInfoPoints = []
+                          }
+                        "f"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 24
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DefaultSignatures.hs" 3 12 3 14 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 11
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 3 10 3 11
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 24
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DefaultSignatures.hs" 3 17 3 19 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DefaultSignatures.hs" 3 15 3 16
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DefaultSignatures.hs" 3 20 3 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             , ClsDefSig
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 42
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DefaultSignatures.hs" 4 5 4 12
+                       , SrcSpan "tests/examples/DefaultSignatures.hs" 4 15 4 17
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DefaultSignatures.hs" 4 13 4 14
+                      , srcInfoPoints = []
+                      }
+                    "f")
+                 (TyForall
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 42
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                    (Just
+                       (CxSingle
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 19
+                                , SrcSpan "tests/examples/DefaultSignatures.hs" 4 23 4 24
+                                , SrcSpan "tests/examples/DefaultSignatures.hs" 4 25 4 27
+                                ]
+                            }
+                          (ParenA
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DefaultSignatures.hs" 4 18 4 19
+                                   , SrcSpan "tests/examples/DefaultSignatures.hs" 4 23 4 24
+                                   , SrcSpan "tests/examples/DefaultSignatures.hs" 4 25 4 27
+                                   ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/DefaultSignatures.hs" 4 19 4 21
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DefaultSignatures.hs" 4 19 4 21
+                                              , srcInfoPoints = []
+                                              }
+                                            "Eq")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DefaultSignatures.hs" 4 22 4 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/DefaultSignatures.hs" 4 22 4 23
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))))))
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 42
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DefaultSignatures.hs" 4 30 4 32 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 29
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 4 28 4 29
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 42
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DefaultSignatures.hs" 4 35 4 37 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DefaultSignatures.hs" 4 33 4 34
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DefaultSignatures.hs" 4 38 4 42
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DefaultSignatures.hs" 5 5 5 6
+                             , srcInfoPoints = []
+                             }
+                           "f")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DefaultSignatures.hs" 5 7 5 8
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DefaultSignatures.hs" 5 7 5 8
+                                 , srcInfoPoints = []
+                                 }
+                               "x")
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DefaultSignatures.hs" 5 9 5 10
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DefaultSignatures.hs" 5 9 5 10
+                                 , srcInfoPoints = []
+                                 }
+                               "y")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DefaultSignatures.hs" 5 11 5 19
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DefaultSignatures.hs" 5 11 5 12 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 19
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DefaultSignatures.hs" 5 13 5 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DefaultSignatures.hs" 5 15 5 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "==")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DefaultSignatures.hs" 5 18 5 19
+                                         , srcInfoPoints = []
+                                         }
+                                       "y")))))
+                        Nothing
+                    ])
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/DefaultSignatures.hs.prettyprinter.golden b/tests/examples/DefaultSignatures.hs.prettyprinter.golden
--- a/tests/examples/DefaultSignatures.hs.prettyprinter.golden
+++ b/tests/examples/DefaultSignatures.hs.prettyprinter.golden
@@ -1,9 +1,7 @@
 {-# LANGUAGE DefaultSignatures #-}
-module Main (main) where
- 
+
 class C a where
-         
         f :: a -> a -> Bool
-         
+        
         default f :: (Eq a) => a -> a -> Bool
         f x y = x == y
diff --git a/tests/examples/DeriveGeneric.hs.parser.golden b/tests/examples/DeriveGeneric.hs.parser.golden
--- a/tests/examples/DeriveGeneric.hs.parser.golden
+++ b/tests/examples/DeriveGeneric.hs.parser.golden
@@ -1,1 +1,239 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 1,SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1,SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1,SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1,SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1,SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 13,SrcSpan "tests/examples/DeriveGeneric.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 14 1 27, srcInfoPoints = []}) "DeriveGeneric"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 4 19, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 3 17 3 18,SrcSpan "tests/examples/DeriveGeneric.hs" 3 52 3 53]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 16, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14, srcInfoPoints = []}) "UserTree")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 23, srcInfoPoints = []}) "Node") [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25, srcInfoPoints = []}) "a"),TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 38, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 27,SrcSpan "tests/examples/DeriveGeneric.hs" 3 37 3 38]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 37, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35, srcInfoPoints = []}) "UserTree"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37, srcInfoPoints = []}) "a"))),TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 51, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 40,SrcSpan "tests/examples/DeriveGeneric.hs" 3 50 3 51]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 50, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48, srcInfoPoints = []}) "UserTree"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50, srcInfoPoints = []}) "a")))]),QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58, srcInfoPoints = []}) "Leaf") [])] (Just (Deriving (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 19, srcInfoPoints = [SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 11]}) [IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19, srcInfoPoints = []}) "Generic")))]))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DeriveGeneric.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DeriveGeneric.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DeriveGeneric.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "DeriveGeneric"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 4 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 17 3 18
+                , SrcSpan "tests/examples/DeriveGeneric.hs" 3 52 3 53
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 6 3 14
+                     , srcInfoPoints = []
+                     }
+                   "UserTree"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 15 3 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 51
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 19 3 23
+                      , srcInfoPoints = []
+                      }
+                    "Node")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 24 3 25
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 38
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 26 3 27
+                           , SrcSpan "tests/examples/DeriveGeneric.hs" 3 37 3 38
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 37
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DeriveGeneric.hs" 3 27 3 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "UserTree")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 36 3 37
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 , TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 51
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DeriveGeneric.hs" 3 39 3 40
+                           , SrcSpan "tests/examples/DeriveGeneric.hs" 3 50 3 51
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 50
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DeriveGeneric.hs" 3 40 3 48
+                                   , srcInfoPoints = []
+                                   }
+                                 "UserTree")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 49 3 50
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 3 54 3 58
+                      , srcInfoPoints = []
+                      }
+                    "Leaf")
+                 [])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DeriveGeneric.hs" 4 3 4 11 ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DeriveGeneric.hs" 4 12 4 19
+                             , srcInfoPoints = []
+                             }
+                           "Generic")))
+              ]
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/DeriveGeneric.hs.prettyprinter.golden b/tests/examples/DeriveGeneric.hs.prettyprinter.golden
--- a/tests/examples/DeriveGeneric.hs.prettyprinter.golden
+++ b/tests/examples/DeriveGeneric.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE DeriveGeneric #-}
-module Main (main) where
- 
+
 data UserTree a = Node a (UserTree a) (UserTree a)
                 | Leaf
-                deriving Generic
+                    deriving Generic
diff --git a/tests/examples/DerivingParen.hs b/tests/examples/DerivingParen.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingParen.hs
@@ -0,0 +1,2 @@
+data X = X deriving Show
+data X = X deriving (Show)
diff --git a/tests/examples/DerivingParen.hs.exactprinter.golden b/tests/examples/DerivingParen.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingParen.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingParen.hs.parser.golden b/tests/examples/DerivingParen.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingParen.hs.parser.golden
@@ -0,0 +1,177 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DerivingParen.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingParen.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingParen.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DerivingParen.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DerivingParen.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 1 1 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingParen.hs" 1 8 1 9 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 1 1 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 6 1 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 6 1 7
+                  , srcInfoPoints = []
+                  }
+                "X"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 10 1 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 10 1 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 10 1 11
+                      , srcInfoPoints = []
+                      }
+                    "X")
+                 [])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 12 1 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingParen.hs" 1 12 1 20 ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 21 1 25
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 21 1 25
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 21 1 25
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 1 21 1 25
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 1 2 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingParen.hs" 2 8 2 9 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 1 2 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 6 2 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 6 2 7
+                  , srcInfoPoints = []
+                  }
+                "X"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 10 2 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 10 2 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 10 2 11
+                      , srcInfoPoints = []
+                      }
+                    "X")
+                 [])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 12 2 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingParen.hs" 2 12 2 20 ]
+                }
+              Nothing
+              [ IParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 21 2 27
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/DerivingParen.hs" 2 21 2 22
+                        , SrcSpan "tests/examples/DerivingParen.hs" 2 26 2 27
+                        ]
+                    }
+                  (IRule
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 22 2 26
+                       , srcInfoPoints = []
+                       }
+                     Nothing
+                     Nothing
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 22 2 26
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 22 2 26
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingParen.hs" 2 22 2 26
+                                , srcInfoPoints = []
+                                }
+                              "Show"))))
+              ]
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/DerivingParen.hs.prettyparser.golden b/tests/examples/DerivingParen.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingParen.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingParen.hs.prettyprinter.golden b/tests/examples/DerivingParen.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingParen.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+data X = X deriving Show
+
+data X = X deriving (Show)
diff --git a/tests/examples/DerivingStrategies.hs b/tests/examples/DerivingStrategies.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingStrategies.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE StandaloneDeriving #-}
+module DerivingStrategies where
+
+class C a
+class D a
+
+newtype Foo a = MkFoo a
+  deriving ()
+  deriving stock (Eq, Ord)
+  deriving newtype Show
+  deriving anyclass C
+
+deriving stock instance Read a => Read (Foo a)
+deriving newtype instance Num a => Num (Foo a)
+deriving anyclass instance D (Foo a)
diff --git a/tests/examples/DerivingStrategies.hs.exactprinter.golden b/tests/examples/DerivingStrategies.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingStrategies.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingStrategies.hs.parser.golden b/tests/examples/DerivingStrategies.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingStrategies.hs.parser.golden
@@ -0,0 +1,849 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/DerivingStrategies.hs" 1 1 19 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DerivingStrategies.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 8 1 8 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 10 1 10 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 16 1 16 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 17 1 17 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 18 1 18 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 19 1 19 1
+            , SrcSpan "tests/examples/DerivingStrategies.hs" 19 1 19 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/DerivingStrategies.hs" 5 1 5 32
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DerivingStrategies.hs" 5 1 5 7
+                  , SrcSpan "tests/examples/DerivingStrategies.hs" 5 27 5 32
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/DerivingStrategies.hs" 5 8 5 26
+                 , srcInfoPoints = []
+                 }
+               "DerivingStrategies")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "DeriveAnyClass"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 2 1 2 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 2 1 2 13
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 2 33 2 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 2 14 2 32
+                , srcInfoPoints = []
+                }
+              "DerivingStrategies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 3 1 3 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 3 1 3 13
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 3 41 3 44
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 3 14 3 40
+                , srcInfoPoints = []
+                }
+              "GeneralizedNewtypeDeriving"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 4 1 4 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 4 1 4 13
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 4 33 4 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 4 14 4 32
+                , srcInfoPoints = []
+                }
+              "StandaloneDeriving"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 7 1 7 10
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 7 1 7 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 7 7 7 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 7 7 7 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 7 7 7 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 7 9 7 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 7 9 7 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          Nothing
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 8 1 8 10
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 8 1 8 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 8 7 8 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 8 7 8 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 8 7 8 8
+                     , srcInfoPoints = []
+                     }
+                   "D"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 8 9 8 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 8 9 8 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 10 1 14 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 10 15 10 16 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 10 1 10 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 10 9 10 14
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 10 9 10 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 10 9 10 12
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 10 13 10 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 10 13 10 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 10 17 10 24
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingStrategies.hs" 10 17 10 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingStrategies.hs" 10 17 10 22
+                      , srcInfoPoints = []
+                      }
+                    "MkFoo")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingStrategies.hs" 10 23 10 24
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingStrategies.hs" 10 23 10 24
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 11 3 11 14
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingStrategies.hs" 11 3 11 11
+                    , SrcSpan "tests/examples/DerivingStrategies.hs" 11 12 11 13
+                    , SrcSpan "tests/examples/DerivingStrategies.hs" 11 13 11 14
+                    ]
+                }
+              Nothing
+              []
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 12 3 12 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingStrategies.hs" 12 3 12 11
+                    , SrcSpan "tests/examples/DerivingStrategies.hs" 12 18 12 19
+                    , SrcSpan "tests/examples/DerivingStrategies.hs" 12 21 12 22
+                    , SrcSpan "tests/examples/DerivingStrategies.hs" 12 26 12 27
+                    ]
+                }
+              (Just
+                 (DerivStock
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingStrategies.hs" 12 12 12 17
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingStrategies.hs" 12 19 12 21
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingStrategies.hs" 12 19 12 21
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingStrategies.hs" 12 19 12 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingStrategies.hs" 12 19 12 21
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingStrategies.hs" 12 23 12 26
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingStrategies.hs" 12 23 12 26
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingStrategies.hs" 12 23 12 26
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingStrategies.hs" 12 23 12 26
+                             , srcInfoPoints = []
+                             }
+                           "Ord")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 13 3 13 24
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingStrategies.hs" 13 3 13 11 ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingStrategies.hs" 13 12 13 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingStrategies.hs" 13 20 13 24
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingStrategies.hs" 13 20 13 24
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingStrategies.hs" 13 20 13 24
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingStrategies.hs" 13 20 13 24
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingStrategies.hs" 14 3 14 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingStrategies.hs" 14 3 14 11 ]
+                }
+              (Just
+                 (DerivAnyclass
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingStrategies.hs" 14 12 14 20
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingStrategies.hs" 14 21 14 22
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingStrategies.hs" 14 21 14 22
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingStrategies.hs" 14 21 14 22
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingStrategies.hs" 14 21 14 22
+                             , srcInfoPoints = []
+                             }
+                           "C")))
+              ]
+          ]
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 16 1 16 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 1 16 9
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 16 16 16 24
+                ]
+            }
+          (Just
+             (DerivStock
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 16 10 16 15
+                  , srcInfoPoints = []
+                  }))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 47
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 29
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 29
+                                    , srcInfoPoints = []
+                                    }
+                                  "Read")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 16 30 16 31
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 16 30 16 31
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 16 35 16 47
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 16 35 16 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 16 35 16 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 35 16 39
+                           , srcInfoPoints = []
+                           }
+                         "Read")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 16 40 16 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 40 16 41
+                         , SrcSpan "tests/examples/DerivingStrategies.hs" 16 46 16 47
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 16 41 16 46
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 41 16 44
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 16 41 16 44
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 16 41 16 44
+                                 , srcInfoPoints = []
+                                 }
+                               "Foo")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 45 16 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 16 45 16 46
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 17 1 17 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 1 17 9
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 17 18 17 26
+                ]
+            }
+          (Just
+             (DerivNewtype
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 17 10 17 17
+                  , srcInfoPoints = []
+                  }))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 47
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 30
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 30
+                                    , srcInfoPoints = []
+                                    }
+                                  "Num")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 17 31 17 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 17 31 17 32
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 17 36 17 47
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 17 36 17 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 17 36 17 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 36 17 39
+                           , srcInfoPoints = []
+                           }
+                         "Num")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 17 40 17 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 40 17 41
+                         , SrcSpan "tests/examples/DerivingStrategies.hs" 17 46 17 47
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 17 41 17 46
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 41 17 44
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 17 41 17 44
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 17 41 17 44
+                                 , srcInfoPoints = []
+                                 }
+                               "Foo")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 45 17 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 17 45 17 46
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingStrategies.hs" 18 1 18 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingStrategies.hs" 18 1 18 9
+                , SrcSpan "tests/examples/DerivingStrategies.hs" 18 19 18 27
+                ]
+            }
+          (Just
+             (DerivAnyclass
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 18 10 18 18
+                  , srcInfoPoints = []
+                  }))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingStrategies.hs" 18 28 18 37
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingStrategies.hs" 18 28 18 37
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 18 28 18 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 18 28 18 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 18 28 18 29
+                           , srcInfoPoints = []
+                           }
+                         "D")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingStrategies.hs" 18 30 18 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingStrategies.hs" 18 30 18 31
+                         , SrcSpan "tests/examples/DerivingStrategies.hs" 18 36 18 37
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingStrategies.hs" 18 31 18 36
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 18 31 18 34
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 18 31 18 34
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 18 31 18 34
+                                 , srcInfoPoints = []
+                                 }
+                               "Foo")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingStrategies.hs" 18 35 18 36
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingStrategies.hs" 18 35 18 36
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      ]
+  , []
+  )
diff --git a/tests/examples/DerivingStrategies.hs.prettyparser.golden b/tests/examples/DerivingStrategies.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingStrategies.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingStrategies.hs.prettyprinter.golden b/tests/examples/DerivingStrategies.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingStrategies.hs.prettyprinter.golden
@@ -0,0 +1,21 @@
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE StandaloneDeriving #-}
+module DerivingStrategies where
+
+class C a
+
+class D a
+
+newtype Foo a = MkFoo a
+                  deriving ()
+                  deriving stock (Eq, Ord)
+                  deriving newtype Show
+                  deriving anyclass C
+
+deriving stock instance Read a => Read (Foo a)
+
+deriving newtype instance Num a => Num (Foo a)
+
+deriving anyclass instance D (Foo a)
diff --git a/tests/examples/DerivingVia.hs b/tests/examples/DerivingVia.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia.hs
@@ -0,0 +1,459 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE InstanceSigs #-}
+{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE MultiWayIf #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE UndecidableInstances #-}
+module DerivingVia where
+
+import Data.Void
+import Data.Complex
+import Data.Functor.Const
+import Data.Functor.Identity
+import Data.Ratio
+import Control.Monad.Reader
+import Control.Monad.State
+import Control.Monad.Writer
+import Control.Applicative hiding (WrappedMonad(..))
+
+import Data.Bifunctor
+import Data.Monoid
+import Data.Kind
+
+type f ~> g = forall xx. f xx -> g xx
+
+-----
+-- Simple example
+-----
+
+data Foo a = MkFoo a a
+  deriving Show
+       via (Identity (Foo a))
+
+-----
+-- Eta reduction at work
+-----
+
+newtype Flip p a b = Flip { runFlip :: p b a }
+
+instance Bifunctor p => Bifunctor (Flip p) where
+  bimap f g = Flip . bimap g f . runFlip
+
+instance Bifunctor p => Functor (Flip p a) where
+  fmap f = Flip . first f . runFlip
+
+newtype Bar a = MkBar (Either a Int)
+  deriving Functor
+       via (Flip Either Int)
+
+-----
+-- Monad transformers
+-----
+
+type MTrans = (Type -> Type) -> (Type -> Type)
+
+-- From `constraints'
+data Dict c where
+  Dict :: c => Dict c
+
+newtype a :- b = Sub (a => Dict b)
+
+infixl 1 \\
+(\\) :: a => (b => r) -> (a :- b) -> r
+r \\ Sub Dict = r
+
+-- With `-XQuantifiedConstraints' this just becomes
+--
+--    type Lifting cls  trans = forall mm. cls mm => cls (trans mm)
+--
+--    type LiftingMonad trans = Lifting Monad trans
+--
+class LiftingMonad (trans :: MTrans) where
+  proof :: Monad m :- Monad (trans m)
+
+instance LiftingMonad (StateT s :: MTrans) where
+  proof :: Monad m :- Monad (StateT s m)
+  proof = Sub Dict
+
+instance Monoid w => LiftingMonad (WriterT w :: MTrans) where
+  proof :: Monad m :- Monad (WriterT w m)
+  proof = Sub Dict
+
+instance (LiftingMonad trans, LiftingMonad trans') => LiftingMonad (ComposeT trans trans' :: MTrans) where
+  proof :: forall m. Monad m :- Monad (ComposeT trans trans' m)
+  proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m)
+
+newtype Stack :: MTrans where
+  Stack :: ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a
+  deriving newtype
+    ( Functor
+    , Applicative
+    , Monad
+    , MonadReader Int
+    , MonadState Bool
+    , MonadWriter String
+    )
+  deriving (MonadTrans, MFunctor)
+       via (ReaderT Int `ComposeT` StateT Bool `ComposeT` WriterT String)
+
+class MFunctor (trans :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (trans m ~> trans m')
+
+instance MFunctor (ReaderT r :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m')
+  hoist nat = ReaderT . fmap nat . runReaderT
+
+instance MFunctor (StateT s :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m')
+  hoist nat = StateT . fmap nat . runStateT
+
+instance MFunctor (WriterT w :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m')
+  hoist nat = WriterT . nat . runWriterT
+
+infixr 9 `ComposeT`
+newtype ComposeT :: MTrans -> MTrans -> MTrans where
+  ComposeT :: { getComposeT :: f (g m) a } -> ComposeT f g m a
+  deriving newtype (Functor, Applicative, Monad)
+
+instance (MonadTrans f, MonadTrans g, LiftingMonad g) => MonadTrans (ComposeT f g) where
+  lift :: forall m. Monad m => m ~> ComposeT f g m
+  lift = ComposeT . lift . lift
+    \\ proof @g @m
+
+instance (MFunctor f, MFunctor g, LiftingMonad g) => MFunctor (ComposeT f g) where
+  hoist :: forall m m'. Monad m => (m ~> m') -> (ComposeT f g m ~> ComposeT f g m')
+  hoist f = ComposeT . hoist (hoist f) . getComposeT
+    \\ proof @g @m
+
+-----
+-- Using tuples in a `via` type
+-----
+
+newtype X a = X (a, a)
+  deriving (Semigroup, Monoid)
+       via (Product a, Sum a)
+
+  deriving (Show, Eq)
+       via (a, a)
+
+-----
+-- Abstract data types
+-----
+
+class C f where
+  c :: f a -> Int
+
+newtype X2 f a = X2 (f a)
+
+instance C (X2 f) where
+  c = const 0
+
+deriving via (X2 IO) instance C IO
+
+----
+-- Testing parser
+----
+
+newtype P0 a = P0 a             deriving Show via a
+newtype P1 a = P1 [a]           deriving Show via [a]
+newtype P2 a = P2 (a, a)        deriving Show via (a, a)
+newtype P3 a = P3 (Maybe a)     deriving Show via (First a)
+newtype P4 a = P4 (Maybe a)     deriving Show via (First $ a)
+newtype P5 a = P5 a             deriving Show via (Identity $ a)
+newtype P6 a = P6 [a]           deriving Show via ([] $ a)
+newtype P7 a = P7 (a, a)        deriving Show via (Identity $ (a, a))
+newtype P8 a = P8 (Either () a) deriving Functor via (($) (Either ()))
+
+newtype f $ a = APP (f a) deriving newtype Show deriving newtype Functor
+
+----
+-- From Baldur's notes
+----
+
+----
+-- 1
+----
+newtype WrapApplicative f a = WrappedApplicative (f a)
+  deriving (Functor, Applicative)
+
+instance (Applicative f, Num a) => Num (WrapApplicative f a) where
+  (+)         = liftA2 (+)
+  (*)         = liftA2 (*)
+  negate      = fmap negate
+  fromInteger = pure . fromInteger
+  abs         = fmap abs
+  signum      = fmap signum
+
+instance (Applicative f, Fractional a) => Fractional (WrapApplicative f a) where
+  recip        = fmap recip
+  fromRational = pure . fromRational
+
+instance (Applicative f, Floating a) => Floating (WrapApplicative f a) where
+  pi    = pure pi
+  sqrt  = fmap sqrt
+  exp   = fmap exp
+  log   = fmap log
+  sin   = fmap sin
+  cos   = fmap cos
+  asin  = fmap asin
+  atan  = fmap atan
+  acos  = fmap acos
+  sinh  = fmap sinh
+  cosh  = fmap cosh
+  asinh = fmap asinh
+  atanh = fmap atanh
+  acosh = fmap acosh
+
+instance (Applicative f, Semigroup s) => Semigroup (WrapApplicative f s) where
+  (<>) = liftA2 (<>)
+
+instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m) where
+  mempty = pure mempty
+
+----
+-- 2
+----
+class Pointed p where
+  pointed :: a -> p a
+
+newtype WrapMonad f a = WrappedMonad (f a)
+  deriving newtype (Pointed, Monad)
+
+instance (Monad m, Pointed m) => Functor (WrapMonad m) where
+  fmap = liftM
+
+instance (Monad m, Pointed m) => Applicative (WrapMonad m) where
+  pure  = pointed
+  (<*>) = ap
+
+-- data
+data Sorted a = Sorted a a a
+  deriving (Functor, Applicative)
+    via (WrapMonad Sorted)
+  deriving (Num, Fractional, Floating, Semigroup, Monoid)
+    via (WrapApplicative Sorted a)
+
+
+instance Monad Sorted where
+  (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b
+  Sorted a b c >>= f = Sorted a' b' c' where
+    Sorted a' _  _  = f a
+    Sorted _  b' _  = f b
+    Sorted _  _  c' = f c
+
+instance Pointed Sorted where
+  pointed :: a -> Sorted a
+  pointed a = Sorted a a a
+
+----
+-- 3
+----
+class IsZero a where
+  isZero :: a -> Bool
+
+newtype WrappedNumEq  a = WrappedNumEq a
+newtype WrappedShow   a = WrappedShow  a
+newtype WrappedNumEq2 a = WrappedNumEq2 a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq a) where
+  isZero :: WrappedNumEq a -> Bool
+  isZero (WrappedNumEq a) = 0 == a
+
+instance Show a => IsZero (WrappedShow a) where
+  isZero :: WrappedShow a -> Bool
+  isZero (WrappedShow a) = "0" == show a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where
+  isZero :: WrappedNumEq2 a -> Bool
+  isZero (WrappedNumEq2 a) = a + a == a
+
+newtype INT = INT Int
+  deriving newtype Show
+  deriving IsZero via (WrappedNumEq Int)
+
+newtype VOID = VOID Void deriving IsZero via (WrappedShow Void)
+
+----
+-- 4
+----
+class Bifunctor p => Biapplicative p where
+  bipure :: a -> b -> p a b
+
+  biliftA2
+    :: (a  -> b  -> c)
+    -> (a' -> b' -> c')
+    -> p a a'
+    -> p b b'
+    -> p c c'
+
+instance Biapplicative (,) where
+  bipure = (,)
+
+  biliftA2 f f' (a, a') (b, b') =
+    (f a b, f' a' b')
+
+newtype WrapBiapp p a b = WrapBiap (p a b)
+  deriving newtype (Bifunctor, Biapplicative, Eq)
+
+instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b) where
+  (+) = biliftA2 (+) (+)
+  (-) = biliftA2 (*) (*)
+  (*) = biliftA2 (*) (*)
+  negate = bimap negate negate
+  abs = bimap abs abs
+  signum = bimap signum signum
+  fromInteger n = fromInteger n `bipure` fromInteger n
+
+newtype INT2 = INT2 (Int, Int)
+  deriving IsZero via (WrappedNumEq2 (WrapBiapp (,) Int Int))
+
+----
+-- 5
+----
+class Monoid a => MonoidNull a where
+  null :: a -> Bool
+
+newtype WrpMonNull a = WRM a deriving (Eq, Semigroup, Monoid)
+
+instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where
+  null :: WrpMonNull a -> Bool
+  null = (== mempty)
+
+deriving via (WrpMonNull Any) instance MonoidNull Any
+deriving via ()               instance MonoidNull ()
+deriving via Ordering         instance MonoidNull Ordering
+
+----
+-- 6
+----
+-- https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635
+
+class Lattice a where
+  sup   :: a -> a -> a
+  (.>=) :: a -> a -> Bool
+  (.>)  :: a -> a -> Bool
+
+newtype WrapOrd a = WrappedOrd a
+  deriving newtype (Eq, Ord)
+
+instance Ord a => Lattice (WrapOrd a) where
+  sup   = max
+  (.>=) = (>=)
+  (.>)  = (>)
+
+deriving via [a]    instance Ord a          => Lattice [a]
+deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b)
+--mkLattice_(Bool)
+deriving via Bool instance Lattice Bool
+--mkLattice_(Char)
+deriving via Char instance Lattice Char
+--mkLattice_(Int)
+deriving via Int instance Lattice Int
+--mkLattice_(Integer)
+deriving via Integer instance Lattice Integer
+--mkLattice_(Float)
+deriving via Float instance Lattice Float
+--mkLattice_(Double)
+deriving via Double instance Lattice Double
+--mkLattice_(Rational)
+deriving via Rational instance Lattice Rational
+
+----
+-- 7
+----
+-- https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html
+
+class Functor f => Additive f where
+  zero :: Num a => f a
+  (^+^) :: Num a => f a -> f a -> f a
+  (^+^) = liftU2 (+)
+  (^-^) :: Num a => f a -> f a -> f a
+  x ^-^ y = x ^+^ fmap negate y
+  liftU2 :: (a -> a -> a) -> f a -> f a -> f a
+
+instance Additive [] where
+  zero = []
+  liftU2 f = go where
+    go (x:xs) (y:ys) = f x y : go xs ys
+    go [] ys = ys
+    go xs [] = xs
+
+instance Additive Maybe where
+  zero = Nothing
+  liftU2 f (Just a) (Just b) = Just (f a b)
+  liftU2 _ Nothing ys = ys
+  liftU2 _ xs Nothing = xs
+
+instance Applicative f => Additive (WrapApplicative f) where
+  zero   = pure 0
+  liftU2 = liftA2
+
+deriving via (WrapApplicative ((->) a)) instance Additive ((->) a)
+deriving via (WrapApplicative Complex)  instance Additive Complex
+deriving via (WrapApplicative Identity) instance Additive Identity
+
+instance Additive ZipList where
+  zero = ZipList []
+  liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys)
+
+class Additive (Diff p) => Affine p where
+  type Diff p :: Type -> Type
+
+  (.-.) :: Num a => p a -> p a -> Diff p a
+  (.+^) :: Num a => p a -> Diff p a -> p a
+  (.-^) :: Num a => p a -> Diff p a -> p a
+  p .-^ v = p .+^ fmap negate v
+
+-- #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \
+--   (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \
+--   (.-^) = (^-^) ; {-# INLINE (.-^) #-}
+-- #define ADDITIVE(T) ADDITIVEC((), T)
+newtype WrapAdditive f a = WrappedAdditive (f a)
+
+instance Additive f => Affine (WrapAdditive f) where
+  type Diff (WrapAdditive f) = f
+
+  WrappedAdditive a .-. WrappedAdditive b = a ^-^ b
+  WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b)
+  WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b)
+
+-- ADDITIVE(((->) a))
+deriving via (WrapAdditive ((->) a)) instance Affine ((->) a)
+-- ADDITIVE([])
+deriving via (WrapAdditive [])       instance Affine []
+-- ADDITIVE(Complex)
+deriving via (WrapAdditive Complex)  instance Affine Complex
+-- ADDITIVE(Maybe)
+deriving via (WrapAdditive Maybe)    instance Affine Maybe
+-- ADDITIVE(ZipList)
+deriving via (WrapAdditive ZipList)  instance Affine ZipList
+-- ADDITIVE(Identity)
+deriving via (WrapAdditive Identity) instance Affine Identity
+
+----
+-- 8
+----
+
+class C2 a b c where
+  c2 :: a -> b -> c
+
+instance C2 a b (Const a b) where
+  c2 x _ = Const x
+
+newtype Fweemp a = Fweemp a
+  deriving (C2 a b)
+       via (Const a (b :: Type))
diff --git a/tests/examples/DerivingVia.hs.exactprinter.golden b/tests/examples/DerivingVia.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia.hs.exactprinter.golden
@@ -0,0 +1,460 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE InstanceSigs #-}
+{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE MultiWayIf #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE UndecidableInstances #-}
+module DerivingVia where
+
+import Data.Void
+import Data.Complex
+import Data.Functor.Const
+import Data.Functor.Identity
+import Data.Ratio
+import Control.Monad.Reader
+import Control.Monad.State
+import Control.Monad.Writer
+import Control.Applicative hiding (WrappedMonad(..))
+
+import Data.Bifunctor
+import Data.Monoid
+import Data.Kind
+
+type f ~> g = forall xx. f xx -> g xx
+
+-----
+-- Simple example
+-----
+
+data Foo a = MkFoo a a
+  deriving
+       via( Identity (Foo a))Show
+
+-----
+-- Eta reduction at work
+-----
+
+newtype Flip p a b = Flip { runFlip :: p b a }
+
+instance Bifunctor p => Bifunctor (Flip p) where
+  bimap f g = Flip . bimap g f . runFlip
+
+instance Bifunctor p => Functor (Flip p a) where
+  fmap f = Flip . first f . runFlip
+
+newtype Bar a = MkBar (Either a Int)
+  deriving
+       via( Flip Either Int)Functor
+
+-----
+-- Monad transformers
+-----
+
+type MTrans = (Type -> Type) -> (Type -> Type)
+
+-- From `constraints'
+data Dict c where
+  Dict :: c => Dict c
+
+newtype a :- b = Sub (a => Dict b)
+
+infixl 1 \\
+(\\) :: a => (b => r) -> (a :- b) -> r
+r \\ Sub Dict = r
+
+-- With `-XQuantifiedConstraints' this just becomes
+--
+--    type Lifting cls  trans = forall mm. cls mm => cls (trans mm)
+--
+--    type LiftingMonad trans = Lifting Monad trans
+--
+class LiftingMonad (trans :: MTrans) where
+  proof :: Monad m :- Monad (trans m)
+
+instance LiftingMonad (StateT s :: MTrans) where
+  proof :: Monad m :- Monad (StateT s m)
+  proof = Sub Dict
+
+instance Monoid w => LiftingMonad (WriterT w :: MTrans) where
+  proof :: Monad m :- Monad (WriterT w m)
+  proof = Sub Dict
+
+instance (LiftingMonad trans, LiftingMonad trans') => LiftingMonad (ComposeT trans trans' :: MTrans) where
+  proof :: forall m. Monad m :- Monad (ComposeT trans trans' m)
+  proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m)
+
+newtype Stack :: MTrans where
+  Stack :: ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a
+  deriving newtype
+    ( Functor
+    , Applicative
+    , Monad
+    , MonadReader Int
+    , MonadState Bool
+    , MonadWriter String
+    )
+  deriving
+       via( ReaderT Int `ComposeT` StateT Bool `ComposeT` WriterT String)(MonadTrans,MFunctor)
+
+class MFunctor (trans :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (trans m ~> trans m')
+
+instance MFunctor (ReaderT r :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m')
+  hoist nat = ReaderT . fmap nat . runReaderT
+
+instance MFunctor (StateT s :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m')
+  hoist nat = StateT . fmap nat . runStateT
+
+instance MFunctor (WriterT w :: MTrans) where
+  hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m')
+  hoist nat = WriterT . nat . runWriterT
+
+infixr 9 `ComposeT`
+newtype ComposeT :: MTrans -> MTrans -> MTrans where
+  ComposeT :: { getComposeT :: f (g m) a } -> ComposeT f g m a
+  deriving newtype (Functor, Applicative, Monad)
+
+instance (MonadTrans f, MonadTrans g, LiftingMonad g) => MonadTrans (ComposeT f g) where
+  lift :: forall m. Monad m => m ~> ComposeT f g m
+  lift = ComposeT . lift . lift
+    \\ proof @g @m
+
+instance (MFunctor f, MFunctor g, LiftingMonad g) => MFunctor (ComposeT f g) where
+  hoist :: forall m m'. Monad m => (m ~> m') -> (ComposeT f g m ~> ComposeT f g m')
+  hoist f = ComposeT . hoist (hoist f) . getComposeT
+    \\ proof @g @m
+
+-----
+-- Using tuples in a `via` type
+-----
+
+newtype X a = X (a, a)
+  deriving
+       via (Product a, Sum a)(Semigroup,Monoid)
+
+  deriving
+       via (a, a)(Show,Eq)
+
+-----
+-- Abstract data types
+-----
+
+class C f where
+  c :: f a -> Int
+
+newtype X2 f a = X2 (f a)
+
+instance C (X2 f) where
+  c = const 0
+
+deriving via( X2 IO) instance C IO
+
+----
+-- Testing parser
+----
+
+newtype P0 a = P0 a             deriving      viaaShow
+newtype P1 a = P1 [a]           deriving      via[ a]Show
+newtype P2 a = P2 (a, a)        deriving      via (a, a)Show
+newtype P3 a = P3 (Maybe a)     deriving      via( First a)Show
+newtype P4 a = P4 (Maybe a)     deriving      via( First $ a)Show
+newtype P5 a = P5 a             deriving      via( Identity $ a)Show
+newtype P6 a = P6 [a]           deriving      via( [] $ a)Show
+newtype P7 a = P7 (a, a)        deriving      via( Identity $ (a, a))Show
+newtype P8 a = P8 (Either () a) deriving         via( ($) (Either ()))Functor
+
+newtype f $ a = APP (f a) deriving newtype Show deriving newtype Functor
+
+----
+-- From Baldur's notes
+----
+
+----
+-- 1
+----
+newtype WrapApplicative f a = WrappedApplicative (f a)
+  deriving (Functor, Applicative)
+
+instance (Applicative f, Num a) => Num (WrapApplicative f a) where
+  (+)         = liftA2 (+)
+  (*)         = liftA2 (*)
+  negate      = fmap negate
+  fromInteger = pure . fromInteger
+  abs         = fmap abs
+  signum      = fmap signum
+
+instance (Applicative f, Fractional a) => Fractional (WrapApplicative f a) where
+  recip        = fmap recip
+  fromRational = pure . fromRational
+
+instance (Applicative f, Floating a) => Floating (WrapApplicative f a) where
+  pi    = pure pi
+  sqrt  = fmap sqrt
+  exp   = fmap exp
+  log   = fmap log
+  sin   = fmap sin
+  cos   = fmap cos
+  asin  = fmap asin
+  atan  = fmap atan
+  acos  = fmap acos
+  sinh  = fmap sinh
+  cosh  = fmap cosh
+  asinh = fmap asinh
+  atanh = fmap atanh
+  acosh = fmap acosh
+
+instance (Applicative f, Semigroup s) => Semigroup (WrapApplicative f s) where
+  (<>) = liftA2 (<>)
+
+instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m) where
+  mempty = pure mempty
+
+----
+-- 2
+----
+class Pointed p where
+  pointed :: a -> p a
+
+newtype WrapMonad f a = WrappedMonad (f a)
+  deriving newtype (Pointed, Monad)
+
+instance (Monad m, Pointed m) => Functor (WrapMonad m) where
+  fmap = liftM
+
+instance (Monad m, Pointed m) => Applicative (WrapMonad m) where
+  pure  = pointed
+  (<*>) = ap
+
+-- data
+data Sorted a = Sorted a a a
+  deriving
+    via( WrapMonad Sorted)(Functor,Applicative)
+  deriving
+    via( WrapApplicative Sorted a)(Num,Fractional,Floating,Semigroup,Monoid)
+
+
+instance Monad Sorted where
+  (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b
+  Sorted a b c >>= f = Sorted a' b' c' where
+    Sorted a' _  _  = f a
+    Sorted _  b' _  = f b
+    Sorted _  _  c' = f c
+
+instance Pointed Sorted where
+  pointed :: a -> Sorted a
+  pointed a = Sorted a a a
+
+----
+-- 3
+----
+class IsZero a where
+  isZero :: a -> Bool
+
+newtype WrappedNumEq  a = WrappedNumEq a
+newtype WrappedShow   a = WrappedShow  a
+newtype WrappedNumEq2 a = WrappedNumEq2 a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq a) where
+  isZero :: WrappedNumEq a -> Bool
+  isZero (WrappedNumEq a) = 0 == a
+
+instance Show a => IsZero (WrappedShow a) where
+  isZero :: WrappedShow a -> Bool
+  isZero (WrappedShow a) = "0" == show a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where
+  isZero :: WrappedNumEq2 a -> Bool
+  isZero (WrappedNumEq2 a) = a + a == a
+
+newtype INT = INT Int
+  deriving newtype Show
+  deriving        via( WrappedNumEq Int)IsZero
+
+newtype VOID = VOID Void deriving        via( WrappedShow Void)IsZero
+
+----
+-- 4
+----
+class Bifunctor p => Biapplicative p where
+  bipure :: a -> b -> p a b
+
+  biliftA2
+    :: (a  -> b  -> c)
+    -> (a' -> b' -> c')
+    -> p a a'
+    -> p b b'
+    -> p c c'
+
+instance Biapplicative (,) where
+  bipure = (,)
+
+  biliftA2 f f' (a, a') (b, b') =
+    (f a b, f' a' b')
+
+newtype WrapBiapp p a b = WrapBiap (p a b)
+  deriving newtype (Bifunctor, Biapplicative, Eq)
+
+instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b) where
+  (+) = biliftA2 (+) (+)
+  (-) = biliftA2 (*) (*)
+  (*) = biliftA2 (*) (*)
+  negate = bimap negate negate
+  abs = bimap abs abs
+  signum = bimap signum signum
+  fromInteger n = fromInteger n `bipure` fromInteger n
+
+newtype INT2 = INT2 (Int, Int)
+  deriving        via( WrappedNumEq2 (WrapBiapp (,) Int Int))IsZero
+
+----
+-- 5
+----
+class Monoid a => MonoidNull a where
+  null :: a -> Bool
+
+newtype WrpMonNull a = WRM a deriving (Eq, Semigroup, Monoid)
+
+instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where
+  null :: WrpMonNull a -> Bool
+  null = (== mempty)
+
+deriving via( WrpMonNull Any) instance MonoidNull Any
+deriving via ()               instance MonoidNull ()
+deriving viaOrdering          instance MonoidNull Ordering
+
+----
+-- 6
+----
+-- https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635
+
+class Lattice a where
+  sup   :: a -> a -> a
+  (.>=) :: a -> a -> Bool
+  (.>)  :: a -> a -> Bool
+
+newtype WrapOrd a = WrappedOrd a
+  deriving newtype (Eq, Ord)
+
+instance Ord a => Lattice (WrapOrd a) where
+  sup   = max
+  (.>=) = (>=)
+  (.>)  = (>)
+
+deriving via[ a]    instance Ord a          => Lattice [a]
+deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b)
+--mkLattice_(Bool)
+deriving viaBool  instance Lattice Bool
+--mkLattice_(Char)
+deriving viaChar  instance Lattice Char
+--mkLattice_(Int)
+deriving viaInt  instance Lattice Int
+--mkLattice_(Integer)
+deriving viaInteger  instance Lattice Integer
+--mkLattice_(Float)
+deriving viaFloat  instance Lattice Float
+--mkLattice_(Double)
+deriving viaDouble  instance Lattice Double
+--mkLattice_(Rational)
+deriving viaRational  instance Lattice Rational
+
+----
+-- 7
+----
+-- https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html
+
+class Functor f => Additive f where
+  zero :: Num a => f a
+  (^+^) :: Num a => f a -> f a -> f a
+  (^+^) = liftU2 (+)
+  (^-^) :: Num a => f a -> f a -> f a
+  x ^-^ y = x ^+^ fmap negate y
+  liftU2 :: (a -> a -> a) -> f a -> f a -> f a
+
+instance Additive [] where
+  zero = []
+  liftU2 f = go where
+    go (x:xs) (y:ys) = f x y : go xs ys
+    go [] ys = ys
+    go xs [] = xs
+
+instance Additive Maybe where
+  zero = Nothing
+  liftU2 f (Just a) (Just b) = Just (f a b)
+  liftU2 _ Nothing ys = ys
+  liftU2 _ xs Nothing = xs
+
+instance Applicative f => Additive (WrapApplicative f) where
+  zero   = pure 0
+  liftU2 = liftA2
+
+deriving via( WrapApplicative ((->) a)) instance Additive ((->) a)
+deriving via( WrapApplicative Complex)  instance Additive Complex
+deriving via( WrapApplicative Identity) instance Additive Identity
+
+instance Additive ZipList where
+  zero = ZipList []
+  liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys)
+
+class Additive (Diff p) => Affine p where
+  type Diff p :: Type -> Type
+
+  (.-.) :: Num a => p a -> p a -> Diff p a
+  (.+^) :: Num a => p a -> Diff p a -> p a
+  (.-^) :: Num a => p a -> Diff p a -> p a
+  p .-^ v = p .+^ fmap negate v
+
+-- #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \
+--   (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \
+--   (.-^) = (^-^) ; {-# INLINE (.-^) #-}
+-- #define ADDITIVE(T) ADDITIVEC((), T)
+newtype WrapAdditive f a = WrappedAdditive (f a)
+
+instance Additive f => Affine (WrapAdditive f) where
+  type Diff (WrapAdditive f) = f
+
+  WrappedAdditive a .-. WrappedAdditive b = a ^-^ b
+  WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b)
+  WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b)
+
+-- ADDITIVE(((->) a))
+deriving via( WrapAdditive ((->) a)) instance Affine ((->) a)
+-- ADDITIVE([])
+deriving via( WrapAdditive [])       instance Affine []
+-- ADDITIVE(Complex)
+deriving via( WrapAdditive Complex)  instance Affine Complex
+-- ADDITIVE(Maybe)
+deriving via( WrapAdditive Maybe)    instance Affine Maybe
+-- ADDITIVE(ZipList)
+deriving via( WrapAdditive ZipList)  instance Affine ZipList
+-- ADDITIVE(Identity)
+deriving via( WrapAdditive Identity) instance Affine Identity
+
+----
+-- 8
+----
+
+class C2 a b c where
+  c2 :: a -> b -> c
+
+instance C2 a b (Const a b) where
+  c2 x _ = Const x
+
+newtype Fweemp a = Fweemp a
+  deriving
+       via( Const a (b :: Type))(C2ab)
+
diff --git a/tests/examples/DerivingVia.hs.parser.golden b/tests/examples/DerivingVia.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia.hs.parser.golden
@@ -0,0 +1,32882 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 1 1 460 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DerivingVia.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 6 1 6 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 8 1 8 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 9 1 9 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 10 1 10 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 11 1 11 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 12 1 12 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 13 1 13 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 14 1 14 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 15 1 15 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 16 1 16 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 17 1 17 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 18 1 18 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 19 1 19 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 20 1 20 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 20 1 20 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 22 1 22 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 23 1 23 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 24 1 24 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 25 1 25 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 26 1 26 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 27 1 27 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 28 1 28 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 29 1 29 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 30 1 30 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 32 1 32 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 33 1 33 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 34 1 34 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 36 1 36 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 42 1 42 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 50 1 50 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 52 1 52 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 55 1 55 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 58 1 58 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 66 1 66 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 69 1 69 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 72 1 72 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 74 1 74 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 75 1 75 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 76 1 76 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 84 1 84 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 87 1 87 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 91 1 91 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 95 1 95 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 99 1 99 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 112 1 112 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 115 1 115 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 119 1 119 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 123 1 123 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 127 1 127 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 128 1 128 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 132 1 132 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 137 1 137 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 146 1 146 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 157 1 157 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 160 1 160 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 162 1 162 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 165 1 165 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 171 1 171 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 172 1 172 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 173 1 173 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 174 1 174 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 175 1 175 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 176 1 176 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 177 1 177 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 178 1 178 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 179 1 179 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 181 1 181 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 190 1 190 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 193 1 193 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 201 1 201 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 205 1 205 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 221 1 221 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 224 1 224 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 230 1 230 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 233 1 233 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 236 1 236 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 239 1 239 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 244 1 244 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 251 1 251 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 258 1 258 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 265 1 265 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 268 1 268 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 269 1 269 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 270 1 270 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 272 1 272 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 276 1 276 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 280 1 280 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 284 1 284 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 288 1 288 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 293 1 293 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 303 1 303 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 309 1 309 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 312 1 312 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 321 1 321 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 327 1 327 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 330 1 330 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 332 1 332 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 336 1 336 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 337 1 337 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 338 1 338 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 345 1 345 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 350 1 350 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 353 1 353 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 358 1 358 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 359 1 359 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 361 1 361 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 363 1 363 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 365 1 365 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 367 1 367 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 369 1 369 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 371 1 371 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 373 1 373 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 380 1 380 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 388 1 388 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 395 1 395 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 401 1 401 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 405 1 405 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 406 1 406 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 407 1 407 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 409 1 409 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 413 1 413 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 425 1 425 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 427 1 427 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 435 1 435 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 437 1 437 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 439 1 439 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 441 1 441 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 443 1 443 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 445 1 445 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 451 1 451 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 454 1 454 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 457 1 457 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 460 1 460 1
+            , SrcSpan "tests/examples/DerivingVia.hs" 460 1 460 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 20 1 20 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DerivingVia.hs" 20 1 20 7
+                  , SrcSpan "tests/examples/DerivingVia.hs" 20 20 20 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 20 8 20 19
+                 , srcInfoPoints = []
+                 }
+               "DerivingVia")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "DerivingStrategies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 2 1 2 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 2 1 2 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 2 26 2 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 2 14 2 25
+                , srcInfoPoints = []
+                }
+              "DerivingVia"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 3 1 3 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 3 1 3 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 3 41 3 44
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 3 14 3 40
+                , srcInfoPoints = []
+                }
+              "GeneralizedNewtypeDeriving"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 4 1 4 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 4 1 4 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 4 29 4 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 4 14 4 28
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 5 1 5 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 5 1 5 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 5 25 5 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 5 14 5 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 6 1 6 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 6 1 6 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 6 33 6 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 6 14 6 32
+                , srcInfoPoints = []
+                }
+              "StandaloneDeriving"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 7 1 7 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 7 1 7 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 7 27 7 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 7 14 7 26
+                , srcInfoPoints = []
+                }
+              "InstanceSigs"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 8 1 8 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 8 1 8 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 8 25 8 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 8 14 8 24
+                , srcInfoPoints = []
+                }
+              "TypeInType"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 9 1 9 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 9 1 9 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 9 20 9 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 9 14 9 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 10 1 10 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 10 1 10 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 10 31 10 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 10 14 10 30
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 11 1 11 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 11 1 11 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 11 30 11 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 11 14 11 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 12 1 12 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 12 1 12 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 12 36 12 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 12 14 12 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 13 1 13 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 13 1 13 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 13 25 13 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 13 14 13 24
+                , srcInfoPoints = []
+                }
+              "MultiWayIf"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 14 1 14 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 14 1 14 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 14 28 14 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 14 14 14 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 15 1 15 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 15 1 15 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 15 34 15 37
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 15 14 15 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 16 1 16 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 16 1 16 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 16 32 16 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 16 14 16 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 17 1 17 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 17 1 17 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 17 27 17 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 17 14 17 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 18 1 18 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 18 1 18 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 18 31 18 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 18 14 18 30
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 19 1 19 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 19 1 19 13
+                , SrcSpan "tests/examples/DerivingVia.hs" 19 35 19 38
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 19 14 19 34
+                , srcInfoPoints = []
+                }
+              "UndecidableInstances"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 22 1 22 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 22 1 22 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 22 8 22 17
+                  , srcInfoPoints = []
+                  }
+                "Data.Void"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 23 1 23 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 23 1 23 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 23 8 23 20
+                  , srcInfoPoints = []
+                  }
+                "Data.Complex"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 24 1 24 26
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 24 1 24 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 24 8 24 26
+                  , srcInfoPoints = []
+                  }
+                "Data.Functor.Const"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 25 1 25 29
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 25 1 25 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 25 8 25 29
+                  , srcInfoPoints = []
+                  }
+                "Data.Functor.Identity"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 26 1 26 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 26 1 26 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 26 8 26 18
+                  , srcInfoPoints = []
+                  }
+                "Data.Ratio"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 27 1 27 28
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 27 1 27 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 27 8 27 28
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad.Reader"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 28 1 28 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 28 1 28 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 28 8 28 27
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad.State"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 29 1 29 28
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 29 1 29 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 29 8 29 28
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad.Writer"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 30 1 30 53
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 30 1 30 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 30 8 30 27
+                  , srcInfoPoints = []
+                  }
+                "Control.Applicative"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 30 28 30 53
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 30 28 30 34
+                         , SrcSpan "tests/examples/DerivingVia.hs" 30 35 30 36
+                         , SrcSpan "tests/examples/DerivingVia.hs" 30 52 30 53
+                         ]
+                     }
+                   True
+                   [ IThingAll
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 30 36 30 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 30 48 30 49
+                             , SrcSpan "tests/examples/DerivingVia.hs" 30 49 30 51
+                             , SrcSpan "tests/examples/DerivingVia.hs" 30 51 30 52
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 30 36 30 48
+                            , srcInfoPoints = []
+                            }
+                          "WrappedMonad")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 32 1 32 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 32 1 32 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 32 8 32 22
+                  , srcInfoPoints = []
+                  }
+                "Data.Bifunctor"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 33 1 33 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 33 1 33 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 33 8 33 19
+                  , srcInfoPoints = []
+                  }
+                "Data.Monoid"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 34 1 34 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 34 1 34 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 34 8 34 17
+                  , srcInfoPoints = []
+                  }
+                "Data.Kind"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 1 36 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 36 1 36 5
+                , SrcSpan "tests/examples/DerivingVia.hs" 36 13 36 14
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 6 36 12
+               , srcInfoPoints = []
+               }
+             (DHInfix
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 6 36 12
+                  , srcInfoPoints = []
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 6 36 7
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 6 36 7
+                        , srcInfoPoints = []
+                        }
+                      "f"))
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 8 36 10
+                     , srcInfoPoints = []
+                     }
+                   "~>"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 11 36 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 11 36 12
+                     , srcInfoPoints = []
+                     }
+                   "g")))
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 15 36 38
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingVia.hs" 36 15 36 21
+                   , SrcSpan "tests/examples/DerivingVia.hs" 36 24 36 25
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 22 36 24
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 22 36 24
+                         , srcInfoPoints = []
+                         }
+                       "xx")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 26 36 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 36 31 36 33 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 26 36 30
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 26 36 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 26 36 27
+                           , srcInfoPoints = []
+                           }
+                         "f"))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 28 36 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 28 36 30
+                           , srcInfoPoints = []
+                           }
+                         "xx")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 34 36 38
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 34 36 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 34 36 35
+                           , srcInfoPoints = []
+                           }
+                         "g"))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 36 36 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 36 36 36 38
+                           , srcInfoPoints = []
+                           }
+                         "xx")))))
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 1 43 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 42 12 42 13 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 1 42 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 6 42 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 6 42 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 6 42 9
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 10 42 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 10 42 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 14 42 23
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 14 42 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 14 42 19
+                      , srcInfoPoints = []
+                      }
+                    "MkFoo")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 20 42 21
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 20 42 21
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 22 42 23
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 42 22 42 23
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 43 3 43 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 43 3 43 11 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 44 8 44 11
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 44 12 44 30
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 44 12 44 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 44 29 44 30
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 44 13 44 29
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 44 13 44 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 44 13 44 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 44 13 44 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "Identity")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 44 22 44 29
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 44 22 44 23
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 44 28 44 29
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 44 23 44 28
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 44 23 44 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 44 23 44 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 44 23 44 26
+                                           , srcInfoPoints = []
+                                           }
+                                         "Foo")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 44 27 44 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 44 27 44 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "a"))))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 43 12 43 16
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 43 12 43 16
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 43 12 43 16
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 43 12 43 16
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 1 50 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 50 20 50 21 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 1 50 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 9 50 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 9 50 17
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 9 50 15
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 9 50 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 9 50 13
+                           , srcInfoPoints = []
+                           }
+                         "Flip"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 14 50 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 14 50 15
+                           , srcInfoPoints = []
+                           }
+                         "p")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 16 50 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 16 50 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 18 50 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 18 50 19
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 22 50 47
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 50 27 50 28
+                    , SrcSpan "tests/examples/DerivingVia.hs" 50 46 50 47
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 22 50 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 50 27 50 28
+                       , SrcSpan "tests/examples/DerivingVia.hs" 50 46 50 47
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 22 50 26
+                      , srcInfoPoints = []
+                      }
+                    "Flip")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 29 50 45
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 50 37 50 39 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 29 50 36
+                           , srcInfoPoints = []
+                           }
+                         "runFlip"
+                     ]
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 40 50 45
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 40 50 43
+                             , srcInfoPoints = []
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 40 50 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 50 40 50 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "p"))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 42 50 43
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 50 42 50 43
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 44 50 45
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 50 44 50 45
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 1 55 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 52 1 52 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 52 44 52 49
+                , SrcSpan "tests/examples/DerivingVia.hs" 53 3 53 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 55 1 55 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 43
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 52 22 52 24 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 52 22 52 24 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 52 22 52 24 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 52 22 52 24 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 52 10 52 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "Bifunctor")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 20 52 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 20 52 21
+                                 , srcInfoPoints = []
+                                 }
+                               "p"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 25 52 43
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 25 52 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 25 52 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 25 52 34
+                           , srcInfoPoints = []
+                           }
+                         "Bifunctor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 35 52 43
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 52 35 52 36
+                         , SrcSpan "tests/examples/DerivingVia.hs" 52 42 52 43
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 36 52 42
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 36 52 40
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 36 52 40
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 36 52 40
+                                 , srcInfoPoints = []
+                                 }
+                               "Flip")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 41 52 42
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 52 41 52 42
+                              , srcInfoPoints = []
+                              }
+                            "p"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 3 53 41
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 3 53 41
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 3 53 41
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 3 53 8
+                             , srcInfoPoints = []
+                             }
+                           "bimap")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 9 53 10
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 9 53 10
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 11 53 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 11 53 12
+                                 , srcInfoPoints = []
+                                 }
+                               "g")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 13 53 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 53 13 53 14 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 53 15 53 41
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 53 15 53 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 53 15 53 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 15 53 19
+                                         , srcInfoPoints = []
+                                         }
+                                       "Flip")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 53 20 53 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 53 20 53 21
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 20 53 21
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 53 22 53 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 53 22 53 31
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 22 53 29
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 53 22 53 27
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 53 22 53 27
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs" 53 22 53 27
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "bimap")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 53 28 53 29
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 53 28 53 29
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs" 53 28 53 29
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "g"))))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 30 53 31
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 53 30 53 31
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 53 30 53 31
+                                               , srcInfoPoints = []
+                                               }
+                                             "f"))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 53 32 53 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 32 53 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 53 32 53 33
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 53 34 53 41
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 53 34 53 41
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 53 34 53 41
+                                            , srcInfoPoints = []
+                                            }
+                                          "runFlip"))))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 1 58 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 55 1 55 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 55 44 55 49
+                , SrcSpan "tests/examples/DerivingVia.hs" 56 3 56 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 58 1 58 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 43
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 55 22 55 24 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 55 22 55 24 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 55 22 55 24 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 55 22 55 24 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 55 10 55 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "Bifunctor")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 20 55 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 20 55 21
+                                 , srcInfoPoints = []
+                                 }
+                               "p"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 25 55 43
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 25 55 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 25 55 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 25 55 32
+                           , srcInfoPoints = []
+                           }
+                         "Functor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 33 55 43
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 55 33 55 34
+                         , SrcSpan "tests/examples/DerivingVia.hs" 55 42 55 43
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 34 55 42
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 34 55 40
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 34 55 38
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 34 55 38
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 55 34 55 38
+                                    , srcInfoPoints = []
+                                    }
+                                  "Flip")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 39 55 40
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 39 55 40
+                                 , srcInfoPoints = []
+                                 }
+                               "p")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 41 55 42
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 55 41 55 42
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 3 56 36
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 3 56 36
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 3 56 36
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 3 56 7
+                             , srcInfoPoints = []
+                             }
+                           "fmap")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 8 56 9
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 8 56 9
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 10 56 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 56 10 56 11 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 56 12 56 36
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 56 12 56 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 56 12 56 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 12 56 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Flip")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 56 17 56 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 56 17 56 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 17 56 18
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 56 19 56 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 56 19 56 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 19 56 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 56 19 56 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 56 19 56 24
+                                               , srcInfoPoints = []
+                                               }
+                                             "first")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 25 56 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 56 25 56 26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 56 25 56 26
+                                               , srcInfoPoints = []
+                                               }
+                                             "f"))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 56 27 56 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 27 56 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 56 27 56 28
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 56 29 56 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 56 29 56 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 56 29 56 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "runFlip"))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 1 59 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 58 15 58 16 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 1 58 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 9 58 14
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 9 58 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 9 58 12
+                     , srcInfoPoints = []
+                     }
+                   "Bar"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 13 58 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 13 58 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 17 58 37
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 17 58 37
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 17 58 22
+                      , srcInfoPoints = []
+                      }
+                    "MkBar")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 23 58 37
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 58 23 58 24
+                           , SrcSpan "tests/examples/DerivingVia.hs" 58 36 58 37
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 24 58 36
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 24 58 32
+                             , srcInfoPoints = []
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 24 58 30
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 58 24 58 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 58 24 58 30
+                                      , srcInfoPoints = []
+                                      }
+                                    "Either")))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 31 58 32
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 58 31 58 32
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 33 58 36
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 58 33 58 36
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 58 33 58 36
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 59 3 59 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 59 3 59 11 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 60 8 60 11
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 60 12 60 29
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 60 12 60 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 60 28 60 29
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 60 13 60 28
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 60 13 60 24
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 60 13 60 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 60 13 60 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 60 13 60 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "Flip")))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 60 18 60 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 60 18 60 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 60 18 60 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "Either"))))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 60 25 60 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 60 25 60 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 60 25 60 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int")))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 59 12 59 19
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 59 12 59 19
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 59 12 59 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 59 12 59 19
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              ]
+          ]
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 1 66 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 66 1 66 5
+                , SrcSpan "tests/examples/DerivingVia.hs" 66 13 66 14
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 6 66 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 6 66 12
+                  , srcInfoPoints = []
+                  }
+                "MTrans"))
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 15 66 47
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingVia.hs" 66 30 66 32 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 15 66 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 66 15 66 16
+                      , SrcSpan "tests/examples/DerivingVia.hs" 66 28 66 29
+                      ]
+                  }
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 16 66 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 66 21 66 23 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 16 66 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 16 66 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 16 66 20
+                              , srcInfoPoints = []
+                              }
+                            "Type")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 24 66 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 24 66 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 24 66 28
+                              , srcInfoPoints = []
+                              }
+                            "Type")))))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 33 66 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 66 33 66 34
+                      , SrcSpan "tests/examples/DerivingVia.hs" 66 46 66 47
+                      ]
+                  }
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 34 66 46
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 66 39 66 41 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 34 66 38
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 34 66 38
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 34 66 38
+                              , srcInfoPoints = []
+                              }
+                            "Type")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 42 66 46
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 42 66 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 66 42 66 46
+                              , srcInfoPoints = []
+                              }
+                            "Type"))))))
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 1 72 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 69 13 69 18
+                , SrcSpan "tests/examples/DerivingVia.hs" 70 3 70 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 72 1 72 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 1 69 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 6 69 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 6 69 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 6 69 10
+                     , srcInfoPoints = []
+                     }
+                   "Dict"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 11 69 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 69 11 69 12
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 3 70 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 70 8 70 10 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 3 70 7
+                   , srcInfoPoints = []
+                   }
+                 "Dict")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 11 70 22
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 11 70 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 70 13 70 15 ]
+                         }
+                       (TypeA
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 11 70 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 70 13 70 15 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 11 70 15
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 70 13 70 15 ]
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 70 11 70 12
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 16 70 22
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 16 70 20
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 16 70 20
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 16 70 20
+                               , srcInfoPoints = []
+                               }
+                             "Dict")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 21 70 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 70 21 70 22
+                            , srcInfoPoints = []
+                            }
+                          "c"))))
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 1 72 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 72 16 72 17 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 1 72 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 9 72 15
+               , srcInfoPoints = []
+               }
+             (DHInfix
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 9 72 15
+                  , srcInfoPoints = []
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 9 72 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 9 72 10
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 11 72 13
+                     , srcInfoPoints = []
+                     }
+                   ":-"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 14 72 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 14 72 15
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 18 72 35
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 18 72 35
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 18 72 21
+                      , srcInfoPoints = []
+                      }
+                    "Sub")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 22 72 35
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 72 22 72 23
+                           , SrcSpan "tests/examples/DerivingVia.hs" 72 34 72 35
+                           ]
+                       }
+                     (TyForall
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 23 72 34
+                          , srcInfoPoints = []
+                          }
+                        Nothing
+                        (Just
+                           (CxSingle
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 23 72 27
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 72 25 72 27 ]
+                                }
+                              (TypeA
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 72 23 72 27
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 72 25 72 27 ]
+                                   }
+                                 (TyVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 72 23 72 27
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DerivingVia.hs" 72 25 72 27 ]
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 72 23 72 24
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))))
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 28 72 34
+                             , srcInfoPoints = []
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 28 72 32
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 72 28 72 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 72 28 72 32
+                                      , srcInfoPoints = []
+                                      }
+                                    "Dict")))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 72 33 72 34
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 72 33 72 34
+                                   , srcInfoPoints = []
+                                   }
+                                 "b"))))
+                 ])
+          ]
+          []
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 74 1 74 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 74 8 74 9 ]
+            }
+          (AssocLeft
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 74 1 74 7
+               , srcInfoPoints = []
+               })
+          (Just 1)
+          [ VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 74 10 74 12
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 74 10 74 12
+                   , srcInfoPoints = []
+                   }
+                 "\\\\")
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 1 75 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 75 6 75 8 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 1 75 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 75 1 75 2
+                    , SrcSpan "tests/examples/DerivingVia.hs" 75 2 75 4
+                    , SrcSpan "tests/examples/DerivingVia.hs" 75 4 75 5
+                    ]
+                }
+              "\\\\"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 9 75 39
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 9 75 13
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 75 11 75 13 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 9 75 13
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 75 11 75 13 ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 9 75 13
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 75 11 75 13 ]
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 9 75 10
+                              , srcInfoPoints = []
+                              }
+                            "a")))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 14 75 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 75 23 75 25 ]
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 14 75 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 75 14 75 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 75 21 75 22
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 15 75 21
+                        , srcInfoPoints = []
+                        }
+                      Nothing
+                      (Just
+                         (CxSingle
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 15 75 19
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 75 17 75 19 ]
+                              }
+                            (TypeA
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 15 75 19
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 75 17 75 19 ]
+                                 }
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 75 15 75 19
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/DerivingVia.hs" 75 17 75 19 ]
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 75 15 75 16
+                                       , srcInfoPoints = []
+                                       }
+                                     "b")))))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 20 75 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 20 75 21
+                              , srcInfoPoints = []
+                              }
+                            "r"))))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 26 75 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 75 35 75 37 ]
+                     }
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 26 75 34
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 75 26 75 27
+                            , SrcSpan "tests/examples/DerivingVia.hs" 75 33 75 34
+                            ]
+                        }
+                      (TyInfix
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 27 75 33
+                           , srcInfoPoints = []
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 27 75 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 27 75 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (UnpromotedName
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 29 75 31
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 29 75 31
+                                 , srcInfoPoints = []
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 75 29 75 31
+                                    , srcInfoPoints = []
+                                    }
+                                  ":-")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 32 75 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 32 75 33
+                                 , srcInfoPoints = []
+                                 }
+                               "b"))))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 38 75 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 75 38 75 39
+                           , srcInfoPoints = []
+                           }
+                         "r")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 1 76 18
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 1 76 18
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 1 76 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 1 76 2
+                      , srcInfoPoints = []
+                      }
+                    "r"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 3 76 5
+                   , srcInfoPoints = []
+                   }
+                 "\\\\")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 6 76 14
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 6 76 9
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 6 76 9
+                          , srcInfoPoints = []
+                          }
+                        "Sub"))
+                  [ PApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 10 76 14
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 10 76 14
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 10 76 14
+                              , srcInfoPoints = []
+                              }
+                            "Dict"))
+                      []
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 15 76 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 76 15 76 16 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 17 76 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 17 76 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 76 17 76 18
+                            , srcInfoPoints = []
+                            }
+                          "r"))))
+              Nothing
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 1 85 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 84 1 84 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 84 38 84 43
+                , SrcSpan "tests/examples/DerivingVia.hs" 85 3 85 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 87 1 87 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 7 84 37
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 7 84 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 7 84 19
+                     , srcInfoPoints = []
+                     }
+                   "LiftingMonad"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 20 84 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 84 20 84 21
+                      , SrcSpan "tests/examples/DerivingVia.hs" 84 27 84 29
+                      , SrcSpan "tests/examples/DerivingVia.hs" 84 36 84 37
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 21 84 26
+                     , srcInfoPoints = []
+                     }
+                   "trans")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 30 84 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 30 84 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 84 30 84 36
+                           , srcInfoPoints = []
+                           }
+                         "MTrans")))))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 3 85 38
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 85 9 85 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 3 85 38
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 85 9 85 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 3 85 8
+                          , srcInfoPoints = []
+                          }
+                        "proof"
+                    ]
+                    (TyInfix
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 12 85 38
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 12 85 19
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 12 85 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 85 12 85 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 85 12 85 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 18 85 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 85 18 85 19
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (UnpromotedName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 20 85 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 20 85 22
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 85 20 85 22
+                                  , srcInfoPoints = []
+                                  }
+                                ":-")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 23 85 38
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 23 85 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 85 23 85 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 85 23 85 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 85 29 85 38
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 85 29 85 30
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 85 37 85 38
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 85 30 85 37
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 85 30 85 35
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 85 30 85 35
+                                        , srcInfoPoints = []
+                                        }
+                                      "trans"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 85 36 85 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 85 36 85 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "m")))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 1 91 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 87 1 87 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 87 44 87 49
+                , SrcSpan "tests/examples/DerivingVia.hs" 88 3 88 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 89 3 89 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 91 1 91 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 10 87 43
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 10 87 43
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 10 87 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 10 87 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 10 87 22
+                           , srcInfoPoints = []
+                           }
+                         "LiftingMonad")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 23 87 43
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 87 23 87 24
+                         , SrcSpan "tests/examples/DerivingVia.hs" 87 33 87 35
+                         , SrcSpan "tests/examples/DerivingVia.hs" 87 42 87 43
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 24 87 32
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 24 87 30
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 24 87 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 24 87 30
+                                 , srcInfoPoints = []
+                                 }
+                               "StateT")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 31 87 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 31 87 32
+                              , srcInfoPoints = []
+                              }
+                            "s")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 36 87 42
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 36 87 42
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 87 36 87 42
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 3 88 41
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 88 9 88 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 3 88 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 88 9 88 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 3 88 8
+                          , srcInfoPoints = []
+                          }
+                        "proof"
+                    ]
+                    (TyInfix
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 12 88 41
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 12 88 19
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 12 88 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 88 12 88 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 88 12 88 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 18 88 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 88 18 88 19
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (UnpromotedName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 20 88 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 20 88 22
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 88 20 88 22
+                                  , srcInfoPoints = []
+                                  }
+                                ":-")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 23 88 41
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 23 88 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 88 23 88 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 88 23 88 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 88 29 88 41
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 88 29 88 30
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 88 40 88 41
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 88 30 88 40
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 88 30 88 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 88 30 88 36
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 88 30 88 36
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 88 30 88 36
+                                              , srcInfoPoints = []
+                                              }
+                                            "StateT")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 88 37 88 38
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 88 37 88 38
+                                           , srcInfoPoints = []
+                                           }
+                                         "s")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 88 39 88 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 88 39 88 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "m")))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 3 89 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 3 89 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 3 89 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 3 89 8
+                            , srcInfoPoints = []
+                            }
+                          "proof"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 9 89 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 89 9 89 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 11 89 19
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 11 89 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 89 11 89 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 89 11 89 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sub")))
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 89 15 89 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 89 15 89 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 89 15 89 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "Dict")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 1 95 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 91 1 91 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 91 57 91 62
+                , SrcSpan "tests/examples/DerivingVia.hs" 92 3 92 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 93 3 93 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 95 1 95 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 56
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 91 19 91 21 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 21
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 91 19 91 21 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 21
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 91 19 91 21 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 21
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 91 19 91 21 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 91 10 91 16
+                                    , srcInfoPoints = []
+                                    }
+                                  "Monoid")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 17 91 18
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 17 91 18
+                                 , srcInfoPoints = []
+                                 }
+                               "w"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 22 91 56
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 22 91 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 22 91 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 22 91 34
+                           , srcInfoPoints = []
+                           }
+                         "LiftingMonad")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 35 91 56
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 91 35 91 36
+                         , SrcSpan "tests/examples/DerivingVia.hs" 91 46 91 48
+                         , SrcSpan "tests/examples/DerivingVia.hs" 91 55 91 56
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 36 91 45
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 36 91 43
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 36 91 43
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 36 91 43
+                                 , srcInfoPoints = []
+                                 }
+                               "WriterT")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 44 91 45
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 44 91 45
+                              , srcInfoPoints = []
+                              }
+                            "w")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 49 91 55
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 49 91 55
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 91 49 91 55
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 3 92 42
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 92 9 92 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 3 92 42
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 92 9 92 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 3 92 8
+                          , srcInfoPoints = []
+                          }
+                        "proof"
+                    ]
+                    (TyInfix
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 12 92 42
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 12 92 19
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 12 92 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 92 12 92 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 92 12 92 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 18 92 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 92 18 92 19
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (UnpromotedName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 20 92 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 20 92 22
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 92 20 92 22
+                                  , srcInfoPoints = []
+                                  }
+                                ":-")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 23 92 42
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 23 92 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 92 23 92 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 92 23 92 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 92 29 92 42
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 92 29 92 30
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 92 41 92 42
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 92 30 92 41
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 92 30 92 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 92 30 92 37
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 92 30 92 37
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 92 30 92 37
+                                              , srcInfoPoints = []
+                                              }
+                                            "WriterT")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 92 38 92 39
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 92 38 92 39
+                                           , srcInfoPoints = []
+                                           }
+                                         "w")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 92 40 92 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 92 40 92 41
+                                        , srcInfoPoints = []
+                                        }
+                                      "m")))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 3 93 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 3 93 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 3 93 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 3 93 8
+                            , srcInfoPoints = []
+                            }
+                          "proof"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 9 93 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 93 9 93 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 11 93 19
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 11 93 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 93 11 93 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 93 11 93 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sub")))
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 93 15 93 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 93 15 93 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 93 15 93 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "Dict")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 1 99 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 95 1 95 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 95 102 95 107
+                , SrcSpan "tests/examples/DerivingVia.hs" 96 3 96 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 97 3 97 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 99 1 99 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 95 10 95 101
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 10 95 54
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 95 10 95 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 95 29 95 30
+                         , SrcSpan "tests/examples/DerivingVia.hs" 95 50 95 51
+                         , SrcSpan "tests/examples/DerivingVia.hs" 95 52 95 54
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 11 95 29
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 11 95 29
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 11 95 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 95 11 95 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 95 11 95 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "LiftingMonad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 24 95 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 95 24 95 29
+                                  , srcInfoPoints = []
+                                  }
+                                "trans")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 31 95 50
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 31 95 50
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 31 95 50
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 95 31 95 43
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 95 31 95 43
+                                     , srcInfoPoints = []
+                                     }
+                                   "LiftingMonad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 44 95 50
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 95 44 95 50
+                                  , srcInfoPoints = []
+                                  }
+                                "trans'")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 95 55 95 101
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 55 95 67
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 55 95 67
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 55 95 67
+                           , srcInfoPoints = []
+                           }
+                         "LiftingMonad")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 95 68 95 101
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 95 68 95 69
+                         , SrcSpan "tests/examples/DerivingVia.hs" 95 91 95 93
+                         , SrcSpan "tests/examples/DerivingVia.hs" 95 100 95 101
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 69 95 90
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 69 95 83
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 69 95 77
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 69 95 77
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 95 69 95 77
+                                    , srcInfoPoints = []
+                                    }
+                                  "ComposeT")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 78 95 83
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 78 95 83
+                                 , srcInfoPoints = []
+                                 }
+                               "trans")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 84 95 90
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 95 84 95 90
+                              , srcInfoPoints = []
+                              }
+                            "trans'")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 95 94 95 100
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 95 94 95 100
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 95 94 95 100
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 3 96 64
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 96 9 96 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 3 96 64
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 96 9 96 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 3 96 8
+                          , srcInfoPoints = []
+                          }
+                        "proof"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 12 96 64
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 96 12 96 18
+                             , SrcSpan "tests/examples/DerivingVia.hs" 96 20 96 21
+                             ]
+                         }
+                       (Just
+                          [ UnkindedVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 19 96 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 96 19 96 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "m")
+                          ])
+                       Nothing
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 22 96 64
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 22 96 29
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 96 22 96 27
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 96 22 96 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 96 22 96 27
+                                        , srcInfoPoints = []
+                                        }
+                                      "Monad")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 96 28 96 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 96 28 96 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "m")))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 30 96 32
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 96 30 96 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 96 30 96 32
+                                     , srcInfoPoints = []
+                                     }
+                                   ":-")))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 96 33 96 64
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 96 33 96 38
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 96 33 96 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 96 33 96 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "Monad")))
+                             (TyParen
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 96 39 96 64
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 96 39 96 40
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 96 63 96 64
+                                      ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 96 40 96 63
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 96 40 96 61
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 96 40 96 54
+                                           , srcInfoPoints = []
+                                           }
+                                         (TyCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 96 40 96 48
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 96 40 96 48
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          96
+                                                          40
+                                                          96
+                                                          48
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ComposeT")))
+                                         (TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 96 49 96 54
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 96 49 96 54
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "trans")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 96 55 96 61
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 96 55 96 61
+                                              , srcInfoPoints = []
+                                              }
+                                            "trans'")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 96 62 96 63
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 96 62 96 63
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 3 97 69
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 3 97 69
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 3 97 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 3 97 8
+                            , srcInfoPoints = []
+                            }
+                          "proof"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 9 97 69
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 97 9 97 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 11 97 69
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 11 97 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 97 11 97 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 97 11 97 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sub")))
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 97 15 97 69
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 97 15 97 16
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 97 68 97 69
+                                   ]
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 97 16 97 68
+                                  , srcInfoPoints = []
+                                  }
+                                (InfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 97 16 97 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 16 97 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 16 97 20
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 16 97 20
+                                              , srcInfoPoints = []
+                                              }
+                                            "Dict")))
+                                   (QVarOp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 21 97 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 21 97 23
+                                           , srcInfoPoints = []
+                                           }
+                                         (Symbol
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 21 97 23
+                                              , srcInfoPoints = []
+                                              }
+                                            "\\\\")))
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 24 97 48
+                                        , srcInfoPoints = []
+                                        }
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 24 97 36
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 24 97 29
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 97 24 97 29
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          97
+                                                          24
+                                                          97
+                                                          29
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "proof")))
+                                         (TypeApp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 30 97 36
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 97 30 97 31
+                                                  ]
+                                              }
+                                            (TyVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 97 31 97 36
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          97
+                                                          31
+                                                          97
+                                                          36
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "trans"))))
+                                      (TypeApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 37 97 48
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/DerivingVia.hs" 97 37 97 38
+                                               ]
+                                           }
+                                         (TyParen
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 38 97 48
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 97 38 97 39
+                                                  , SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 97 47 97 48
+                                                  ]
+                                              }
+                                            (TyApp
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 97 39 97 47
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (TyVar
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          97
+                                                          39
+                                                          97
+                                                          45
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             97
+                                                             39
+                                                             97
+                                                             45
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "trans'"))
+                                               (TyVar
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          97
+                                                          46
+                                                          97
+                                                          47
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             97
+                                                             46
+                                                             97
+                                                             47
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "m")))))))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 97 49 97 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 49 97 51
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 49 97 51
+                                           , srcInfoPoints = []
+                                           }
+                                         "\\\\")))
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 97 52 97 68
+                                     , srcInfoPoints = []
+                                     }
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 52 97 65
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 52 97 57
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 52 97 57
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 97 52 97 57
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "proof")))
+                                      (TypeApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 58 97 65
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/DerivingVia.hs" 97 58 97 59
+                                               ]
+                                           }
+                                         (TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 59 97 65
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 97 59 97 65
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "trans'"))))
+                                   (TypeApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 97 66 97 68
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 97 66 97 67 ]
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 97 67 97 68
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 97 67 97 68
+                                              , srcInfoPoints = []
+                                              }
+                                            "m"))))))))
+                    Nothing)
+             ])
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 1 109 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 99 15 99 17
+                , SrcSpan "tests/examples/DerivingVia.hs" 99 25 99 30
+                , SrcSpan "tests/examples/DerivingVia.hs" 100 3 100 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 101 3 101 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 101 3 101 3
+                ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 1 99 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 9 99 14
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 9 99 14
+                  , srcInfoPoints = []
+                  }
+                "Stack"))
+          (Just
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 18 99 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 18 99 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 99 18 99 24
+                        , srcInfoPoints = []
+                        }
+                      "MTrans"))))
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 100 3 100 71
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 100 9 100 11 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 100 3 100 8
+                   , srcInfoPoints = []
+                   }
+                 "Stack")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 71
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 100 59 100 61 ]
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 58
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 56
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 23
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 100 12 100 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "ReaderT")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 100 20 100 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 100 20 100 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 100 20 100 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))))
+                       (TyParen
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 24 100 56
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 100 24 100 25
+                                , SrcSpan "tests/examples/DerivingVia.hs" 100 55 100 56
+                                ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 100 25 100 55
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 100 25 100 36
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 100 25 100 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 100 25 100 31
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 100 25 100 31
+                                           , srcInfoPoints = []
+                                           }
+                                         "StateT")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 100 32 100 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 100 32 100 36
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 100 32 100 36
+                                           , srcInfoPoints = []
+                                           }
+                                         "Bool"))))
+                             (TyParen
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 100 37 100 55
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 100 37 100 38
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 100 54 100 55
+                                      ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 100 38 100 54
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 100 38 100 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 100 38 100 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 100 38 100 45
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 100 38 100 45
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "WriterT")))
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 100 46 100 52
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 100 46 100 52
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 100 46 100 52
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "String"))))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 100 53 100 54
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 100 53 100 54
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))))))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 100 57 100 58
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 57 100 58
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 100 62 100 71
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 100 62 100 69
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 62 100 67
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 100 62 100 67
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 100 62 100 67
+                                  , srcInfoPoints = []
+                                  }
+                                "Stack")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 68 100 69
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 100 68 100 69
+                               , srcInfoPoints = []
+                               }
+                             "m")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 100 70 100 71
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 100 70 100 71
+                            , srcInfoPoints = []
+                            }
+                          "a"))))
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 101 3 108 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 101 3 101 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 102 5 102 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 103 5 103 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 104 5 104 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 105 5 105 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 106 5 106 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 107 5 107 6
+                    , SrcSpan "tests/examples/DerivingVia.hs" 108 5 108 6
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 101 12 101 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 102 7 102 14
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 102 7 102 14
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 102 7 102 14
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 102 7 102 14
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 103 7 103 18
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 103 7 103 18
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 103 7 103 18
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 103 7 103 18
+                             , srcInfoPoints = []
+                             }
+                           "Applicative")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 104 7 104 12
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 104 7 104 12
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 104 7 104 12
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 104 7 104 12
+                             , srcInfoPoints = []
+                             }
+                           "Monad")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 105 7 105 22
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 105 7 105 22
+                       , srcInfoPoints = []
+                       }
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 105 7 105 18
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 105 7 105 18
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 105 7 105 18
+                                , srcInfoPoints = []
+                                }
+                              "MonadReader")))
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 105 19 105 22
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 105 19 105 22
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 105 19 105 22
+                                , srcInfoPoints = []
+                                }
+                              "Int"))))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 106 7 106 22
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 106 7 106 22
+                       , srcInfoPoints = []
+                       }
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 106 7 106 17
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 106 7 106 17
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 106 7 106 17
+                                , srcInfoPoints = []
+                                }
+                              "MonadState")))
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 106 18 106 22
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 106 18 106 22
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 106 18 106 22
+                                , srcInfoPoints = []
+                                }
+                              "Bool"))))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 107 7 107 25
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 107 7 107 25
+                       , srcInfoPoints = []
+                       }
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 107 7 107 18
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 107 7 107 18
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 107 7 107 18
+                                , srcInfoPoints = []
+                                }
+                              "MonadWriter")))
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 107 19 107 25
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 107 19 107 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 107 19 107 25
+                                , srcInfoPoints = []
+                                }
+                              "String"))))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 109 3 109 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 109 3 109 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 109 12 109 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 109 23 109 24
+                    , SrcSpan "tests/examples/DerivingVia.hs" 109 33 109 34
+                    ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 110 8 110 11
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 110 12 110 74
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 110 12 110 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 110 73 110 74
+                             ]
+                         }
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 110 13 110 73
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 110 13 110 24
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 13 110 20
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 13 110 20
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 13 110 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "ReaderT")))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 21 110 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 21 110 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 21 110 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "Int"))))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 110 25 110 35
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 110 25 110 26
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 110 26 110 34
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 110 34 110 35
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 25 110 35
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 110 25 110 26
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 110 26 110 34
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 110 34 110 35
+                                      ]
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 26 110 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "ComposeT")))
+                          (TyInfix
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 110 36 110 73
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 36 110 47
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 36 110 42
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 36 110 42
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 110 36 110 42
+                                           , srcInfoPoints = []
+                                           }
+                                         "StateT")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 43 110 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 43 110 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 110 43 110 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "Bool"))))
+                             (UnpromotedName
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 48 110 58
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 110 48 110 49
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 110 49 110 57
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 110 57 110 58
+                                      ]
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 48 110 58
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 110 48 110 49
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 110 49 110 57
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 110 57 110 58
+                                         ]
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 49 110 57
+                                        , srcInfoPoints = []
+                                        }
+                                      "ComposeT")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 110 59 110 73
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 59 110 66
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 59 110 66
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 110 59 110 66
+                                           , srcInfoPoints = []
+                                           }
+                                         "WriterT")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 110 67 110 73
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 110 67 110 73
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 110 67 110 73
+                                           , srcInfoPoints = []
+                                           }
+                                         "String")))))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 109 13 109 23
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 109 13 109 23
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 109 13 109 23
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 109 13 109 23
+                             , srcInfoPoints = []
+                             }
+                           "MonadTrans")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 109 25 109 33
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 109 25 109 33
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 109 25 109 33
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 109 25 109 33
+                             , srcInfoPoints = []
+                             }
+                           "MFunctor")))
+              ]
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 112 1 113 57
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 112 1 112 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 112 34 112 39
+                , SrcSpan "tests/examples/DerivingVia.hs" 113 3 113 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 115 1 115 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 112 7 112 33
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 112 7 112 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 112 7 112 15
+                     , srcInfoPoints = []
+                     }
+                   "MFunctor"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 112 16 112 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 112 16 112 17
+                      , SrcSpan "tests/examples/DerivingVia.hs" 112 23 112 25
+                      , SrcSpan "tests/examples/DerivingVia.hs" 112 32 112 33
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 112 17 112 22
+                     , srcInfoPoints = []
+                     }
+                   "trans")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 112 26 112 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 112 26 112 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 112 26 112 32
+                           , srcInfoPoints = []
+                           }
+                         "MTrans")))))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 113 3 113 57
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 113 9 113 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 113 3 113 57
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 113 9 113 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 113 3 113 8
+                          , srcInfoPoints = []
+                          }
+                        "hoist"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 57
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 113 20 113 22 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 22
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 113 20 113 22 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 22
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 113 20 113 22 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 22
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 113 20 113 22
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 12 113 17
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 113 12 113 17
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 18 113 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 18 113 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 113 23 113 57
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 113 33 113 35 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 113 23 113 32
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 113 23 113 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 113 31 113 32
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 113 24 113 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 24 113 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 24 113 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 26 113 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 26 113 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 26 113 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 29 113 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 29 113 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "m'"))))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 113 36 113 57
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 113 36 113 37
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 113 56 113 57
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 113 37 113 56
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 37 113 44
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 37 113 42
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 37 113 42
+                                           , srcInfoPoints = []
+                                           }
+                                         "trans"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 43 113 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 43 113 44
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 45 113 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 45 113 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 45 113 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 113 48 113 56
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 48 113 53
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 48 113 53
+                                           , srcInfoPoints = []
+                                           }
+                                         "trans"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 113 54 113 56
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 113 54 113 56
+                                           , srcInfoPoints = []
+                                           }
+                                         "m'"))))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 115 1 119 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 115 1 115 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 115 41 115 46
+                , SrcSpan "tests/examples/DerivingVia.hs" 116 3 116 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 117 3 117 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 119 1 119 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 115 10 115 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 115 10 115 40
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 115 10 115 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 115 10 115 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 115 10 115 18
+                           , srcInfoPoints = []
+                           }
+                         "MFunctor")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 115 19 115 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 115 19 115 20
+                         , SrcSpan "tests/examples/DerivingVia.hs" 115 30 115 32
+                         , SrcSpan "tests/examples/DerivingVia.hs" 115 39 115 40
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 115 20 115 29
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 115 20 115 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 115 20 115 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 115 20 115 27
+                                 , srcInfoPoints = []
+                                 }
+                               "ReaderT")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 115 28 115 29
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 115 28 115 29
+                              , srcInfoPoints = []
+                              }
+                            "r")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 115 33 115 39
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 115 33 115 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 115 33 115 39
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 116 3 116 65
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 116 9 116 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 116 3 116 65
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 116 9 116 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 116 3 116 8
+                          , srcInfoPoints = []
+                          }
+                        "hoist"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 65
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 116 20 116 22 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 22
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 116 20 116 22 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 22
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 116 20 116 22 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 22
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 116 20 116 22
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 12 116 17
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 116 12 116 17
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 18 116 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 18 116 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 116 23 116 65
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 116 33 116 35 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 116 23 116 32
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 116 23 116 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 116 31 116 32
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 116 24 116 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 24 116 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 24 116 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 26 116 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 26 116 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 26 116 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 29 116 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 29 116 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "m'"))))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 116 36 116 65
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 116 36 116 37
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 116 64 116 65
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 116 37 116 64
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 37 116 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 37 116 46
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 37 116 44
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 116 37 116 44
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 116 37 116 44
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "ReaderT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 45 116 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 116 45 116 46
+                                              , srcInfoPoints = []
+                                              }
+                                            "r")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 47 116 48
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 47 116 48
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 49 116 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 49 116 51
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 49 116 51
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 116 52 116 64
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 52 116 61
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 52 116 59
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 116 52 116 59
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 116 52 116 59
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "ReaderT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 60 116 61
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 116 60 116 61
+                                              , srcInfoPoints = []
+                                              }
+                                            "r")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 116 62 116 64
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 116 62 116 64
+                                           , srcInfoPoints = []
+                                           }
+                                         "m'"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 117 3 117 46
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 117 3 117 46
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 117 3 117 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 117 3 117 8
+                             , srcInfoPoints = []
+                             }
+                           "hoist")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 117 9 117 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 117 9 117 12
+                                 , srcInfoPoints = []
+                                 }
+                               "nat")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 117 13 117 46
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 117 13 117 14 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 117 15 117 46
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 117 15 117 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 117 15 117 22
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 15 117 22
+                                         , srcInfoPoints = []
+                                         }
+                                       "ReaderT")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 117 23 117 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 117 23 117 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 23 117 24
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 117 25 117 46
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 117 25 117 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 25 117 29
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 117 25 117 29
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 117 25 117 29
+                                               , srcInfoPoints = []
+                                               }
+                                             "fmap")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 30 117 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 117 30 117 33
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 117 30 117 33
+                                               , srcInfoPoints = []
+                                               }
+                                             "nat"))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 117 34 117 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 34 117 35
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 117 34 117 35
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 117 36 117 46
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 117 36 117 46
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 117 36 117 46
+                                            , srcInfoPoints = []
+                                            }
+                                          "runReaderT"))))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 119 1 123 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 119 1 119 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 119 40 119 45
+                , SrcSpan "tests/examples/DerivingVia.hs" 120 3 120 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 121 3 121 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 123 1 123 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 119 10 119 39
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 119 10 119 39
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 119 10 119 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 119 10 119 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 119 10 119 18
+                           , srcInfoPoints = []
+                           }
+                         "MFunctor")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 119 19 119 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 119 19 119 20
+                         , SrcSpan "tests/examples/DerivingVia.hs" 119 29 119 31
+                         , SrcSpan "tests/examples/DerivingVia.hs" 119 38 119 39
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 119 20 119 28
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 119 20 119 26
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 119 20 119 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 119 20 119 26
+                                 , srcInfoPoints = []
+                                 }
+                               "StateT")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 119 27 119 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 119 27 119 28
+                              , srcInfoPoints = []
+                              }
+                            "s")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 119 32 119 38
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 119 32 119 38
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 119 32 119 38
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 120 3 120 63
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 120 9 120 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 120 3 120 63
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 120 9 120 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 120 3 120 8
+                          , srcInfoPoints = []
+                          }
+                        "hoist"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 63
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 120 20 120 22 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 22
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 120 20 120 22 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 22
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 120 20 120 22 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 22
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 120 20 120 22
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 12 120 17
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 120 12 120 17
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 18 120 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 18 120 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 120 23 120 63
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 120 33 120 35 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 120 23 120 32
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 120 23 120 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 120 31 120 32
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 120 24 120 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 24 120 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 24 120 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 26 120 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 26 120 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 26 120 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 29 120 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 29 120 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "m'"))))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 120 36 120 63
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 120 36 120 37
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 120 62 120 63
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 120 37 120 62
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 37 120 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 37 120 45
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 37 120 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 120 37 120 43
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 120 37 120 43
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "StateT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 44 120 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 120 44 120 45
+                                              , srcInfoPoints = []
+                                              }
+                                            "s")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 46 120 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 46 120 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 48 120 50
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 48 120 50
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 48 120 50
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 120 51 120 62
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 51 120 59
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 51 120 57
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 120 51 120 57
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 120 51 120 57
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "StateT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 58 120 59
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 120 58 120 59
+                                              , srcInfoPoints = []
+                                              }
+                                            "s")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 120 60 120 62
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 120 60 120 62
+                                           , srcInfoPoints = []
+                                           }
+                                         "m'"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 121 3 121 44
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 121 3 121 44
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 121 3 121 44
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 121 3 121 8
+                             , srcInfoPoints = []
+                             }
+                           "hoist")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 121 9 121 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 121 9 121 12
+                                 , srcInfoPoints = []
+                                 }
+                               "nat")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 121 13 121 44
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 121 13 121 14 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 121 15 121 44
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 121 15 121 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 121 15 121 21
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 15 121 21
+                                         , srcInfoPoints = []
+                                         }
+                                       "StateT")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 121 22 121 23
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 121 22 121 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 22 121 23
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 121 24 121 44
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 121 24 121 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 24 121 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 121 24 121 28
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 121 24 121 28
+                                               , srcInfoPoints = []
+                                               }
+                                             "fmap")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 29 121 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 121 29 121 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 121 29 121 32
+                                               , srcInfoPoints = []
+                                               }
+                                             "nat"))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 121 33 121 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 33 121 34
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 121 33 121 34
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 121 35 121 44
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 121 35 121 44
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 121 35 121 44
+                                            , srcInfoPoints = []
+                                            }
+                                          "runStateT"))))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 123 1 127 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 123 1 123 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 123 41 123 46
+                , SrcSpan "tests/examples/DerivingVia.hs" 124 3 124 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 125 3 125 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 127 1 127 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 123 10 123 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 123 10 123 40
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 123 10 123 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 123 10 123 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 123 10 123 18
+                           , srcInfoPoints = []
+                           }
+                         "MFunctor")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 123 19 123 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 123 19 123 20
+                         , SrcSpan "tests/examples/DerivingVia.hs" 123 30 123 32
+                         , SrcSpan "tests/examples/DerivingVia.hs" 123 39 123 40
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 123 20 123 29
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 123 20 123 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 123 20 123 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 123 20 123 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WriterT")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 123 28 123 29
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 123 28 123 29
+                              , srcInfoPoints = []
+                              }
+                            "w")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 123 33 123 39
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 123 33 123 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 123 33 123 39
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 124 3 124 65
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 124 9 124 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 124 3 124 65
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 124 9 124 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 124 3 124 8
+                          , srcInfoPoints = []
+                          }
+                        "hoist"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 65
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 124 20 124 22 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 22
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 124 20 124 22 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 22
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 124 20 124 22 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 22
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 124 20 124 22
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 12 124 17
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 124 12 124 17
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 18 124 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 18 124 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 124 23 124 65
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 124 33 124 35 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 124 23 124 32
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 124 23 124 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 124 31 124 32
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 124 24 124 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 24 124 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 24 124 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 26 124 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 26 124 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 26 124 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 29 124 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 29 124 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "m'"))))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 124 36 124 65
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 124 36 124 37
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 124 64 124 65
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 124 37 124 64
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 37 124 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 37 124 46
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 37 124 44
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 124 37 124 44
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 124 37 124 44
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "WriterT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 45 124 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 124 45 124 46
+                                              , srcInfoPoints = []
+                                              }
+                                            "w")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 47 124 48
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 47 124 48
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 49 124 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 49 124 51
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 49 124 51
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 124 52 124 64
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 52 124 61
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 52 124 59
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 124 52 124 59
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 124 52 124 59
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "WriterT")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 60 124 61
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 124 60 124 61
+                                              , srcInfoPoints = []
+                                              }
+                                            "w")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 124 62 124 64
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 124 62 124 64
+                                           , srcInfoPoints = []
+                                           }
+                                         "m'"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 125 3 125 41
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 125 3 125 41
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 125 3 125 41
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 125 3 125 8
+                             , srcInfoPoints = []
+                             }
+                           "hoist")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 125 9 125 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 125 9 125 12
+                                 , srcInfoPoints = []
+                                 }
+                               "nat")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 125 13 125 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 125 13 125 14 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 125 15 125 41
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 125 15 125 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 125 15 125 22
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 125 15 125 22
+                                         , srcInfoPoints = []
+                                         }
+                                       "WriterT")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 125 23 125 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 125 23 125 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 125 23 125 24
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 125 25 125 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 125 25 125 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 125 25 125 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 125 25 125 28
+                                            , srcInfoPoints = []
+                                            }
+                                          "nat")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 125 29 125 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 125 29 125 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 125 29 125 30
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 125 31 125 41
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 125 31 125 41
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 125 31 125 41
+                                            , srcInfoPoints = []
+                                            }
+                                          "runWriterT"))))))
+                        Nothing
+                    ])
+             ])
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 127 1 127 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 127 8 127 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 127 1 127 7
+               , srcInfoPoints = []
+               })
+          (Just 9)
+          [ ConOp
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 127 10 127 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 127 10 127 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 127 11 127 19
+                    , SrcSpan "tests/examples/DerivingVia.hs" 127 19 127 20
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 127 10 127 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 127 10 127 11
+                       , SrcSpan "tests/examples/DerivingVia.hs" 127 11 127 19
+                       , SrcSpan "tests/examples/DerivingVia.hs" 127 19 127 20
+                       ]
+                   }
+                 "ComposeT")
+          ]
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 128 1 130 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 128 18 128 20
+                , SrcSpan "tests/examples/DerivingVia.hs" 128 48 128 53
+                , SrcSpan "tests/examples/DerivingVia.hs" 129 3 129 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 130 3 130 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 130 3 130 3
+                ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 128 1 128 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 128 9 128 17
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 128 9 128 17
+                  , srcInfoPoints = []
+                  }
+                "ComposeT"))
+          (Just
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 128 21 128 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 128 28 128 30 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 128 21 128 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 128 21 128 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 128 21 128 27
+                           , srcInfoPoints = []
+                           }
+                         "MTrans")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 128 31 128 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 128 38 128 40 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 128 31 128 37
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 128 31 128 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 128 31 128 37
+                              , srcInfoPoints = []
+                              }
+                            "MTrans")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 128 41 128 47
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 128 41 128 47
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 128 41 128 47
+                              , srcInfoPoints = []
+                              }
+                            "MTrans"))))))
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 129 3 129 63
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 129 12 129 14
+                    , SrcSpan "tests/examples/DerivingVia.hs" 129 15 129 16
+                    , SrcSpan "tests/examples/DerivingVia.hs" 129 42 129 43
+                    , SrcSpan "tests/examples/DerivingVia.hs" 129 44 129 46
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 129 3 129 11
+                   , srcInfoPoints = []
+                   }
+                 "ComposeT")
+              Nothing
+              Nothing
+              (Just
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 129 17 129 41
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 129 29 129 31 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 129 17 129 28
+                           , srcInfoPoints = []
+                           }
+                         "getComposeT"
+                     ]
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 129 32 129 41
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 129 32 129 39
+                             , srcInfoPoints = []
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 129 32 129 33
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 129 32 129 33
+                                   , srcInfoPoints = []
+                                   }
+                                 "f"))
+                           (TyParen
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 129 34 129 39
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 129 34 129 35
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 129 38 129 39
+                                    ]
+                                }
+                              (TyApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 129 35 129 38
+                                   , srcInfoPoints = []
+                                   }
+                                 (TyVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 129 35 129 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 129 35 129 36
+                                         , srcInfoPoints = []
+                                         }
+                                       "g"))
+                                 (TyVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 129 37 129 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 129 37 129 38
+                                         , srcInfoPoints = []
+                                         }
+                                       "m")))))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 129 40 129 41
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 129 40 129 41
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 63
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 61
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 59
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 57
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 55
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 55
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 129 47 129 55
+                                     , srcInfoPoints = []
+                                     }
+                                   "ComposeT")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 129 56 129 57
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 129 56 129 57
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 129 58 129 59
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 129 58 129 59
+                               , srcInfoPoints = []
+                               }
+                             "g")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 129 60 129 61
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 129 60 129 61
+                            , srcInfoPoints = []
+                            }
+                          "m")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 129 62 129 63
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 129 62 129 63
+                         , srcInfoPoints = []
+                         }
+                       "a")))
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 130 3 130 49
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 130 3 130 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 130 20 130 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 130 28 130 29
+                    , SrcSpan "tests/examples/DerivingVia.hs" 130 41 130 42
+                    , SrcSpan "tests/examples/DerivingVia.hs" 130 48 130 49
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 130 12 130 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 130 21 130 28
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 130 21 130 28
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 130 21 130 28
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 130 21 130 28
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 130 30 130 41
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 130 30 130 41
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 130 30 130 41
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 130 30 130 41
+                             , srcInfoPoints = []
+                             }
+                           "Applicative")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 130 43 130 48
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 130 43 130 48
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 130 43 130 48
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 130 43 130 48
+                             , srcInfoPoints = []
+                             }
+                           "Monad")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 132 1 137 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 132 1 132 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 132 84 132 89
+                , SrcSpan "tests/examples/DerivingVia.hs" 133 3 133 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 134 3 134 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 137 1 137 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 132 10 132 83
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 132 10 132 57
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 132 10 132 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 132 23 132 24
+                         , SrcSpan "tests/examples/DerivingVia.hs" 132 37 132 38
+                         , SrcSpan "tests/examples/DerivingVia.hs" 132 53 132 54
+                         , SrcSpan "tests/examples/DerivingVia.hs" 132 55 132 57
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 132 11 132 23
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 132 11 132 23
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 11 132 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 11 132 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 132 11 132 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "MonadTrans")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 22 132 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 22 132 23
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 132 25 132 37
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 132 25 132 37
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 25 132 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 25 132 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 132 25 132 35
+                                     , srcInfoPoints = []
+                                     }
+                                   "MonadTrans")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 36 132 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 36 132 37
+                                  , srcInfoPoints = []
+                                  }
+                                "g")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 132 39 132 53
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 132 39 132 53
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 39 132 53
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 39 132 51
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 132 39 132 51
+                                     , srcInfoPoints = []
+                                     }
+                                   "LiftingMonad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 132 52 132 53
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 132 52 132 53
+                                  , srcInfoPoints = []
+                                  }
+                                "g")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 132 58 132 83
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 132 58 132 68
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 132 58 132 68
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 132 58 132 68
+                           , srcInfoPoints = []
+                           }
+                         "MonadTrans")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 132 69 132 83
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 132 69 132 70
+                         , SrcSpan "tests/examples/DerivingVia.hs" 132 82 132 83
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 132 70 132 82
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 132 70 132 80
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 132 70 132 78
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 132 70 132 78
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 132 70 132 78
+                                    , srcInfoPoints = []
+                                    }
+                                  "ComposeT")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 132 79 132 80
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 132 79 132 80
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 132 81 132 82
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 132 81 132 82
+                              , srcInfoPoints = []
+                              }
+                            "g"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 133 3 133 51
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 133 8 133 10 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 133 3 133 51
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 133 8 133 10 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 133 3 133 7
+                          , srcInfoPoints = []
+                          }
+                        "lift"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 133 11 133 51
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 133 11 133 17
+                             , SrcSpan "tests/examples/DerivingVia.hs" 133 19 133 20
+                             ]
+                         }
+                       (Just
+                          [ UnkindedVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 133 18 133 19
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 133 18 133 19
+                                   , srcInfoPoints = []
+                                   }
+                                 "m")
+                          ])
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 133 21 133 31
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 133 29 133 31 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 133 21 133 31
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 133 29 133 31 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 133 21 133 31
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 133 29 133 31 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 133 21 133 31
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 133 29 133 31
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 133 21 133 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 133 21 133 26
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 133 27 133 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 133 27 133 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 133 32 133 51
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 133 32 133 33
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 133 32 133 33
+                                  , srcInfoPoints = []
+                                  }
+                                "m"))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 133 34 133 36
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 133 34 133 36
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 133 34 133 36
+                                     , srcInfoPoints = []
+                                     }
+                                   "~>")))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 133 37 133 51
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 133 37 133 49
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 133 37 133 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 133 37 133 45
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 133 37 133 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 133 37 133 45
+                                              , srcInfoPoints = []
+                                              }
+                                            "ComposeT")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 133 46 133 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 133 46 133 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "f")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 133 48 133 49
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 133 48 133 49
+                                        , srcInfoPoints = []
+                                        }
+                                      "g")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 133 50 133 51
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 133 50 133 51
+                                     , srcInfoPoints = []
+                                     }
+                                   "m"))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 134 3 135 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 134 3 135 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 134 3 134 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 134 3 134 7
+                            , srcInfoPoints = []
+                            }
+                          "lift"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 134 8 135 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 134 8 134 9 ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 134 10 135 19
+                            , srcInfoPoints = []
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 134 10 134 32
+                               , srcInfoPoints = []
+                               }
+                             (Con
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 134 10 134 18
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 134 10 134 18
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 134 10 134 18
+                                        , srcInfoPoints = []
+                                        }
+                                      "ComposeT")))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 134 19 134 20
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 134 19 134 20
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 134 19 134 20
+                                        , srcInfoPoints = []
+                                        }
+                                      ".")))
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 134 21 134 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 134 21 134 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 134 21 134 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 134 21 134 25
+                                           , srcInfoPoints = []
+                                           }
+                                         "lift")))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 134 26 134 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 134 26 134 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 134 26 134 27
+                                           , srcInfoPoints = []
+                                           }
+                                         ".")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 134 28 134 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 134 28 134 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 134 28 134 32
+                                           , srcInfoPoints = []
+                                           }
+                                         "lift")))))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 135 5 135 7
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 135 5 135 7
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 135 5 135 7
+                                     , srcInfoPoints = []
+                                     }
+                                   "\\\\")))
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 135 8 135 19
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 135 8 135 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 135 8 135 13
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 135 8 135 13
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 135 8 135 13
+                                           , srcInfoPoints = []
+                                           }
+                                         "proof")))
+                                (TypeApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 135 14 135 16
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 135 14 135 15 ]
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 135 15 135 16
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 135 15 135 16
+                                           , srcInfoPoints = []
+                                           }
+                                         "g"))))
+                             (TypeApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 135 17 135 19
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 135 17 135 18 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 135 18 135 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 135 18 135 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 137 1 146 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 137 1 137 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 137 78 137 83
+                , SrcSpan "tests/examples/DerivingVia.hs" 138 3 138 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 139 3 139 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 146 1 146 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 137 10 137 77
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 137 10 137 53
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 137 10 137 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 137 21 137 22
+                         , SrcSpan "tests/examples/DerivingVia.hs" 137 33 137 34
+                         , SrcSpan "tests/examples/DerivingVia.hs" 137 49 137 50
+                         , SrcSpan "tests/examples/DerivingVia.hs" 137 51 137 53
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 137 11 137 21
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 137 11 137 21
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 11 137 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 11 137 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 137 11 137 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "MFunctor")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 20 137 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 20 137 21
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 137 23 137 33
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 137 23 137 33
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 23 137 33
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 23 137 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 137 23 137 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "MFunctor")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 32 137 33
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 32 137 33
+                                  , srcInfoPoints = []
+                                  }
+                                "g")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 137 35 137 49
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 137 35 137 49
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 35 137 49
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 35 137 47
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 137 35 137 47
+                                     , srcInfoPoints = []
+                                     }
+                                   "LiftingMonad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 137 48 137 49
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 137 48 137 49
+                                  , srcInfoPoints = []
+                                  }
+                                "g")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 137 54 137 77
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 137 54 137 62
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 137 54 137 62
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 137 54 137 62
+                           , srcInfoPoints = []
+                           }
+                         "MFunctor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 137 63 137 77
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 137 63 137 64
+                         , SrcSpan "tests/examples/DerivingVia.hs" 137 76 137 77
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 137 64 137 76
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 137 64 137 74
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 137 64 137 72
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 137 64 137 72
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 137 64 137 72
+                                    , srcInfoPoints = []
+                                    }
+                                  "ComposeT")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 137 73 137 74
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 137 73 137 74
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 137 75 137 76
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 137 75 137 76
+                              , srcInfoPoints = []
+                              }
+                            "g"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 138 3 138 84
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 138 9 138 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 138 3 138 84
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 138 9 138 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 138 3 138 8
+                          , srcInfoPoints = []
+                          }
+                        "hoist"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 138 12 138 84
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 138 12 138 18
+                             , SrcSpan "tests/examples/DerivingVia.hs" 138 23 138 24
+                             ]
+                         }
+                       (Just
+                          [ UnkindedVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 138 19 138 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 138 19 138 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "m")
+                          , UnkindedVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 138 21 138 23
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 138 21 138 23
+                                   , srcInfoPoints = []
+                                   }
+                                 "m'")
+                          ])
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 138 25 138 35
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 138 33 138 35 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 138 25 138 35
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 138 33 138 35 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 25 138 35
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 138 33 138 35 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 25 138 35
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 138 33 138 35
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 25 138 30
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 25 138 30
+                                              , srcInfoPoints = []
+                                              }
+                                            "Monad")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 31 138 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 31 138 32
+                                           , srcInfoPoints = []
+                                           }
+                                         "m"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 138 36 138 84
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 138 46 138 48 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 138 36 138 45
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 138 36 138 37
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 138 44 138 45
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 138 37 138 44
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 37 138 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 37 138 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 39 138 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 39 138 41
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 39 138 41
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 42 138 44
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 42 138 44
+                                        , srcInfoPoints = []
+                                        }
+                                      "m'"))))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 138 49 138 84
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 138 49 138 50
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 138 83 138 84
+                                   ]
+                               }
+                             (TyInfix
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 138 50 138 83
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 50 138 64
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 50 138 62
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 50 138 60
+                                           , srcInfoPoints = []
+                                           }
+                                         (TyCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 50 138 58
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 138 50 138 58
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          138
+                                                          50
+                                                          138
+                                                          58
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ComposeT")))
+                                         (TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 59 138 60
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 138 59 138 60
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "f")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 61 138 62
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 61 138 62
+                                              , srcInfoPoints = []
+                                              }
+                                            "g")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 63 138 64
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 63 138 64
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")))
+                                (UnpromotedName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 65 138 67
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 65 138 67
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 65 138 67
+                                           , srcInfoPoints = []
+                                           }
+                                         "~>")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 138 68 138 83
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 68 138 80
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 68 138 78
+                                           , srcInfoPoints = []
+                                           }
+                                         (TyCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 68 138 76
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 138 68 138 76
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          138
+                                                          68
+                                                          138
+                                                          76
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ComposeT")))
+                                         (TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 77 138 78
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 138 77 138 78
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "f")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 79 138 80
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 138 79 138 80
+                                              , srcInfoPoints = []
+                                              }
+                                            "g")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 138 81 138 83
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 138 81 138 83
+                                           , srcInfoPoints = []
+                                           }
+                                         "m'"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 139 3 140 19
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 139 3 140 19
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 139 3 140 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 139 3 139 8
+                             , srcInfoPoints = []
+                             }
+                           "hoist")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 139 9 139 10
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 139 9 139 10
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 139 11 140 19
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 139 11 139 12 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 139 13 140 19
+                                , srcInfoPoints = []
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 139 13 139 53
+                                   , srcInfoPoints = []
+                                   }
+                                 (Con
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 139 13 139 21
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 139 13 139 21
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 13 139 21
+                                            , srcInfoPoints = []
+                                            }
+                                          "ComposeT")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 139 22 139 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 139 22 139 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 22 139 23
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 139 24 139 53
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 139 24 139 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 24 139 29
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 139 24 139 29
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        139
+                                                        24
+                                                        139
+                                                        29
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "hoist")))
+                                       (Paren
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 30 139 39
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 139 30 139 31
+                                                , SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 139 38 139 39
+                                                ]
+                                            }
+                                          (App
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 139 31 139 38
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        139
+                                                        31
+                                                        139
+                                                        36
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           139
+                                                           31
+                                                           139
+                                                           36
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/DerivingVia.hs"
+                                                              139
+                                                              31
+                                                              139
+                                                              36
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "hoist")))
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        139
+                                                        37
+                                                        139
+                                                        38
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           139
+                                                           37
+                                                           139
+                                                           38
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/DerivingVia.hs"
+                                                              139
+                                                              37
+                                                              139
+                                                              38
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "f"))))))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 139 40 139 41
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 40 139 41
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 139 40 139 41
+                                               , srcInfoPoints = []
+                                               }
+                                             ".")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 139 42 139 53
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 139 42 139 53
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 139 42 139 53
+                                               , srcInfoPoints = []
+                                               }
+                                             "getComposeT")))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 140 5 140 7
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 140 5 140 7
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 140 5 140 7
+                                         , srcInfoPoints = []
+                                         }
+                                       "\\\\")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 140 8 140 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 140 8 140 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 140 8 140 13
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 140 8 140 13
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 140 8 140 13
+                                               , srcInfoPoints = []
+                                               }
+                                             "proof")))
+                                    (TypeApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 140 14 140 16
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/DerivingVia.hs" 140 14 140 15
+                                             ]
+                                         }
+                                       (TyVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 140 15 140 16
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 140 15 140 16
+                                               , srcInfoPoints = []
+                                               }
+                                             "g"))))
+                                 (TypeApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 140 17 140 19
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DerivingVia.hs" 140 17 140 18 ]
+                                      }
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 140 18 140 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 140 18 140 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "m"))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 146 1 150 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 146 13 146 14 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 146 1 146 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 146 9 146 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 146 9 146 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 146 9 146 10
+                     , srcInfoPoints = []
+                     }
+                   "X"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 146 11 146 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 146 11 146 12
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 146 15 146 23
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 146 15 146 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 146 15 146 16
+                      , srcInfoPoints = []
+                      }
+                    "X")
+                 [ TyTuple
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 146 17 146 23
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 146 17 146 18
+                           , SrcSpan "tests/examples/DerivingVia.hs" 146 19 146 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 146 22 146 23
+                           ]
+                       }
+                     Boxed
+                     [ TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 146 18 146 19
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 146 18 146 19
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     , TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 146 21 146 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 146 21 146 22
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     ]
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 147 3 147 31
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 147 3 147 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 147 12 147 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 147 22 147 23
+                    , SrcSpan "tests/examples/DerivingVia.hs" 147 30 147 31
+                    ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 148 8 148 11
+                      , srcInfoPoints = []
+                      }
+                    (TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 148 12 148 30
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 148 12 148 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 148 22 148 23
+                             , SrcSpan "tests/examples/DerivingVia.hs" 148 29 148 30
+                             ]
+                         }
+                       Boxed
+                       [ TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 148 13 148 22
+                             , srcInfoPoints = []
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 148 13 148 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 148 13 148 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 148 13 148 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Product")))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 148 21 148 22
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 148 21 148 22
+                                   , srcInfoPoints = []
+                                   }
+                                 "a"))
+                       , TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 148 24 148 29
+                             , srcInfoPoints = []
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 148 24 148 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 148 24 148 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 148 24 148 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "Sum")))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 148 28 148 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 148 28 148 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a"))
+                       ])))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 147 13 147 22
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 147 13 147 22
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 147 13 147 22
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 147 13 147 22
+                             , srcInfoPoints = []
+                             }
+                           "Semigroup")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 147 24 147 30
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 147 24 147 30
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 147 24 147 30
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 147 24 147 30
+                             , srcInfoPoints = []
+                             }
+                           "Monoid")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 150 3 150 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 150 3 150 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 150 12 150 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 150 17 150 18
+                    , SrcSpan "tests/examples/DerivingVia.hs" 150 21 150 22
+                    ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 151 8 151 11
+                      , srcInfoPoints = []
+                      }
+                    (TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 151 12 151 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 151 12 151 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 151 14 151 15
+                             , SrcSpan "tests/examples/DerivingVia.hs" 151 17 151 18
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 151 13 151 14
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 151 13 151 14
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 151 16 151 17
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 151 16 151 17
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       ])))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 150 13 150 17
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 150 13 150 17
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 150 13 150 17
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 150 13 150 17
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 150 19 150 21
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 150 19 150 21
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 150 19 150 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 150 19 150 21
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              ]
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 157 1 158 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 157 1 157 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 157 11 157 16
+                , SrcSpan "tests/examples/DerivingVia.hs" 158 3 158 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 160 1 160 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 157 7 157 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 157 7 157 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 157 7 157 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 157 9 157 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 157 9 157 10
+                     , srcInfoPoints = []
+                     }
+                   "f")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 158 3 158 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 158 5 158 7 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 158 3 158 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 158 5 158 7 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 158 3 158 4
+                          , srcInfoPoints = []
+                          }
+                        "c"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 158 8 158 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 158 12 158 14 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 158 8 158 11
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 158 8 158 9
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 158 8 158 9
+                                  , srcInfoPoints = []
+                                  }
+                                "f"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 158 10 158 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 158 10 158 11
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 158 15 158 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 158 15 158 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 158 15 158 18
+                                  , srcInfoPoints = []
+                                  }
+                                "Int")))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 160 1 160 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 160 16 160 17 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 160 1 160 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 160 9 160 15
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 160 9 160 13
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 160 9 160 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 160 9 160 11
+                        , srcInfoPoints = []
+                        }
+                      "X2"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 160 12 160 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 160 12 160 13
+                        , srcInfoPoints = []
+                        }
+                      "f")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 160 14 160 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 160 14 160 15
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 160 18 160 26
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 160 18 160 26
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 160 18 160 20
+                      , srcInfoPoints = []
+                      }
+                    "X2")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 160 21 160 26
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 160 21 160 22
+                           , SrcSpan "tests/examples/DerivingVia.hs" 160 25 160 26
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 160 22 160 25
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 160 22 160 23
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 160 22 160 23
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 160 24 160 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 160 24 160 25
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 162 1 165 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 162 1 162 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 162 19 162 24
+                , SrcSpan "tests/examples/DerivingVia.hs" 163 3 163 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 165 1 165 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 162 10 162 18
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 162 10 162 18
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 162 10 162 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 162 10 162 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 162 10 162 11
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 162 12 162 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 162 12 162 13
+                         , SrcSpan "tests/examples/DerivingVia.hs" 162 17 162 18
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 162 13 162 17
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 162 13 162 15
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 162 13 162 15
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 162 13 162 15
+                                 , srcInfoPoints = []
+                                 }
+                               "X2")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 162 16 162 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 162 16 162 17
+                              , srcInfoPoints = []
+                              }
+                            "f"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 163 3 163 14
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 163 3 163 14
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 163 3 163 4
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 163 3 163 4
+                            , srcInfoPoints = []
+                            }
+                          "c"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 163 5 163 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 163 5 163 6 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 163 7 163 14
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 163 7 163 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 163 7 163 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 163 7 163 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "const")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 163 13 163 14
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 163 13 163 14
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                    Nothing)
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 165 1 165 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 165 1 165 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 165 22 165 30
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 165 10 165 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 165 14 165 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 165 14 165 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 165 20 165 21
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 165 15 165 20
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 165 15 165 17
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 165 15 165 17
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 165 15 165 17
+                                 , srcInfoPoints = []
+                                 }
+                               "X2")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 165 18 165 20
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 165 18 165 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 165 18 165 20
+                                 , srcInfoPoints = []
+                                 }
+                               "IO")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 165 31 165 35
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 165 31 165 35
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 165 31 165 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 165 31 165 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 165 31 165 32
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 165 33 165 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 165 33 165 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 165 33 165 35
+                           , srcInfoPoints = []
+                           }
+                         "IO")))))
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 171 1 171 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 171 14 171 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 171 1 171 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 171 9 171 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 171 9 171 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 171 9 171 11
+                     , srcInfoPoints = []
+                     }
+                   "P0"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 171 12 171 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 171 12 171 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 171 16 171 20
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 171 16 171 20
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 171 16 171 18
+                      , srcInfoPoints = []
+                      }
+                    "P0")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 171 19 171 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 171 19 171 20
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 171 33 171 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 171 33 171 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 171 47 171 50
+                      , srcInfoPoints = []
+                      }
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 171 51 171 52
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 171 51 171 52
+                            , srcInfoPoints = []
+                            }
+                          "a"))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 171 42 171 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 171 42 171 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 171 42 171 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 171 42 171 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 172 1 172 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 172 14 172 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 172 1 172 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 172 9 172 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 172 9 172 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 172 9 172 11
+                     , srcInfoPoints = []
+                     }
+                   "P1"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 172 12 172 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 172 12 172 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 172 16 172 22
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 172 16 172 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 172 16 172 18
+                      , srcInfoPoints = []
+                      }
+                    "P1")
+                 [ TyList
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 172 19 172 22
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 172 19 172 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 172 21 172 22
+                           ]
+                       }
+                     (TyVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 172 20 172 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 172 20 172 21
+                             , srcInfoPoints = []
+                             }
+                           "a"))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 172 33 172 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 172 33 172 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 172 47 172 50
+                      , srcInfoPoints = []
+                      }
+                    (TyList
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 172 51 172 54
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 172 51 172 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 172 53 172 54
+                             ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 172 52 172 53
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 172 52 172 53
+                               , srcInfoPoints = []
+                               }
+                             "a")))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 172 42 172 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 172 42 172 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 172 42 172 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 172 42 172 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 173 1 173 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 173 14 173 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 173 1 173 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 173 9 173 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 173 9 173 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 173 9 173 11
+                     , srcInfoPoints = []
+                     }
+                   "P2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 173 12 173 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 173 12 173 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 173 16 173 25
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 173 16 173 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 173 16 173 18
+                      , srcInfoPoints = []
+                      }
+                    "P2")
+                 [ TyTuple
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 173 19 173 25
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 173 19 173 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 173 21 173 22
+                           , SrcSpan "tests/examples/DerivingVia.hs" 173 24 173 25
+                           ]
+                       }
+                     Boxed
+                     [ TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 173 20 173 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 173 20 173 21
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     , TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 173 23 173 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 173 23 173 24
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     ]
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 173 33 173 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 173 33 173 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 173 47 173 50
+                      , srcInfoPoints = []
+                      }
+                    (TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 173 51 173 57
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 173 51 173 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 173 53 173 54
+                             , SrcSpan "tests/examples/DerivingVia.hs" 173 56 173 57
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 173 52 173 53
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 173 52 173 53
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 173 55 173 56
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 173 55 173 56
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       ])))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 173 42 173 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 173 42 173 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 173 42 173 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 173 42 173 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 174 1 174 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 174 14 174 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 174 1 174 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 174 9 174 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 174 9 174 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 174 9 174 11
+                     , srcInfoPoints = []
+                     }
+                   "P3"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 174 12 174 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 174 12 174 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 174 16 174 28
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 174 16 174 28
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 174 16 174 18
+                      , srcInfoPoints = []
+                      }
+                    "P3")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 174 19 174 28
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 174 19 174 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 174 27 174 28
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 174 20 174 27
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 174 20 174 25
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 174 20 174 25
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 174 20 174 25
+                                   , srcInfoPoints = []
+                                   }
+                                 "Maybe")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 174 26 174 27
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 174 26 174 27
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 174 33 174 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 174 33 174 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 174 47 174 50
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 174 51 174 60
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 174 51 174 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 174 59 174 60
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 174 52 174 59
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 174 52 174 57
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 174 52 174 57
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 174 52 174 57
+                                     , srcInfoPoints = []
+                                     }
+                                   "First")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 174 58 174 59
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 174 58 174 59
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 174 42 174 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 174 42 174 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 174 42 174 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 174 42 174 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 175 1 175 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 175 14 175 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 175 1 175 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 175 9 175 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 175 9 175 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 175 9 175 11
+                     , srcInfoPoints = []
+                     }
+                   "P4"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 175 12 175 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 175 12 175 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 175 16 175 28
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 175 16 175 28
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 175 16 175 18
+                      , srcInfoPoints = []
+                      }
+                    "P4")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 175 19 175 28
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 175 19 175 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 175 27 175 28
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 175 20 175 27
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 175 20 175 25
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 175 20 175 25
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 175 20 175 25
+                                   , srcInfoPoints = []
+                                   }
+                                 "Maybe")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 175 26 175 27
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 175 26 175 27
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 175 33 175 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 175 33 175 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 175 47 175 50
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 175 51 175 62
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 175 51 175 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 175 61 175 62
+                             ]
+                         }
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 175 52 175 61
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 175 52 175 57
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 175 52 175 57
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 175 52 175 57
+                                     , srcInfoPoints = []
+                                     }
+                                   "First")))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 175 58 175 59
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 175 58 175 59
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 175 58 175 59
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 175 60 175 61
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 175 60 175 61
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 175 42 175 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 175 42 175 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 175 42 175 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 175 42 175 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 176 1 176 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 176 14 176 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 176 1 176 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 176 9 176 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 176 9 176 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 176 9 176 11
+                     , srcInfoPoints = []
+                     }
+                   "P5"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 176 12 176 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 176 12 176 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 176 16 176 20
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 176 16 176 20
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 176 16 176 18
+                      , srcInfoPoints = []
+                      }
+                    "P5")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 176 19 176 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 176 19 176 20
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 176 33 176 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 176 33 176 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 176 47 176 50
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 176 51 176 65
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 176 51 176 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 176 64 176 65
+                             ]
+                         }
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 176 52 176 64
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 176 52 176 60
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 176 52 176 60
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 176 52 176 60
+                                     , srcInfoPoints = []
+                                     }
+                                   "Identity")))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 176 61 176 62
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 176 61 176 62
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 176 61 176 62
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 176 63 176 64
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 176 63 176 64
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 176 42 176 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 176 42 176 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 176 42 176 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 176 42 176 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 177 1 177 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 177 14 177 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 177 1 177 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 177 9 177 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 177 9 177 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 177 9 177 11
+                     , srcInfoPoints = []
+                     }
+                   "P6"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 177 12 177 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 177 12 177 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 177 16 177 22
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 177 16 177 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 177 16 177 18
+                      , srcInfoPoints = []
+                      }
+                    "P6")
+                 [ TyList
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 177 19 177 22
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 177 19 177 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 177 21 177 22
+                           ]
+                       }
+                     (TyVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 177 20 177 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 177 20 177 21
+                             , srcInfoPoints = []
+                             }
+                           "a"))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 177 33 177 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 177 33 177 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 177 47 177 50
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 177 51 177 59
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 177 51 177 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 177 58 177 59
+                             ]
+                         }
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 58
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 54
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 53
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 177 53 177 54
+                                   ]
+                               }
+                             (Special
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 54
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 53
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 177 53 177 54
+                                      ]
+                                  }
+                                (ListCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 54
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 177 52 177 53
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 177 53 177 54
+                                         ]
+                                     })))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 177 55 177 56
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 177 55 177 56
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 177 55 177 56
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 177 57 177 58
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 177 57 177 58
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 177 42 177 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 177 42 177 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 177 42 177 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 177 42 177 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 178 1 178 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 178 14 178 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 178 1 178 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 178 9 178 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 178 9 178 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 178 9 178 11
+                     , srcInfoPoints = []
+                     }
+                   "P7"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 178 12 178 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 178 12 178 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 178 16 178 25
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 178 16 178 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 178 16 178 18
+                      , srcInfoPoints = []
+                      }
+                    "P7")
+                 [ TyTuple
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 178 19 178 25
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 178 19 178 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 178 21 178 22
+                           , SrcSpan "tests/examples/DerivingVia.hs" 178 24 178 25
+                           ]
+                       }
+                     Boxed
+                     [ TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 178 20 178 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 178 20 178 21
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     , TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 178 23 178 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 178 23 178 24
+                              , srcInfoPoints = []
+                              }
+                            "a")
+                     ]
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 178 33 178 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 178 33 178 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 178 47 178 50
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 178 51 178 70
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 178 51 178 52
+                             , SrcSpan "tests/examples/DerivingVia.hs" 178 69 178 70
+                             ]
+                         }
+                       (TyInfix
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 178 52 178 69
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 178 52 178 60
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 178 52 178 60
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 178 52 178 60
+                                     , srcInfoPoints = []
+                                     }
+                                   "Identity")))
+                          (UnpromotedName
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 178 61 178 62
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 178 61 178 62
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 178 61 178 62
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (TyTuple
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 178 63 178 69
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 178 63 178 64
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 178 65 178 66
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 178 68 178 69
+                                   ]
+                               }
+                             Boxed
+                             [ TyVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 178 64 178 65
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 178 64 178 65
+                                      , srcInfoPoints = []
+                                      }
+                                    "a")
+                             , TyVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 178 67 178 68
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 178 67 178 68
+                                      , srcInfoPoints = []
+                                      }
+                                    "a")
+                             ])))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 178 42 178 46
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 178 42 178 46
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 178 42 178 46
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 178 42 178 46
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 179 1 179 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 179 14 179 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 179 1 179 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 179 9 179 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 179 9 179 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 179 9 179 11
+                     , srcInfoPoints = []
+                     }
+                   "P8"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 179 12 179 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 179 12 179 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 179 16 179 32
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 179 16 179 32
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 179 16 179 18
+                      , srcInfoPoints = []
+                      }
+                    "P8")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 179 19 179 32
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 179 19 179 20
+                           , SrcSpan "tests/examples/DerivingVia.hs" 179 31 179 32
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 179 20 179 31
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 179 20 179 29
+                             , srcInfoPoints = []
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 179 20 179 26
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 179 20 179 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 179 20 179 26
+                                      , srcInfoPoints = []
+                                      }
+                                    "Either")))
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 29
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 28
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 179 28 179 29
+                                    ]
+                                }
+                              (Special
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 29
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 28
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 179 28 179 29
+                                       ]
+                                   }
+                                 (UnitCon
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 29
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DerivingVia.hs" 179 27 179 28
+                                          , SrcSpan "tests/examples/DerivingVia.hs" 179 28 179 29
+                                          ]
+                                      }))))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 179 30 179 31
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 179 30 179 31
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 179 33 179 49
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 179 33 179 41 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 179 50 179 53
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 179 54 179 71
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 179 54 179 55
+                             , SrcSpan "tests/examples/DerivingVia.hs" 179 70 179 71
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 179 55 179 70
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 179 55 179 58
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 179 55 179 56
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 179 56 179 57
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 179 57 179 58
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 179 55 179 58
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 179 55 179 56
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 179 56 179 57
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 179 57 179 58
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 179 56 179 57
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 179 59 179 70
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 179 59 179 60
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 179 69 179 70
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 179 60 179 69
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 179 60 179 66
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 179 60 179 66
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 179 60 179 66
+                                           , srcInfoPoints = []
+                                           }
+                                         "Either")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 179 67 179 69
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 179 67 179 68
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 179 68 179 69
+                                         ]
+                                     }
+                                   (Special
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 179 67 179 69
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 179 67 179 68
+                                            , SrcSpan "tests/examples/DerivingVia.hs" 179 68 179 69
+                                            ]
+                                        }
+                                      (UnitCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 179 67 179 69
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 179 67 179 68
+                                               , SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 179 68 179 69
+                                               ]
+                                           })))))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 179 42 179 49
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 179 42 179 49
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 179 42 179 49
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 179 42 179 49
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 181 1 181 73
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 181 15 181 16 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 181 1 181 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 181 9 181 14
+               , srcInfoPoints = []
+               }
+             (DHInfix
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 181 9 181 14
+                  , srcInfoPoints = []
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 181 9 181 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 181 9 181 10
+                        , srcInfoPoints = []
+                        }
+                      "f"))
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 181 11 181 12
+                     , srcInfoPoints = []
+                     }
+                   "$"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 181 13 181 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 181 13 181 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 181 17 181 26
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 181 17 181 26
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 181 17 181 20
+                      , srcInfoPoints = []
+                      }
+                    "APP")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 181 21 181 26
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 181 21 181 22
+                           , SrcSpan "tests/examples/DerivingVia.hs" 181 25 181 26
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 181 22 181 25
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 181 22 181 23
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 181 22 181 23
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 181 24 181 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 181 24 181 25
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 181 27 181 48
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 181 27 181 35 ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 181 36 181 43
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 181 44 181 48
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 181 44 181 48
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 181 44 181 48
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 181 44 181 48
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 181 49 181 73
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 181 49 181 57 ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 181 58 181 65
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 181 66 181 73
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 181 66 181 73
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 181 66 181 73
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 181 66 181 73
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 190 1 191 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 190 29 190 30 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 190 1 190 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 190 9 190 28
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 190 9 190 26
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 190 9 190 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 190 9 190 24
+                        , srcInfoPoints = []
+                        }
+                      "WrapApplicative"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 190 25 190 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 190 25 190 26
+                        , srcInfoPoints = []
+                        }
+                      "f")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 190 27 190 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 190 27 190 28
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 190 31 190 55
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 190 31 190 55
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 190 31 190 49
+                      , srcInfoPoints = []
+                      }
+                    "WrappedApplicative")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 190 50 190 55
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 190 50 190 51
+                           , SrcSpan "tests/examples/DerivingVia.hs" 190 54 190 55
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 190 51 190 54
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 190 51 190 52
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 190 51 190 52
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 190 53 190 54
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 190 53 190 54
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 191 3 191 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 191 3 191 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 191 12 191 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 191 20 191 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 191 33 191 34
+                    ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 191 13 191 20
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 191 13 191 20
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 191 13 191 20
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 191 13 191 20
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 191 22 191 33
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 191 22 191 33
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 191 22 191 33
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 191 22 191 33
+                             , srcInfoPoints = []
+                             }
+                           "Applicative")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 193 1 201 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 193 1 193 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 193 62 193 67
+                , SrcSpan "tests/examples/DerivingVia.hs" 194 3 194 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 195 3 195 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 196 3 196 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 197 3 197 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 198 3 198 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 199 3 199 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 201 1 201 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 193 10 193 61
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 193 10 193 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 193 10 193 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 193 24 193 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 193 31 193 32
+                         , SrcSpan "tests/examples/DerivingVia.hs" 193 33 193 35
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 193 11 193 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 193 11 193 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 193 11 193 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 193 11 193 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 193 11 193 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 193 23 193 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 193 23 193 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 193 26 193 31
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 193 26 193 31
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 193 26 193 31
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 193 26 193 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 193 26 193 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 193 30 193 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 193 30 193 31
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 193 36 193 61
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 193 36 193 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 193 36 193 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 193 36 193 39
+                           , srcInfoPoints = []
+                           }
+                         "Num")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 193 40 193 61
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 193 40 193 41
+                         , SrcSpan "tests/examples/DerivingVia.hs" 193 60 193 61
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 193 41 193 60
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 193 41 193 58
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 193 41 193 56
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 193 41 193 56
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 193 41 193 56
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrapApplicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 193 57 193 58
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 193 57 193 58
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 193 59 193 60
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 193 59 193 60
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 194 3 194 27
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 194 3 194 27
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 194 3 194 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 194 3 194 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 194 4 194 5
+                             , SrcSpan "tests/examples/DerivingVia.hs" 194 5 194 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 194 4 194 5
+                            , srcInfoPoints = []
+                            }
+                          "+"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 194 15 194 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 194 15 194 16 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 194 17 194 27
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 194 17 194 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 194 17 194 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 194 17 194 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "liftA2")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 194 24 194 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 194 24 194 25
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 194 25 194 26
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 194 26 194 27
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 194 24 194 27
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 194 24 194 25
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 194 25 194 26
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 194 26 194 27
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 194 25 194 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "+")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 195 3 195 27
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 195 3 195 27
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 195 3 195 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 195 3 195 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 195 4 195 5
+                             , SrcSpan "tests/examples/DerivingVia.hs" 195 5 195 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 195 4 195 5
+                            , srcInfoPoints = []
+                            }
+                          "*"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 195 15 195 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 195 15 195 16 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 195 17 195 27
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 195 17 195 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 195 17 195 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 195 17 195 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "liftA2")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 195 24 195 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 195 24 195 25
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 195 25 195 26
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 195 26 195 27
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 195 24 195 27
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 195 24 195 25
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 195 25 195 26
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 195 26 195 27
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 195 25 195 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "*")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 196 3 196 28
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 196 3 196 28
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 196 3 196 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 196 3 196 9
+                            , srcInfoPoints = []
+                            }
+                          "negate"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 196 15 196 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 196 15 196 16 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 196 17 196 28
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 196 17 196 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 196 17 196 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 196 17 196 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 196 22 196 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 196 22 196 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 196 22 196 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "negate")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 197 3 197 35
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 197 3 197 35
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 197 3 197 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 197 3 197 14
+                            , srcInfoPoints = []
+                            }
+                          "fromInteger"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 197 15 197 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 197 15 197 16 ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 197 17 197 35
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 197 17 197 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 197 17 197 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 197 17 197 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "pure")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 197 22 197 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 197 22 197 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 197 22 197 23
+                                     , srcInfoPoints = []
+                                     }
+                                   ".")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 197 24 197 35
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 197 24 197 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 197 24 197 35
+                                     , srcInfoPoints = []
+                                     }
+                                   "fromInteger")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 198 3 198 25
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 198 3 198 25
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 198 3 198 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 198 3 198 6
+                            , srcInfoPoints = []
+                            }
+                          "abs"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 198 15 198 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 198 15 198 16 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 198 17 198 25
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 198 17 198 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 198 17 198 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 198 17 198 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 198 22 198 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 198 22 198 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 198 22 198 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "abs")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 199 3 199 28
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 199 3 199 28
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 199 3 199 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 199 3 199 9
+                            , srcInfoPoints = []
+                            }
+                          "signum"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 199 15 199 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 199 15 199 16 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 199 17 199 28
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 199 17 199 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 199 17 199 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 199 17 199 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 199 22 199 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 199 22 199 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 199 22 199 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "signum")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 201 1 205 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 201 1 201 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 201 76 201 81
+                , SrcSpan "tests/examples/DerivingVia.hs" 202 3 202 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 203 3 203 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 205 1 205 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 201 10 201 75
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 201 10 201 42
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 201 10 201 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 201 24 201 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 201 38 201 39
+                         , SrcSpan "tests/examples/DerivingVia.hs" 201 40 201 42
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 201 11 201 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 201 11 201 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 201 11 201 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 201 11 201 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 201 11 201 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 201 23 201 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 201 23 201 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 201 26 201 38
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 201 26 201 38
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 201 26 201 38
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 201 26 201 36
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 201 26 201 36
+                                     , srcInfoPoints = []
+                                     }
+                                   "Fractional")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 201 37 201 38
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 201 37 201 38
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 201 43 201 75
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 201 43 201 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 201 43 201 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 201 43 201 53
+                           , srcInfoPoints = []
+                           }
+                         "Fractional")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 201 54 201 75
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 201 54 201 55
+                         , SrcSpan "tests/examples/DerivingVia.hs" 201 74 201 75
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 201 55 201 74
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 201 55 201 72
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 201 55 201 70
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 201 55 201 70
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 201 55 201 70
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrapApplicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 201 71 201 72
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 201 71 201 72
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 201 73 201 74
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 201 73 201 74
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 202 3 202 28
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 202 3 202 28
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 202 3 202 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 202 3 202 8
+                            , srcInfoPoints = []
+                            }
+                          "recip"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 202 16 202 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 202 16 202 17 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 202 18 202 28
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 202 18 202 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 202 18 202 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 202 18 202 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 202 23 202 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 202 23 202 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 202 23 202 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "recip")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 203 3 203 37
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 203 3 203 37
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 203 3 203 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 203 3 203 15
+                            , srcInfoPoints = []
+                            }
+                          "fromRational"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 203 16 203 37
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 203 16 203 17 ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 203 18 203 37
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 203 18 203 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 203 18 203 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 203 18 203 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "pure")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 203 23 203 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 203 23 203 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 203 23 203 24
+                                     , srcInfoPoints = []
+                                     }
+                                   ".")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 203 25 203 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 203 25 203 37
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 203 25 203 37
+                                     , srcInfoPoints = []
+                                     }
+                                   "fromRational")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 205 1 221 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 205 1 205 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 205 72 205 77
+                , SrcSpan "tests/examples/DerivingVia.hs" 206 3 206 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 207 3 207 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 208 3 208 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 209 3 209 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 210 3 210 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 211 3 211 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 212 3 212 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 213 3 213 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 214 3 214 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 215 3 215 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 216 3 216 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 217 3 217 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 218 3 218 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 219 3 219 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 221 1 221 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 205 10 205 71
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 205 10 205 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 205 10 205 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 205 24 205 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 205 36 205 37
+                         , SrcSpan "tests/examples/DerivingVia.hs" 205 38 205 40
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 205 11 205 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 205 11 205 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 205 11 205 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 205 11 205 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 205 11 205 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 205 23 205 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 205 23 205 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 205 26 205 36
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 205 26 205 36
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 205 26 205 36
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 205 26 205 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 205 26 205 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "Floating")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 205 35 205 36
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 205 35 205 36
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 205 41 205 71
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 205 41 205 49
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 205 41 205 49
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 205 41 205 49
+                           , srcInfoPoints = []
+                           }
+                         "Floating")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 205 50 205 71
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 205 50 205 51
+                         , SrcSpan "tests/examples/DerivingVia.hs" 205 70 205 71
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 205 51 205 70
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 205 51 205 68
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 205 51 205 66
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 205 51 205 66
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 205 51 205 66
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrapApplicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 205 67 205 68
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 205 67 205 68
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 205 69 205 70
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 205 69 205 70
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 206 3 206 18
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 206 3 206 18
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 206 3 206 5
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 206 3 206 5
+                            , srcInfoPoints = []
+                            }
+                          "pi"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 206 9 206 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 206 9 206 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 206 11 206 18
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 206 11 206 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 206 11 206 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 206 11 206 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "pure")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 206 16 206 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 206 16 206 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 206 16 206 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "pi")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 207 3 207 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 207 3 207 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 207 3 207 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 207 3 207 7
+                            , srcInfoPoints = []
+                            }
+                          "sqrt"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 207 9 207 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 207 9 207 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 207 11 207 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 207 11 207 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 207 11 207 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 207 11 207 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 207 16 207 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 207 16 207 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 207 16 207 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "sqrt")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 208 3 208 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 208 3 208 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 208 3 208 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 208 3 208 6
+                            , srcInfoPoints = []
+                            }
+                          "exp"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 208 9 208 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 208 9 208 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 208 11 208 19
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 208 11 208 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 208 11 208 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 208 11 208 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 208 16 208 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 208 16 208 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 208 16 208 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "exp")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 209 3 209 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 209 3 209 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 209 3 209 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 209 3 209 6
+                            , srcInfoPoints = []
+                            }
+                          "log"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 209 9 209 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 209 9 209 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 209 11 209 19
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 209 11 209 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 209 11 209 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 209 11 209 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 209 16 209 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 209 16 209 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 209 16 209 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "log")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 210 3 210 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 210 3 210 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 210 3 210 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 210 3 210 6
+                            , srcInfoPoints = []
+                            }
+                          "sin"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 210 9 210 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 210 9 210 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 210 11 210 19
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 210 11 210 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 210 11 210 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 210 11 210 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 210 16 210 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 210 16 210 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 210 16 210 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "sin")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 211 3 211 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 211 3 211 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 211 3 211 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 211 3 211 6
+                            , srcInfoPoints = []
+                            }
+                          "cos"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 211 9 211 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 211 9 211 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 211 11 211 19
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 211 11 211 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 211 11 211 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 211 11 211 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 211 16 211 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 211 16 211 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 211 16 211 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "cos")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 212 3 212 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 212 3 212 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 212 3 212 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 212 3 212 7
+                            , srcInfoPoints = []
+                            }
+                          "asin"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 212 9 212 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 212 9 212 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 212 11 212 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 212 11 212 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 212 11 212 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 212 11 212 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 212 16 212 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 212 16 212 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 212 16 212 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "asin")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 213 3 213 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 213 3 213 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 213 3 213 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 213 3 213 7
+                            , srcInfoPoints = []
+                            }
+                          "atan"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 213 9 213 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 213 9 213 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 213 11 213 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 213 11 213 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 213 11 213 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 213 11 213 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 213 16 213 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 213 16 213 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 213 16 213 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "atan")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 214 3 214 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 214 3 214 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 214 3 214 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 214 3 214 7
+                            , srcInfoPoints = []
+                            }
+                          "acos"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 214 9 214 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 214 9 214 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 214 11 214 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 214 11 214 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 214 11 214 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 214 11 214 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 214 16 214 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 214 16 214 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 214 16 214 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "acos")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 215 3 215 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 215 3 215 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 215 3 215 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 215 3 215 7
+                            , srcInfoPoints = []
+                            }
+                          "sinh"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 215 9 215 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 215 9 215 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 215 11 215 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 215 11 215 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 215 11 215 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 215 11 215 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 215 16 215 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 215 16 215 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 215 16 215 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "sinh")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 216 3 216 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 216 3 216 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 216 3 216 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 216 3 216 7
+                            , srcInfoPoints = []
+                            }
+                          "cosh"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 216 9 216 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 216 9 216 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 216 11 216 20
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 216 11 216 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 216 11 216 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 216 11 216 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 216 16 216 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 216 16 216 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 216 16 216 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "cosh")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 217 3 217 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 217 3 217 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 217 3 217 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 217 3 217 8
+                            , srcInfoPoints = []
+                            }
+                          "asinh"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 217 9 217 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 217 9 217 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 217 11 217 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 217 11 217 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 217 11 217 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 217 11 217 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 217 16 217 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 217 16 217 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 217 16 217 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "asinh")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 218 3 218 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 218 3 218 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 218 3 218 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 218 3 218 8
+                            , srcInfoPoints = []
+                            }
+                          "atanh"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 218 9 218 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 218 9 218 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 218 11 218 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 218 11 218 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 218 11 218 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 218 11 218 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 218 16 218 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 218 16 218 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 218 16 218 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "atanh")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 219 3 219 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 219 3 219 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 219 3 219 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 219 3 219 8
+                            , srcInfoPoints = []
+                            }
+                          "acosh"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 219 9 219 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 219 9 219 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 219 11 219 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 219 11 219 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 219 11 219 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 219 11 219 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "fmap")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 219 16 219 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 219 16 219 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 219 16 219 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "acosh")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 221 1 224 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 221 1 221 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 221 74 221 79
+                , SrcSpan "tests/examples/DerivingVia.hs" 222 3 222 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 224 1 224 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 221 10 221 73
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 221 10 221 41
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 221 10 221 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 221 24 221 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 221 37 221 38
+                         , SrcSpan "tests/examples/DerivingVia.hs" 221 39 221 41
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 221 11 221 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 221 11 221 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 221 11 221 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 221 11 221 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 221 11 221 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 221 23 221 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 221 23 221 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 221 26 221 37
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 221 26 221 37
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 221 26 221 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 221 26 221 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 221 26 221 35
+                                     , srcInfoPoints = []
+                                     }
+                                   "Semigroup")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 221 36 221 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 221 36 221 37
+                                  , srcInfoPoints = []
+                                  }
+                                "s")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 221 42 221 73
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 221 42 221 51
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 221 42 221 51
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 221 42 221 51
+                           , srcInfoPoints = []
+                           }
+                         "Semigroup")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 221 52 221 73
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 221 52 221 53
+                         , SrcSpan "tests/examples/DerivingVia.hs" 221 72 221 73
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 221 53 221 72
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 221 53 221 70
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 221 53 221 68
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 221 53 221 68
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 221 53 221 68
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrapApplicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 221 69 221 70
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 221 69 221 70
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 221 71 221 72
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 221 71 221 72
+                              , srcInfoPoints = []
+                              }
+                            "s"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 222 3 222 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 222 3 222 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 222 3 222 7
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 222 3 222 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 222 4 222 6
+                             , SrcSpan "tests/examples/DerivingVia.hs" 222 6 222 7
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 222 4 222 6
+                            , srcInfoPoints = []
+                            }
+                          "<>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 222 8 222 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 222 8 222 9 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 222 10 222 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 222 10 222 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 222 10 222 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 222 10 222 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "liftA2")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 222 17 222 21
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 222 17 222 18
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 222 18 222 20
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 222 20 222 21
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 222 17 222 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 222 17 222 18
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 222 18 222 20
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 222 20 222 21
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 222 18 222 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "<>")))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 224 1 230 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 224 1 224 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 224 68 224 73
+                , SrcSpan "tests/examples/DerivingVia.hs" 225 3 225 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 230 1 230 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 224 10 224 67
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 224 10 224 38
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 224 10 224 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 224 24 224 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 224 34 224 35
+                         , SrcSpan "tests/examples/DerivingVia.hs" 224 36 224 38
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 224 11 224 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 224 11 224 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 224 11 224 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 224 11 224 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 224 11 224 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 224 23 224 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 224 23 224 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 224 26 224 34
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 224 26 224 34
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 224 26 224 34
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 224 26 224 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 224 26 224 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monoid")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 224 33 224 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 224 33 224 34
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 224 39 224 67
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 224 39 224 45
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 224 39 224 45
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 224 39 224 45
+                           , srcInfoPoints = []
+                           }
+                         "Monoid")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 224 46 224 67
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 224 46 224 47
+                         , SrcSpan "tests/examples/DerivingVia.hs" 224 66 224 67
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 224 47 224 66
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 224 47 224 64
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 224 47 224 62
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 224 47 224 62
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 224 47 224 62
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrapApplicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 224 63 224 64
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 224 63 224 64
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 224 65 224 66
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 224 65 224 66
+                              , srcInfoPoints = []
+                              }
+                            "m"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 225 3 225 23
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 225 3 225 23
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 225 3 225 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 225 3 225 9
+                            , srcInfoPoints = []
+                            }
+                          "mempty"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 225 10 225 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 225 10 225 11 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 225 12 225 23
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 225 12 225 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 225 12 225 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 225 12 225 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "pure")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 225 17 225 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 225 17 225 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 225 17 225 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "mempty")))))
+                    Nothing)
+             ])
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 230 1 231 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 230 1 230 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 230 17 230 22
+                , SrcSpan "tests/examples/DerivingVia.hs" 231 3 231 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 233 1 233 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 230 7 230 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 230 7 230 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 230 7 230 14
+                     , srcInfoPoints = []
+                     }
+                   "Pointed"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 230 15 230 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 230 15 230 16
+                     , srcInfoPoints = []
+                     }
+                   "p")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 231 3 231 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 231 11 231 13 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 231 3 231 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 231 11 231 13 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 231 3 231 10
+                          , srcInfoPoints = []
+                          }
+                        "pointed"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 231 14 231 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 231 16 231 18 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 231 14 231 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 231 14 231 15
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 231 19 231 22
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 231 19 231 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 231 19 231 20
+                                  , srcInfoPoints = []
+                                  }
+                                "p"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 231 21 231 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 231 21 231 22
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 233 1 234 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 233 23 233 24 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 233 1 233 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 233 9 233 22
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 233 9 233 20
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 233 9 233 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 233 9 233 18
+                        , srcInfoPoints = []
+                        }
+                      "WrapMonad"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 233 19 233 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 233 19 233 20
+                        , srcInfoPoints = []
+                        }
+                      "f")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 233 21 233 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 233 21 233 22
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 233 25 233 43
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 233 25 233 43
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 233 25 233 37
+                      , srcInfoPoints = []
+                      }
+                    "WrappedMonad")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 233 38 233 43
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 233 38 233 39
+                           , SrcSpan "tests/examples/DerivingVia.hs" 233 42 233 43
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 233 39 233 42
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 233 39 233 40
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 233 39 233 40
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 233 41 233 42
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 233 41 233 42
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 234 3 234 36
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 234 3 234 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 234 20 234 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 234 28 234 29
+                    , SrcSpan "tests/examples/DerivingVia.hs" 234 35 234 36
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 234 12 234 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 234 21 234 28
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 234 21 234 28
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 234 21 234 28
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 234 21 234 28
+                             , srcInfoPoints = []
+                             }
+                           "Pointed")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 234 30 234 35
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 234 30 234 35
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 234 30 234 35
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 234 30 234 35
+                             , srcInfoPoints = []
+                             }
+                           "Monad")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 236 1 239 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 236 1 236 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 236 56 236 61
+                , SrcSpan "tests/examples/DerivingVia.hs" 237 3 237 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 239 1 239 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 236 10 236 55
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 236 10 236 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 236 10 236 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 236 18 236 19
+                         , SrcSpan "tests/examples/DerivingVia.hs" 236 29 236 30
+                         , SrcSpan "tests/examples/DerivingVia.hs" 236 31 236 33
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 236 11 236 18
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 236 11 236 18
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 236 11 236 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 236 11 236 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 236 11 236 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 236 17 236 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 236 17 236 18
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 236 20 236 29
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 236 20 236 29
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 236 20 236 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 236 20 236 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 236 20 236 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "Pointed")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 236 28 236 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 236 28 236 29
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 236 34 236 55
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 236 34 236 41
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 236 34 236 41
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 236 34 236 41
+                           , srcInfoPoints = []
+                           }
+                         "Functor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 236 42 236 55
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 236 42 236 43
+                         , SrcSpan "tests/examples/DerivingVia.hs" 236 54 236 55
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 236 43 236 54
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 236 43 236 52
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 236 43 236 52
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 236 43 236 52
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapMonad")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 236 53 236 54
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 236 53 236 54
+                              , srcInfoPoints = []
+                              }
+                            "m"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 237 3 237 15
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 237 3 237 15
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 237 3 237 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 237 3 237 7
+                            , srcInfoPoints = []
+                            }
+                          "fmap"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 237 8 237 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 237 8 237 9 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 237 10 237 15
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 237 10 237 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 237 10 237 15
+                                  , srcInfoPoints = []
+                                  }
+                                "liftM"))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 239 1 244 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 239 1 239 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 239 60 239 65
+                , SrcSpan "tests/examples/DerivingVia.hs" 240 3 240 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 241 3 241 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 244 1 244 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 239 10 239 59
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 239 10 239 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 239 10 239 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 239 18 239 19
+                         , SrcSpan "tests/examples/DerivingVia.hs" 239 29 239 30
+                         , SrcSpan "tests/examples/DerivingVia.hs" 239 31 239 33
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 239 11 239 18
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 239 11 239 18
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 239 11 239 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 239 11 239 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 239 11 239 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monad")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 239 17 239 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 239 17 239 18
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 239 20 239 29
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 239 20 239 29
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 239 20 239 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 239 20 239 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 239 20 239 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "Pointed")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 239 28 239 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 239 28 239 29
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 239 34 239 59
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 239 34 239 45
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 239 34 239 45
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 239 34 239 45
+                           , srcInfoPoints = []
+                           }
+                         "Applicative")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 239 46 239 59
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 239 46 239 47
+                         , SrcSpan "tests/examples/DerivingVia.hs" 239 58 239 59
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 239 47 239 58
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 239 47 239 56
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 239 47 239 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 239 47 239 56
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapMonad")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 239 57 239 58
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 239 57 239 58
+                              , srcInfoPoints = []
+                              }
+                            "m"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 240 3 240 18
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 240 3 240 18
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 240 3 240 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 240 3 240 7
+                            , srcInfoPoints = []
+                            }
+                          "pure"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 240 9 240 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 240 9 240 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 240 11 240 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 240 11 240 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 240 11 240 18
+                                  , srcInfoPoints = []
+                                  }
+                                "pointed"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 241 3 241 13
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 241 3 241 13
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 241 3 241 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 241 3 241 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 241 4 241 7
+                             , SrcSpan "tests/examples/DerivingVia.hs" 241 7 241 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 241 4 241 7
+                            , srcInfoPoints = []
+                            }
+                          "<*>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 241 9 241 13
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 241 9 241 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 241 11 241 13
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 241 11 241 13
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 241 11 241 13
+                                  , srcInfoPoints = []
+                                  }
+                                "ap"))))
+                    Nothing)
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 244 1 247 58
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 244 15 244 16 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 244 1 244 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 244 6 244 14
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 244 6 244 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 244 6 244 12
+                     , srcInfoPoints = []
+                     }
+                   "Sorted"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 244 13 244 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 244 13 244 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 244 17 244 29
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 244 17 244 29
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 244 17 244 23
+                      , srcInfoPoints = []
+                      }
+                    "Sorted")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 244 24 244 25
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 244 24 244 25
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 244 26 244 27
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 244 26 244 27
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 244 28 244 29
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 244 28 244 29
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 245 3 245 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 245 3 245 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 245 12 245 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 245 20 245 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 245 33 245 34
+                    ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 246 5 246 8
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 246 9 246 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 246 9 246 10
+                             , SrcSpan "tests/examples/DerivingVia.hs" 246 26 246 27
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 246 10 246 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 246 10 246 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 246 10 246 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 246 10 246 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrapMonad")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 246 20 246 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 246 20 246 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 246 20 246 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sorted")))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 245 13 245 20
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 245 13 245 20
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 245 13 245 20
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 245 13 245 20
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 245 22 245 33
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 245 22 245 33
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 245 22 245 33
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 245 22 245 33
+                             , srcInfoPoints = []
+                             }
+                           "Applicative")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 247 3 247 58
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 247 3 247 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 12 247 13
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 16 247 17
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 28 247 29
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 38 247 39
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 49 247 50
+                    , SrcSpan "tests/examples/DerivingVia.hs" 247 57 247 58
+                    ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 248 5 248 8
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 248 9 248 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 248 9 248 10
+                             , SrcSpan "tests/examples/DerivingVia.hs" 248 34 248 35
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 248 10 248 34
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 248 10 248 32
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 248 10 248 25
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 248 10 248 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 248 10 248 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "WrapApplicative")))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 248 26 248 32
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 248 26 248 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 248 26 248 32
+                                        , srcInfoPoints = []
+                                        }
+                                      "Sorted"))))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 248 33 248 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 248 33 248 34
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 247 13 247 16
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 247 13 247 16
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 247 13 247 16
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 247 13 247 16
+                             , srcInfoPoints = []
+                             }
+                           "Num")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 247 18 247 28
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 247 18 247 28
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 247 18 247 28
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 247 18 247 28
+                             , srcInfoPoints = []
+                             }
+                           "Fractional")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 247 30 247 38
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 247 30 247 38
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 247 30 247 38
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 247 30 247 38
+                             , srcInfoPoints = []
+                             }
+                           "Floating")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 247 40 247 49
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 247 40 247 49
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 247 40 247 49
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 247 40 247 49
+                             , srcInfoPoints = []
+                             }
+                           "Semigroup")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 247 51 247 57
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 247 51 247 57
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 247 51 247 57
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 247 51 247 57
+                             , srcInfoPoints = []
+                             }
+                           "Monoid")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 251 1 258 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 251 1 251 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 251 23 251 28
+                , SrcSpan "tests/examples/DerivingVia.hs" 252 3 252 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 253 3 253 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 258 1 258 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 251 10 251 22
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 251 10 251 22
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 251 10 251 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 251 10 251 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 251 10 251 15
+                           , srcInfoPoints = []
+                           }
+                         "Monad")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 251 16 251 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 251 16 251 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 251 16 251 22
+                           , srcInfoPoints = []
+                           }
+                         "Sorted")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 252 3 252 51
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 252 9 252 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 252 3 252 51
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 252 9 252 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 252 3 252 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 252 3 252 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 252 4 252 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 252 7 252 8
+                              ]
+                          }
+                        ">>="
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 252 12 252 51
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 252 21 252 23 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 252 12 252 20
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 252 12 252 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 252 12 252 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 252 12 252 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sorted")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 252 19 252 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 252 19 252 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 252 24 252 51
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 252 40 252 42 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 252 24 252 39
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 252 24 252 25
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 252 38 252 39
+                                   ]
+                               }
+                             (TyFun
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 252 25 252 38
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 252 27 252 29 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 252 25 252 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 252 25 252 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "a"))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 252 30 252 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 252 30 252 36
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 252 30 252 36
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 252 30 252 36
+                                              , srcInfoPoints = []
+                                              }
+                                            "Sorted")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 252 37 252 38
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 252 37 252 38
+                                           , srcInfoPoints = []
+                                           }
+                                         "b")))))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 252 43 252 51
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 252 43 252 49
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 252 43 252 49
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 252 43 252 49
+                                        , srcInfoPoints = []
+                                        }
+                                      "Sorted")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 252 50 252 51
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 252 50 252 51
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 253 3 256 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 253 40 253 45 ]
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 253 3 256 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 253 40 253 45 ]
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 253 3 256 26
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 253 40 253 45 ]
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 253 3 253 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 253 3 253 9
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 253 3 253 9
+                                   , srcInfoPoints = []
+                                   }
+                                 "Sorted"))
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 253 10 253 11
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 253 10 253 11
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           , PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 253 12 253 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 253 12 253 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "b")
+                           , PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 253 14 253 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 253 14 253 15
+                                    , srcInfoPoints = []
+                                    }
+                                  "c")
+                           ])
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 253 16 253 19
+                             , srcInfoPoints = []
+                             }
+                           ">>=")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 253 20 253 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 253 20 253 21
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 253 22 253 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 253 22 253 23 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 253 24 253 39
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 253 24 253 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 253 24 253 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (Con
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 253 24 253 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 253 24 253 30
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 253 24 253 30
+                                               , srcInfoPoints = []
+                                               }
+                                             "Sorted")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 253 31 253 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 253 31 253 33
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 253 31 253 33
+                                               , srcInfoPoints = []
+                                               }
+                                             "a'"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 253 34 253 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 253 34 253 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 253 34 253 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "b'"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 253 37 253 39
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 253 37 253 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 253 37 253 39
+                                         , srcInfoPoints = []
+                                         }
+                                       "c'")))))
+                        (Just
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 254 5 256 26
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 254 5 254 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 255 5 255 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 256 5 256 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 258 1 258 0
+                                    ]
+                                }
+                              [ PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 254 5 254 26
+                                    , srcInfoPoints = []
+                                    }
+                                  (PApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 254 5 254 19
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 254 5 254 11
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 254 5 254 11
+                                             , srcInfoPoints = []
+                                             }
+                                           "Sorted"))
+                                     [ PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 254 12 254 14
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 254 12 254 14
+                                              , srcInfoPoints = []
+                                              }
+                                            "a'")
+                                     , PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 254 15 254 16
+                                           , srcInfoPoints = []
+                                           }
+                                     , PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 254 18 254 19
+                                           , srcInfoPoints = []
+                                           }
+                                     ])
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 254 21 254 26
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia.hs" 254 21 254 22 ]
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 254 23 254 26
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 254 23 254 24
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 254 23 254 24
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         254
+                                                         23
+                                                         254
+                                                         24
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "f")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 254 25 254 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 254 25 254 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         254
+                                                         25
+                                                         254
+                                                         26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "a")))))
+                                  Nothing
+                              , PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 255 5 255 26
+                                    , srcInfoPoints = []
+                                    }
+                                  (PApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 255 5 255 19
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 255 5 255 11
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 255 5 255 11
+                                             , srcInfoPoints = []
+                                             }
+                                           "Sorted"))
+                                     [ PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 255 12 255 13
+                                           , srcInfoPoints = []
+                                           }
+                                     , PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 255 15 255 17
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 255 15 255 17
+                                              , srcInfoPoints = []
+                                              }
+                                            "b'")
+                                     , PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 255 18 255 19
+                                           , srcInfoPoints = []
+                                           }
+                                     ])
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 255 21 255 26
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia.hs" 255 21 255 22 ]
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 255 23 255 26
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 255 23 255 24
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 255 23 255 24
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         255
+                                                         23
+                                                         255
+                                                         24
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "f")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 255 25 255 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 255 25 255 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         255
+                                                         25
+                                                         255
+                                                         26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "b")))))
+                                  Nothing
+                              , PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 256 5 256 26
+                                    , srcInfoPoints = []
+                                    }
+                                  (PApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 256 5 256 20
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 256 5 256 11
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 256 5 256 11
+                                             , srcInfoPoints = []
+                                             }
+                                           "Sorted"))
+                                     [ PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 256 12 256 13
+                                           , srcInfoPoints = []
+                                           }
+                                     , PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 256 15 256 16
+                                           , srcInfoPoints = []
+                                           }
+                                     , PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 256 18 256 20
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 256 18 256 20
+                                              , srcInfoPoints = []
+                                              }
+                                            "c'")
+                                     ])
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 256 21 256 26
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia.hs" 256 21 256 22 ]
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 256 23 256 26
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 256 23 256 24
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 256 23 256 24
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         256
+                                                         23
+                                                         256
+                                                         24
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "f")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 256 25 256 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 256 25 256 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         256
+                                                         25
+                                                         256
+                                                         26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "c")))))
+                                  Nothing
+                              ]))
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 258 1 265 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 258 1 258 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 258 25 258 30
+                , SrcSpan "tests/examples/DerivingVia.hs" 259 3 259 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 260 3 260 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 265 1 265 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 258 10 258 24
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 258 10 258 24
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 258 10 258 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 258 10 258 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 258 10 258 17
+                           , srcInfoPoints = []
+                           }
+                         "Pointed")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 258 18 258 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 258 18 258 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 258 18 258 24
+                           , srcInfoPoints = []
+                           }
+                         "Sorted")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 259 3 259 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 259 11 259 13 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 259 3 259 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 259 11 259 13 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 259 3 259 10
+                          , srcInfoPoints = []
+                          }
+                        "pointed"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 259 14 259 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 259 16 259 18 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 259 14 259 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 259 14 259 15
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 259 19 259 27
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 259 19 259 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 259 19 259 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 259 19 259 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sorted")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 259 26 259 27
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 259 26 259 27
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 260 3 260 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 260 3 260 27
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 260 3 260 27
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 260 3 260 10
+                             , srcInfoPoints = []
+                             }
+                           "pointed")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 260 11 260 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 260 11 260 12
+                                 , srcInfoPoints = []
+                                 }
+                               "a")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 260 13 260 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 260 13 260 14 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 260 15 260 27
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 260 15 260 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 260 15 260 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (Con
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 260 15 260 21
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 260 15 260 21
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 260 15 260 21
+                                               , srcInfoPoints = []
+                                               }
+                                             "Sorted")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 260 22 260 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 260 22 260 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 260 22 260 23
+                                               , srcInfoPoints = []
+                                               }
+                                             "a"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 260 24 260 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 260 24 260 25
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 260 24 260 25
+                                            , srcInfoPoints = []
+                                            }
+                                          "a"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 260 26 260 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 260 26 260 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 260 26 260 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))))
+                        Nothing
+                    ])
+             ])
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 265 1 266 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 265 1 265 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 265 16 265 21
+                , SrcSpan "tests/examples/DerivingVia.hs" 266 3 266 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 268 1 268 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 265 7 265 15
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 265 7 265 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 265 7 265 13
+                     , srcInfoPoints = []
+                     }
+                   "IsZero"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 265 14 265 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 265 14 265 15
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 266 3 266 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 266 10 266 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 266 3 266 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 266 10 266 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 266 3 266 9
+                          , srcInfoPoints = []
+                          }
+                        "isZero"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 266 13 266 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 266 15 266 17 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 266 13 266 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 266 13 266 14
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 266 18 266 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 266 18 266 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 266 18 266 22
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 268 1 268 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 268 25 268 26 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 268 1 268 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 268 9 268 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 268 9 268 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 268 9 268 21
+                     , srcInfoPoints = []
+                     }
+                   "WrappedNumEq"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 268 23 268 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 268 23 268 24
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 268 27 268 41
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 268 27 268 41
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 268 27 268 39
+                      , srcInfoPoints = []
+                      }
+                    "WrappedNumEq")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 268 40 268 41
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 268 40 268 41
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 269 1 269 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 269 25 269 26 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 269 1 269 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 269 9 269 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 269 9 269 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 269 9 269 20
+                     , srcInfoPoints = []
+                     }
+                   "WrappedShow"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 269 23 269 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 269 23 269 24
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 269 27 269 41
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 269 27 269 41
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 269 27 269 38
+                      , srcInfoPoints = []
+                      }
+                    "WrappedShow")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 269 40 269 41
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 269 40 269 41
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 270 1 270 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 270 25 270 26 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 270 1 270 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 270 9 270 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 270 9 270 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 270 9 270 22
+                     , srcInfoPoints = []
+                     }
+                   "WrappedNumEq2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 270 23 270 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 270 23 270 24
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 270 27 270 42
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 270 27 270 42
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 270 27 270 40
+                      , srcInfoPoints = []
+                      }
+                    "WrappedNumEq2")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 270 41 270 42
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 270 41 270 42
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 272 1 276 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 272 1 272 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 272 51 272 56
+                , SrcSpan "tests/examples/DerivingVia.hs" 273 3 273 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 274 3 274 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 276 1 276 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 272 10 272 50
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 272 10 272 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 272 10 272 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 272 16 272 17
+                         , SrcSpan "tests/examples/DerivingVia.hs" 272 22 272 23
+                         , SrcSpan "tests/examples/DerivingVia.hs" 272 24 272 26
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 272 11 272 16
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 272 11 272 16
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 272 11 272 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 272 11 272 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 272 11 272 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 272 15 272 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 272 15 272 16
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 272 18 272 22
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 272 18 272 22
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 272 18 272 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 272 18 272 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 272 18 272 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 272 21 272 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 272 21 272 22
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 272 27 272 50
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 272 27 272 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 272 27 272 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 272 27 272 33
+                           , srcInfoPoints = []
+                           }
+                         "IsZero")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 272 34 272 50
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 272 34 272 35
+                         , SrcSpan "tests/examples/DerivingVia.hs" 272 49 272 50
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 272 35 272 49
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 272 35 272 47
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 272 35 272 47
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 272 35 272 47
+                                 , srcInfoPoints = []
+                                 }
+                               "WrappedNumEq")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 272 48 272 49
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 272 48 272 49
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 273 3 273 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 273 10 273 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 273 3 273 35
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 273 10 273 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 273 3 273 9
+                          , srcInfoPoints = []
+                          }
+                        "isZero"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 273 13 273 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 273 28 273 30 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 273 13 273 27
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 273 13 273 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 273 13 273 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 273 13 273 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedNumEq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 273 26 273 27
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 273 26 273 27
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 273 31 273 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 273 31 273 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 273 31 273 35
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 274 3 274 35
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 274 3 274 35
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 274 3 274 35
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 274 3 274 9
+                             , srcInfoPoints = []
+                             }
+                           "isZero")
+                        [ PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 274 10 274 26
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 274 10 274 11
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 274 25 274 26
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 274 11 274 25
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 274 11 274 23
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 274 11 274 23
+                                       , srcInfoPoints = []
+                                       }
+                                     "WrappedNumEq"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 274 24 274 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 274 24 274 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 274 27 274 35
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 274 27 274 28 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 274 29 274 35
+                                , srcInfoPoints = []
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 274 29 274 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 274 29 274 30
+                                      , srcInfoPoints = []
+                                      }
+                                    0
+                                    "0"))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 274 31 274 33
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 274 31 274 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 274 31 274 33
+                                         , srcInfoPoints = []
+                                         }
+                                       "==")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 274 34 274 35
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 274 34 274 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 274 34 274 35
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 276 1 280 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 276 1 276 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 276 43 276 48
+                , SrcSpan "tests/examples/DerivingVia.hs" 277 3 277 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 278 3 278 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 280 1 280 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 42
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 19
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 276 17 276 19 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 19
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 276 17 276 19 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 19
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 276 17 276 19 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 19
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 276 17 276 19 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 14
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 276 10 276 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "Show")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 276 15 276 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 276 15 276 16
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 276 20 276 42
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 276 20 276 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 276 20 276 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 276 20 276 26
+                           , srcInfoPoints = []
+                           }
+                         "IsZero")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 276 27 276 42
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 276 27 276 28
+                         , SrcSpan "tests/examples/DerivingVia.hs" 276 41 276 42
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 276 28 276 41
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 276 28 276 39
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 276 28 276 39
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 276 28 276 39
+                                 , srcInfoPoints = []
+                                 }
+                               "WrappedShow")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 276 40 276 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 276 40 276 41
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 277 3 277 34
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 277 10 277 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 277 3 277 34
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 277 10 277 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 277 3 277 9
+                          , srcInfoPoints = []
+                          }
+                        "isZero"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 277 13 277 34
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 277 27 277 29 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 277 13 277 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 277 13 277 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 277 13 277 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 277 13 277 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedShow")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 277 25 277 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 277 25 277 26
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 277 30 277 34
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 277 30 277 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 277 30 277 34
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 278 3 278 41
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 278 3 278 41
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 278 3 278 41
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 278 3 278 9
+                             , srcInfoPoints = []
+                             }
+                           "isZero")
+                        [ PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 278 10 278 25
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 278 10 278 11
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 278 24 278 25
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 278 11 278 24
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 278 11 278 22
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 278 11 278 22
+                                       , srcInfoPoints = []
+                                       }
+                                     "WrappedShow"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 278 23 278 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 278 23 278 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 278 26 278 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 278 26 278 27 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 278 28 278 41
+                                , srcInfoPoints = []
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 278 28 278 31
+                                   , srcInfoPoints = []
+                                   }
+                                 (String
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 278 28 278 31
+                                      , srcInfoPoints = []
+                                      }
+                                    "0"
+                                    "0"))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 278 32 278 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 278 32 278 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 278 32 278 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "==")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 278 35 278 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 278 35 278 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 278 35 278 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 278 35 278 39
+                                            , srcInfoPoints = []
+                                            }
+                                          "show")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 278 40 278 41
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 278 40 278 41
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 278 40 278 41
+                                            , srcInfoPoints = []
+                                            }
+                                          "a"))))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 280 1 284 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 280 1 280 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 280 52 280 57
+                , SrcSpan "tests/examples/DerivingVia.hs" 281 3 281 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 282 3 282 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 284 1 284 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 280 10 280 51
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 280 10 280 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 280 10 280 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 280 16 280 17
+                         , SrcSpan "tests/examples/DerivingVia.hs" 280 22 280 23
+                         , SrcSpan "tests/examples/DerivingVia.hs" 280 24 280 26
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 280 11 280 16
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 280 11 280 16
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 280 11 280 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 280 11 280 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 280 11 280 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 280 15 280 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 280 15 280 16
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 280 18 280 22
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 280 18 280 22
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 280 18 280 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 280 18 280 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 280 18 280 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 280 21 280 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 280 21 280 22
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 280 27 280 51
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 280 27 280 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 280 27 280 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 280 27 280 33
+                           , srcInfoPoints = []
+                           }
+                         "IsZero")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 280 34 280 51
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 280 34 280 35
+                         , SrcSpan "tests/examples/DerivingVia.hs" 280 50 280 51
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 280 35 280 50
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 280 35 280 48
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 280 35 280 48
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 280 35 280 48
+                                 , srcInfoPoints = []
+                                 }
+                               "WrappedNumEq2")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 280 49 280 50
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 280 49 280 50
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 281 3 281 36
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 281 10 281 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 281 3 281 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 281 10 281 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 281 3 281 9
+                          , srcInfoPoints = []
+                          }
+                        "isZero"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 281 13 281 36
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 281 29 281 31 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 281 13 281 28
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 281 13 281 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 281 13 281 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 281 13 281 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedNumEq2")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 281 27 281 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 281 27 281 28
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 281 32 281 36
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 281 32 281 36
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 281 32 281 36
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 282 3 282 40
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 282 3 282 40
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 282 3 282 40
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 282 3 282 9
+                             , srcInfoPoints = []
+                             }
+                           "isZero")
+                        [ PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 282 10 282 27
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 282 10 282 11
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 282 26 282 27
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 282 11 282 26
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 282 11 282 24
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 282 11 282 24
+                                       , srcInfoPoints = []
+                                       }
+                                     "WrappedNumEq2"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 282 25 282 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 282 25 282 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 282 28 282 40
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 282 28 282 29 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 282 30 282 40
+                                , srcInfoPoints = []
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 282 30 282 35
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 282 30 282 31
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 282 30 282 31
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 282 30 282 31
+                                            , srcInfoPoints = []
+                                            }
+                                          "a")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 282 32 282 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 282 32 282 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 282 32 282 33
+                                            , srcInfoPoints = []
+                                            }
+                                          "+")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 282 34 282 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 282 34 282 35
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 282 34 282 35
+                                            , srcInfoPoints = []
+                                            }
+                                          "a"))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 282 36 282 38
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 282 36 282 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 282 36 282 38
+                                         , srcInfoPoints = []
+                                         }
+                                       "==")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 282 39 282 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 282 39 282 40
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 282 39 282 40
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 284 1 286 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 284 13 284 14 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 284 1 284 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 284 9 284 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 284 9 284 12
+                  , srcInfoPoints = []
+                  }
+                "INT"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 284 15 284 22
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 284 15 284 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 284 15 284 18
+                      , srcInfoPoints = []
+                      }
+                    "INT")
+                 [ TyCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 284 19 284 22
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 284 19 284 22
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 284 19 284 22
+                             , srcInfoPoints = []
+                             }
+                           "Int"))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 285 3 285 24
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 285 3 285 11 ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 285 12 285 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 285 20 285 24
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 285 20 285 24
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 285 20 285 24
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 285 20 285 24
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          , Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 286 3 286 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 286 3 286 11 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 286 19 286 22
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 286 23 286 41
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 286 23 286 24
+                             , SrcSpan "tests/examples/DerivingVia.hs" 286 40 286 41
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 286 24 286 40
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 286 24 286 36
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 286 24 286 36
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 286 24 286 36
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedNumEq")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 286 37 286 40
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 286 37 286 40
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 286 37 286 40
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int")))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 286 12 286 18
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 286 12 286 18
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 286 12 286 18
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 286 12 286 18
+                             , srcInfoPoints = []
+                             }
+                           "IsZero")))
+              ]
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 288 1 288 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 288 14 288 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 288 1 288 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 288 9 288 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 288 9 288 13
+                  , srcInfoPoints = []
+                  }
+                "VOID"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 288 16 288 25
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 288 16 288 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 288 16 288 20
+                      , srcInfoPoints = []
+                      }
+                    "VOID")
+                 [ TyCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 288 21 288 25
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 288 21 288 25
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 288 21 288 25
+                             , srcInfoPoints = []
+                             }
+                           "Void"))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 288 26 288 41
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 288 26 288 34 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 288 42 288 45
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 288 46 288 64
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 288 46 288 47
+                             , SrcSpan "tests/examples/DerivingVia.hs" 288 63 288 64
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 288 47 288 63
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 288 47 288 58
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 288 47 288 58
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 288 47 288 58
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedShow")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 288 59 288 63
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 288 59 288 63
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 288 59 288 63
+                                     , srcInfoPoints = []
+                                     }
+                                   "Void")))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 288 35 288 41
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 288 35 288 41
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 288 35 288 41
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 288 35 288 41
+                             , srcInfoPoints = []
+                             }
+                           "IsZero")))
+              ]
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 293 1 301 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 293 1 293 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 293 38 293 43
+                , SrcSpan "tests/examples/DerivingVia.hs" 294 3 294 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 296 3 296 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 303 1 303 0
+                ]
+            }
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 293 19 293 21 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 293 19 293 21 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 21
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 293 19 293 21 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 21
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 293 19 293 21 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 293 7 293 16
+                                 , srcInfoPoints = []
+                                 }
+                               "Bifunctor")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 293 17 293 18
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 293 17 293 18
+                              , srcInfoPoints = []
+                              }
+                            "p"))))))
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 293 22 293 37
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 293 22 293 35
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 293 22 293 35
+                     , srcInfoPoints = []
+                     }
+                   "Biapplicative"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 293 36 293 37
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 293 36 293 37
+                     , srcInfoPoints = []
+                     }
+                   "p")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 294 3 294 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 294 10 294 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 294 3 294 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 294 10 294 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 294 3 294 9
+                          , srcInfoPoints = []
+                          }
+                        "bipure"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 294 13 294 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 294 15 294 17 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 294 13 294 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 294 13 294 14
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 294 18 294 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 294 20 294 22 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 294 18 294 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 294 18 294 19
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 294 23 294 28
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 294 23 294 26
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 294 23 294 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 294 23 294 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "p"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 294 25 294 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 294 25 294 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 294 27 294 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 294 27 294 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 296 3 301 14
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 297 5 297 7 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 296 3 301 14
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 297 5 297 7 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 296 3 296 11
+                          , srcInfoPoints = []
+                          }
+                        "biliftA2"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 297 8 301 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 298 5 298 7 ]
+                         }
+                       (TyParen
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 297 8 297 23
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 297 8 297 9
+                                , SrcSpan "tests/examples/DerivingVia.hs" 297 22 297 23
+                                ]
+                            }
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 297 9 297 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 297 12 297 14 ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 297 9 297 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 297 9 297 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"))
+                             (TyFun
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 297 15 297 22
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 297 18 297 20 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 297 15 297 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 297 15 297 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "b"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 297 21 297 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 297 21 297 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "c")))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 298 8 301 14
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 299 5 299 7 ]
+                            }
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 298 8 298 24
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 298 8 298 9
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 298 23 298 24
+                                   ]
+                               }
+                             (TyFun
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 298 9 298 23
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 298 12 298 14 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 298 9 298 11
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 298 9 298 11
+                                        , srcInfoPoints = []
+                                        }
+                                      "a'"))
+                                (TyFun
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 298 15 298 23
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 298 18 298 20 ]
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 298 15 298 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 298 15 298 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "b'"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 298 21 298 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 298 21 298 23
+                                           , srcInfoPoints = []
+                                           }
+                                         "c'")))))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 299 8 301 14
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 300 5 300 7 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 299 8 299 14
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 299 8 299 11
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 299 8 299 9
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 299 8 299 9
+                                           , srcInfoPoints = []
+                                           }
+                                         "p"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 299 10 299 11
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 299 10 299 11
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 299 12 299 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 299 12 299 14
+                                        , srcInfoPoints = []
+                                        }
+                                      "a'")))
+                             (TyFun
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 300 8 301 14
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 301 5 301 7 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 300 8 300 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 300 8 300 11
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 300 8 300 9
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 300 8 300 9
+                                              , srcInfoPoints = []
+                                              }
+                                            "p"))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 300 10 300 11
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 300 10 300 11
+                                              , srcInfoPoints = []
+                                              }
+                                            "b")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 300 12 300 14
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 300 12 300 14
+                                           , srcInfoPoints = []
+                                           }
+                                         "b'")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 301 8 301 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 301 8 301 11
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 301 8 301 9
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 301 8 301 9
+                                              , srcInfoPoints = []
+                                              }
+                                            "p"))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 301 10 301 11
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 301 10 301 11
+                                              , srcInfoPoints = []
+                                              }
+                                            "c")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 301 12 301 14
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 301 12 301 14
+                                           , srcInfoPoints = []
+                                           }
+                                         "c'"))))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 303 1 309 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 303 1 303 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 303 28 303 33
+                , SrcSpan "tests/examples/DerivingVia.hs" 304 3 304 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 306 3 306 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 309 1 309 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 303 10 303 27
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 303 10 303 27
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 303 10 303 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 303 10 303 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 303 10 303 23
+                           , srcInfoPoints = []
+                           }
+                         "Biapplicative")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 25
+                         , SrcSpan "tests/examples/DerivingVia.hs" 303 25 303 26
+                         , SrcSpan "tests/examples/DerivingVia.hs" 303 26 303 27
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 25
+                            , SrcSpan "tests/examples/DerivingVia.hs" 303 25 303 26
+                            , SrcSpan "tests/examples/DerivingVia.hs" 303 26 303 27
+                            ]
+                        }
+                      (TupleCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 27
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 303 24 303 25
+                               , SrcSpan "tests/examples/DerivingVia.hs" 303 25 303 26
+                               , SrcSpan "tests/examples/DerivingVia.hs" 303 26 303 27
+                               ]
+                           }
+                         Boxed
+                         2)))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 304 3 304 15
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 304 3 304 15
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 304 3 304 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 304 3 304 9
+                            , srcInfoPoints = []
+                            }
+                          "bipure"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 304 10 304 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 304 10 304 11 ]
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 13
+                                , SrcSpan "tests/examples/DerivingVia.hs" 304 13 304 14
+                                , SrcSpan "tests/examples/DerivingVia.hs" 304 14 304 15
+                                ]
+                            }
+                          (Special
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 15
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 13
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 304 13 304 14
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 304 14 304 15
+                                   ]
+                               }
+                             (TupleCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 15
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 304 12 304 13
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 304 13 304 14
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 304 14 304 15
+                                      ]
+                                  }
+                                Boxed
+                                2))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 306 3 307 22
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 306 3 307 22
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 306 3 307 22
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 306 3 306 11
+                             , srcInfoPoints = []
+                             }
+                           "biliftA2")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 306 12 306 13
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 306 12 306 13
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 306 14 306 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 306 14 306 16
+                                 , srcInfoPoints = []
+                                 }
+                               "f'")
+                        , PTuple
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 306 17 306 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 306 17 306 18
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 306 19 306 20
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 306 23 306 24
+                                  ]
+                              }
+                            Boxed
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 306 18 306 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 306 18 306 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 306 21 306 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 306 21 306 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "a'")
+                            ]
+                        , PTuple
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 306 25 306 32
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 306 25 306 26
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 306 27 306 28
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 306 31 306 32
+                                  ]
+                              }
+                            Boxed
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 306 26 306 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 306 26 306 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 306 29 306 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 306 29 306 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "b'")
+                            ]
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 306 33 307 22
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 306 33 306 34 ]
+                             }
+                           (Tuple
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 307 5 307 22
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 307 5 307 6
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 307 11 307 12
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 307 21 307 22
+                                    ]
+                                }
+                              Boxed
+                              [ App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 307 6 307 11
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 307 6 307 9
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 6 307 7
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/DerivingVia.hs" 307 6 307 7
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 307 6 307 7
+                                                , srcInfoPoints = []
+                                                }
+                                              "f")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 8 307 9
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/DerivingVia.hs" 307 8 307 9
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 307 8 307 9
+                                                , srcInfoPoints = []
+                                                }
+                                              "a"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 307 10 307 11
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 10 307 11
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 307 10 307 11
+                                             , srcInfoPoints = []
+                                             }
+                                           "b")))
+                              , App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 307 13 307 21
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 307 13 307 18
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 13 307 15
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 307 13 307 15
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 307 13 307 15
+                                                , srcInfoPoints = []
+                                                }
+                                              "f'")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 16 307 18
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 307 16 307 18
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 307 16 307 18
+                                                , srcInfoPoints = []
+                                                }
+                                              "a'"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 307 19 307 21
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia.hs" 307 19 307 21
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 307 19 307 21
+                                             , srcInfoPoints = []
+                                             }
+                                           "b'")))
+                              ]))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 309 1 310 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 309 25 309 26 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 309 1 309 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 309 9 309 24
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 309 9 309 22
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 309 9 309 20
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 309 9 309 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 309 9 309 18
+                           , srcInfoPoints = []
+                           }
+                         "WrapBiapp"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 309 19 309 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 309 19 309 20
+                           , srcInfoPoints = []
+                           }
+                         "p")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 309 21 309 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 309 21 309 22
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 309 23 309 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 309 23 309 24
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 309 27 309 43
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 309 27 309 43
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 309 27 309 35
+                      , srcInfoPoints = []
+                      }
+                    "WrapBiap")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 309 36 309 43
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 309 36 309 37
+                           , SrcSpan "tests/examples/DerivingVia.hs" 309 42 309 43
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 309 37 309 42
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 309 37 309 40
+                             , srcInfoPoints = []
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 309 37 309 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 309 37 309 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "p"))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 309 39 309 40
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 309 39 309 40
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 309 41 309 42
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 309 41 309 42
+                                , srcInfoPoints = []
+                                }
+                              "b")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 310 3 310 50
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 310 3 310 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 310 20 310 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 310 30 310 31
+                    , SrcSpan "tests/examples/DerivingVia.hs" 310 45 310 46
+                    , SrcSpan "tests/examples/DerivingVia.hs" 310 49 310 50
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 310 12 310 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 310 21 310 30
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 310 21 310 30
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 310 21 310 30
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 310 21 310 30
+                             , srcInfoPoints = []
+                             }
+                           "Bifunctor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 310 32 310 45
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 310 32 310 45
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 310 32 310 45
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 310 32 310 45
+                             , srcInfoPoints = []
+                             }
+                           "Biapplicative")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 310 47 310 49
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 310 47 310 49
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 310 47 310 49
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 310 47 310 49
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 312 1 321 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 312 1 312 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 312 67 312 72
+                , SrcSpan "tests/examples/DerivingVia.hs" 313 3 313 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 314 3 314 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 315 3 315 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 316 3 316 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 317 3 317 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 318 3 318 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 319 3 319 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 321 1 321 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 312 10 312 66
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 312 10 312 44
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 312 10 312 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 312 26 312 27
+                         , SrcSpan "tests/examples/DerivingVia.hs" 312 33 312 34
+                         , SrcSpan "tests/examples/DerivingVia.hs" 312 40 312 41
+                         , SrcSpan "tests/examples/DerivingVia.hs" 312 42 312 44
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 312 11 312 26
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 312 11 312 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 11 312 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 11 312 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 312 11 312 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "Biapplicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 25 312 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 25 312 26
+                                  , srcInfoPoints = []
+                                  }
+                                "p")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 312 28 312 33
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 312 28 312 33
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 28 312 33
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 28 312 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 312 28 312 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 32 312 33
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 32 312 33
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 312 35 312 40
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 312 35 312 40
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 35 312 40
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 35 312 38
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 312 35 312 38
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 312 39 312 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 312 39 312 40
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 312 45 312 66
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 312 45 312 48
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 312 45 312 48
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 312 45 312 48
+                           , srcInfoPoints = []
+                           }
+                         "Num")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 312 49 312 66
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 312 49 312 50
+                         , SrcSpan "tests/examples/DerivingVia.hs" 312 65 312 66
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 65
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 63
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 61
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 59
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 59
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 312 50 312 59
+                                       , srcInfoPoints = []
+                                       }
+                                     "WrapBiapp")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 312 60 312 61
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 312 60 312 61
+                                    , srcInfoPoints = []
+                                    }
+                                  "p")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 312 62 312 63
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 312 62 312 63
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 312 64 312 65
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 312 64 312 65
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 313 3 313 25
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 313 3 313 25
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 313 3 313 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 313 3 313 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 313 4 313 5
+                             , SrcSpan "tests/examples/DerivingVia.hs" 313 5 313 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 313 4 313 5
+                            , srcInfoPoints = []
+                            }
+                          "+"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 313 7 313 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 313 7 313 8 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 313 9 313 25
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 313 9 313 21
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 313 9 313 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 313 9 313 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 313 9 313 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "biliftA2")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 313 18 313 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 313 18 313 19
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 313 19 313 20
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 313 20 313 21
+                                      ]
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 313 18 313 21
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 313 18 313 19
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 313 19 313 20
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 313 20 313 21
+                                         ]
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 313 19 313 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "+"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 313 22 313 25
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 313 22 313 23
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 313 23 313 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 313 24 313 25
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 313 22 313 25
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 313 22 313 23
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 313 23 313 24
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 313 24 313 25
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 313 23 313 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "+")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 314 3 314 25
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 314 3 314 25
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 314 3 314 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 314 3 314 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 314 4 314 5
+                             , SrcSpan "tests/examples/DerivingVia.hs" 314 5 314 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 314 4 314 5
+                            , srcInfoPoints = []
+                            }
+                          "-"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 314 7 314 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 314 7 314 8 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 314 9 314 25
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 314 9 314 21
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 314 9 314 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 314 9 314 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 314 9 314 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "biliftA2")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 314 18 314 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 314 18 314 19
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 314 19 314 20
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 314 20 314 21
+                                      ]
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 314 18 314 21
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 314 18 314 19
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 314 19 314 20
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 314 20 314 21
+                                         ]
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 314 19 314 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "*"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 314 22 314 25
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 314 22 314 23
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 314 23 314 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 314 24 314 25
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 314 22 314 25
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 314 22 314 23
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 314 23 314 24
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 314 24 314 25
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 314 23 314 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "*")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 315 3 315 25
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 315 3 315 25
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 315 3 315 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 315 3 315 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 315 4 315 5
+                             , SrcSpan "tests/examples/DerivingVia.hs" 315 5 315 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 315 4 315 5
+                            , srcInfoPoints = []
+                            }
+                          "*"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 315 7 315 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 315 7 315 8 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 315 9 315 25
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 315 9 315 21
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 315 9 315 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 315 9 315 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 315 9 315 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "biliftA2")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 315 18 315 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 315 18 315 19
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 315 19 315 20
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 315 20 315 21
+                                      ]
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 315 18 315 21
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 315 18 315 19
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 315 19 315 20
+                                         , SrcSpan "tests/examples/DerivingVia.hs" 315 20 315 21
+                                         ]
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 315 19 315 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "*"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 315 22 315 25
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 315 22 315 23
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 315 23 315 24
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 315 24 315 25
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 315 22 315 25
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 315 22 315 23
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 315 23 315 24
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 315 24 315 25
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 315 23 315 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "*")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 316 3 316 31
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 316 3 316 31
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 316 3 316 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 316 3 316 9
+                            , srcInfoPoints = []
+                            }
+                          "negate"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 316 10 316 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 316 10 316 11 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 316 12 316 31
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 316 12 316 24
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 316 12 316 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 316 12 316 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 316 12 316 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "bimap")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 316 18 316 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 316 18 316 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 316 18 316 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "negate"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 316 25 316 31
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 316 25 316 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 316 25 316 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "negate")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 317 3 317 22
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 317 3 317 22
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 317 3 317 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 317 3 317 6
+                            , srcInfoPoints = []
+                            }
+                          "abs"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 317 7 317 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 317 7 317 8 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 317 9 317 22
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 317 9 317 18
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 317 9 317 14
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 317 9 317 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 317 9 317 14
+                                        , srcInfoPoints = []
+                                        }
+                                      "bimap")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 317 15 317 18
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 317 15 317 18
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 317 15 317 18
+                                        , srcInfoPoints = []
+                                        }
+                                      "abs"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 317 19 317 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 317 19 317 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 317 19 317 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "abs")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 318 3 318 31
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 318 3 318 31
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 318 3 318 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 318 3 318 9
+                            , srcInfoPoints = []
+                            }
+                          "signum"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 318 10 318 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 318 10 318 11 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 318 12 318 31
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 318 12 318 24
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 318 12 318 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 318 12 318 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 318 12 318 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "bimap")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 318 18 318 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 318 18 318 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 318 18 318 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "signum"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 318 25 318 31
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 318 25 318 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 318 25 318 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "signum")))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 319 3 319 55
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 319 3 319 55
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 319 3 319 55
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 319 3 319 14
+                             , srcInfoPoints = []
+                             }
+                           "fromInteger")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 319 15 319 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 319 15 319 16
+                                 , srcInfoPoints = []
+                                 }
+                               "n")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 319 17 319 55
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 319 17 319 18 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 319 19 319 55
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 319 19 319 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 319 19 319 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 319 19 319 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 319 19 319 30
+                                            , srcInfoPoints = []
+                                            }
+                                          "fromInteger")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 319 31 319 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 319 31 319 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 319 31 319 32
+                                            , srcInfoPoints = []
+                                            }
+                                          "n"))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 319 33 319 41
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 319 33 319 34
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 319 34 319 40
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 319 40 319 41
+                                       ]
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 319 33 319 41
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DerivingVia.hs" 319 33 319 34
+                                          , SrcSpan "tests/examples/DerivingVia.hs" 319 34 319 40
+                                          , SrcSpan "tests/examples/DerivingVia.hs" 319 40 319 41
+                                          ]
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 319 34 319 40
+                                         , srcInfoPoints = []
+                                         }
+                                       "bipure")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 319 42 319 55
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 319 42 319 53
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 319 42 319 53
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 319 42 319 53
+                                            , srcInfoPoints = []
+                                            }
+                                          "fromInteger")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 319 54 319 55
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 319 54 319 55
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 319 54 319 55
+                                            , srcInfoPoints = []
+                                            }
+                                          "n"))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 321 1 322 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 321 14 321 15 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 321 1 321 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 321 9 321 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 321 9 321 13
+                  , srcInfoPoints = []
+                  }
+                "INT2"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 321 16 321 31
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 321 16 321 31
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 321 16 321 20
+                      , srcInfoPoints = []
+                      }
+                    "INT2")
+                 [ TyTuple
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 321 21 321 31
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 321 21 321 22
+                           , SrcSpan "tests/examples/DerivingVia.hs" 321 25 321 26
+                           , SrcSpan "tests/examples/DerivingVia.hs" 321 30 321 31
+                           ]
+                       }
+                     Boxed
+                     [ TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 321 22 321 25
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 321 22 321 25
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 321 22 321 25
+                                 , srcInfoPoints = []
+                                 }
+                               "Int"))
+                     , TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 321 27 321 30
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 321 27 321 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 321 27 321 30
+                                 , srcInfoPoints = []
+                                 }
+                               "Int"))
+                     ]
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 322 3 322 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 322 3 322 11 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 322 19 322 22
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 322 23 322 62
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 322 23 322 24
+                             , SrcSpan "tests/examples/DerivingVia.hs" 322 61 322 62
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 322 24 322 61
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 322 24 322 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 322 24 322 37
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 322 24 322 37
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrappedNumEq2")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 322 38 322 61
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 322 38 322 39
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 322 60 322 61
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 322 39 322 60
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 322 39 322 56
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 322 39 322 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 322 39 322 48
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 322 39 322 48
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 322 39 322 48
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "WrapBiapp")))
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 322 49 322 52
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 322 49 322 50
+                                               , SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 322 50 322 51
+                                               , SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 322 51 322 52
+                                               ]
+                                           }
+                                         (Special
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 322 49 322 52
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 322 49 322 50
+                                                  , SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 322 50 322 51
+                                                  , SrcSpan
+                                                      "tests/examples/DerivingVia.hs" 322 51 322 52
+                                                  ]
+                                              }
+                                            (TupleCon
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 322 49 322 52
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         322
+                                                         49
+                                                         322
+                                                         50
+                                                     , SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         322
+                                                         50
+                                                         322
+                                                         51
+                                                     , SrcSpan
+                                                         "tests/examples/DerivingVia.hs"
+                                                         322
+                                                         51
+                                                         322
+                                                         52
+                                                     ]
+                                                 }
+                                               Boxed
+                                               2))))
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 322 53 322 56
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 322 53 322 56
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 322 53 322 56
+                                              , srcInfoPoints = []
+                                              }
+                                            "Int"))))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 322 57 322 60
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 322 57 322 60
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 322 57 322 60
+                                           , srcInfoPoints = []
+                                           }
+                                         "Int")))))))))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 322 12 322 18
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 322 12 322 18
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 322 12 322 18
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 322 12 322 18
+                             , srcInfoPoints = []
+                             }
+                           "IsZero")))
+              ]
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 327 1 328 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 327 1 327 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 327 32 327 37
+                , SrcSpan "tests/examples/DerivingVia.hs" 328 3 328 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 330 1 330 0
+                ]
+            }
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 18
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 327 16 327 18 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 327 16 327 18 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 327 16 327 18 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 18
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 327 16 327 18 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 13
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 327 7 327 13
+                                 , srcInfoPoints = []
+                                 }
+                               "Monoid")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 327 14 327 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 327 14 327 15
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 327 19 327 31
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 327 19 327 29
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 327 19 327 29
+                     , srcInfoPoints = []
+                     }
+                   "MonoidNull"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 327 30 327 31
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 327 30 327 31
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 328 3 328 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 328 8 328 10 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 328 3 328 20
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 328 8 328 10 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 328 3 328 7
+                          , srcInfoPoints = []
+                          }
+                        "null"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 328 11 328 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 328 13 328 15 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 328 11 328 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 328 11 328 12
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 328 16 328 20
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 328 16 328 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 328 16 328 20
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 330 1 330 62
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 330 22 330 23 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 330 1 330 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 330 9 330 21
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 330 9 330 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 330 9 330 19
+                     , srcInfoPoints = []
+                     }
+                   "WrpMonNull"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 330 20 330 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 330 20 330 21
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 330 24 330 29
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 330 24 330 29
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 330 24 330 27
+                      , srcInfoPoints = []
+                      }
+                    "WRM")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 330 28 330 29
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 330 28 330 29
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 330 30 330 62
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 330 30 330 38
+                    , SrcSpan "tests/examples/DerivingVia.hs" 330 39 330 40
+                    , SrcSpan "tests/examples/DerivingVia.hs" 330 42 330 43
+                    , SrcSpan "tests/examples/DerivingVia.hs" 330 53 330 54
+                    , SrcSpan "tests/examples/DerivingVia.hs" 330 61 330 62
+                    ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 330 40 330 42
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 330 40 330 42
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 330 40 330 42
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 330 40 330 42
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 330 44 330 53
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 330 44 330 53
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 330 44 330 53
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 330 44 330 53
+                             , srcInfoPoints = []
+                             }
+                           "Semigroup")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 330 55 330 61
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 330 55 330 61
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 330 55 330 61
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 330 55 330 61
+                             , srcInfoPoints = []
+                             }
+                           "Monoid")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 332 1 336 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 332 1 332 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 332 56 332 61
+                , SrcSpan "tests/examples/DerivingVia.hs" 333 3 333 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 334 3 334 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 336 1 336 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 332 10 332 55
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 332 10 332 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 332 10 332 11
+                         , SrcSpan "tests/examples/DerivingVia.hs" 332 15 332 16
+                         , SrcSpan "tests/examples/DerivingVia.hs" 332 25 332 26
+                         , SrcSpan "tests/examples/DerivingVia.hs" 332 27 332 29
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 332 11 332 15
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 332 11 332 15
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 332 11 332 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 332 11 332 13
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 332 11 332 13
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 332 14 332 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 332 14 332 15
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 332 17 332 25
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 332 17 332 25
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 332 17 332 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 332 17 332 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 332 17 332 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "Monoid")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 332 24 332 25
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 332 24 332 25
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 332 30 332 55
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 332 30 332 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 332 30 332 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 332 30 332 40
+                           , srcInfoPoints = []
+                           }
+                         "MonoidNull")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 332 41 332 55
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 332 41 332 42
+                         , SrcSpan "tests/examples/DerivingVia.hs" 332 54 332 55
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 332 42 332 54
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 332 42 332 52
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 332 42 332 52
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 332 42 332 52
+                                 , srcInfoPoints = []
+                                 }
+                               "WrpMonNull")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 332 53 332 54
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 332 53 332 54
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 333 3 333 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 333 8 333 10 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 333 3 333 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 333 8 333 10 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 333 3 333 7
+                          , srcInfoPoints = []
+                          }
+                        "null"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 333 11 333 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 333 24 333 26 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 333 11 333 23
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 333 11 333 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 333 11 333 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 333 11 333 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrpMonNull")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 333 22 333 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 333 22 333 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 333 27 333 31
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 333 27 333 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 333 27 333 31
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool")))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 334 3 334 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 334 3 334 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 334 3 334 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 334 3 334 7
+                            , srcInfoPoints = []
+                            }
+                          "null"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 334 8 334 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 334 8 334 9 ]
+                         }
+                       (RightSection
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 334 10 334 21
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 334 10 334 11
+                                , SrcSpan "tests/examples/DerivingVia.hs" 334 20 334 21
+                                ]
+                            }
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 334 11 334 13
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 334 11 334 13
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 334 11 334 13
+                                     , srcInfoPoints = []
+                                     }
+                                   "==")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 334 14 334 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 334 14 334 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 334 14 334 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "mempty")))))
+                    Nothing)
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 336 1 336 54
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 336 1 336 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 336 31 336 39
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 336 10 336 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 336 14 336 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 336 14 336 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 336 29 336 30
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 336 15 336 29
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 336 15 336 25
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 336 15 336 25
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 336 15 336 25
+                                 , srcInfoPoints = []
+                                 }
+                               "WrpMonNull")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 336 26 336 29
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 336 26 336 29
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 336 26 336 29
+                                 , srcInfoPoints = []
+                                 }
+                               "Any")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 336 40 336 54
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 336 40 336 54
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 336 40 336 50
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 336 40 336 50
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 336 40 336 50
+                           , srcInfoPoints = []
+                           }
+                         "MonoidNull")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 336 51 336 54
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 336 51 336 54
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 336 51 336 54
+                           , srcInfoPoints = []
+                           }
+                         "Any")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 337 1 337 53
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 337 1 337 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 337 31 337 39
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 337 10 337 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 16
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 337 15 337 16
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 16
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 15
+                            , SrcSpan "tests/examples/DerivingVia.hs" 337 15 337 16
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 16
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 337 14 337 15
+                               , SrcSpan "tests/examples/DerivingVia.hs" 337 15 337 16
+                               ]
+                           })))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 337 40 337 53
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 337 40 337 53
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 337 40 337 50
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 337 40 337 50
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 337 40 337 50
+                           , srcInfoPoints = []
+                           }
+                         "MonoidNull")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 53
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 52
+                         , SrcSpan "tests/examples/DerivingVia.hs" 337 52 337 53
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 53
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 52
+                            , SrcSpan "tests/examples/DerivingVia.hs" 337 52 337 53
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 53
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 337 51 337 52
+                               , SrcSpan "tests/examples/DerivingVia.hs" 337 52 337 53
+                               ]
+                           })))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 338 1 338 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 338 1 338 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 338 31 338 39
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 338 10 338 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 338 14 338 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 338 14 338 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 338 14 338 22
+                           , srcInfoPoints = []
+                           }
+                         "Ordering")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 338 40 338 59
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 338 40 338 59
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 338 40 338 50
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 338 40 338 50
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 338 40 338 50
+                           , srcInfoPoints = []
+                           }
+                         "MonoidNull")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 338 51 338 59
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 338 51 338 59
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 338 51 338 59
+                           , srcInfoPoints = []
+                           }
+                         "Ordering")))))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 345 1 348 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 345 1 345 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 345 17 345 22
+                , SrcSpan "tests/examples/DerivingVia.hs" 346 3 346 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 347 3 347 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 348 3 348 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 350 1 350 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 345 7 345 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 345 7 345 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 345 7 345 14
+                     , srcInfoPoints = []
+                     }
+                   "Lattice"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 345 15 345 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 345 15 345 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 346 3 346 23
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 346 9 346 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 346 3 346 23
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 346 9 346 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 346 3 346 6
+                          , srcInfoPoints = []
+                          }
+                        "sup"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 346 12 346 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 346 14 346 16 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 346 12 346 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 346 12 346 13
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 346 17 346 23
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 346 19 346 21 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 346 17 346 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 346 17 346 18
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 346 22 346 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 346 22 346 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 347 3 347 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 347 9 347 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 347 3 347 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 347 9 347 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 347 3 347 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 347 3 347 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 347 4 347 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 347 7 347 8
+                              ]
+                          }
+                        ".>="
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 347 12 347 26
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 347 14 347 16 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 347 12 347 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 347 12 347 13
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 347 17 347 26
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 347 19 347 21 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 347 17 347 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 347 17 347 18
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 347 22 347 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 347 22 347 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 347 22 347 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 348 3 348 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 348 9 348 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 348 3 348 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 348 9 348 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 348 3 348 7
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 348 3 348 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 348 4 348 6
+                              , SrcSpan "tests/examples/DerivingVia.hs" 348 6 348 7
+                              ]
+                          }
+                        ".>"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 348 12 348 26
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 348 14 348 16 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 348 12 348 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 348 12 348 13
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 348 17 348 26
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 348 19 348 21 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 348 17 348 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 348 17 348 18
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 348 22 348 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 348 22 348 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 348 22 348 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 350 1 351 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 350 19 350 20 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 350 1 350 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 350 9 350 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 350 9 350 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 350 9 350 16
+                     , srcInfoPoints = []
+                     }
+                   "WrapOrd"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 350 17 350 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 350 17 350 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 350 21 350 33
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 350 21 350 33
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 350 21 350 31
+                      , srcInfoPoints = []
+                      }
+                    "WrappedOrd")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 350 32 350 33
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 350 32 350 33
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 351 3 351 29
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 351 3 351 11
+                    , SrcSpan "tests/examples/DerivingVia.hs" 351 20 351 21
+                    , SrcSpan "tests/examples/DerivingVia.hs" 351 23 351 24
+                    , SrcSpan "tests/examples/DerivingVia.hs" 351 28 351 29
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 351 12 351 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 351 21 351 23
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 351 21 351 23
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 351 21 351 23
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 351 21 351 23
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 351 25 351 28
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 351 25 351 28
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 351 25 351 28
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 351 25 351 28
+                             , srcInfoPoints = []
+                             }
+                           "Ord")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 353 1 358 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 353 1 353 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 353 39 353 44
+                , SrcSpan "tests/examples/DerivingVia.hs" 354 3 354 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 355 3 355 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 356 3 356 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 358 1 358 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 38
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 353 16 353 18 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 353 16 353 18 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 18
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 353 16 353 18 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 18
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 353 16 353 18 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 353 10 353 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "Ord")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 353 14 353 15
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 353 14 353 15
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 353 19 353 38
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 353 19 353 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 353 19 353 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 353 19 353 26
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 353 27 353 38
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 353 27 353 28
+                         , SrcSpan "tests/examples/DerivingVia.hs" 353 37 353 38
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 353 28 353 37
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 353 28 353 35
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 353 28 353 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 353 28 353 35
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapOrd")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 353 36 353 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 353 36 353 37
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 354 3 354 14
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 354 3 354 14
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 354 3 354 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 354 3 354 6
+                            , srcInfoPoints = []
+                            }
+                          "sup"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 354 9 354 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 354 9 354 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 354 11 354 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 354 11 354 14
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 354 11 354 14
+                                  , srcInfoPoints = []
+                                  }
+                                "max"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 355 3 355 15
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 355 3 355 15
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 355 3 355 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 355 3 355 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 355 4 355 7
+                             , SrcSpan "tests/examples/DerivingVia.hs" 355 7 355 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 355 4 355 7
+                            , srcInfoPoints = []
+                            }
+                          ".>="))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 355 9 355 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 355 9 355 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 355 11 355 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 355 11 355 12
+                                , SrcSpan "tests/examples/DerivingVia.hs" 355 12 355 14
+                                , SrcSpan "tests/examples/DerivingVia.hs" 355 14 355 15
+                                ]
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 355 11 355 15
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 355 11 355 12
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 355 12 355 14
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 355 14 355 15
+                                   ]
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 355 12 355 14
+                                  , srcInfoPoints = []
+                                  }
+                                ">="))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 356 3 356 14
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 356 3 356 14
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 356 3 356 7
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 356 3 356 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 356 4 356 6
+                             , SrcSpan "tests/examples/DerivingVia.hs" 356 6 356 7
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 356 4 356 6
+                            , srcInfoPoints = []
+                            }
+                          ".>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 356 9 356 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 356 9 356 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 356 11 356 14
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 356 11 356 12
+                                , SrcSpan "tests/examples/DerivingVia.hs" 356 12 356 13
+                                , SrcSpan "tests/examples/DerivingVia.hs" 356 13 356 14
+                                ]
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 356 11 356 14
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 356 11 356 12
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 356 12 356 13
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 356 13 356 14
+                                   ]
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 356 12 356 13
+                                  , srcInfoPoints = []
+                                  }
+                                ">"))))
+                    Nothing)
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 358 1 358 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 358 1 358 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 358 21 358 29
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 358 10 358 13
+                  , srcInfoPoints = []
+                  }
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 358 14 358 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 358 14 358 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 358 16 358 17
+                         ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 358 15 358 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 358 15 358 16
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 59
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 358 45 358 47 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 47
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 358 45 358 47 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 47
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 358 45 358 47 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 47
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 358 45 358 47 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 33
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 358 30 358 33
+                                    , srcInfoPoints = []
+                                    }
+                                  "Ord")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 358 34 358 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 358 34 358 35
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 358 48 358 59
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 358 48 358 55
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 358 48 358 55
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 358 48 358 55
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 358 56 358 59
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 358 56 358 57
+                         , SrcSpan "tests/examples/DerivingVia.hs" 358 58 358 59
+                         ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 358 57 358 58
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 358 57 358 58
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 359 1 359 62
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 359 1 359 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 359 21 359 29
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 359 10 359 13
+                  , srcInfoPoints = []
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 359 14 359 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 359 14 359 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 16 359 17
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 19 359 20
+                         ]
+                     }
+                   Boxed
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 15 359 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 15 359 16
+                            , srcInfoPoints = []
+                            }
+                          "a")
+                   , TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 18 359 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 18 359 19
+                            , srcInfoPoints = []
+                            }
+                          "b")
+                   ])))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 359 30 359 62
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 359 30 359 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 359 30 359 31
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 36 359 37
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 43 359 44
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 45 359 47
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 31 359 36
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 31 359 36
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 359 31 359 36
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 359 31 359 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 359 31 359 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "Ord")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 359 35 359 36
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 359 35 359 36
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 38 359 43
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 38 359 43
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 359 38 359 43
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 359 38 359 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 359 38 359 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "Ord")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 359 42 359 43
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 359 42 359 43
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 359 48 359 62
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 359 48 359 55
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 359 48 359 55
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 359 48 359 55
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 359 56 359 62
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 359 56 359 57
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 58 359 59
+                         , SrcSpan "tests/examples/DerivingVia.hs" 359 61 359 62
+                         ]
+                     }
+                   Boxed
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 57 359 58
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 57 359 58
+                            , srcInfoPoints = []
+                            }
+                          "a")
+                   , TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 359 60 359 61
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 359 60 359 61
+                            , srcInfoPoints = []
+                            }
+                          "b")
+                   ])))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 361 1 361 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 361 1 361 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 361 19 361 27
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 361 10 361 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 361 14 361 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 361 14 361 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 361 14 361 18
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 361 28 361 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 361 28 361 40
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 361 28 361 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 361 28 361 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 361 28 361 35
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 361 36 361 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 361 36 361 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 361 36 361 40
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 363 1 363 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 363 1 363 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 363 19 363 27
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 363 10 363 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 363 14 363 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 363 14 363 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 363 14 363 18
+                           , srcInfoPoints = []
+                           }
+                         "Char")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 363 28 363 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 363 28 363 40
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 363 28 363 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 363 28 363 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 363 28 363 35
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 363 36 363 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 363 36 363 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 363 36 363 40
+                           , srcInfoPoints = []
+                           }
+                         "Char")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 365 1 365 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 365 1 365 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 365 18 365 26
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 365 10 365 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 365 14 365 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 365 14 365 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 365 14 365 17
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 365 27 365 38
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 365 27 365 38
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 365 27 365 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 365 27 365 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 365 27 365 34
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 365 35 365 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 365 35 365 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 365 35 365 38
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 367 1 367 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 367 1 367 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 367 22 367 30
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 367 10 367 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 367 14 367 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 367 14 367 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 367 14 367 21
+                           , srcInfoPoints = []
+                           }
+                         "Integer")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 367 31 367 46
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 367 31 367 46
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 367 31 367 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 367 31 367 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 367 31 367 38
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 367 39 367 46
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 367 39 367 46
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 367 39 367 46
+                           , srcInfoPoints = []
+                           }
+                         "Integer")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 369 1 369 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 369 1 369 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 369 20 369 28
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 369 10 369 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 369 14 369 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 369 14 369 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 369 14 369 19
+                           , srcInfoPoints = []
+                           }
+                         "Float")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 369 29 369 42
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 369 29 369 42
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 369 29 369 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 369 29 369 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 369 29 369 36
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 369 37 369 42
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 369 37 369 42
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 369 37 369 42
+                           , srcInfoPoints = []
+                           }
+                         "Float")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 371 1 371 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 371 1 371 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 371 21 371 29
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 371 10 371 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 371 14 371 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 371 14 371 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 371 14 371 20
+                           , srcInfoPoints = []
+                           }
+                         "Double")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 371 30 371 44
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 371 30 371 44
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 371 30 371 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 371 30 371 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 371 30 371 37
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 371 38 371 44
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 371 38 371 44
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 371 38 371 44
+                           , srcInfoPoints = []
+                           }
+                         "Double")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 373 1 373 48
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 373 1 373 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 373 23 373 31
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 373 10 373 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 373 14 373 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 373 14 373 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 373 14 373 22
+                           , srcInfoPoints = []
+                           }
+                         "Rational")))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 373 32 373 48
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 373 32 373 48
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 373 32 373 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 373 32 373 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 373 32 373 39
+                           , srcInfoPoints = []
+                           }
+                         "Lattice")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 373 40 373 48
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 373 40 373 48
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 373 40 373 48
+                           , srcInfoPoints = []
+                           }
+                         "Rational")))))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 380 1 386 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 380 1 380 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 380 31 380 36
+                , SrcSpan "tests/examples/DerivingVia.hs" 381 3 381 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 382 3 382 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 383 3 383 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 384 3 384 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 386 3 386 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 388 1 388 0
+                ]
+            }
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 380 17 380 19 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 19
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 380 17 380 19 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 19
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 380 17 380 19 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 19
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 380 17 380 19 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 14
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 380 7 380 14
+                                 , srcInfoPoints = []
+                                 }
+                               "Functor")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 380 15 380 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 380 15 380 16
+                              , srcInfoPoints = []
+                              }
+                            "f"))))))
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 380 20 380 30
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 380 20 380 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 380 20 380 28
+                     , srcInfoPoints = []
+                     }
+                   "Additive"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 380 29 380 30
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 380 29 380 30
+                     , srcInfoPoints = []
+                     }
+                   "f")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 381 3 381 23
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 381 8 381 10 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 381 3 381 23
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 381 8 381 10 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 381 3 381 7
+                          , srcInfoPoints = []
+                          }
+                        "zero"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 23
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 19
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 381 17 381 19 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 19
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 381 17 381 19 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 19
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 381 17 381 19 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 19
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 381 17 381 19
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 381 11 381 14
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 381 11 381 14
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 381 15 381 16
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 381 15 381 16
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 381 20 381 23
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 381 20 381 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 381 20 381 21
+                                  , srcInfoPoints = []
+                                  }
+                                "f"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 381 22 381 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 381 22 381 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 382 3 382 38
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 382 9 382 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 382 3 382 38
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 382 9 382 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 382 3 382 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 382 3 382 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 382 4 382 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 382 7 382 8
+                              ]
+                          }
+                        "^+^"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 38
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 382 18 382 20 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 382 18 382 20 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 20
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 382 18 382 20 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 382 18 382 20
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 382 12 382 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 382 12 382 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 16 382 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 382 16 382 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 382 21 382 38
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 382 25 382 27 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 382 21 382 24
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 382 21 382 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 21 382 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "f"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 382 23 382 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 23 382 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 382 28 382 38
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 382 32 382 34 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 382 28 382 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 28 382 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 28 382 29
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 30 382 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 30 382 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 382 35 382 38
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 35 382 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 35 382 36
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 382 37 382 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 382 37 382 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 383 3 383 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 383 3 383 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 383 3 383 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 383 3 383 4
+                             , SrcSpan "tests/examples/DerivingVia.hs" 383 4 383 7
+                             , SrcSpan "tests/examples/DerivingVia.hs" 383 7 383 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 383 4 383 7
+                            , srcInfoPoints = []
+                            }
+                          "^+^"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 383 9 383 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 383 9 383 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 383 11 383 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 383 11 383 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 383 11 383 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 383 11 383 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "liftU2")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 383 18 383 21
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 383 18 383 19
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 383 19 383 20
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 383 20 383 21
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 383 18 383 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 383 18 383 19
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 383 19 383 20
+                                      , SrcSpan "tests/examples/DerivingVia.hs" 383 20 383 21
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 383 19 383 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "+")))))
+                    Nothing)
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 384 3 384 38
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 384 9 384 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 384 3 384 38
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 384 9 384 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 384 3 384 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 384 3 384 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 384 4 384 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 384 7 384 8
+                              ]
+                          }
+                        "^-^"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 38
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 384 18 384 20 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 384 18 384 20 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 20
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 384 18 384 20 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 384 18 384 20
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 384 12 384 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 384 12 384 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 16 384 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 384 16 384 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 384 21 384 38
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 384 25 384 27 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 384 21 384 24
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 384 21 384 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 21 384 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "f"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 384 23 384 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 23 384 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 384 28 384 38
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 384 32 384 34 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 384 28 384 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 28 384 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 28 384 29
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 30 384 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 30 384 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 384 35 384 38
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 35 384 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 35 384 36
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 384 37 384 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 384 37 384 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 32
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 32
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 32
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 4
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 385 3 385 4
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 385 5 385 8
+                             , srcInfoPoints = []
+                             }
+                           "^-^")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 385 9 385 10
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 385 9 385 10
+                                 , srcInfoPoints = []
+                                 }
+                               "y")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 385 11 385 32
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 385 11 385 12 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 385 13 385 32
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 385 13 385 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 385 13 385 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 385 13 385 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 385 15 385 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 385 15 385 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 385 15 385 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "^+^")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 385 19 385 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 385 19 385 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 385 19 385 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 385 19 385 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 385 19 385 23
+                                               , srcInfoPoints = []
+                                               }
+                                             "fmap")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 385 24 385 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 385 24 385 30
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 385 24 385 30
+                                               , srcInfoPoints = []
+                                               }
+                                             "negate"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 385 31 385 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 385 31 385 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 385 31 385 32
+                                            , srcInfoPoints = []
+                                            }
+                                          "y"))))))
+                        Nothing
+                    ])
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 386 3 386 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 386 10 386 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 386 3 386 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 386 10 386 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 386 3 386 9
+                          , srcInfoPoints = []
+                          }
+                        "liftU2"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 386 13 386 47
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 386 27 386 29 ]
+                         }
+                       (TyParen
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 386 13 386 26
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 386 13 386 14
+                                , SrcSpan "tests/examples/DerivingVia.hs" 386 25 386 26
+                                ]
+                            }
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 386 14 386 25
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 386 16 386 18 ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 14 386 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 14 386 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"))
+                             (TyFun
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 19 386 25
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 386 21 386 23 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 19 386 20
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 19 386 20
+                                        , srcInfoPoints = []
+                                        }
+                                      "a"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 24 386 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 24 386 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 386 30 386 47
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 386 34 386 36 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 386 30 386 33
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 30 386 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 30 386 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "f"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 32 386 33
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 32 386 33
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 386 37 386 47
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 386 41 386 43 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 37 386 40
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 37 386 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 37 386 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 39 386 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 39 386 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 386 44 386 47
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 44 386 45
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 44 386 45
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 386 46 386 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 386 46 386 47
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 388 1 395 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 388 1 388 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 388 22 388 27
+                , SrcSpan "tests/examples/DerivingVia.hs" 389 3 389 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 390 3 390 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 395 1 395 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 388 10 388 21
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 388 10 388 21
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 388 10 388 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 388 10 388 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 388 10 388 18
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 20
+                         , SrcSpan "tests/examples/DerivingVia.hs" 388 20 388 21
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 21
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 20
+                            , SrcSpan "tests/examples/DerivingVia.hs" 388 20 388 21
+                            ]
+                        }
+                      (ListCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 21
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 388 19 388 20
+                               , SrcSpan "tests/examples/DerivingVia.hs" 388 20 388 21
+                               ]
+                           })))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 389 3 389 12
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 389 3 389 12
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 389 3 389 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 389 3 389 7
+                            , srcInfoPoints = []
+                            }
+                          "zero"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 389 8 389 12
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 389 8 389 9 ]
+                         }
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 389 10 389 12
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 389 10 389 11
+                                , SrcSpan "tests/examples/DerivingVia.hs" 389 11 389 12
+                                ]
+                            }
+                          []))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 390 3 393 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 390 17 390 22 ]
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 390 3 393 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 390 17 390 22 ]
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 390 3 393 18
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 390 17 390 22 ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 390 3 390 9
+                             , srcInfoPoints = []
+                             }
+                           "liftU2")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 390 10 390 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 390 10 390 11
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 390 12 390 16
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 390 12 390 13 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 390 14 390 16
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 390 14 390 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 390 14 390 16
+                                      , srcInfoPoints = []
+                                      }
+                                    "go"))))
+                        (Just
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 391 5 393 18
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/DerivingVia.hs" 391 5 391 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 392 5 392 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 393 5 393 5
+                                    , SrcSpan "tests/examples/DerivingVia.hs" 395 1 395 0
+                                    ]
+                                }
+                              [ FunBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 391 5 393 18
+                                    , srcInfoPoints = []
+                                    }
+                                  [ Match
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 391 5 391 40
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 391 5 391 7
+                                           , srcInfoPoints = []
+                                           }
+                                         "go")
+                                      [ PParen
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 391 8 391 14
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 391 8 391 9
+                                                , SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 391 13 391 14
+                                                ]
+                                            }
+                                          (PInfixApp
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 391 9 391 13
+                                               , srcInfoPoints = []
+                                               }
+                                             (PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs" 391 9 391 10
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           9
+                                                           391
+                                                           10
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "x"))
+                                             (Special
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        391
+                                                        10
+                                                        391
+                                                        11
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Cons
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           10
+                                                           391
+                                                           11
+                                                     , srcInfoPoints = []
+                                                     }))
+                                             (PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        391
+                                                        11
+                                                        391
+                                                        13
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           11
+                                                           391
+                                                           13
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "xs")))
+                                      , PParen
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 391 15 391 21
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 391 15 391 16
+                                                , SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 391 20 391 21
+                                                ]
+                                            }
+                                          (PInfixApp
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 391 16 391 20
+                                               , srcInfoPoints = []
+                                               }
+                                             (PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        391
+                                                        16
+                                                        391
+                                                        17
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           16
+                                                           391
+                                                           17
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "y"))
+                                             (Special
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        391
+                                                        17
+                                                        391
+                                                        18
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Cons
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           17
+                                                           391
+                                                           18
+                                                     , srcInfoPoints = []
+                                                     }))
+                                             (PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        391
+                                                        18
+                                                        391
+                                                        20
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           391
+                                                           18
+                                                           391
+                                                           20
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "ys")))
+                                      ]
+                                      (UnGuardedRhs
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 391 22 391 40
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 391 22 391 23
+                                               ]
+                                           }
+                                         (InfixApp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 391 24 391 40
+                                              , srcInfoPoints = []
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 391 24 391 29
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          391
+                                                          24
+                                                          391
+                                                          27
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             24
+                                                             391
+                                                             25
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                24
+                                                                391
+                                                                25
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/DerivingVia.hs"
+                                                                   391
+                                                                   24
+                                                                   391
+                                                                   25
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "f")))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             26
+                                                             391
+                                                             27
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                26
+                                                                391
+                                                                27
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/DerivingVia.hs"
+                                                                   391
+                                                                   26
+                                                                   391
+                                                                   27
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "x"))))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          391
+                                                          28
+                                                          391
+                                                          29
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             28
+                                                             391
+                                                             29
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                28
+                                                                391
+                                                                29
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "y"))))
+                                            (QConOp
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 391 30 391 31
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Special
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          391
+                                                          30
+                                                          391
+                                                          31
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Cons
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             30
+                                                             391
+                                                             31
+                                                       , srcInfoPoints = []
+                                                       })))
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 391 32 391 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          391
+                                                          32
+                                                          391
+                                                          37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             32
+                                                             391
+                                                             34
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                32
+                                                                391
+                                                                34
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/DerivingVia.hs"
+                                                                   391
+                                                                   32
+                                                                   391
+                                                                   34
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "go")))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             35
+                                                             391
+                                                             37
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                35
+                                                                391
+                                                                37
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/DerivingVia.hs"
+                                                                   391
+                                                                   35
+                                                                   391
+                                                                   37
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "xs"))))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          391
+                                                          38
+                                                          391
+                                                          40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/DerivingVia.hs"
+                                                             391
+                                                             38
+                                                             391
+                                                             40
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/DerivingVia.hs"
+                                                                391
+                                                                38
+                                                                391
+                                                                40
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "ys"))))))
+                                      Nothing
+                                  , Match
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 392 5 392 18
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 392 5 392 7
+                                           , srcInfoPoints = []
+                                           }
+                                         "go")
+                                      [ PList
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 392 8 392 10
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 392 8 392 9
+                                                , SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 392 9 392 10
+                                                ]
+                                            }
+                                          []
+                                      , PVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 392 11 392 13
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 392 11 392 13
+                                               , srcInfoPoints = []
+                                               }
+                                             "ys")
+                                      ]
+                                      (UnGuardedRhs
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 392 14 392 18
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 392 14 392 15
+                                               ]
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 392 16 392 18
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 392 16 392 18
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          392
+                                                          16
+                                                          392
+                                                          18
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ys"))))
+                                      Nothing
+                                  , Match
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 393 5 393 18
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 393 5 393 7
+                                           , srcInfoPoints = []
+                                           }
+                                         "go")
+                                      [ PVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DerivingVia.hs" 393 8 393 10
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 393 8 393 10
+                                               , srcInfoPoints = []
+                                               }
+                                             "xs")
+                                      , PList
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 393 11 393 13
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 393 11 393 12
+                                                , SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 393 12 393 13
+                                                ]
+                                            }
+                                          []
+                                      ]
+                                      (UnGuardedRhs
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 393 14 393 18
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/DerivingVia.hs" 393 14 393 15
+                                               ]
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 393 16 393 18
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DerivingVia.hs" 393 16 393 18
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DerivingVia.hs"
+                                                          393
+                                                          16
+                                                          393
+                                                          18
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "xs"))))
+                                      Nothing
+                                  ]
+                              ]))
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 395 1 401 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 395 1 395 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 395 25 395 30
+                , SrcSpan "tests/examples/DerivingVia.hs" 396 3 396 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 397 3 397 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 398 3 398 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 399 3 399 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 401 1 401 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 395 10 395 24
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 395 10 395 24
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 395 10 395 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 395 10 395 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 395 10 395 18
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 395 19 395 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 395 19 395 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 395 19 395 24
+                           , srcInfoPoints = []
+                           }
+                         "Maybe")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 396 3 396 17
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 396 3 396 17
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 396 3 396 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 396 3 396 7
+                            , srcInfoPoints = []
+                            }
+                          "zero"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 396 8 396 17
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 396 8 396 9 ]
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 396 10 396 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 396 10 396 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 396 10 396 17
+                                  , srcInfoPoints = []
+                                  }
+                                "Nothing"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 397 3 399 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 397 3 399 27
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 397 3 397 44
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 397 3 397 9
+                             , srcInfoPoints = []
+                             }
+                           "liftU2")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 397 10 397 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 397 10 397 11
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 397 12 397 20
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 397 12 397 13
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 397 19 397 20
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 397 13 397 19
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 397 13 397 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 397 13 397 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "Just"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 397 18 397 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 397 18 397 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 397 21 397 29
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 397 21 397 22
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 397 28 397 29
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 397 22 397 28
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 397 22 397 26
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 397 22 397 26
+                                       , srcInfoPoints = []
+                                       }
+                                     "Just"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 397 27 397 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 397 27 397 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 397 30 397 44
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 397 30 397 31 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 397 32 397 44
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 397 32 397 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 397 32 397 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 397 32 397 36
+                                         , srcInfoPoints = []
+                                         }
+                                       "Just")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 397 37 397 44
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 397 37 397 38
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 397 43 397 44
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 397 38 397 43
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 397 38 397 41
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 397 38 397 39
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 397 38 397 39
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        397
+                                                        38
+                                                        397
+                                                        39
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "f")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 397 40 397 41
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 397 40 397 41
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        397
+                                                        40
+                                                        397
+                                                        41
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "a"))))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 397 42 397 43
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 397 42 397 43
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 397 42 397 43
+                                               , srcInfoPoints = []
+                                               }
+                                             "b")))))))
+                        Nothing
+                    , Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 398 3 398 27
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 398 3 398 9
+                             , srcInfoPoints = []
+                             }
+                           "liftU2")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 398 10 398 11
+                              , srcInfoPoints = []
+                              }
+                        , PApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 398 12 398 19
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 398 12 398 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 398 12 398 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "Nothing"))
+                            []
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 398 20 398 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 398 20 398 22
+                                 , srcInfoPoints = []
+                                 }
+                               "ys")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 398 23 398 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 398 23 398 24 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 398 25 398 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 398 25 398 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 398 25 398 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "ys"))))
+                        Nothing
+                    , Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 399 3 399 27
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 399 3 399 9
+                             , srcInfoPoints = []
+                             }
+                           "liftU2")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 399 10 399 11
+                              , srcInfoPoints = []
+                              }
+                        , PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 399 12 399 14
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 399 12 399 14
+                                 , srcInfoPoints = []
+                                 }
+                               "xs")
+                        , PApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 399 15 399 22
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 399 15 399 22
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 399 15 399 22
+                                    , srcInfoPoints = []
+                                    }
+                                  "Nothing"))
+                            []
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 399 23 399 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 399 23 399 24 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 399 25 399 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 399 25 399 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 399 25 399 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "xs"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 401 1 405 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 401 1 401 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 401 56 401 61
+                , SrcSpan "tests/examples/DerivingVia.hs" 402 3 402 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 403 3 403 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 405 1 405 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 55
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 401 24 401 26 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 401 24 401 26 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 26
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 401 24 401 26 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 26
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 401 24 401 26 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 21
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 401 10 401 21
+                                    , srcInfoPoints = []
+                                    }
+                                  "Applicative")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 401 22 401 23
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 401 22 401 23
+                                 , srcInfoPoints = []
+                                 }
+                               "f"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 401 27 401 55
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 401 27 401 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 401 27 401 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 401 27 401 35
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 401 36 401 55
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 401 36 401 37
+                         , SrcSpan "tests/examples/DerivingVia.hs" 401 54 401 55
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 401 37 401 54
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 401 37 401 52
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 401 37 401 52
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 401 37 401 52
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapApplicative")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 401 53 401 54
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 401 53 401 54
+                              , srcInfoPoints = []
+                              }
+                            "f"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 402 3 402 18
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 402 3 402 18
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 402 3 402 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 402 3 402 7
+                            , srcInfoPoints = []
+                            }
+                          "zero"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 402 10 402 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 402 10 402 11 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 402 12 402 18
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 402 12 402 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 402 12 402 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 402 12 402 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "pure")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 402 17 402 18
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 402 17 402 18
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 403 3 403 18
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 403 3 403 18
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 403 3 403 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 403 3 403 9
+                            , srcInfoPoints = []
+                            }
+                          "liftU2"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 403 10 403 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 403 10 403 11 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 403 12 403 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 403 12 403 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 403 12 403 18
+                                  , srcInfoPoints = []
+                                  }
+                                "liftA2"))))
+                    Nothing)
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 405 1 405 67
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 405 1 405 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 405 41 405 49
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 405 10 405 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 405 14 405 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 405 14 405 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 405 39 405 40
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 405 15 405 39
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 405 15 405 30
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 405 15 405 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 405 15 405 30
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapApplicative")))
+                      (TyParen
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 405 31 405 39
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 405 31 405 32
+                               , SrcSpan "tests/examples/DerivingVia.hs" 405 38 405 39
+                               ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 38
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 36
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 33
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 405 33 405 35
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 405 35 405 36
+                                     ]
+                                 }
+                               (Special
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 36
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 33
+                                        , SrcSpan "tests/examples/DerivingVia.hs" 405 33 405 35
+                                        , SrcSpan "tests/examples/DerivingVia.hs" 405 35 405 36
+                                        ]
+                                    }
+                                  (FunCon
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 36
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia.hs" 405 32 405 33
+                                           , SrcSpan "tests/examples/DerivingVia.hs" 405 33 405 35
+                                           , SrcSpan "tests/examples/DerivingVia.hs" 405 35 405 36
+                                           ]
+                                       })))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 405 37 405 38
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 405 37 405 38
+                                    , srcInfoPoints = []
+                                    }
+                                  "a"))))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 405 50 405 67
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 405 50 405 67
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 405 50 405 58
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 405 50 405 58
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 405 50 405 58
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 405 59 405 67
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 405 59 405 60
+                         , SrcSpan "tests/examples/DerivingVia.hs" 405 66 405 67
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 66
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 64
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 61
+                               , SrcSpan "tests/examples/DerivingVia.hs" 405 61 405 63
+                               , SrcSpan "tests/examples/DerivingVia.hs" 405 63 405 64
+                               ]
+                           }
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 64
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 61
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 405 61 405 63
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 405 63 405 64
+                                  ]
+                              }
+                            (FunCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 64
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 405 60 405 61
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 405 61 405 63
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 405 63 405 64
+                                     ]
+                                 })))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 405 65 405 66
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 405 65 405 66
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 406 1 406 66
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 406 1 406 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 406 41 406 49
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 406 10 406 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 406 14 406 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 406 14 406 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 406 38 406 39
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 406 15 406 38
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 406 15 406 30
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 406 15 406 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 406 15 406 30
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapApplicative")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 406 31 406 38
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 406 31 406 38
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 406 31 406 38
+                                 , srcInfoPoints = []
+                                 }
+                               "Complex")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 406 50 406 66
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 406 50 406 66
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 406 50 406 58
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 406 50 406 58
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 406 50 406 58
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 406 59 406 66
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 406 59 406 66
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 406 59 406 66
+                           , srcInfoPoints = []
+                           }
+                         "Complex")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 407 1 407 67
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 407 1 407 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 407 41 407 49
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 407 10 407 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 407 14 407 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 407 14 407 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 407 39 407 40
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 407 15 407 39
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 407 15 407 30
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 407 15 407 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 407 15 407 30
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapApplicative")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 407 31 407 39
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 407 31 407 39
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 407 31 407 39
+                                 , srcInfoPoints = []
+                                 }
+                               "Identity")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 407 50 407 67
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 407 50 407 67
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 407 50 407 58
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 407 50 407 58
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 407 50 407 58
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 407 59 407 67
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 407 59 407 67
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 407 59 407 67
+                           , srcInfoPoints = []
+                           }
+                         "Identity")))))
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 409 1 413 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 409 1 409 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 409 27 409 32
+                , SrcSpan "tests/examples/DerivingVia.hs" 410 3 410 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 411 3 411 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 413 1 413 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 409 10 409 26
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 409 10 409 26
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 409 10 409 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 409 10 409 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 409 10 409 18
+                           , srcInfoPoints = []
+                           }
+                         "Additive")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 409 19 409 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 409 19 409 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 409 19 409 26
+                           , srcInfoPoints = []
+                           }
+                         "ZipList")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 410 3 410 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 410 3 410 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 410 3 410 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 410 3 410 7
+                            , srcInfoPoints = []
+                            }
+                          "zero"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 410 8 410 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 410 8 410 9 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 410 10 410 20
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 410 10 410 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 410 10 410 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 410 10 410 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "ZipList")))
+                          (List
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 410 18 410 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 410 18 410 19
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 410 19 410 20
+                                   ]
+                               }
+                             [])))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 411 3 411 64
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 411 3 411 64
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 411 3 411 64
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 411 3 411 9
+                             , srcInfoPoints = []
+                             }
+                           "liftU2")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 411 10 411 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 411 10 411 11
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 411 12 411 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 411 12 411 13
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 411 23 411 24
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 411 13 411 23
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 411 13 411 20
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 411 13 411 20
+                                       , srcInfoPoints = []
+                                       }
+                                     "ZipList"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 411 21 411 23
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 411 21 411 23
+                                        , srcInfoPoints = []
+                                        }
+                                      "xs")
+                               ])
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 411 25 411 37
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 411 25 411 26
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 411 36 411 37
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 411 26 411 36
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 411 26 411 33
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 411 26 411 33
+                                       , srcInfoPoints = []
+                                       }
+                                     "ZipList"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 411 34 411 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 411 34 411 36
+                                        , srcInfoPoints = []
+                                        }
+                                      "ys")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 411 38 411 64
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 411 38 411 39 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 411 40 411 64
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 411 40 411 47
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 411 40 411 47
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 411 40 411 47
+                                         , srcInfoPoints = []
+                                         }
+                                       "ZipList")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 411 48 411 64
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 411 48 411 49
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 411 63 411 64
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 411 49 411 63
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 411 49 411 60
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 411 49 411 57
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 411 49 411 55
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        411
+                                                        49
+                                                        411
+                                                        55
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           411
+                                                           49
+                                                           411
+                                                           55
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "liftU2")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 411 56 411 57
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        411
+                                                        56
+                                                        411
+                                                        57
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/DerivingVia.hs"
+                                                           411
+                                                           56
+                                                           411
+                                                           57
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "f"))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 411 58 411 60
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 411 58 411 60
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DerivingVia.hs"
+                                                        411
+                                                        58
+                                                        411
+                                                        60
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "xs"))))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 411 61 411 63
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 411 61 411 63
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 411 61 411 63
+                                               , srcInfoPoints = []
+                                               }
+                                             "ys")))))))
+                        Nothing
+                    ])
+             ])
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 413 1 419 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 413 1 413 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 413 37 413 42
+                , SrcSpan "tests/examples/DerivingVia.hs" 414 3 414 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 416 3 416 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 417 3 417 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 418 3 418 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 425 1 425 0
+                ]
+            }
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia.hs" 413 25 413 27 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 413 25 413 27 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 413 25 413 27 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 27
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 413 25 413 27 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 15
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 413 7 413 15
+                                 , srcInfoPoints = []
+                                 }
+                               "Additive")))
+                      (TyParen
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 413 16 413 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 413 16 413 17
+                               , SrcSpan "tests/examples/DerivingVia.hs" 413 23 413 24
+                               ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 413 17 413 23
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 413 17 413 21
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 413 17 413 21
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 413 17 413 21
+                                       , srcInfoPoints = []
+                                       }
+                                     "Diff")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 413 22 413 23
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 413 22 413 23
+                                    , srcInfoPoints = []
+                                    }
+                                  "p"))))))))
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 413 28 413 36
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 413 28 413 34
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 413 28 413 34
+                     , srcInfoPoints = []
+                     }
+                   "Affine"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 413 35 413 36
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 413 35 413 36
+                     , srcInfoPoints = []
+                     }
+                   "p")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 414 3 414 30
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 414 3 414 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 414 8 414 14
+                      , srcInfoPoints = []
+                      }
+                    (DHead
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 414 8 414 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 414 8 414 12
+                            , srcInfoPoints = []
+                            }
+                          "Diff"))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 414 13 414 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 414 13 414 14
+                            , srcInfoPoints = []
+                            }
+                          "p")))
+                 (Just
+                    (KindSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 414 15 414 30
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 414 15 414 17 ]
+                         }
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 414 18 414 30
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 414 23 414 25 ]
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 414 18 414 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 414 18 414 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 414 18 414 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Type")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 414 26 414 30
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 414 26 414 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 414 26 414 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "Type"))))))
+                 Nothing
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 416 3 416 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 416 9 416 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 416 3 416 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 416 9 416 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 416 3 416 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 416 3 416 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 416 4 416 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 416 7 416 8
+                              ]
+                          }
+                        ".-."
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 43
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 416 18 416 20 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 416 18 416 20 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 20
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 416 18 416 20 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 416 18 416 20
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 416 12 416 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 416 12 416 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 16 416 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 416 16 416 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 416 21 416 43
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 416 25 416 27 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 416 21 416 24
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 416 21 416 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 21 416 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "p"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 416 23 416 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 23 416 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 416 28 416 43
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 416 32 416 34 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 416 28 416 31
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 28 416 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 28 416 29
+                                        , srcInfoPoints = []
+                                        }
+                                      "p"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 30 416 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 30 416 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 416 35 416 43
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 35 416 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 35 416 39
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 416 35 416 39
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 416 35 416 39
+                                              , srcInfoPoints = []
+                                              }
+                                            "Diff")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 40 416 41
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 416 40 416 41
+                                           , srcInfoPoints = []
+                                           }
+                                         "p")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 416 42 416 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 416 42 416 43
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 417 3 417 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 417 9 417 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 417 3 417 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 417 9 417 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 417 3 417 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 417 3 417 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 417 4 417 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 417 7 417 8
+                              ]
+                          }
+                        ".+^"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 43
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 417 18 417 20 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 417 18 417 20 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 20
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 417 18 417 20 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 417 18 417 20
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 417 12 417 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 417 12 417 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 16 417 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 417 16 417 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 417 21 417 43
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 417 25 417 27 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 417 21 417 24
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 417 21 417 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 21 417 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "p"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 417 23 417 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 23 417 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 417 28 417 43
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 417 37 417 39 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 417 28 417 36
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 28 417 34
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 28 417 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 417 28 417 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 417 28 417 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "Diff")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 33 417 34
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 417 33 417 34
+                                           , srcInfoPoints = []
+                                           }
+                                         "p")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 35 417 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 35 417 36
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 417 40 417 43
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 40 417 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 40 417 41
+                                        , srcInfoPoints = []
+                                        }
+                                      "p"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 417 42 417 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 417 42 417 43
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 418 3 418 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 418 9 418 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 418 3 418 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 418 9 418 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 418 3 418 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DerivingVia.hs" 418 3 418 4
+                              , SrcSpan "tests/examples/DerivingVia.hs" 418 4 418 7
+                              , SrcSpan "tests/examples/DerivingVia.hs" 418 7 418 8
+                              ]
+                          }
+                        ".-^"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 43
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 418 18 418 20 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia.hs" 418 18 418 20 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 20
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/DerivingVia.hs" 418 18 418 20 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 20
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DerivingVia.hs" 418 18 418 20
+                                            ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 418 12 418 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 418 12 418 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "Num")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 16 418 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 418 16 418 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 418 21 418 43
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 418 25 418 27 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 418 21 418 24
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 418 21 418 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 21 418 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "p"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 418 23 418 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 23 418 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 418 28 418 43
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 418 37 418 39 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 418 28 418 36
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 28 418 34
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 28 418 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 418 28 418 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DerivingVia.hs" 418 28 418 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "Diff")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 33 418 34
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DerivingVia.hs" 418 33 418 34
+                                           , srcInfoPoints = []
+                                           }
+                                         "p")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 35 418 36
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 35 418 36
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 418 40 418 43
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 40 418 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 40 418 41
+                                        , srcInfoPoints = []
+                                        }
+                                      "p"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 418 42 418 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 418 42 418 43
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 32
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 32
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 32
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 4
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 419 3 419 4
+                                , srcInfoPoints = []
+                                }
+                              "p"))
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 419 5 419 8
+                             , srcInfoPoints = []
+                             }
+                           ".-^")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 419 9 419 10
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 419 9 419 10
+                                 , srcInfoPoints = []
+                                 }
+                               "v")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 419 11 419 32
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 419 11 419 12 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 419 13 419 32
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 419 13 419 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 419 13 419 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 419 13 419 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "p")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 419 15 419 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 419 15 419 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 419 15 419 18
+                                         , srcInfoPoints = []
+                                         }
+                                       ".+^")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 419 19 419 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 419 19 419 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 419 19 419 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 419 19 419 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 419 19 419 23
+                                               , srcInfoPoints = []
+                                               }
+                                             "fmap")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 419 24 419 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 419 24 419 30
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 419 24 419 30
+                                               , srcInfoPoints = []
+                                               }
+                                             "negate"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 419 31 419 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 419 31 419 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 419 31 419 32
+                                            , srcInfoPoints = []
+                                            }
+                                          "v"))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 425 1 425 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 425 26 425 27 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 425 1 425 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 425 9 425 25
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 425 9 425 23
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 425 9 425 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 425 9 425 21
+                        , srcInfoPoints = []
+                        }
+                      "WrapAdditive"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 425 22 425 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 425 22 425 23
+                        , srcInfoPoints = []
+                        }
+                      "f")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 425 24 425 25
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 425 24 425 25
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 425 28 425 49
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 425 28 425 49
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 425 28 425 43
+                      , srcInfoPoints = []
+                      }
+                    "WrappedAdditive")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 425 44 425 49
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia.hs" 425 44 425 45
+                           , SrcSpan "tests/examples/DerivingVia.hs" 425 48 425 49
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 425 45 425 48
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 425 45 425 46
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 425 45 425 46
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 425 47 425 48
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 425 47 425 48
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 427 1 435 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 427 1 427 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 427 48 427 53
+                , SrcSpan "tests/examples/DerivingVia.hs" 428 3 428 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 435 1 435 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 47
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 427 21 427 23 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 427 21 427 23 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 23
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 427 21 427 23 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 23
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 427 21 427 23 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 18
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 427 10 427 18
+                                    , srcInfoPoints = []
+                                    }
+                                  "Additive")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 427 19 427 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 427 19 427 20
+                                 , srcInfoPoints = []
+                                 }
+                               "f"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 427 24 427 47
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 427 24 427 30
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 427 24 427 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 427 24 427 30
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 427 31 427 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 427 31 427 32
+                         , SrcSpan "tests/examples/DerivingVia.hs" 427 46 427 47
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 427 32 427 46
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 427 32 427 44
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 427 32 427 44
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 427 32 427 44
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 427 45 427 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 427 45 427 46
+                              , srcInfoPoints = []
+                              }
+                            "f"))))))
+          (Just
+             [ InsType
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 428 3 428 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 428 3 428 7
+                       , SrcSpan "tests/examples/DerivingVia.hs" 428 30 428 31
+                       ]
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 428 8 428 29
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 428 8 428 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 428 8 428 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 428 8 428 12
+                               , srcInfoPoints = []
+                               }
+                             "Diff")))
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 428 13 428 29
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 428 13 428 14
+                             , SrcSpan "tests/examples/DerivingVia.hs" 428 28 428 29
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 428 14 428 28
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 428 14 428 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 428 14 428 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 428 14 428 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "WrapAdditive")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 428 27 428 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 428 27 428 28
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 428 32 428 33
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 428 32 428 33
+                         , srcInfoPoints = []
+                         }
+                       "f"))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 52
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 52
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 52
+                          , srcInfoPoints = []
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 18
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 430 3 430 18
+                                   , srcInfoPoints = []
+                                   }
+                                 "WrappedAdditive"))
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 430 19 430 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 430 19 430 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           ])
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 430 21 430 24
+                             , srcInfoPoints = []
+                             }
+                           ".-.")
+                        [ PApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 430 25 430 42
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 430 25 430 40
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 430 25 430 40
+                                    , srcInfoPoints = []
+                                    }
+                                  "WrappedAdditive"))
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 430 41 430 42
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 430 41 430 42
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                            ]
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 430 43 430 52
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 430 43 430 44 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 430 45 430 52
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 430 45 430 46
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 430 45 430 46
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 430 45 430 46
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 430 47 430 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 430 47 430 50
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 430 47 430 50
+                                         , srcInfoPoints = []
+                                         }
+                                       "^-^")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 430 51 430 52
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 430 51 430 52
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 430 51 430 52
+                                         , srcInfoPoints = []
+                                         }
+                                       "b")))))
+                        Nothing
+                    ])
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 54
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 54
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 54
+                          , srcInfoPoints = []
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 18
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 431 3 431 18
+                                   , srcInfoPoints = []
+                                   }
+                                 "WrappedAdditive"))
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 431 19 431 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 431 19 431 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           ])
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 431 21 431 24
+                             , srcInfoPoints = []
+                             }
+                           ".+^")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 431 25 431 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 431 25 431 26
+                                 , srcInfoPoints = []
+                                 }
+                               "b")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 431 27 431 54
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 431 27 431 28 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 431 29 431 54
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 431 29 431 44
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 431 29 431 44
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 431 29 431 44
+                                         , srcInfoPoints = []
+                                         }
+                                       "WrappedAdditive")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 431 45 431 54
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 431 45 431 46
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 431 53 431 54
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 431 46 431 53
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 431 46 431 47
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 431 46 431 47
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 431 46 431 47
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 431 48 431 51
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 431 48 431 51
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 431 48 431 51
+                                               , srcInfoPoints = []
+                                               }
+                                             "^+^")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 431 52 431 53
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 431 52 431 53
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 431 52 431 53
+                                               , srcInfoPoints = []
+                                               }
+                                             "b")))))))
+                        Nothing
+                    ])
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 54
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 54
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 54
+                          , srcInfoPoints = []
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 18
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 432 3 432 18
+                                   , srcInfoPoints = []
+                                   }
+                                 "WrappedAdditive"))
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 432 19 432 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 432 19 432 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           ])
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 432 21 432 24
+                             , srcInfoPoints = []
+                             }
+                           ".-^")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 432 25 432 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 432 25 432 26
+                                 , srcInfoPoints = []
+                                 }
+                               "b")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 432 27 432 54
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 432 27 432 28 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 432 29 432 54
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 432 29 432 44
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 432 29 432 44
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 432 29 432 44
+                                         , srcInfoPoints = []
+                                         }
+                                       "WrappedAdditive")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 432 45 432 54
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DerivingVia.hs" 432 45 432 46
+                                       , SrcSpan "tests/examples/DerivingVia.hs" 432 53 432 54
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 432 46 432 53
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 432 46 432 47
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 432 46 432 47
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 432 46 432 47
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 432 48 432 51
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 432 48 432 51
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 432 48 432 51
+                                               , srcInfoPoints = []
+                                               }
+                                             "^-^")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 432 52 432 53
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/DerivingVia.hs" 432 52 432 53
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DerivingVia.hs" 432 52 432 53
+                                               , srcInfoPoints = []
+                                               }
+                                             "b")))))))
+                        Nothing
+                    ])
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 435 1 435 62
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 435 1 435 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 435 38 435 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 435 10 435 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 435 14 435 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 435 14 435 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 435 36 435 37
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 435 15 435 36
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 435 15 435 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 435 15 435 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 435 15 435 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyParen
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 435 28 435 36
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 435 28 435 29
+                               , SrcSpan "tests/examples/DerivingVia.hs" 435 35 435 36
+                               ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 35
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 33
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 30
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 435 30 435 32
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 435 32 435 33
+                                     ]
+                                 }
+                               (Special
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 33
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 30
+                                        , SrcSpan "tests/examples/DerivingVia.hs" 435 30 435 32
+                                        , SrcSpan "tests/examples/DerivingVia.hs" 435 32 435 33
+                                        ]
+                                    }
+                                  (FunCon
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 33
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia.hs" 435 29 435 30
+                                           , SrcSpan "tests/examples/DerivingVia.hs" 435 30 435 32
+                                           , SrcSpan "tests/examples/DerivingVia.hs" 435 32 435 33
+                                           ]
+                                       })))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 435 34 435 35
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 435 34 435 35
+                                    , srcInfoPoints = []
+                                    }
+                                  "a"))))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 435 47 435 62
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 435 47 435 62
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 435 47 435 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 435 47 435 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 435 47 435 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 435 54 435 62
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 435 54 435 55
+                         , SrcSpan "tests/examples/DerivingVia.hs" 435 61 435 62
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 61
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 59
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 56
+                               , SrcSpan "tests/examples/DerivingVia.hs" 435 56 435 58
+                               , SrcSpan "tests/examples/DerivingVia.hs" 435 58 435 59
+                               ]
+                           }
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 59
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 56
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 435 56 435 58
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 435 58 435 59
+                                  ]
+                              }
+                            (FunCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 59
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 435 55 435 56
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 435 56 435 58
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 435 58 435 59
+                                     ]
+                                 })))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 435 60 435 61
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 435 60 435 61
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 437 1 437 56
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 437 1 437 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 437 38 437 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 437 10 437 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 437 14 437 31
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 437 14 437 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 437 30 437 31
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 437 15 437 30
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 437 15 437 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 437 15 437 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 437 15 437 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 30
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 29
+                               , SrcSpan "tests/examples/DerivingVia.hs" 437 29 437 30
+                               ]
+                           }
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 30
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 29
+                                  , SrcSpan "tests/examples/DerivingVia.hs" 437 29 437 30
+                                  ]
+                              }
+                            (ListCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 30
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/DerivingVia.hs" 437 28 437 29
+                                     , SrcSpan "tests/examples/DerivingVia.hs" 437 29 437 30
+                                     ]
+                                 })))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 437 47 437 56
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 437 47 437 56
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 437 47 437 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 437 47 437 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 437 47 437 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 56
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 55
+                         , SrcSpan "tests/examples/DerivingVia.hs" 437 55 437 56
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 56
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 55
+                            , SrcSpan "tests/examples/DerivingVia.hs" 437 55 437 56
+                            ]
+                        }
+                      (ListCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 56
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/DerivingVia.hs" 437 54 437 55
+                               , SrcSpan "tests/examples/DerivingVia.hs" 437 55 437 56
+                               ]
+                           })))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 439 1 439 61
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 439 1 439 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 439 38 439 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 439 10 439 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 439 14 439 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 439 14 439 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 439 35 439 36
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 439 15 439 35
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 439 15 439 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 439 15 439 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 439 15 439 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 439 28 439 35
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 439 28 439 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 439 28 439 35
+                                 , srcInfoPoints = []
+                                 }
+                               "Complex")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 439 47 439 61
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 439 47 439 61
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 439 47 439 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 439 47 439 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 439 47 439 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 439 54 439 61
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 439 54 439 61
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 439 54 439 61
+                           , srcInfoPoints = []
+                           }
+                         "Complex")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 441 1 441 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 441 1 441 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 441 38 441 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 441 10 441 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 441 14 441 34
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 441 14 441 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 441 33 441 34
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 441 15 441 33
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 441 15 441 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 441 15 441 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 441 15 441 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 441 28 441 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 441 28 441 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 441 28 441 33
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 441 47 441 59
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 441 47 441 59
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 441 47 441 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 441 47 441 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 441 47 441 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 441 54 441 59
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 441 54 441 59
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 441 54 441 59
+                           , srcInfoPoints = []
+                           }
+                         "Maybe")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 443 1 443 61
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 443 1 443 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 443 38 443 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 443 10 443 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 443 14 443 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 443 14 443 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 443 35 443 36
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 443 15 443 35
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 443 15 443 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 443 15 443 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 443 15 443 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 443 28 443 35
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 443 28 443 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 443 28 443 35
+                                 , srcInfoPoints = []
+                                 }
+                               "ZipList")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 443 47 443 61
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 443 47 443 61
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 443 47 443 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 443 47 443 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 443 47 443 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 443 54 443 61
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 443 54 443 61
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 443 54 443 61
+                           , srcInfoPoints = []
+                           }
+                         "ZipList")))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 445 1 445 62
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 445 1 445 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 445 38 445 46
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 445 10 445 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 445 14 445 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 445 14 445 15
+                         , SrcSpan "tests/examples/DerivingVia.hs" 445 36 445 37
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 445 15 445 36
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 445 15 445 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 445 15 445 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 445 15 445 27
+                                 , srcInfoPoints = []
+                                 }
+                               "WrapAdditive")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 445 28 445 36
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 445 28 445 36
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 445 28 445 36
+                                 , srcInfoPoints = []
+                                 }
+                               "Identity")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 445 47 445 62
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 445 47 445 62
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 445 47 445 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 445 47 445 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 445 47 445 53
+                           , srcInfoPoints = []
+                           }
+                         "Affine")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 445 54 445 62
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 445 54 445 62
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 445 54 445 62
+                           , srcInfoPoints = []
+                           }
+                         "Identity")))))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 451 1 452 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 451 1 451 6
+                , SrcSpan "tests/examples/DerivingVia.hs" 451 16 451 21
+                , SrcSpan "tests/examples/DerivingVia.hs" 452 3 452 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 454 1 454 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 451 7 451 15
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 451 7 451 13
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 451 7 451 11
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 451 7 451 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 451 7 451 9
+                           , srcInfoPoints = []
+                           }
+                         "C2"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 451 10 451 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 451 10 451 11
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 451 12 451 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 451 12 451 13
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 451 14 451 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 451 14 451 15
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 452 3 452 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DerivingVia.hs" 452 6 452 8 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 452 3 452 20
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DerivingVia.hs" 452 6 452 8 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 452 3 452 5
+                          , srcInfoPoints = []
+                          }
+                        "c2"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 452 9 452 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 452 11 452 13 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 452 9 452 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 452 9 452 10
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 452 14 452 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DerivingVia.hs" 452 16 452 18 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 452 14 452 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 452 14 452 15
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 452 19 452 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 452 19 452 20
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 454 1 457 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 454 1 454 9
+                , SrcSpan "tests/examples/DerivingVia.hs" 454 29 454 34
+                , SrcSpan "tests/examples/DerivingVia.hs" 455 3 455 3
+                , SrcSpan "tests/examples/DerivingVia.hs" 457 1 457 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 28
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 28
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 16
+                     , srcInfoPoints = []
+                     }
+                   (IHApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 14
+                        , srcInfoPoints = []
+                        }
+                      (IHCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 12
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 454 10 454 12
+                                 , srcInfoPoints = []
+                                 }
+                               "C2")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 454 13 454 14
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 454 13 454 14
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 454 15 454 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 454 15 454 16
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 454 17 454 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia.hs" 454 17 454 18
+                         , SrcSpan "tests/examples/DerivingVia.hs" 454 27 454 28
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia.hs" 454 18 454 27
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 454 18 454 25
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 454 18 454 23
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 454 18 454 23
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia.hs" 454 18 454 23
+                                    , srcInfoPoints = []
+                                    }
+                                  "Const")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 454 24 454 25
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia.hs" 454 24 454 25
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia.hs" 454 26 454 27
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia.hs" 454 26 454 27
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 455 3 455 19
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 455 3 455 19
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 455 3 455 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 455 3 455 5
+                             , srcInfoPoints = []
+                             }
+                           "c2")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 455 6 455 7
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 455 6 455 7
+                                 , srcInfoPoints = []
+                                 }
+                               "x")
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 455 8 455 9
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 455 10 455 19
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DerivingVia.hs" 455 10 455 11 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 455 12 455 19
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 455 12 455 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 455 12 455 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 455 12 455 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "Const")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 455 18 455 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 455 18 455 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DerivingVia.hs" 455 18 455 19
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingVia.hs" 457 1 458 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia.hs" 457 18 457 19 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia.hs" 457 1 457 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia.hs" 457 9 457 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 457 9 457 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 457 9 457 15
+                     , srcInfoPoints = []
+                     }
+                   "Fweemp"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia.hs" 457 16 457 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia.hs" 457 16 457 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 457 20 457 28
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia.hs" 457 20 457 28
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 457 20 457 26
+                      , srcInfoPoints = []
+                      }
+                    "Fweemp")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 457 27 457 28
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 457 27 457 28
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia.hs" 458 3 458 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia.hs" 458 3 458 11 ]
+                }
+              (Just
+                 (DerivVia
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia.hs" 459 8 459 11
+                      , srcInfoPoints = []
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia.hs" 459 12 459 33
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia.hs" 459 12 459 13
+                             , SrcSpan "tests/examples/DerivingVia.hs" 459 32 459 33
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia.hs" 459 13 459 32
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 459 13 459 20
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 459 13 459 18
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 459 13 459 18
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 459 13 459 18
+                                        , srcInfoPoints = []
+                                        }
+                                      "Const")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 459 19 459 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 459 19 459 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyKind
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia.hs" 459 21 459 32
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia.hs" 459 21 459 22
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 459 24 459 26
+                                   , SrcSpan "tests/examples/DerivingVia.hs" 459 31 459 32
+                                   ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 459 22 459 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 459 22 459 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31
+                                        , srcInfoPoints = []
+                                        }
+                                      "Type"))))))))
+              [ IParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia.hs" 458 12 458 20
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/DerivingVia.hs" 458 12 458 13
+                        , SrcSpan "tests/examples/DerivingVia.hs" 458 19 458 20
+                        ]
+                    }
+                  (IRule
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 19
+                       , srcInfoPoints = []
+                       }
+                     Nothing
+                     Nothing
+                     (IHApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 19
+                          , srcInfoPoints = []
+                          }
+                        (IHApp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 17
+                             , srcInfoPoints = []
+                             }
+                           (IHCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15
+                                      , srcInfoPoints = []
+                                      }
+                                    "C2")))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 458 16 458 17
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia.hs" 458 16 458 17
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia.hs" 458 18 458 19
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia.hs" 458 18 458 19
+                                , srcInfoPoints = []
+                                }
+                              "b"))))
+              ]
+          ]
+      ]
+  , [ Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 38 1 38 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 39 1 39 18)
+        " Simple example"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 40 1 40 6) "---"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 46 1 46 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 47 1 47 25)
+        " Eta reduction at work"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 48 1 48 6) "---"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 62 1 62 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 63 1 63 22)
+        " Monad transformers"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 64 1 64 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 68 1 68 22)
+        " From `constraints'"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 78 1 78 52)
+        " With `-XQuantifiedConstraints' this just becomes"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 79 1 79 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 80 1 80 68)
+        "    type Lifting cls  trans = forall mm. cls mm => cls (trans mm)"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 81 1 81 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 82 1 82 52)
+        "    type LiftingMonad trans = Lifting Monad trans"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 83 1 83 3) ""
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 142 1 142 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 143 1 143 32)
+        " Using tuples in a `via` type"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 144 1 144 6) "---"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 153 1 153 6) "---"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 154 1 154 23)
+        " Abstract data types"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 155 1 155 6) "---"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 167 1 167 5) "--"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 168 1 168 18)
+        " Testing parser"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 169 1 169 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 183 1 183 5) "--"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 184 1 184 23)
+        " From Baldur's notes"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 185 1 185 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 187 1 187 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 188 1 188 5) " 1"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 189 1 189 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 227 1 227 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 228 1 228 5) " 2"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 229 1 229 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 243 1 243 8) " data"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 262 1 262 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 263 1 263 5) " 3"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 264 1 264 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 290 1 290 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 291 1 291 5) " 4"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 292 1 292 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 324 1 324 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 325 1 325 5) " 5"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 326 1 326 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 340 1 340 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 341 1 341 5) " 6"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 342 1 342 5) "--"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 343 1 343 116)
+        " https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 360 1 360 19)
+        "mkLattice_(Bool)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 362 1 362 19)
+        "mkLattice_(Char)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 364 1 364 18)
+        "mkLattice_(Int)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 366 1 366 22)
+        "mkLattice_(Integer)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 368 1 368 20)
+        "mkLattice_(Float)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 370 1 370 21)
+        "mkLattice_(Double)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 372 1 372 23)
+        "mkLattice_(Rational)"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 375 1 375 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 376 1 376 5) " 7"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 377 1 377 5) "--"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 378 1 378 81)
+        " https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 421 1 421 79)
+        " #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \\"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 422 1 422 85)
+        "   (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \\"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 423 1 423 42)
+        "   (.-^) = (^-^) ; {-# INLINE (.-^) #-}"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 424 1 424 40)
+        " #define ADDITIVE(T) ADDITIVEC((), T)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 434 1 434 22)
+        " ADDITIVE(((->) a))"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 436 1 436 16)
+        " ADDITIVE([])"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 438 1 438 21)
+        " ADDITIVE(Complex)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 440 1 440 19)
+        " ADDITIVE(Maybe)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 442 1 442 21)
+        " ADDITIVE(ZipList)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DerivingVia.hs" 444 1 444 22)
+        " ADDITIVE(Identity)"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 447 1 447 5) "--"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 448 1 448 5) " 8"
+    , Comment
+        False (SrcSpan "tests/examples/DerivingVia.hs" 449 1 449 5) "--"
+    ]
+  )
diff --git a/tests/examples/DerivingVia.hs.prettyparser.golden b/tests/examples/DerivingVia.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingVia.hs.prettyprinter.golden b/tests/examples/DerivingVia.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia.hs.prettyprinter.golden
@@ -0,0 +1,418 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE InstanceSigs #-}
+{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE MultiWayIf #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE UndecidableInstances #-}
+module DerivingVia where
+import Data.Void
+import Data.Complex
+import Data.Functor.Const
+import Data.Functor.Identity
+import Data.Ratio
+import Control.Monad.Reader
+import Control.Monad.State
+import Control.Monad.Writer
+import Control.Applicative hiding (WrappedMonad(..))
+import Data.Bifunctor
+import Data.Monoid
+import Data.Kind
+
+type f ~> g = forall xx . f xx -> g xx
+
+data Foo a = MkFoo a a
+               deriving Show via (Identity (Foo a))
+
+newtype Flip p a b = Flip{runFlip :: p b a}
+
+instance Bifunctor p => Bifunctor (Flip p) where
+        bimap f g = Flip . bimap g f . runFlip
+
+instance Bifunctor p => Functor (Flip p a) where
+        fmap f = Flip . first f . runFlip
+
+newtype Bar a = MkBar (Either a Int)
+                  deriving Functor via (Flip Either Int)
+
+type MTrans = (Type -> Type) -> (Type -> Type)
+
+data Dict c where
+        Dict :: c => Dict c
+
+newtype a :- b = Sub (a => Dict b)
+
+infixl 1 \\
+
+(\\) :: a => (b => r) -> (a :- b) -> r
+r \\ Sub Dict = r
+
+class LiftingMonad (trans :: MTrans) where
+        proof :: Monad m :- Monad (trans m)
+
+instance LiftingMonad (StateT s :: MTrans) where
+        proof :: Monad m :- Monad (StateT s m)
+        proof = Sub Dict
+
+instance Monoid w => LiftingMonad (WriterT w :: MTrans) where
+        proof :: Monad m :- Monad (WriterT w m)
+        proof = Sub Dict
+
+instance (LiftingMonad trans, LiftingMonad trans') =>
+         LiftingMonad (ComposeT trans trans' :: MTrans)
+         where
+        proof :: forall m . Monad m :- Monad (ComposeT trans trans' m)
+        proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m)
+
+newtype Stack :: MTrans where
+        Stack ::
+          ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a
+    deriving newtype (Functor, Applicative, Monad, MonadReader Int,
+                      MonadState Bool, MonadWriter String)
+    deriving (MonadTrans, MFunctor) via (ReaderT Int `ComposeT`
+                                           StateT Bool `ComposeT` WriterT String)
+
+class MFunctor (trans :: MTrans) where
+        hoist :: Monad m => (m ~> m') -> (trans m ~> trans m')
+
+instance MFunctor (ReaderT r :: MTrans) where
+        hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m')
+        hoist nat = ReaderT . fmap nat . runReaderT
+
+instance MFunctor (StateT s :: MTrans) where
+        hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m')
+        hoist nat = StateT . fmap nat . runStateT
+
+instance MFunctor (WriterT w :: MTrans) where
+        hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m')
+        hoist nat = WriterT . nat . runWriterT
+
+infixr 9 `ComposeT`
+
+newtype ComposeT :: MTrans -> MTrans -> MTrans where
+        ComposeT :: {getComposeT :: f (g m) a} -> ComposeT f g m a
+    deriving newtype (Functor, Applicative, Monad)
+
+instance (MonadTrans f, MonadTrans g, LiftingMonad g) =>
+         MonadTrans (ComposeT f g)
+         where
+        lift :: forall m . Monad m => m ~> ComposeT f g m
+        lift = ComposeT . lift . lift \\ proof @g @m
+
+instance (MFunctor f, MFunctor g, LiftingMonad g) =>
+         MFunctor (ComposeT f g)
+         where
+        hoist ::
+              forall m m' . Monad m =>
+                (m ~> m') -> (ComposeT f g m ~> ComposeT f g m')
+        hoist f = ComposeT . hoist (hoist f) . getComposeT \\ proof @g @m
+
+newtype X a = X (a, a)
+                deriving (Semigroup, Monoid) via (Product a, Sum a)
+                deriving (Show, Eq) via (a, a)
+
+class C f where
+        c :: f a -> Int
+
+newtype X2 f a = X2 (f a)
+
+instance C (X2 f) where
+        c = const 0
+
+deriving via (X2 IO) instance C IO
+
+newtype P0 a = P0 a
+                 deriving Show via a
+
+newtype P1 a = P1 [a]
+                 deriving Show via [a]
+
+newtype P2 a = P2 (a, a)
+                 deriving Show via (a, a)
+
+newtype P3 a = P3 (Maybe a)
+                 deriving Show via (First a)
+
+newtype P4 a = P4 (Maybe a)
+                 deriving Show via (First $ a)
+
+newtype P5 a = P5 a
+                 deriving Show via (Identity $ a)
+
+newtype P6 a = P6 [a]
+                 deriving Show via ([] $ a)
+
+newtype P7 a = P7 (a, a)
+                 deriving Show via (Identity $ (a, a))
+
+newtype P8 a = P8 (Either () a)
+                 deriving Functor via (($) (Either ()))
+
+newtype f $ a = APP (f a)
+                  deriving newtype Show
+                  deriving newtype Functor
+
+newtype WrapApplicative f a = WrappedApplicative (f a)
+                                deriving (Functor, Applicative)
+
+instance (Applicative f, Num a) => Num (WrapApplicative f a) where
+        (+) = liftA2 (+)
+        (*) = liftA2 (*)
+        negate = fmap negate
+        fromInteger = pure . fromInteger
+        abs = fmap abs
+        signum = fmap signum
+
+instance (Applicative f, Fractional a) =>
+         Fractional (WrapApplicative f a)
+         where
+        recip = fmap recip
+        fromRational = pure . fromRational
+
+instance (Applicative f, Floating a) =>
+         Floating (WrapApplicative f a)
+         where
+        pi = pure pi
+        sqrt = fmap sqrt
+        exp = fmap exp
+        log = fmap log
+        sin = fmap sin
+        cos = fmap cos
+        asin = fmap asin
+        atan = fmap atan
+        acos = fmap acos
+        sinh = fmap sinh
+        cosh = fmap cosh
+        asinh = fmap asinh
+        atanh = fmap atanh
+        acosh = fmap acosh
+
+instance (Applicative f, Semigroup s) =>
+         Semigroup (WrapApplicative f s)
+         where
+        (<>) = liftA2 (<>)
+
+instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m)
+         where
+        mempty = pure mempty
+
+class Pointed p where
+        pointed :: a -> p a
+
+newtype WrapMonad f a = WrappedMonad (f a)
+                          deriving newtype (Pointed, Monad)
+
+instance (Monad m, Pointed m) => Functor (WrapMonad m) where
+        fmap = liftM
+
+instance (Monad m, Pointed m) => Applicative (WrapMonad m) where
+        pure = pointed
+        (<*>) = ap
+
+data Sorted a = Sorted a a a
+                  deriving (Functor, Applicative) via (WrapMonad Sorted)
+                  deriving (Num, Fractional, Floating, Semigroup,
+                            Monoid) via (WrapApplicative Sorted a)
+
+instance Monad Sorted where
+        (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b
+        Sorted a b c >>= f = Sorted a' b' c'
+          where Sorted a' _ _ = f a
+                Sorted _ b' _ = f b
+                Sorted _ _ c' = f c
+
+instance Pointed Sorted where
+        pointed :: a -> Sorted a
+        pointed a = Sorted a a a
+
+class IsZero a where
+        isZero :: a -> Bool
+
+newtype WrappedNumEq a = WrappedNumEq a
+
+newtype WrappedShow a = WrappedShow a
+
+newtype WrappedNumEq2 a = WrappedNumEq2 a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq a) where
+        isZero :: WrappedNumEq a -> Bool
+        isZero (WrappedNumEq a) = 0 == a
+
+instance Show a => IsZero (WrappedShow a) where
+        isZero :: WrappedShow a -> Bool
+        isZero (WrappedShow a) = "0" == show a
+
+instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where
+        isZero :: WrappedNumEq2 a -> Bool
+        isZero (WrappedNumEq2 a) = a + a == a
+
+newtype INT = INT Int
+                deriving newtype Show
+                deriving IsZero via (WrappedNumEq Int)
+
+newtype VOID = VOID Void
+                 deriving IsZero via (WrappedShow Void)
+
+class Bifunctor p => Biapplicative p where
+        bipure :: a -> b -> p a b
+        
+        biliftA2 ::
+                 (a -> b -> c) -> (a' -> b' -> c') -> p a a' -> p b b' -> p c c'
+
+instance Biapplicative (,) where
+        bipure = (,)
+        biliftA2 f f' (a, a') (b, b') = (f a b, f' a' b')
+
+newtype WrapBiapp p a b = WrapBiap (p a b)
+                            deriving newtype (Bifunctor, Biapplicative, Eq)
+
+instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b)
+         where
+        (+) = biliftA2 (+) (+)
+        (-) = biliftA2 (*) (*)
+        (*) = biliftA2 (*) (*)
+        negate = bimap negate negate
+        abs = bimap abs abs
+        signum = bimap signum signum
+        fromInteger n = fromInteger n `bipure` fromInteger n
+
+newtype INT2 = INT2 (Int, Int)
+                 deriving IsZero via (WrappedNumEq2 (WrapBiapp (,) Int Int))
+
+class Monoid a => MonoidNull a where
+        null :: a -> Bool
+
+newtype WrpMonNull a = WRM a
+                         deriving (Eq, Semigroup, Monoid)
+
+instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where
+        null :: WrpMonNull a -> Bool
+        null = (== mempty)
+
+deriving via (WrpMonNull Any) instance MonoidNull Any
+
+deriving via () instance MonoidNull ()
+
+deriving via Ordering instance MonoidNull Ordering
+
+class Lattice a where
+        sup :: a -> a -> a
+        
+        (.>=) :: a -> a -> Bool
+        
+        (.>) :: a -> a -> Bool
+
+newtype WrapOrd a = WrappedOrd a
+                      deriving newtype (Eq, Ord)
+
+instance Ord a => Lattice (WrapOrd a) where
+        sup = max
+        (.>=) = (>=)
+        (.>) = (>)
+
+deriving via [a] instance Ord a => Lattice [a]
+
+deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b)
+
+deriving via Bool instance Lattice Bool
+
+deriving via Char instance Lattice Char
+
+deriving via Int instance Lattice Int
+
+deriving via Integer instance Lattice Integer
+
+deriving via Float instance Lattice Float
+
+deriving via Double instance Lattice Double
+
+deriving via Rational instance Lattice Rational
+
+class Functor f => Additive f where
+        zero :: Num a => f a
+        
+        (^+^) :: Num a => f a -> f a -> f a
+        (^+^) = liftU2 (+)
+        
+        (^-^) :: Num a => f a -> f a -> f a
+        x ^-^ y = x ^+^ fmap negate y
+        
+        liftU2 :: (a -> a -> a) -> f a -> f a -> f a
+
+instance Additive [] where
+        zero = []
+        liftU2 f = go
+          where go (x : xs) (y : ys) = f x y : go xs ys
+                go [] ys = ys
+                go xs [] = xs
+
+instance Additive Maybe where
+        zero = Nothing
+        liftU2 f (Just a) (Just b) = Just (f a b)
+        liftU2 _ Nothing ys = ys
+        liftU2 _ xs Nothing = xs
+
+instance Applicative f => Additive (WrapApplicative f) where
+        zero = pure 0
+        liftU2 = liftA2
+
+deriving via (WrapApplicative ((->) a)) instance Additive ((->) a)
+
+deriving via (WrapApplicative Complex) instance Additive Complex
+
+deriving via (WrapApplicative Identity) instance Additive Identity
+
+instance Additive ZipList where
+        zero = ZipList []
+        liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys)
+
+class Additive (Diff p) => Affine p where
+        type Diff p :: Type -> Type
+        
+        (.-.) :: Num a => p a -> p a -> Diff p a
+        
+        (.+^) :: Num a => p a -> Diff p a -> p a
+        
+        (.-^) :: Num a => p a -> Diff p a -> p a
+        p .-^ v = p .+^ fmap negate v
+
+newtype WrapAdditive f a = WrappedAdditive (f a)
+
+instance Additive f => Affine (WrapAdditive f) where
+        type Diff (WrapAdditive f) = f
+        WrappedAdditive a .-. WrappedAdditive b = a ^-^ b
+        WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b)
+        WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b)
+
+deriving via (WrapAdditive ((->) a)) instance Affine ((->) a)
+
+deriving via (WrapAdditive []) instance Affine []
+
+deriving via (WrapAdditive Complex) instance Affine Complex
+
+deriving via (WrapAdditive Maybe) instance Affine Maybe
+
+deriving via (WrapAdditive ZipList) instance Affine ZipList
+
+deriving via (WrapAdditive Identity) instance Affine Identity
+
+class C2 a b c where
+        c2 :: a -> b -> c
+
+instance C2 a b (Const a b) where
+        c2 x _ = Const x
+
+newtype Fweemp a = Fweemp a
+                     deriving (C2 a b) via (Const a (b :: Type))
diff --git a/tests/examples/DerivingVia2.hs b/tests/examples/DerivingVia2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia2.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+module DerivingVia2 where
+
+import Control.Applicative
+import Data.Functor.Compose
+import Data.Proxy
+import Data.Semigroup
+
+newtype App (f :: * -> *) a = App (f a)
+  deriving newtype
+    (Functor, Applicative)
+
+instance (Applicative f, Semigroup a) => Semigroup (App f a) where
+  (<>) = liftA2 (<>)
+
+deriving via (App (Compose (f :: * -> *) g) a)
+         instance (Applicative f, Applicative g, Semigroup a)
+               => Semigroup (Compose f g a)
+
+class C (a :: k -> *)
+instance C Proxy
+
+newtype MyProxy a = MyProxy (Proxy a)
+deriving via (Proxy :: * -> *) instance C MyProxy
+
+class Z a b
+data T a
+data X1 a
+data X2 a
+data X3 a
+
+deriving via (forall a. T a) instance           Z a (X1 b)
+deriving via           (T a) instance forall b. Z a (X2 b)
+deriving via (forall a. T a) instance forall b. Z a (X3 b)
diff --git a/tests/examples/DerivingVia2.hs.exactprinter.golden b/tests/examples/DerivingVia2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia2.hs.exactprinter.golden
@@ -0,0 +1,42 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+module DerivingVia2 where
+
+import Control.Applicative
+import Data.Functor.Compose
+import Data.Proxy
+import Data.Semigroup
+
+newtype App (f :: * -> *) a = App (f a)
+  deriving newtype
+    (Functor, Applicative)
+
+instance (Applicative f, Semigroup a) => Semigroup (App f a) where
+  (<>) = liftA2 (<>)
+
+deriving via( App (Compose (f :: * -> *) g) a)
+         instance (Applicative f, Applicative g, Semigroup a)
+               => Semigroup (Compose f g a)
+
+class C (a :: k -> *)
+instance C Proxy
+
+newtype MyProxy a = MyProxy (Proxy a)
+deriving via( Proxy :: * -> *) instance C MyProxy
+
+class Z a b
+data T a
+data X1 a
+data X2 a
+data X3 a
+
+deriving via( forall a. T a) instance           Z a (X1 b)
+deriving via(           T a) instance forall b. Z a (X2 b)
+deriving via( forall a. T a) instance forall b. Z a (X3 b)
+
diff --git a/tests/examples/DerivingVia2.hs.parser.golden b/tests/examples/DerivingVia2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia2.hs.parser.golden
@@ -0,0 +1,2346 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 1 1 42 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DerivingVia2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 6 1 6 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 8 1 8 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 9 1 9 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 9 1 9 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 11 1 11 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 12 1 12 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 13 1 13 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 14 1 14 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 16 1 16 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 20 1 20 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 23 1 23 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 27 1 27 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 28 1 28 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 30 1 30 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 31 1 31 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 33 1 33 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 34 1 34 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 35 1 35 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 36 1 36 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 37 1 37 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 39 1 39 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 40 1 40 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 41 1 41 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 42 1 42 1
+            , SrcSpan "tests/examples/DerivingVia2.hs" 42 1 42 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 9 1 9 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DerivingVia2.hs" 9 1 9 7
+                  , SrcSpan "tests/examples/DerivingVia2.hs" 9 21 9 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 9 8 9 20
+                 , srcInfoPoints = []
+                 }
+               "DerivingVia2")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "DerivingStrategies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 2 1 2 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 2 1 2 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 2 26 2 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 2 14 2 25
+                , srcInfoPoints = []
+                }
+              "DerivingVia"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 3 1 3 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 3 1 3 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 3 32 3 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 3 14 3 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 4 1 4 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 4 1 4 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 4 41 4 44
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 4 14 4 40
+                , srcInfoPoints = []
+                }
+              "GeneralizedNewtypeDeriving"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 5 1 5 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 5 1 5 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 5 36 5 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 5 14 5 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 6 1 6 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 6 1 6 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 6 24 6 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 6 14 6 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 7 1 7 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 7 1 7 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 7 25 7 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 7 14 7 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 8 1 8 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 8 1 8 13
+                , SrcSpan "tests/examples/DerivingVia2.hs" 8 33 8 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 8 14 8 32
+                , srcInfoPoints = []
+                }
+              "StandaloneDeriving"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 11 1 11 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia2.hs" 11 1 11 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 11 8 11 27
+                  , srcInfoPoints = []
+                  }
+                "Control.Applicative"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 12 1 12 28
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia2.hs" 12 1 12 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 12 8 12 28
+                  , srcInfoPoints = []
+                  }
+                "Data.Functor.Compose"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 13 1 13 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia2.hs" 13 1 13 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 13 8 13 18
+                  , srcInfoPoints = []
+                  }
+                "Data.Proxy"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 14 1 14 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia2.hs" 14 1 14 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 14 8 14 22
+                  , srcInfoPoints = []
+                  }
+                "Data.Semigroup"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 1 18 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 16 29 16 30 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 1 16 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 9 16 28
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 9 16 26
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 9 16 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 16 9 16 12
+                        , srcInfoPoints = []
+                        }
+                      "App"))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 16 13 16 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 16 13 16 14
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 16 16 16 18
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 16 25 16 26
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 16 14 16 15
+                        , srcInfoPoints = []
+                        }
+                      "f")
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 16 19 16 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia2.hs" 16 21 16 23 ]
+                        }
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 16 19 16 20
+                           , srcInfoPoints = []
+                           })
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 16 24 16 25
+                           , srcInfoPoints = []
+                           }))))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 16 27 16 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 16 27 16 28
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia2.hs" 16 31 16 40
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia2.hs" 16 31 16 40
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia2.hs" 16 31 16 34
+                      , srcInfoPoints = []
+                      }
+                    "App")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia2.hs" 16 35 16 40
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia2.hs" 16 35 16 36
+                           , SrcSpan "tests/examples/DerivingVia2.hs" 16 39 16 40
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia2.hs" 16 36 16 39
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia2.hs" 16 36 16 37
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia2.hs" 16 36 16 37
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia2.hs" 16 38 16 39
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia2.hs" 16 38 16 39
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 17 3 18 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DerivingVia2.hs" 17 3 17 11
+                    , SrcSpan "tests/examples/DerivingVia2.hs" 18 5 18 6
+                    , SrcSpan "tests/examples/DerivingVia2.hs" 18 13 18 14
+                    , SrcSpan "tests/examples/DerivingVia2.hs" 18 26 18 27
+                    ]
+                }
+              (Just
+                 (DerivNewtype
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia2.hs" 17 12 17 19
+                      , srcInfoPoints = []
+                      }))
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 18 6 18 13
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 18 6 18 13
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 18 6 18 13
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 18 6 18 13
+                             , srcInfoPoints = []
+                             }
+                           "Functor")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DerivingVia2.hs" 18 15 18 26
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia2.hs" 18 15 18 26
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia2.hs" 18 15 18 26
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia2.hs" 18 15 18 26
+                             , srcInfoPoints = []
+                             }
+                           "Applicative")))
+              ]
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 20 1 23 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 20 1 20 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 20 62 20 67
+                , SrcSpan "tests/examples/DerivingVia2.hs" 21 3 21 3
+                , SrcSpan "tests/examples/DerivingVia2.hs" 23 1 23 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 20 10 20 61
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 20 10 20 41
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 20 10 20 11
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 20 24 20 25
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 20 37 20 38
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 20 39 20 41
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 20 11 20 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 20 11 20 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 20 11 20 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 20 11 20 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 20 11 20 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 20 23 20 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 20 23 20 24
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 20 26 20 37
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 20 26 20 37
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 20 26 20 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 20 26 20 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 20 26 20 35
+                                     , srcInfoPoints = []
+                                     }
+                                   "Semigroup")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 20 36 20 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 20 36 20 37
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 20 42 20 61
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 20 42 20 51
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 20 42 20 51
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 20 42 20 51
+                           , srcInfoPoints = []
+                           }
+                         "Semigroup")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 20 52 20 61
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 20 52 20 53
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 20 60 20 61
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 20 53 20 60
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 20 53 20 58
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 20 53 20 56
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 20 53 20 56
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 20 53 20 56
+                                    , srcInfoPoints = []
+                                    }
+                                  "App")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 20 57 20 58
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 20 57 20 58
+                                 , srcInfoPoints = []
+                                 }
+                               "f")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 20 59 20 60
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 20 59 20 60
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 21 3 21 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 21 3 21 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 21 3 21 7
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia2.hs" 21 3 21 4
+                             , SrcSpan "tests/examples/DerivingVia2.hs" 21 4 21 6
+                             , SrcSpan "tests/examples/DerivingVia2.hs" 21 6 21 7
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 21 4 21 6
+                            , srcInfoPoints = []
+                            }
+                          "<>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 21 8 21 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/DerivingVia2.hs" 21 8 21 9 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 21 10 21 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 21 10 21 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 21 10 21 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 21 10 21 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "liftA2")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 21 17 21 21
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DerivingVia2.hs" 21 17 21 18
+                                   , SrcSpan "tests/examples/DerivingVia2.hs" 21 18 21 20
+                                   , SrcSpan "tests/examples/DerivingVia2.hs" 21 20 21 21
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 21 17 21 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DerivingVia2.hs" 21 17 21 18
+                                      , SrcSpan "tests/examples/DerivingVia2.hs" 21 18 21 20
+                                      , SrcSpan "tests/examples/DerivingVia2.hs" 21 20 21 21
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 21 18 21 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "<>")))))
+                    Nothing)
+             ])
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 23 1 25 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 23 1 23 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 24 10 24 18
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 23 10 23 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 23 14 23 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 23 14 23 15
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 23 46 23 47
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 23 15 23 46
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 23 15 23 44
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 23 15 23 18
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 23 15 23 18
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 23 15 23 18
+                                    , srcInfoPoints = []
+                                    }
+                                  "App")))
+                         (TyParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 23 19 23 44
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/DerivingVia2.hs" 23 19 23 20
+                                  , SrcSpan "tests/examples/DerivingVia2.hs" 23 43 23 44
+                                  ]
+                              }
+                            (TyApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 23 20 23 43
+                                 , srcInfoPoints = []
+                                 }
+                               (TyApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 23 20 23 41
+                                    , srcInfoPoints = []
+                                    }
+                                  (TyCon
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia2.hs" 23 20 23 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia2.hs" 23 20 23 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia2.hs" 23 20 23 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "Compose")))
+                                  (TyKind
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia2.hs" 23 28 23 41
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/DerivingVia2.hs" 23 28 23 29
+                                           , SrcSpan "tests/examples/DerivingVia2.hs" 23 31 23 33
+                                           , SrcSpan "tests/examples/DerivingVia2.hs" 23 40 23 41
+                                           ]
+                                       }
+                                     (TyVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia2.hs" 23 29 23 30
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia2.hs" 23 29 23 30
+                                             , srcInfoPoints = []
+                                             }
+                                           "f"))
+                                     (TyFun
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DerivingVia2.hs" 23 34 23 40
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DerivingVia2.hs" 23 36 23 38
+                                              ]
+                                          }
+                                        (TyStar
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia2.hs" 23 34 23 35
+                                             , srcInfoPoints = []
+                                             })
+                                        (TyStar
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DerivingVia2.hs" 23 39 23 40
+                                             , srcInfoPoints = []
+                                             }))))
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 23 42 23 43
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia2.hs" 23 42 23 43
+                                       , srcInfoPoints = []
+                                       }
+                                     "g")))))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 23 45 23 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 23 45 23 46
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 24 19 25 44
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 24 19 25 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 24 19 24 20
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 24 33 24 34
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 24 48 24 49
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 24 61 24 62
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 25 16 25 18
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 24 20 24 33
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 24 20 24 33
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 20 24 33
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 20 24 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 24 20 24 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 32 24 33
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 32 24 33
+                                  , srcInfoPoints = []
+                                  }
+                                "f")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 24 35 24 48
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 24 35 24 48
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 35 24 48
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 35 24 46
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 24 35 24 46
+                                     , srcInfoPoints = []
+                                     }
+                                   "Applicative")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 47 24 48
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 47 24 48
+                                  , srcInfoPoints = []
+                                  }
+                                "g")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 24 50 24 61
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DerivingVia2.hs" 24 50 24 61
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 50 24 61
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 50 24 59
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DerivingVia2.hs" 24 50 24 59
+                                     , srcInfoPoints = []
+                                     }
+                                   "Semigroup")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 24 60 24 61
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 24 60 24 61
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 25 19 25 44
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 25 19 25 28
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 25 19 25 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 25 19 25 28
+                           , srcInfoPoints = []
+                           }
+                         "Semigroup")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 25 29 25 44
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 25 29 25 30
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 25 43 25 44
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 43
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 41
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 39
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 37
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 37
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/DerivingVia2.hs" 25 30 25 37
+                                       , srcInfoPoints = []
+                                       }
+                                     "Compose")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 25 38 25 39
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 25 38 25 39
+                                    , srcInfoPoints = []
+                                    }
+                                  "f")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 25 40 25 41
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 25 40 25 41
+                                 , srcInfoPoints = []
+                                 }
+                               "g")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 25 42 25 43
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 25 42 25 43
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 27 1 27 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 27 1 27 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 27 7 27 22
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 27 7 27 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 27 7 27 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 27 9 27 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingVia2.hs" 27 9 27 10
+                      , SrcSpan "tests/examples/DerivingVia2.hs" 27 12 27 14
+                      , SrcSpan "tests/examples/DerivingVia2.hs" 27 21 27 22
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 27 10 27 11
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 27 15 27 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 27 17 27 19 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 27 15 27 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 27 15 27 16
+                           , srcInfoPoints = []
+                           }
+                         "k"))
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 27 20 27 21
+                        , srcInfoPoints = []
+                        }))))
+          []
+          Nothing
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 28 1 28 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 28 1 28 9 ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 28 10 28 17
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 28 10 28 17
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 28 10 28 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 28 10 28 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 28 10 28 11
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 28 12 28 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 28 12 28 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 28 12 28 17
+                           , srcInfoPoints = []
+                           }
+                         "Proxy")))))
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 30 1 30 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 30 19 30 20 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 30 1 30 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 30 9 30 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 30 9 30 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 30 9 30 16
+                     , srcInfoPoints = []
+                     }
+                   "MyProxy"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 30 17 30 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 30 17 30 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DerivingVia2.hs" 30 21 30 38
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DerivingVia2.hs" 30 21 30 38
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia2.hs" 30 21 30 28
+                      , srcInfoPoints = []
+                      }
+                    "MyProxy")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DerivingVia2.hs" 30 29 30 38
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/DerivingVia2.hs" 30 29 30 30
+                           , SrcSpan "tests/examples/DerivingVia2.hs" 30 37 30 38
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DerivingVia2.hs" 30 30 30 37
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia2.hs" 30 30 30 35
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia2.hs" 30 30 30 35
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DerivingVia2.hs" 30 30 30 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "Proxy")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DerivingVia2.hs" 30 36 30 37
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DerivingVia2.hs" 30 36 30 37
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          []
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 31 1 31 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 31 1 31 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 31 32 31 40
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 31 10 31 13
+                  , srcInfoPoints = []
+                  }
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 31 14 31 31
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 31 14 31 15
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 31 21 31 23
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 31 30 31 31
+                         ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 31 15 31 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 31 15 31 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 31 15 31 20
+                              , srcInfoPoints = []
+                              }
+                            "Proxy")))
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 31 24 31 30
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia2.hs" 31 26 31 28 ]
+                        }
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 31 24 31 25
+                           , srcInfoPoints = []
+                           })
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 31 29 31 30
+                           , srcInfoPoints = []
+                           })))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 50
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 50
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50
+                           , srcInfoPoints = []
+                           }
+                         "MyProxy")))))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 1 33 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 33 1 33 6 ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 12
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 10
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 8
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 8
+                        , srcInfoPoints = []
+                        }
+                      "Z"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 9 33 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 9 33 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 33 11 33 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 33 11 33 12
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          []
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 1 34 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 1 34 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 9
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 7
+                     , srcInfoPoints = []
+                     }
+                   "T"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 8 34 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 8 34 9
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 1 35 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 1 35 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 8
+                     , srcInfoPoints = []
+                     }
+                   "X1"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 9 35 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 9 35 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 1 36 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 1 36 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 8
+                     , srcInfoPoints = []
+                     }
+                   "X2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 9 36 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 9 36 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 1 37 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 1 37 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 8
+                     , srcInfoPoints = []
+                     }
+                   "X3"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 9 37 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 9 37 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          []
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 39 1 39 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 39 1 39 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 39 30 39 38
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 39 10 39 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 39 14 39 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 39 14 39 15
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 39 28 39 29
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 39 15 39 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia2.hs" 39 15 39 21
+                            , SrcSpan "tests/examples/DerivingVia2.hs" 39 23 39 24
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 39 22 39 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 39 22 39 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         ])
+                      Nothing
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 28
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26
+                                    , srcInfoPoints = []
+                                    }
+                                  "T")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 39 27 39 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 39 27 39 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 59
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 59
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 52
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50
+                              , srcInfoPoints = []
+                              }
+                            "Z")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 39 51 39 52
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 39 51 39 52
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 39 53 39 59
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 39 53 39 54
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 39 58 39 59
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 58
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56
+                                 , srcInfoPoints = []
+                                 }
+                               "X1")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 39 57 39 58
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 39 57 39 58
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 40 1 40 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 40 1 40 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 40 30 40 38
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 40 10 40 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 40 24 40 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 40 24 40 25
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 40 28 40 29
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 28
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26
+                                 , srcInfoPoints = []
+                                 }
+                               "T")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 27 40 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 40 27 40 28
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 40 39 40 59
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingVia2.hs" 40 39 40 45
+                   , SrcSpan "tests/examples/DerivingVia2.hs" 40 47 40 48
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia2.hs" 40 46 40 47
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 40 46 40 47
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                ])
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 59
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 52
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50
+                              , srcInfoPoints = []
+                              }
+                            "Z")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 40 51 40 52
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 51 40 52
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 40 53 40 59
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 40 53 40 54
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 40 58 40 59
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 58
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56
+                                 , srcInfoPoints = []
+                                 }
+                               "X2")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 40 57 40 58
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 40 57 40 58
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+      , DerivDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 41 1 41 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DerivingVia2.hs" 41 1 41 9
+                , SrcSpan "tests/examples/DerivingVia2.hs" 41 30 41 38
+                ]
+            }
+          (Just
+             (DerivVia
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 41 10 41 13
+                  , srcInfoPoints = []
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 41 14 41 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 41 14 41 15
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 41 28 41 29
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 41 15 41 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingVia2.hs" 41 15 41 21
+                            , SrcSpan "tests/examples/DerivingVia2.hs" 41 23 41 24
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DerivingVia2.hs" 41 22 41 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DerivingVia2.hs" 41 22 41 23
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         ])
+                      Nothing
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 28
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26
+                                    , srcInfoPoints = []
+                                    }
+                                  "T")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 41 27 41 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 41 27 41 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))))
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingVia2.hs" 41 39 41 59
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingVia2.hs" 41 39 41 45
+                   , SrcSpan "tests/examples/DerivingVia2.hs" 41 47 41 48
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DerivingVia2.hs" 41 46 41 47
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DerivingVia2.hs" 41 46 41 47
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                ])
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 59
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 52
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50
+                              , srcInfoPoints = []
+                              }
+                            "Z")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 41 51 41 52
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 41 51 41 52
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingVia2.hs" 41 53 41 59
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingVia2.hs" 41 53 41 54
+                         , SrcSpan "tests/examples/DerivingVia2.hs" 41 58 41 59
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 58
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56
+                                 , srcInfoPoints = []
+                                 }
+                               "X3")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DerivingVia2.hs" 41 57 41 58
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/DerivingVia2.hs" 41 57 41 58
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+      ]
+  , []
+  )
diff --git a/tests/examples/DerivingVia2.hs.prettyparser.golden b/tests/examples/DerivingVia2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingVia2.hs.prettyprinter.golden b/tests/examples/DerivingVia2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingVia2.hs.prettyprinter.golden
@@ -0,0 +1,47 @@
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DerivingVia #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+module DerivingVia2 where
+import Control.Applicative
+import Data.Functor.Compose
+import Data.Proxy
+import Data.Semigroup
+
+newtype App (f :: * -> *) a = App (f a)
+                                deriving newtype (Functor, Applicative)
+
+instance (Applicative f, Semigroup a) => Semigroup (App f a) where
+        (<>) = liftA2 (<>)
+
+deriving via (App (Compose (f :: * -> *) g) a) instance
+         (Applicative f, Applicative g, Semigroup a) =>
+         Semigroup (Compose f g a)
+
+class C (a :: k -> *)
+
+instance C Proxy
+
+newtype MyProxy a = MyProxy (Proxy a)
+
+deriving via (Proxy :: * -> *) instance C MyProxy
+
+class Z a b
+
+data T a
+
+data X1 a
+
+data X2 a
+
+data X3 a
+
+deriving via (forall a . T a) instance Z a (X1 b)
+
+deriving via (T a) instance forall b . Z a (X2 b)
+
+deriving via (forall a . T a) instance forall b . Z a (X3 b)
diff --git a/tests/examples/DerivingViaStealing.hs b/tests/examples/DerivingViaStealing.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingViaStealing.hs
@@ -0,0 +1,5 @@
+module DerivingViaStealing where
+
+via = ()
+stock = ()
+anyclass = ()
diff --git a/tests/examples/DerivingViaStealing.hs.exactprinter.golden b/tests/examples/DerivingViaStealing.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingViaStealing.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingViaStealing.hs.parser.golden b/tests/examples/DerivingViaStealing.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingViaStealing.hs.parser.golden
@@ -0,0 +1,201 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/DerivingViaStealing.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DerivingViaStealing.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 6 1 6 1
+            , SrcSpan "tests/examples/DerivingViaStealing.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/DerivingViaStealing.hs" 1 1 1 33
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DerivingViaStealing.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/DerivingViaStealing.hs" 1 28 1 33
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/DerivingViaStealing.hs" 1 8 1 27
+                 , srcInfoPoints = []
+                 }
+               "DerivingViaStealing")
+            Nothing
+            Nothing))
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingViaStealing.hs" 3 1 3 9
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 3 1 3 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 3 1 3 4
+                  , srcInfoPoints = []
+                  }
+                "via"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 3 5 3 9
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingViaStealing.hs" 3 5 3 6 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 9
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 8
+                      , SrcSpan "tests/examples/DerivingViaStealing.hs" 3 8 3 9
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 9
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 8
+                         , SrcSpan "tests/examples/DerivingViaStealing.hs" 3 8 3 9
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 9
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingViaStealing.hs" 3 7 3 8
+                            , SrcSpan "tests/examples/DerivingViaStealing.hs" 3 8 3 9
+                            ]
+                        }))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingViaStealing.hs" 4 1 4 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 4 1 4 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 4 1 4 6
+                  , srcInfoPoints = []
+                  }
+                "stock"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 4 7 4 11
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingViaStealing.hs" 4 7 4 8 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 10
+                      , SrcSpan "tests/examples/DerivingViaStealing.hs" 4 10 4 11
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 11
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 10
+                         , SrcSpan "tests/examples/DerivingViaStealing.hs" 4 10 4 11
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 11
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingViaStealing.hs" 4 9 4 10
+                            , SrcSpan "tests/examples/DerivingViaStealing.hs" 4 10 4 11
+                            ]
+                        }))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/DerivingViaStealing.hs" 5 1 5 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 5 1 5 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 5 1 5 9
+                  , srcInfoPoints = []
+                  }
+                "anyclass"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DerivingViaStealing.hs" 5 10 5 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DerivingViaStealing.hs" 5 10 5 11 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 13
+                      , SrcSpan "tests/examples/DerivingViaStealing.hs" 5 13 5 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 13
+                         , SrcSpan "tests/examples/DerivingViaStealing.hs" 5 13 5 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DerivingViaStealing.hs" 5 12 5 13
+                            , SrcSpan "tests/examples/DerivingViaStealing.hs" 5 13 5 14
+                            ]
+                        }))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/DerivingViaStealing.hs.prettyparser.golden b/tests/examples/DerivingViaStealing.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingViaStealing.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DerivingViaStealing.hs.prettyprinter.golden b/tests/examples/DerivingViaStealing.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DerivingViaStealing.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+module DerivingViaStealing where
+via = ()
+stock = ()
+anyclass = ()
diff --git a/tests/examples/Directory.hs.parser.golden b/tests/examples/Directory.hs.parser.golden
--- a/tests/examples/Directory.hs.parser.golden
+++ b/tests/examples/Directory.hs.parser.golden
@@ -1,1 +1,29264 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 1 914 1, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 1 1 1 1,SrcSpan "tests/examples/Directory.hs" 17 1 17 1,SrcSpan "tests/examples/Directory.hs" 17 1 17 1,SrcSpan "tests/examples/Directory.hs" 72 1 72 1,SrcSpan "tests/examples/Directory.hs" 73 1 73 1,SrcSpan "tests/examples/Directory.hs" 75 1 75 1,SrcSpan "tests/examples/Directory.hs" 76 1 76 1,SrcSpan "tests/examples/Directory.hs" 77 1 77 1,SrcSpan "tests/examples/Directory.hs" 78 1 78 1,SrcSpan "tests/examples/Directory.hs" 79 1 79 1,SrcSpan "tests/examples/Directory.hs" 80 1 80 1,SrcSpan "tests/examples/Directory.hs" 81 1 81 1,SrcSpan "tests/examples/Directory.hs" 83 1 83 1,SrcSpan "tests/examples/Directory.hs" 84 1 84 1,SrcSpan "tests/examples/Directory.hs" 88 1 88 1,SrcSpan "tests/examples/Directory.hs" 90 1 90 1,SrcSpan "tests/examples/Directory.hs" 92 1 92 1,SrcSpan "tests/examples/Directory.hs" 93 1 93 1,SrcSpan "tests/examples/Directory.hs" 94 1 94 1,SrcSpan "tests/examples/Directory.hs" 134 1 134 1,SrcSpan "tests/examples/Directory.hs" 152 1 152 1,SrcSpan "tests/examples/Directory.hs" 153 1 153 1,SrcSpan "tests/examples/Directory.hs" 189 1 189 1,SrcSpan "tests/examples/Directory.hs" 190 1 190 1,SrcSpan "tests/examples/Directory.hs" 205 1 205 1,SrcSpan "tests/examples/Directory.hs" 208 1 208 1,SrcSpan "tests/examples/Directory.hs" 209 1 209 1,SrcSpan "tests/examples/Directory.hs" 257 1 257 1,SrcSpan "tests/examples/Directory.hs" 258 1 258 1,SrcSpan "tests/examples/Directory.hs" 264 1 264 1,SrcSpan "tests/examples/Directory.hs" 267 1 267 1,SrcSpan "tests/examples/Directory.hs" 343 1 343 1,SrcSpan "tests/examples/Directory.hs" 344 1 344 1,SrcSpan "tests/examples/Directory.hs" 350 1 350 1,SrcSpan "tests/examples/Directory.hs" 351 1 351 1,SrcSpan "tests/examples/Directory.hs" 399 1 399 1,SrcSpan "tests/examples/Directory.hs" 400 1 400 1,SrcSpan "tests/examples/Directory.hs" 452 1 452 1,SrcSpan "tests/examples/Directory.hs" 453 1 453 1,SrcSpan "tests/examples/Directory.hs" 509 1 509 1,SrcSpan "tests/examples/Directory.hs" 510 1 510 1,SrcSpan "tests/examples/Directory.hs" 528 1 528 1,SrcSpan "tests/examples/Directory.hs" 529 1 529 1,SrcSpan "tests/examples/Directory.hs" 560 1 560 1,SrcSpan "tests/examples/Directory.hs" 561 1 561 1,SrcSpan "tests/examples/Directory.hs" 568 1 568 1,SrcSpan "tests/examples/Directory.hs" 569 1 569 1,SrcSpan "tests/examples/Directory.hs" 591 1 591 1,SrcSpan "tests/examples/Directory.hs" 592 1 592 1,SrcSpan "tests/examples/Directory.hs" 627 1 627 1,SrcSpan "tests/examples/Directory.hs" 628 1 628 1,SrcSpan "tests/examples/Directory.hs" 672 1 672 1,SrcSpan "tests/examples/Directory.hs" 673 1 673 1,SrcSpan "tests/examples/Directory.hs" 708 1 708 1,SrcSpan "tests/examples/Directory.hs" 709 1 709 1,SrcSpan "tests/examples/Directory.hs" 716 1 716 1,SrcSpan "tests/examples/Directory.hs" 717 1 717 1,SrcSpan "tests/examples/Directory.hs" 725 1 725 1,SrcSpan "tests/examples/Directory.hs" 726 1 726 1,SrcSpan "tests/examples/Directory.hs" 742 1 742 1,SrcSpan "tests/examples/Directory.hs" 743 1 743 1,SrcSpan "tests/examples/Directory.hs" 749 1 749 1,SrcSpan "tests/examples/Directory.hs" 750 1 750 1,SrcSpan "tests/examples/Directory.hs" 756 1 756 1,SrcSpan "tests/examples/Directory.hs" 757 1 757 1,SrcSpan "tests/examples/Directory.hs" 763 1 763 1,SrcSpan "tests/examples/Directory.hs" 764 1 764 1,SrcSpan "tests/examples/Directory.hs" 769 1 769 1,SrcSpan "tests/examples/Directory.hs" 770 1 770 1,SrcSpan "tests/examples/Directory.hs" 774 1 774 1,SrcSpan "tests/examples/Directory.hs" 775 1 775 1,SrcSpan "tests/examples/Directory.hs" 778 1 778 1,SrcSpan "tests/examples/Directory.hs" 779 1 779 1,SrcSpan "tests/examples/Directory.hs" 780 1 780 1,SrcSpan "tests/examples/Directory.hs" 781 1 781 1,SrcSpan "tests/examples/Directory.hs" 784 1 784 1,SrcSpan "tests/examples/Directory.hs" 808 1 808 1,SrcSpan "tests/examples/Directory.hs" 809 1 809 1,SrcSpan "tests/examples/Directory.hs" 847 1 847 1,SrcSpan "tests/examples/Directory.hs" 848 1 848 1,SrcSpan "tests/examples/Directory.hs" 874 1 874 1,SrcSpan "tests/examples/Directory.hs" 875 1 875 1,SrcSpan "tests/examples/Directory.hs" 905 1 905 1,SrcSpan "tests/examples/Directory.hs" 906 1 906 1,SrcSpan "tests/examples/Directory.hs" 912 1 912 1,SrcSpan "tests/examples/Directory.hs" 913 1 913 1,SrcSpan "tests/examples/Directory.hs" 914 1 914 1,SrcSpan "tests/examples/Directory.hs" 914 1 914 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 17 1 70 11, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 17 1 17 7,SrcSpan "tests/examples/Directory.hs" 70 6 70 11]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 17 8 17 24, srcInfoPoints = []}) "System.Directory") Nothing (Just (ExportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 18 4 70 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 18 4 18 5,SrcSpan "tests/examples/Directory.hs" 23 5 23 6,SrcSpan "tests/examples/Directory.hs" 24 5 24 6,SrcSpan "tests/examples/Directory.hs" 25 5 25 6,SrcSpan "tests/examples/Directory.hs" 26 5 26 6,SrcSpan "tests/examples/Directory.hs" 28 5 28 6,SrcSpan "tests/examples/Directory.hs" 29 5 29 6,SrcSpan "tests/examples/Directory.hs" 30 5 30 6,SrcSpan "tests/examples/Directory.hs" 33 5 33 6,SrcSpan "tests/examples/Directory.hs" 34 5 34 6,SrcSpan "tests/examples/Directory.hs" 35 5 35 6,SrcSpan "tests/examples/Directory.hs" 36 5 36 6,SrcSpan "tests/examples/Directory.hs" 39 5 39 6,SrcSpan "tests/examples/Directory.hs" 40 5 40 6,SrcSpan "tests/examples/Directory.hs" 41 5 41 6,SrcSpan "tests/examples/Directory.hs" 43 5 43 6,SrcSpan "tests/examples/Directory.hs" 44 5 44 6,SrcSpan "tests/examples/Directory.hs" 45 5 45 6,SrcSpan "tests/examples/Directory.hs" 48 5 48 6,SrcSpan "tests/examples/Directory.hs" 49 5 49 6,SrcSpan "tests/examples/Directory.hs" 55 5 55 6,SrcSpan "tests/examples/Directory.hs" 63 5 63 6,SrcSpan "tests/examples/Directory.hs" 64 5 64 6,SrcSpan "tests/examples/Directory.hs" 65 5 65 6,SrcSpan "tests/examples/Directory.hs" 69 5 69 6,SrcSpan "tests/examples/Directory.hs" 70 4 70 5]}) [EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22, srcInfoPoints = []}) "createDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31, srcInfoPoints = []}) "createDirectoryIfMissing")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22, srcInfoPoints = []}) "removeDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31, srcInfoPoints = []}) "removeDirectoryRecursive")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22, srcInfoPoints = []}) "renameDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27, srcInfoPoints = []}) "getDirectoryContents")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26, srcInfoPoints = []}) "getCurrentDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26, srcInfoPoints = []}) "setCurrentDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23, srcInfoPoints = []}) "getHomeDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30, srcInfoPoints = []}) "getAppUserDataDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32, srcInfoPoints = []}) "getUserDocumentsDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28, srcInfoPoints = []}) "getTemporaryDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17, srcInfoPoints = []}) "removeFile")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17, srcInfoPoints = []}) "renameFile")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15, srcInfoPoints = []}) "copyFile")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23, srcInfoPoints = []}) "canonicalizePath")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37, srcInfoPoints = []}) "makeRelativeToCurrentDirectory")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21, srcInfoPoints = []}) "findExecutable")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20, srcInfoPoints = []}) "doesFileExist")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25, srcInfoPoints = []}) "doesDirectoryExist")),EThingWith (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 61 8, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 55 18 55 19,SrcSpan "tests/examples/Directory.hs" 56 16 56 17,SrcSpan "tests/examples/Directory.hs" 57 13 57 14,SrcSpan "tests/examples/Directory.hs" 58 13 58 14,SrcSpan "tests/examples/Directory.hs" 59 15 59 16,SrcSpan "tests/examples/Directory.hs" 61 7 61 8]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 55 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 55 18, srcInfoPoints = []}) "Permissions")) [ConName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 56 5 56 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 56 5 56 16, srcInfoPoints = []}) "Permissions"),VarName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 57 5 57 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 57 5 57 13, srcInfoPoints = []}) "readable"),VarName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 58 5 58 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 58 5 58 13, srcInfoPoints = []}) "writable"),VarName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 59 5 59 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 59 5 59 15, srcInfoPoints = []}) "executable"),VarName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 60 5 60 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 60 5 60 15, srcInfoPoints = []}) "searchable")],EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21, srcInfoPoints = []}) "getPermissions")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21, srcInfoPoints = []}) "setPermissions")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22, srcInfoPoints = []}) "copyPermissions")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26, srcInfoPoints = []}) "getModificationTime"))])))) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 1 1 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 1 1 1 13,SrcSpan "tests/examples/Directory.hs" 1 38 1 39,SrcSpan "tests/examples/Directory.hs" 1 65 1 68]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 14 1 38, srcInfoPoints = []}) "ForeignFunctionInterface",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 40 1 64, srcInfoPoints = []}) "NondecreasingIndentation"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 1 72 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 72 1 72 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 8 72 15, srcInfoPoints = []}) "Prelude", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 16 72 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 72 16 72 22,SrcSpan "tests/examples/Directory.hs" 72 23 72 24,SrcSpan "tests/examples/Directory.hs" 72 31 72 32]}) True [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 25 72 30, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 25 72 30, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 25 72 30, srcInfoPoints = []}) "catch")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 73 1 73 25, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 73 1 73 7,SrcSpan "tests/examples/Directory.hs" 73 8 73 17]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 73 18 73 25, srcInfoPoints = []}) "Prelude", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 1 75 29, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 75 1 75 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 8 75 21, srcInfoPoints = []}) "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 22 75 29, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 75 22 75 23,SrcSpan "tests/examples/Directory.hs" 75 28 75 29]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 23 75 28, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 23 75 28, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 23 75 28, srcInfoPoints = []}) "guard")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 1 76 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 76 1 76 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 8 76 26, srcInfoPoints = []}) "System.Environment", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 32 76 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 76 32 76 33,SrcSpan "tests/examples/Directory.hs" 76 41 76 42]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 34 76 40, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 34 76 40, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 34 76 40, srcInfoPoints = []}) "getEnv")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 77 1 77 23, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 77 1 77 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 77 8 77 23, srcInfoPoints = []}) "System.FilePath", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 78 1 78 17, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 78 1 78 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 78 8 78 17, srcInfoPoints = []}) "System.IO", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 1 79 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 79 1 79 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 8 79 23, srcInfoPoints = []}) "System.IO.Error", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 24 79 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 79 24 79 30,SrcSpan "tests/examples/Directory.hs" 79 31 79 32,SrcSpan "tests/examples/Directory.hs" 79 38 79 39,SrcSpan "tests/examples/Directory.hs" 79 44 79 45]}) True [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 33 79 38, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 33 79 38, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 33 79 38, srcInfoPoints = []}) "catch"),IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 40 79 43, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 40 79 43, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 40 79 43, srcInfoPoints = []}) "try")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 1 80 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 80 1 80 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 8 80 21, srcInfoPoints = []}) "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 32 80 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 80 32 80 33,SrcSpan "tests/examples/Directory.hs" 80 38 80 39,SrcSpan "tests/examples/Directory.hs" 80 47 80 48]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 34 80 38, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 34 80 38, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 34 80 38, srcInfoPoints = []}) "when"),IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 40 80 46, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 40 80 46, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 40 80 46, srcInfoPoints = []}) "unless")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 81 1 81 30, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 81 1 81 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 81 8 81 30, srcInfoPoints = []}) "Control.Exception.Base", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 83 1 83 15, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 83 1 83 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 83 8 83 15, srcInfoPoints = []}) "Foreign", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 84 1 84 17, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 84 1 84 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 84 8 84 17, srcInfoPoints = []}) "Foreign.C", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 1 88 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 88 1 88 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 8 88 19, srcInfoPoints = []}) "System.Time", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 32 88 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 88 32 88 33,SrcSpan "tests/examples/Directory.hs" 88 48 88 49]}) False [IThingAll (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 34 88 47, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 88 43 88 44,SrcSpan "tests/examples/Directory.hs" 88 44 88 46,SrcSpan "tests/examples/Directory.hs" 88 46 88 47]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 34 88 43, srcInfoPoints = []}) "ClockTime")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 1 90 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 90 1 90 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 8 90 24, srcInfoPoints = []}) "GHC.IO.Exception", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 25 90 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 90 25 90 26,SrcSpan "tests/examples/Directory.hs" 90 42 90 43,SrcSpan "tests/examples/Directory.hs" 90 59 90 60,SrcSpan "tests/examples/Directory.hs" 90 73 90 74]}) False [IThingAll (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 27 90 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 90 38 90 39,SrcSpan "tests/examples/Directory.hs" 90 39 90 41,SrcSpan "tests/examples/Directory.hs" 90 41 90 42]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 27 90 38, srcInfoPoints = []}) "IOException"),IThingAll (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 44 90 59, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 90 55 90 56,SrcSpan "tests/examples/Directory.hs" 90 56 90 58,SrcSpan "tests/examples/Directory.hs" 90 58 90 59]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 44 90 55, srcInfoPoints = []}) "IOErrorType"),IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 61 90 72, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 61 90 72, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 61 90 72, srcInfoPoints = []}) "ioException")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 92 1 92 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 92 1 92 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 92 8 92 26, srcInfoPoints = []}) "System.Posix.Types", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 93 1 93 30, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 93 1 93 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 93 8 93 30, srcInfoPoints = []}) "System.Posix.Internals", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 1 94 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 94 1 94 7,SrcSpan "tests/examples/Directory.hs" 94 8 94 17,SrcSpan "tests/examples/Directory.hs" 94 31 94 33]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 18 94 30, srcInfoPoints = []}) "System.Win32", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 34 94 39, srcInfoPoints = []}) "Win32"), importSpecs = Nothing}] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 1 138 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 135 2 135 3]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 1 134 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 6 134 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 6 134 17, srcInfoPoints = []}) "Permissions")) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 138 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 135 16 135 17,SrcSpan "tests/examples/Directory.hs" 138 4 138 5]}) Nothing Nothing (RecDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 138 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 135 16 135 17,SrcSpan "tests/examples/Directory.hs" 138 4 138 5]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 135 15, srcInfoPoints = []}) "Permissions") [FieldDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 5 137 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 136 13 136 14,SrcSpan "tests/examples/Directory.hs" 136 25 136 26,SrcSpan "tests/examples/Directory.hs" 137 15 137 16,SrcSpan "tests/examples/Directory.hs" 137 28 137 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 5 136 13, srcInfoPoints = []}) "readable",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 17 136 25, srcInfoPoints = []}) "writable",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 5 137 15, srcInfoPoints = []}) "executable",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 17 137 27, srcInfoPoints = []}) "searchable"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35, srcInfoPoints = []}) "Bool")))])] (Just (Deriving (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 6 138 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 138 6 138 14,SrcSpan "tests/examples/Directory.hs" 138 15 138 16,SrcSpan "tests/examples/Directory.hs" 138 18 138 19,SrcSpan "tests/examples/Directory.hs" 138 23 138 24,SrcSpan "tests/examples/Directory.hs" 138 29 138 30,SrcSpan "tests/examples/Directory.hs" 138 35 138 36]}) [IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18, srcInfoPoints = []}) "Eq"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23, srcInfoPoints = []}) "Ord"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29, srcInfoPoints = []}) "Read"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35, srcInfoPoints = []}) "Show")))])),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 1 152 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 152 16 152 18]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 1 152 15, srcInfoPoints = []}) "getPermissions"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 152 28 152 30]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 45, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45, srcInfoPoints = []}) "Permissions"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 175 5, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 175 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 153 15, srcInfoPoints = []}) "getPermissions") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 16 153 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 16 153 20, srcInfoPoints = []}) "name")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 21 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 153 21 153 22]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 23 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 153 23 153 25,SrcSpan "tests/examples/Directory.hs" 154 3 154 3,SrcSpan "tests/examples/Directory.hs" 189 1 189 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 175 5, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 175 5, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 154 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 154 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 154 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 154 15, srcInfoPoints = []}) "withFilePath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 16 154 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 16 154 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 16 154 20, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 21 154 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 21 154 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 21 154 22, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 23 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 154 23 154 24,SrcSpan "tests/examples/Directory.hs" 154 26 154 28]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 24 154 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 24 154 25, srcInfoPoints = []}) "s")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 29 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 154 29 154 31,SrcSpan "tests/examples/Directory.hs" 161 3 161 3,SrcSpan "tests/examples/Directory.hs" 161 3 161 3,SrcSpan "tests/examples/Directory.hs" 189 1 189 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 175 5, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 175 5, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 161 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 161 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 161 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 3 161 14, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 15 161 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 15 161 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 15 161 26, srcInfoPoints = []}) "sizeof_stat")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 27 161 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 27 161 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 27 161 28, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 29 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 161 29 161 30,SrcSpan "tests/examples/Directory.hs" 161 38 161 40]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 31 161 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 31 161 37, srcInfoPoints = []}) "p_stat")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 161 41 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 161 41 161 43,SrcSpan "tests/examples/Directory.hs" 162 3 162 3,SrcSpan "tests/examples/Directory.hs" 162 3 162 3,SrcSpan "tests/examples/Directory.hs" 163 3 163 3,SrcSpan "tests/examples/Directory.hs" 164 3 164 3,SrcSpan "tests/examples/Directory.hs" 165 3 165 3,SrcSpan "tests/examples/Directory.hs" 166 3 166 3,SrcSpan "tests/examples/Directory.hs" 167 3 167 3,SrcSpan "tests/examples/Directory.hs" 168 3 168 3,SrcSpan "tests/examples/Directory.hs" 189 1 189 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 57, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 57, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 39, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 3 162 22, srcInfoPoints = []}) "throwErrnoIfMinus1_"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 23 162 39, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 23 162 39, srcInfoPoints = []}) "getPermissions" "getPermissions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 40 162 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 40 162 41, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 40 162 41, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 42 162 57, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 42 162 50, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 42 162 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 42 162 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 42 162 48, srcInfoPoints = []}) "c_stat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 49 162 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 49 162 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 49 162 50, srcInfoPoints = []}) "s")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 51 162 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 51 162 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 162 51 162 57, srcInfoPoints = []}) "p_stat"))))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 3 163 25, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 163 8 163 10]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 3 163 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 3 163 7, srcInfoPoints = []}) "mode")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 11 163 25, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 11 163 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 11 163 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 11 163 18, srcInfoPoints = []}) "st_mode"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 19 163 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 19 163 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 163 19 163 25, srcInfoPoints = []}) "p_stat")))),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 3 164 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 164 3 164 6]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 7 164 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 164 7 164 7,SrcSpan "tests/examples/Directory.hs" 165 3 165 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 7 164 36, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 7 164 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 7 164 15, srcInfoPoints = []}) "usr_read")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 18 164 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 164 18 164 19]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 20 164 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 20 164 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 20 164 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 20 164 24, srcInfoPoints = []}) "mode"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 25 164 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 25 164 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 25 164 28, srcInfoPoints = []}) ".&."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 29 164 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 29 164 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 164 29 164 36, srcInfoPoints = []}) "s_IRUSR"))))) Nothing]),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 3 165 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 165 3 165 6]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 7 165 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 165 7 165 7,SrcSpan "tests/examples/Directory.hs" 166 3 166 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 7 165 36, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 7 165 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 7 165 16, srcInfoPoints = []}) "usr_write")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 18 165 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 165 18 165 19]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 20 165 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 20 165 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 20 165 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 20 165 24, srcInfoPoints = []}) "mode"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 25 165 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 25 165 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 25 165 28, srcInfoPoints = []}) ".&."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 29 165 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 29 165 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 165 29 165 36, srcInfoPoints = []}) "s_IWUSR"))))) Nothing]),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 3 166 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 166 3 166 6]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 7 166 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 166 7 166 7,SrcSpan "tests/examples/Directory.hs" 167 3 167 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 7 166 36, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 7 166 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 7 166 15, srcInfoPoints = []}) "usr_exec")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 18 166 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 166 18 166 19]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 20 166 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 20 166 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 20 166 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 20 166 24, srcInfoPoints = []}) "mode"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 25 166 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 25 166 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 25 166 28, srcInfoPoints = []}) ".&."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 29 166 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 29 166 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 166 29 166 36, srcInfoPoints = []}) "s_IXUSR"))))) Nothing]),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 3 167 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 167 3 167 6]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 7 167 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 167 7 167 7,SrcSpan "tests/examples/Directory.hs" 168 3 168 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 7 167 32, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 7 167 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 7 167 13, srcInfoPoints = []}) "is_dir")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 14 167 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 167 14 167 15]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 16 167 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 16 167 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 16 167 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 16 167 20, srcInfoPoints = []}) "mode"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 21 167 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 21 167 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 21 167 24, srcInfoPoints = []}) ".&."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 25 167 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 25 167 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 167 25 167 32, srcInfoPoints = []}) "s_IFDIR"))))) Nothing]),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 3 175 5, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 3 175 5, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 3 168 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 3 168 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 3 168 9, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 168 10 175 5, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 168 10 168 11,SrcSpan "tests/examples/Directory.hs" 175 4 175 5]}) (RecConstr (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 169 5 174 6, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 169 17 169 18,SrcSpan "tests/examples/Directory.hs" 170 34 170 35,SrcSpan "tests/examples/Directory.hs" 171 34 171 35,SrcSpan "tests/examples/Directory.hs" 172 48 172 49,SrcSpan "tests/examples/Directory.hs" 174 5 174 6]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 169 5 169 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 169 5 169 16, srcInfoPoints = []}) "Permissions")) [FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 7 170 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 170 18 170 19]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 7 170 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 7 170 15, srcInfoPoints = []}) "readable")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 20 170 34, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 20 170 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 20 170 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 20 170 28, srcInfoPoints = []}) "usr_read"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 30 170 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 30 170 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 30 170 32, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 33 170 34, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 170 33 170 34, srcInfoPoints = []}) 0 "0"))),FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 7 171 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 171 18 171 19]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 7 171 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 7 171 15, srcInfoPoints = []}) "writable")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 20 171 34, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 20 171 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 20 171 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 20 171 29, srcInfoPoints = []}) "usr_write"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 30 171 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 30 171 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 30 171 32, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 33 171 34, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 171 33 171 34, srcInfoPoints = []}) 0 "0"))),FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 7 172 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 172 18 172 19]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 7 172 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 7 172 17, srcInfoPoints = []}) "executable")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 20 172 48, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 20 172 31, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 20 172 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 20 172 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 20 172 26, srcInfoPoints = []}) "is_dir"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 27 172 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 27 172 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 27 172 29, srcInfoPoints = []}) "=="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 30 172 31, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 30 172 31, srcInfoPoints = []}) 0 "0"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 32 172 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 32 172 34, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 32 172 34, srcInfoPoints = []}) "&&"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 35 172 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 35 172 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 35 172 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 35 172 43, srcInfoPoints = []}) "usr_exec"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 44 172 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 44 172 46, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 44 172 46, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 47 172 48, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 172 47 172 48, srcInfoPoints = []}) 0 "0")))),FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 7 173 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 173 18 173 19]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 7 173 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 7 173 17, srcInfoPoints = []}) "searchable")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 20 173 48, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 20 173 31, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 20 173 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 20 173 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 20 173 26, srcInfoPoints = []}) "is_dir"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 27 173 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 27 173 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 27 173 29, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 30 173 31, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 30 173 31, srcInfoPoints = []}) 0 "0"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 32 173 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 32 173 34, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 32 173 34, srcInfoPoints = []}) "&&"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 35 173 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 35 173 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 35 173 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 35 173 43, srcInfoPoints = []}) "usr_exec"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 44 173 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 44 173 46, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 44 173 46, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 47 173 48, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 173 47 173 48, srcInfoPoints = []}) 0 "0"))))])))])))])))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 1 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 16 189 18]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 1 189 15, srcInfoPoints = []}) "setPermissions"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 28 189 30]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 43 189 45]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42, srcInfoPoints = []}) "Permissions"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 51, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 49 189 50,SrcSpan "tests/examples/Directory.hs" 189 50 189 51]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 49 189 50,SrcSpan "tests/examples/Directory.hs" 189 50 189 51]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 189 49 189 50,SrcSpan "tests/examples/Directory.hs" 189 50 189 51]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 203 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 200 2 200 7]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 203 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 200 2 200 7]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 190 15, srcInfoPoints = []}) "setPermissions") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 16 190 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 16 190 20, srcInfoPoints = []}) "name"),PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 21 190 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 190 21 190 22,SrcSpan "tests/examples/Directory.hs" 190 41 190 42]}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 33, srcInfoPoints = []}) "Permissions")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 34 190 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 34 190 35, srcInfoPoints = []}) "r"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 36 190 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 36 190 37, srcInfoPoints = []}) "w"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 38 190 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 38 190 39, srcInfoPoints = []}) "e"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 40 190 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 40 190 41, srcInfoPoints = []}) "s")])] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 43 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 190 43 190 44]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 45 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 190 45 190 47,SrcSpan "tests/examples/Directory.hs" 191 3 191 3,SrcSpan "tests/examples/Directory.hs" 200 2 200 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 199 28, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 199 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 191 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 191 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 191 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 191 14, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 15 191 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 15 191 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 15 191 26, srcInfoPoints = []}) "sizeof_stat")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 27 191 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 27 191 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 27 191 28, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 29 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 191 29 191 30,SrcSpan "tests/examples/Directory.hs" 191 38 191 40]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 31 191 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 31 191 37, srcInfoPoints = []}) "p_stat")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 41 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 191 41 191 43,SrcSpan "tests/examples/Directory.hs" 192 3 192 3,SrcSpan "tests/examples/Directory.hs" 192 3 192 3,SrcSpan "tests/examples/Directory.hs" 200 2 200 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 199 28, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 199 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 192 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 192 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 192 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 3 192 15, srcInfoPoints = []}) "withFilePath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 16 192 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 16 192 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 16 192 20, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 21 192 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 21 192 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 21 192 22, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 23 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 192 23 192 24,SrcSpan "tests/examples/Directory.hs" 192 31 192 33]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 24 192 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 24 192 30, srcInfoPoints = []}) "p_name")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 192 34 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 192 34 192 36,SrcSpan "tests/examples/Directory.hs" 193 5 193 5,SrcSpan "tests/examples/Directory.hs" 200 2 200 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 199 28, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 199 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 193 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 193 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 193 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 5 193 24, srcInfoPoints = []}) "throwErrnoIfMinus1_"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 25 193 41, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 25 193 41, srcInfoPoints = []}) "setPermissions" "setPermissions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 42 193 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 42 193 43, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 42 193 43, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 193 44 199 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 193 44 193 46,SrcSpan "tests/examples/Directory.hs" 194 7 194 7,SrcSpan "tests/examples/Directory.hs" 195 7 195 7,SrcSpan "tests/examples/Directory.hs" 196 7 196 7,SrcSpan "tests/examples/Directory.hs" 197 7 197 7,SrcSpan "tests/examples/Directory.hs" 198 7 198 7,SrcSpan "tests/examples/Directory.hs" 199 7 199 7,SrcSpan "tests/examples/Directory.hs" 200 2 200 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 7 194 13, srcInfoPoints = []}) "c_stat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 14 194 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 14 194 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 14 194 20, srcInfoPoints = []}) "p_name")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 21 194 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 21 194 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 194 21 194 27, srcInfoPoints = []}) "p_stat")))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 7 195 29, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 195 12 195 14]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 7 195 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 7 195 11, srcInfoPoints = []}) "mode")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 15 195 29, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 15 195 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 15 195 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 15 195 22, srcInfoPoints = []}) "st_mode"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 23 195 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 23 195 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 195 23 195 29, srcInfoPoints = []}) "p_stat")))),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 7 196 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 196 7 196 10]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 11 196 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 196 11 196 11,SrcSpan "tests/examples/Directory.hs" 197 7 197 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 11 196 43, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 11 196 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 11 196 16, srcInfoPoints = []}) "mode1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 17 196 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 196 17 196 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 43, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 19 196 28, srcInfoPoints = []}) "modifyBit"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 29 196 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 29 196 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 29 196 30, srcInfoPoints = []}) "r")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 31 196 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 31 196 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 31 196 35, srcInfoPoints = []}) "mode")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 36 196 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 36 196 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 196 36 196 43, srcInfoPoints = []}) "s_IRUSR"))))) Nothing]),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 7 197 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 197 7 197 10]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 11 197 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 197 11 197 11,SrcSpan "tests/examples/Directory.hs" 198 7 198 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 11 197 44, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 11 197 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 11 197 16, srcInfoPoints = []}) "mode2")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 17 197 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 197 17 197 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 44, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 36, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 19 197 28, srcInfoPoints = []}) "modifyBit"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 29 197 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 29 197 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 29 197 30, srcInfoPoints = []}) "w")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 31 197 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 31 197 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 31 197 36, srcInfoPoints = []}) "mode1")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 37 197 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 37 197 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 197 37 197 44, srcInfoPoints = []}) "s_IWUSR"))))) Nothing]),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 7 198 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 198 7 198 10]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 11 198 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 198 11 198 11,SrcSpan "tests/examples/Directory.hs" 199 7 199 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 11 198 51, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 11 198 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 11 198 16, srcInfoPoints = []}) "mode3")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 17 198 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 198 17 198 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 51, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 43, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 19 198 28, srcInfoPoints = []}) "modifyBit"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 29 198 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 198 29 198 30,SrcSpan "tests/examples/Directory.hs" 198 36 198 37]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 30 198 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 30 198 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 30 198 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 30 198 31, srcInfoPoints = []}) "e"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 32 198 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 32 198 34, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 32 198 34, srcInfoPoints = []}) "||"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 35 198 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 35 198 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 35 198 36, srcInfoPoints = []}) "s")))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 38 198 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 38 198 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 38 198 43, srcInfoPoints = []}) "mode2")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 44 198 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 44 198 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 198 44 198 51, srcInfoPoints = []}) "s_IXUSR"))))) Nothing]),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 7 199 15, srcInfoPoints = []}) "c_wchmod"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 16 199 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 16 199 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 16 199 22, srcInfoPoints = []}) "p_name")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 23 199 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 23 199 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 199 23 199 28, srcInfoPoints = []}) "mode3"))))]))])))])))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 203 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 201 4 201 4,SrcSpan "tests/examples/Directory.hs" 202 4 202 4,SrcSpan "tests/examples/Directory.hs" 203 4 203 4,SrcSpan "tests/examples/Directory.hs" 205 1 205 0]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 201 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 201 14 201 16]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 201 13, srcInfoPoints = []}) "modifyBit"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 201 22 201 24]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 21, srcInfoPoints = []}) "Bool"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 25 201 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 201 31 201 33]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 25 201 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 25 201 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 25 201 30, srcInfoPoints = []}) "CMode"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 34 201 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 201 40 201 42]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 34 201 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 34 201 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 34 201 39, srcInfoPoints = []}) "CMode"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 43 201 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 43 201 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 43 201 48, srcInfoPoints = []}) "CMode")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 203 33, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 202 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 202 13, srcInfoPoints = []}) "modifyBit") [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 14 202 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 14 202 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 14 202 19, srcInfoPoints = []}) "False")) [],PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 20 202 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 20 202 21, srcInfoPoints = []}) "m"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 22 202 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 22 202 23, srcInfoPoints = []}) "b")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 24 202 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 202 24 202 25]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 26 202 46, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 26 202 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 26 202 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 26 202 27, srcInfoPoints = []}) "m"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 28 202 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 28 202 31, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 28 202 31, srcInfoPoints = []}) ".&."))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 32 202 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 202 32 202 33,SrcSpan "tests/examples/Directory.hs" 202 45 202 46]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 33 202 45, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 33 202 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 33 202 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 33 202 43, srcInfoPoints = []}) "complement"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 44 202 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 44 202 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 44 202 45, srcInfoPoints = []}) "b"))))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 4 203 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 4 203 13, srcInfoPoints = []}) "modifyBit") [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 14 203 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 14 203 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 14 203 18, srcInfoPoints = []}) "True")) [],PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 20 203 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 20 203 21, srcInfoPoints = []}) "m"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 22 203 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 22 203 23, srcInfoPoints = []}) "b")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 24 203 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 203 24 203 25]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 26 203 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 26 203 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 26 203 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 26 203 27, srcInfoPoints = []}) "m"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 28 203 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 28 203 31, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 28 203 31, srcInfoPoints = []}) ".|."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 32 203 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 32 203 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 32 203 33, srcInfoPoints = []}) "b"))))) Nothing]]))],ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 1 206 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 205 1 205 8,SrcSpan "tests/examples/Directory.hs" 205 9 205 15,SrcSpan "tests/examples/Directory.hs" 205 29 205 38,SrcSpan "tests/examples/Directory.hs" 206 13 206 15]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 16 205 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 22 205 28, srcInfoPoints = []}))) (Just "_wchmod") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 4 206 12, srcInfoPoints = []}) "c_wchmod") (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 206 25 206 27]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24, srcInfoPoints = []}) "CWString"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 206 34 206 36]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33, srcInfoPoints = []}) "CMode"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 44, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44, srcInfoPoints = []}) "CInt")))))),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 1 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 17 208 19]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 1 208 16, srcInfoPoints = []}) "copyPermissions"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 29 208 31]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 41 208 43]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 49, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 47 208 48,SrcSpan "tests/examples/Directory.hs" 208 48 208 49]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 47 208 48,SrcSpan "tests/examples/Directory.hs" 208 48 208 49]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 208 47 208 48,SrcSpan "tests/examples/Directory.hs" 208 48 208 49]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 215 65, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 215 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 209 16, srcInfoPoints = []}) "copyPermissions") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 17 209 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 17 209 23, srcInfoPoints = []}) "source"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 24 209 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 24 209 28, srcInfoPoints = []}) "dest")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 29 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 209 29 209 30]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 31 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 209 31 209 33,SrcSpan "tests/examples/Directory.hs" 210 3 210 3,SrcSpan "tests/examples/Directory.hs" 257 1 257 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 215 65, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 215 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 210 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 210 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 210 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 210 14, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 15 210 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 15 210 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 15 210 26, srcInfoPoints = []}) "sizeof_stat")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 27 210 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 27 210 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 27 210 28, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 29 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 210 29 210 30,SrcSpan "tests/examples/Directory.hs" 210 38 210 40]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 31 210 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 31 210 37, srcInfoPoints = []}) "p_stat")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 41 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 210 41 210 43,SrcSpan "tests/examples/Directory.hs" 211 3 211 3,SrcSpan "tests/examples/Directory.hs" 211 3 211 3,SrcSpan "tests/examples/Directory.hs" 257 1 257 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 215 65, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 215 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 211 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 211 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 211 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 3 211 15, srcInfoPoints = []}) "withFilePath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 16 211 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 16 211 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 16 211 22, srcInfoPoints = []}) "source")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 23 211 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 23 211 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 23 211 24, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 25 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 211 25 211 26,SrcSpan "tests/examples/Directory.hs" 211 35 211 37]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 26 211 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 26 211 34, srcInfoPoints = []}) "p_source")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 211 38 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 211 38 211 40,SrcSpan "tests/examples/Directory.hs" 212 3 212 3,SrcSpan "tests/examples/Directory.hs" 212 3 212 3,SrcSpan "tests/examples/Directory.hs" 257 1 257 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 215 65, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 215 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 212 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 212 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 212 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 3 212 15, srcInfoPoints = []}) "withFilePath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 16 212 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 16 212 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 16 212 20, srcInfoPoints = []}) "dest")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 21 212 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 21 212 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 21 212 22, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 23 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 212 23 212 24,SrcSpan "tests/examples/Directory.hs" 212 31 212 33]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 24 212 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 24 212 30, srcInfoPoints = []}) "p_dest")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 212 34 215 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 212 34 212 36,SrcSpan "tests/examples/Directory.hs" 213 5 213 5,SrcSpan "tests/examples/Directory.hs" 214 5 214 5,SrcSpan "tests/examples/Directory.hs" 215 5 215 5,SrcSpan "tests/examples/Directory.hs" 257 1 257 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 67, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 67, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 5 213 24, srcInfoPoints = []}) "throwErrnoIfMinus1_"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 25 213 42, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 25 213 42, srcInfoPoints = []}) "copyPermissions" "copyPermissions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 43 213 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 43 213 44, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 43 213 44, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 45 213 67, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 45 213 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 45 213 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 45 213 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 45 213 51, srcInfoPoints = []}) "c_stat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 52 213 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 52 213 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 52 213 60, srcInfoPoints = []}) "p_source")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 61 213 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 61 213 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 213 61 213 67, srcInfoPoints = []}) "p_stat"))))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 5 214 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 214 10 214 12]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 5 214 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 5 214 9, srcInfoPoints = []}) "mode")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 13 214 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 13 214 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 13 214 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 13 214 20, srcInfoPoints = []}) "st_mode"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 21 214 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 21 214 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 214 21 214 27, srcInfoPoints = []}) "p_stat")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 65, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 5 215 24, srcInfoPoints = []}) "throwErrnoIfMinus1_"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 25 215 42, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 25 215 42, srcInfoPoints = []}) "copyPermissions" "copyPermissions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 43 215 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 43 215 44, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 43 215 44, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 45 215 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 45 215 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 45 215 53, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 45 215 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 45 215 53, srcInfoPoints = []}) "c_wchmod"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 54 215 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 54 215 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 54 215 60, srcInfoPoints = []}) "p_dest")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 61 215 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 61 215 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 215 61 215 65, srcInfoPoints = []}) "mode")))))])))])))])))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 1 257 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 257 17 257 19]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 1 257 16, srcInfoPoints = []}) "createDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 257 29 257 31]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 37, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 257 35 257 36,SrcSpan "tests/examples/Directory.hs" 257 36 257 37]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 257 35 257 36,SrcSpan "tests/examples/Directory.hs" 257 36 257 37]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 257 35 257 36,SrcSpan "tests/examples/Directory.hs" 257 36 257 37]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 259 37, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 259 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 258 16, srcInfoPoints = []}) "createDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 17 258 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 17 258 21, srcInfoPoints = []}) "path")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 22 259 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 258 22 258 23]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 24 259 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 258 24 258 26,SrcSpan "tests/examples/Directory.hs" 259 3 259 3,SrcSpan "tests/examples/Directory.hs" 264 1 264 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 37, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 37, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 29, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 24, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 24, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 24, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 24, srcInfoPoints = []}) "createDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 25 259 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 25 259 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 25 259 29, srcInfoPoints = []}) "path")))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 30 259 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 30 259 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 30 259 37, srcInfoPoints = []}) "Nothing"))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 1 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 264 26 264 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 1 264 25, srcInfoPoints = []}) "createDirectoryIfMissing"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 265 18 265 20]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33, srcInfoPoints = []}) "Bool"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 266 18 266 20]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 26, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 266 24 266 25,SrcSpan "tests/examples/Directory.hs" 266 25 266 26]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 266 24 266 25,SrcSpan "tests/examples/Directory.hs" 266 25 266 26]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 266 24 266 25,SrcSpan "tests/examples/Directory.hs" 266 25 266 26]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 270 3 270 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 270 3 270 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 267 25, srcInfoPoints = []}) "createDirectoryIfMissing") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 26 267 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 26 267 40, srcInfoPoints = []}) "create_parents"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 41 267 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 41 267 46, srcInfoPoints = []}) "path0")] (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 3 269 57, srcInfoPoints = []}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 3 268 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 268 3 268 4,SrcSpan "tests/examples/Directory.hs" 268 20 268 21]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19, srcInfoPoints = []}) "create_parents")))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 32, srcInfoPoints = []}) "createDirs"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 33 268 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 268 33 268 34,SrcSpan "tests/examples/Directory.hs" 268 47 268 48]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 34 268 47, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 34 268 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 34 268 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 34 268 41, srcInfoPoints = []}) "parents"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 42 268 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 42 268 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 42 268 47, srcInfoPoints = []}) "path0")))))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 3 269 57, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 269 3 269 4,SrcSpan "tests/examples/Directory.hs" 269 20 269 21]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14, srcInfoPoints = []}) "otherwise")))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 57, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 32, srcInfoPoints = []}) "createDirs"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 33 269 57, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 269 33 269 34,SrcSpan "tests/examples/Directory.hs" 269 56 269 57]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 56, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 38, srcInfoPoints = []}) "take"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 39 269 40, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 39 269 40, srcInfoPoints = []}) 1 "1"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 41 269 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 269 41 269 42,SrcSpan "tests/examples/Directory.hs" 269 55 269 56]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 42 269 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 42 269 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 42 269 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 42 269 49, srcInfoPoints = []}) "parents"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 50 269 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 50 269 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 50 269 55, srcInfoPoints = []}) "path0"))))))))]) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 271 5 271 5,SrcSpan "tests/examples/Directory.hs" 273 5 273 5,SrcSpan "tests/examples/Directory.hs" 274 5 274 5,SrcSpan "tests/examples/Directory.hs" 275 5 275 5,SrcSpan "tests/examples/Directory.hs" 280 5 280 5,SrcSpan "tests/examples/Directory.hs" 281 5 281 5,SrcSpan "tests/examples/Directory.hs" 343 1 343 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 68, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 12, srcInfoPoints = []}) "parents")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 13 271 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 271 13 271 14]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 15 271 68, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 15 271 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 15 271 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 15 271 22, srcInfoPoints = []}) "reverse"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 23 271 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 23 271 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 23 271 24, srcInfoPoints = []}) "."))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 25 271 68, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 25 271 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 25 271 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 25 271 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 25 271 31, srcInfoPoints = []}) "scanl1"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 32 271 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 271 32 271 33,SrcSpan "tests/examples/Directory.hs" 271 33 271 36,SrcSpan "tests/examples/Directory.hs" 271 36 271 37]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 32 271 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 271 32 271 33,SrcSpan "tests/examples/Directory.hs" 271 33 271 36,SrcSpan "tests/examples/Directory.hs" 271 36 271 37]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 33 271 36, srcInfoPoints = []}) "</>")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 38 271 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 38 271 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 38 271 39, srcInfoPoints = []}) "."))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 40 271 68, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 40 271 56, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 40 271 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 40 271 56, srcInfoPoints = []}) "splitDirectories"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 57 271 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 57 271 58, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 57 271 58, srcInfoPoints = []}) "."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 59 271 68, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 59 271 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 59 271 68, srcInfoPoints = []}) "normalise"))))))) Nothing,FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 278 28, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 273 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 273 15, srcInfoPoints = []}) "createDirs") [PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 16 273 18, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 273 16 273 17,SrcSpan "tests/examples/Directory.hs" 273 17 273 18]}) []] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 27 273 38, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 273 27 273 28]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 29 273 38, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 29 273 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 29 273 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 29 273 35, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 36 273 38, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 273 36 273 37,SrcSpan "tests/examples/Directory.hs" 273 37 273 38]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 36 273 38, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 273 36 273 37,SrcSpan "tests/examples/Directory.hs" 273 37 273 38]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 36 273 38, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 273 36 273 37,SrcSpan "tests/examples/Directory.hs" 273 37 273 38]})))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 5 274 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 5 274 15, srcInfoPoints = []}) "createDirs") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 16 274 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 274 16 274 17,SrcSpan "tests/examples/Directory.hs" 274 23 274 24]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 17 274 23, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 17 274 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 17 274 20, srcInfoPoints = []}) "dir")) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 20 274 21, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 20 274 21, srcInfoPoints = []}))) (PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 21 274 23, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 274 21 274 22,SrcSpan "tests/examples/Directory.hs" 274 22 274 23]}) []))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 27 274 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 274 27 274 28]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 29 274 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 29 274 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 29 274 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 29 274 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 29 274 38, srcInfoPoints = []}) "createDir"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 39 274 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 39 274 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 39 274 42, srcInfoPoints = []}) "dir")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 43 274 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 43 274 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 43 274 48, srcInfoPoints = []}) "throw"))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 5 278 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 5 275 15, srcInfoPoints = []}) "createDirs") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 16 275 26, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 275 16 275 17,SrcSpan "tests/examples/Directory.hs" 275 25 275 26]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 17 275 25, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 17 275 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 17 275 20, srcInfoPoints = []}) "dir")) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 20 275 21, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 20 275 21, srcInfoPoints = []}))) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 21 275 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 21 275 25, srcInfoPoints = []}) "dirs")))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 27 278 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 275 27 275 28]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 7 278 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 7 276 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 7 276 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 7 276 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 7 276 16, srcInfoPoints = []}) "createDir"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 17 276 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 17 276 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 17 276 20, srcInfoPoints = []}) "dir")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 21 276 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 21 276 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 21 276 22, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 23 278 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 276 23 276 24,SrcSpan "tests/examples/Directory.hs" 276 26 276 28]}) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 24 276 25, srcInfoPoints = []})] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 276 29 278 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 276 29 276 31,SrcSpan "tests/examples/Directory.hs" 277 9 277 9,SrcSpan "tests/examples/Directory.hs" 278 9 278 9,SrcSpan "tests/examples/Directory.hs" 280 5 280 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 9 277 24, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 9 277 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 9 277 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 9 277 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 9 277 19, srcInfoPoints = []}) "createDirs"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 20 277 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 20 277 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 277 20 277 24, srcInfoPoints = []}) "dirs")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 9 278 18, srcInfoPoints = []}) "createDir"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 19 278 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 19 278 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 19 278 22, srcInfoPoints = []}) "dir")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 23 278 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 23 278 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 278 23 278 28, srcInfoPoints = []}) "throw"))))])))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 5 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 15 280 17]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 5 280 14, srcInfoPoints = []}) "createDir"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 27 280 29]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 26, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 30 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 53 280 55]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 30 280 52, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 30 280 31,SrcSpan "tests/examples/Directory.hs" 280 51 280 52]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 31 280 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 43 280 45]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 31 280 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 31 280 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 31 280 42, srcInfoPoints = []}) "IOException"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 46 280 51, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 46 280 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 46 280 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 46 280 48, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 49 280 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 49 280 50,SrcSpan "tests/examples/Directory.hs" 280 50 280 51]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 49 280 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 49 280 50,SrcSpan "tests/examples/Directory.hs" 280 50 280 51]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 49 280 51, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 49 280 50,SrcSpan "tests/examples/Directory.hs" 280 50 280 51]}))))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 56 280 61, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 56 280 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 56 280 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 56 280 58, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 59 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 59 280 60,SrcSpan "tests/examples/Directory.hs" 280 60 280 61]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 59 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 59 280 60,SrcSpan "tests/examples/Directory.hs" 280 60 280 61]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 59 280 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 280 59 280 60,SrcSpan "tests/examples/Directory.hs" 280 60 280 61]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 300 46, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 300 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 281 14, srcInfoPoints = []}) "createDir") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 15 281 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 15 281 18, srcInfoPoints = []}) "dir"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 19 281 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 19 281 34, srcInfoPoints = []}) "notExistHandler")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 35 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 281 35 281 36]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 37 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 281 37 281 39,SrcSpan "tests/examples/Directory.hs" 282 7 282 7,SrcSpan "tests/examples/Directory.hs" 283 7 283 7,SrcSpan "tests/examples/Directory.hs" 343 1 343 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 7 282 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 282 9 282 11]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 7 282 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 7 282 8, srcInfoPoints = []}) "r")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 12 282 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 12 282 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 12 282 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 12 282 15, srcInfoPoints = []}) "try"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 16 282 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 16 282 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 16 282 17, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 18 282 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 18 282 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 18 282 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 18 282 33, srcInfoPoints = []}) "createDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 34 282 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 34 282 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 282 34 282 37, srcInfoPoints = []}) "dir"))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 7 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 7 283 11,SrcSpan "tests/examples/Directory.hs" 283 41 283 43,SrcSpan "tests/examples/Directory.hs" 284 9 284 9,SrcSpan "tests/examples/Directory.hs" 285 9 285 9,SrcSpan "tests/examples/Directory.hs" 343 1 343 0]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 7 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 7 283 11,SrcSpan "tests/examples/Directory.hs" 283 41 283 43,SrcSpan "tests/examples/Directory.hs" 284 9 284 9,SrcSpan "tests/examples/Directory.hs" 285 9 285 9,SrcSpan "tests/examples/Directory.hs" 343 1 343 0]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 12 283 40, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 12 283 13,SrcSpan "tests/examples/Directory.hs" 283 39 283 40]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 13 283 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 15 283 17]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 13 283 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 13 283 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 13 283 14, srcInfoPoints = []}) "r"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 18 283 39, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 18 283 36, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 18 283 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 18 283 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 18 283 24, srcInfoPoints = []}) "Either"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 25 283 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 25 283 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 25 283 36, srcInfoPoints = []}) "IOException")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 37 283 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 37 283 38,SrcSpan "tests/examples/Directory.hs" 283 38 283 39]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 37 283 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 37 283 38,SrcSpan "tests/examples/Directory.hs" 283 38 283 39]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 283 37 283 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 283 37 283 38,SrcSpan "tests/examples/Directory.hs" 283 38 283 39]}))))))) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 9 284 48, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 9 284 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 9 284 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 9 284 14, srcInfoPoints = []}) "Right")) [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 15 284 17, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 15 284 16,SrcSpan "tests/examples/Directory.hs" 284 16 284 17]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 15 284 17, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 15 284 16,SrcSpan "tests/examples/Directory.hs" 284 16 284 17]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 15 284 17, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 15 284 16,SrcSpan "tests/examples/Directory.hs" 284 16 284 17]}))) []]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 36 284 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 36 284 38]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 39 284 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 39 284 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 39 284 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 39 284 45, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 46 284 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 46 284 47,SrcSpan "tests/examples/Directory.hs" 284 47 284 48]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 46 284 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 46 284 47,SrcSpan "tests/examples/Directory.hs" 284 47 284 48]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 284 46 284 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 284 46 284 47,SrcSpan "tests/examples/Directory.hs" 284 47 284 48]})))))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 9 300 46, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 9 285 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 9 285 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 9 285 13, srcInfoPoints = []}) "Left")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 15 285 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 285 15 285 16, srcInfoPoints = []}) "e")]) (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 11 300 46, srcInfoPoints = []}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 11 286 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 286 11 286 12,SrcSpan "tests/examples/Directory.hs" 286 36 286 38]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 13 286 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 13 286 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 13 286 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 13 286 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 13 286 32, srcInfoPoints = []}) "isDoesNotExistError"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 34 286 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 34 286 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 34 286 35, srcInfoPoints = []}) "e"))))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 39 286 56, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 39 286 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 39 286 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 39 286 54, srcInfoPoints = []}) "notExistHandler"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 55 286 56, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 55 286 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 286 55 286 56, srcInfoPoints = []}) "e")))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 11 299 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 294 11 294 12,SrcSpan "tests/examples/Directory.hs" 294 36 294 38]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 13 294 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 13 294 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 13 294 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 13 294 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 13 294 33, srcInfoPoints = []}) "isAlreadyExistsError"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 34 294 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 34 294 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 34 294 35, srcInfoPoints = []}) "e"))))] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 39 299 68, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 39 299 16, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 294 39 294 40,SrcSpan "tests/examples/Directory.hs" 299 15 299 16]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 294 40 298 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 294 40 294 42,SrcSpan "tests/examples/Directory.hs" 295 15 295 15,SrcSpan "tests/examples/Directory.hs" 299 15 299 15,SrcSpan "tests/examples/Directory.hs" 299 15 299 15]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 298 39, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 298 39, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 295 60, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 295 56, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 295 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 295 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 15 295 29, srcInfoPoints = []}) "withFileStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 30 295 56, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 30 295 56, srcInfoPoints = []}) "createDirectoryIfMissing" "createDirectoryIfMissing"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 57 295 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 57 295 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 57 295 60, srcInfoPoints = []}) "dir")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 61 295 62, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 61 295 62, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 61 295 62, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 63 298 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 295 63 295 64,SrcSpan "tests/examples/Directory.hs" 295 67 295 69]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 64 295 66, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 64 295 66, srcInfoPoints = []}) "st")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 295 70 298 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 295 70 295 72,SrcSpan "tests/examples/Directory.hs" 296 18 296 18,SrcSpan "tests/examples/Directory.hs" 297 18 297 18,SrcSpan "tests/examples/Directory.hs" 299 15 299 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 18 296 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 296 24 296 26]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 18 296 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 18 296 23, srcInfoPoints = []}) "isDir")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 27 296 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 27 296 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 27 296 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 27 296 38, srcInfoPoints = []}) "isDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 39 296 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 39 296 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 296 39 296 41, srcInfoPoints = []}) "st")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 18 298 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 297 18 297 20,SrcSpan "tests/examples/Directory.hs" 297 27 297 31,SrcSpan "tests/examples/Directory.hs" 298 27 298 31]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 18 298 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 297 18 297 20,SrcSpan "tests/examples/Directory.hs" 297 27 297 31,SrcSpan "tests/examples/Directory.hs" 298 27 298 31]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 21 297 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 21 297 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 21 297 26, srcInfoPoints = []}) "isDir"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 32 297 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 32 297 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 32 297 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 32 297 38, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 39 297 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 297 39 297 40,SrcSpan "tests/examples/Directory.hs" 297 40 297 41]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 39 297 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 297 39 297 40,SrcSpan "tests/examples/Directory.hs" 297 40 297 41]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 297 39 297 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 297 39 297 40,SrcSpan "tests/examples/Directory.hs" 297 40 297 41]}))))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 32 298 39, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 32 298 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 32 298 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 32 298 37, srcInfoPoints = []}) "throw"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 38 298 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 38 298 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 298 38 298 39, srcInfoPoints = []}) "e")))))])))])) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 17 299 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 17 299 18,SrcSpan "tests/examples/Directory.hs" 299 18 299 23,SrcSpan "tests/examples/Directory.hs" 299 23 299 24]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 17 299 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 17 299 18,SrcSpan "tests/examples/Directory.hs" 299 18 299 23,SrcSpan "tests/examples/Directory.hs" 299 23 299 24]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 18 299 23, srcInfoPoints = []}) "catch"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 25 299 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 25 299 26,SrcSpan "tests/examples/Directory.hs" 299 67 299 68]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 26 299 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 44 299 46]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 26 299 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 26 299 27,SrcSpan "tests/examples/Directory.hs" 299 42 299 43]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 27 299 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 27 299 28,SrcSpan "tests/examples/Directory.hs" 299 30 299 32]}) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 28 299 29, srcInfoPoints = []})] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 33 299 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 33 299 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 33 299 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 33 299 39, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 40 299 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 40 299 41,SrcSpan "tests/examples/Directory.hs" 299 41 299 42]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 40 299 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 40 299 41,SrcSpan "tests/examples/Directory.hs" 299 41 299 42]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 40 299 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 40 299 41,SrcSpan "tests/examples/Directory.hs" 299 41 299 42]}))))))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 47 299 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 59 299 61]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 47 299 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 47 299 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 47 299 58, srcInfoPoints = []}) "IOException"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 62 299 67, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 62 299 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 62 299 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 62 299 64, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 65 299 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 65 299 66,SrcSpan "tests/examples/Directory.hs" 299 66 299 67]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 65 299 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 65 299 66,SrcSpan "tests/examples/Directory.hs" 299 66 299 67]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 299 65 299 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 299 65 299 66,SrcSpan "tests/examples/Directory.hs" 299 66 299 67]}))))))))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 11 300 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 300 11 300 12,SrcSpan "tests/examples/Directory.hs" 300 36 300 38]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 13 300 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 13 300 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 13 300 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 13 300 22, srcInfoPoints = []}) "otherwise")))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 39 300 46, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 39 300 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 39 300 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 39 300 44, srcInfoPoints = []}) "throw"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 45 300 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 45 300 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 300 45 300 46, srcInfoPoints = []}) "e"))))]) Nothing])])) Nothing]]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 1 343 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 343 17 343 19]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 1 343 16, srcInfoPoints = []}) "removeDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 343 29 343 31]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 37, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 343 35 343 36,SrcSpan "tests/examples/Directory.hs" 343 36 343 37]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 343 35 343 36,SrcSpan "tests/examples/Directory.hs" 343 36 343 37]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 343 35 343 36,SrcSpan "tests/examples/Directory.hs" 343 36 343 37]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 345 29, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 345 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 344 16, srcInfoPoints = []}) "removeDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 17 344 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 17 344 21, srcInfoPoints = []}) "path")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 22 345 29, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 344 22 344 23]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 29, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24, srcInfoPoints = []}) "removeDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29, srcInfoPoints = []}) "path"))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 1 350 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 350 26 350 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 1 350 25, srcInfoPoints = []}) "removeDirectoryRecursive"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 350 38 350 40]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 46, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 350 44 350 45,SrcSpan "tests/examples/Directory.hs" 350 45 350 46]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 350 44 350 45,SrcSpan "tests/examples/Directory.hs" 350 45 350 46]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 350 44 350 45,SrcSpan "tests/examples/Directory.hs" 350 45 350 46]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 355 3 355 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 355 3 355 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 351 25, srcInfoPoints = []}) "removeDirectoryRecursive") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 26 351 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 26 351 34, srcInfoPoints = []}) "startLoc")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 35 354 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 351 35 351 36]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 37 354 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 351 37 351 39,SrcSpan "tests/examples/Directory.hs" 352 3 352 3,SrcSpan "tests/examples/Directory.hs" 353 3 353 3,SrcSpan "tests/examples/Directory.hs" 354 3 354 3,SrcSpan "tests/examples/Directory.hs" 355 3 355 3,SrcSpan "tests/examples/Directory.hs" 355 3 355 3]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 40, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 352 8 352 10]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 7, srcInfoPoints = []}) "cont")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 31, srcInfoPoints = []}) "getDirectoryContents"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 32 352 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 32 352 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 32 352 40, srcInfoPoints = []}) "startLoc")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 69, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 69, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 12, srcInfoPoints = []}) "sequence_"))) (ListComp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 13 353 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 353 13 353 14,SrcSpan "tests/examples/Directory.hs" 353 34 353 35,SrcSpan "tests/examples/Directory.hs" 353 45 353 46,SrcSpan "tests/examples/Directory.hs" 353 68 353 69]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 14 353 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 14 353 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 14 353 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 14 353 16, srcInfoPoints = []}) "rm"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 17 353 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 353 17 353 18,SrcSpan "tests/examples/Directory.hs" 353 32 353 33]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 18 353 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 18 353 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 18 353 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 18 353 26, srcInfoPoints = []}) "startLoc"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 27 353 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 27 353 30, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 27 353 30, srcInfoPoints = []}) "</>"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 31 353 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 31 353 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 31 353 32, srcInfoPoints = []}) "x")))))) [QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 36 353 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 353 38 353 40]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 36 353 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 353 38 353 40]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 36 353 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 36 353 37, srcInfoPoints = []}) "x")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 41 353 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 41 353 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 41 353 45, srcInfoPoints = []}) "cont")))),QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 68, srcInfoPoints = []}) (Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 68, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 68, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 47 353 48, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 49 353 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 49 353 51, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 49 353 51, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 52 353 55, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 52 353 55, srcInfoPoints = []}) "." "."))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 56 353 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 56 353 58, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 56 353 58, srcInfoPoints = []}) "&&"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 59 353 68, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 59 353 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 59 353 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 59 353 60, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 61 353 63, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 61 353 63, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 61 353 63, srcInfoPoints = []}) "/="))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 64 353 68, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 64 353 68, srcInfoPoints = []}) ".." "..")))))])),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 18, srcInfoPoints = []}) "removeDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 19 354 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 19 354 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 19 354 27, srcInfoPoints = []}) "startLoc"))))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 5 356 5,SrcSpan "tests/examples/Directory.hs" 357 5 357 5,SrcSpan "tests/examples/Directory.hs" 399 1 399 0]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 356 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 8 356 10]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 356 7, srcInfoPoints = []}) "rm"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 20 356 22]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 19, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 23 356 28, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 23 356 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 23 356 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 23 356 25, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 26 356 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 26 356 27,SrcSpan "tests/examples/Directory.hs" 356 27 356 28]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 26 356 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 26 356 27,SrcSpan "tests/examples/Directory.hs" 356 27 356 28]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 26 356 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 356 26 356 27,SrcSpan "tests/examples/Directory.hs" 356 27 356 28]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 363 37, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 363 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 357 7, srcInfoPoints = []}) "rm") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 8 357 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 8 357 9, srcInfoPoints = []}) "f")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 10 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 357 10 357 11]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 12 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 357 12 357 14,SrcSpan "tests/examples/Directory.hs" 357 15 357 15,SrcSpan "tests/examples/Directory.hs" 358 15 358 15,SrcSpan "tests/examples/Directory.hs" 399 1 399 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 15 357 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 357 20 357 22]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 15 357 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 15 357 19, srcInfoPoints = []}) "temp")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 23 357 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 23 357 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 23 357 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 23 357 26, srcInfoPoints = []}) "try"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 27 357 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 357 27 357 28,SrcSpan "tests/examples/Directory.hs" 357 40 357 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 28 357 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 28 357 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 28 357 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 28 357 38, srcInfoPoints = []}) "removeFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 39 357 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 39 357 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 39 357 40, srcInfoPoints = []}) "f")))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 358 15 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 358 15 358 19,SrcSpan "tests/examples/Directory.hs" 358 25 358 27,SrcSpan "tests/examples/Directory.hs" 359 17 359 17,SrcSpan "tests/examples/Directory.hs" 363 17 363 17,SrcSpan "tests/examples/Directory.hs" 399 1 399 0]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 358 15 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 358 15 358 19,SrcSpan "tests/examples/Directory.hs" 358 25 358 27,SrcSpan "tests/examples/Directory.hs" 359 17 359 17,SrcSpan "tests/examples/Directory.hs" 363 17 363 17,SrcSpan "tests/examples/Directory.hs" 399 1 399 0]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 358 20 358 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 358 20 358 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 358 20 358 24, srcInfoPoints = []}) "temp"))) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 17 362 57, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 17 359 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 17 359 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 17 359 21, srcInfoPoints = []}) "Left")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 22 359 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 22 359 23, srcInfoPoints = []}) "e")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 25 362 57, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 359 25 359 27]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 28 362 57, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 359 28 359 30,SrcSpan "tests/examples/Directory.hs" 359 31 359 31,SrcSpan "tests/examples/Directory.hs" 361 31 361 31,SrcSpan "tests/examples/Directory.hs" 362 31 362 31,SrcSpan "tests/examples/Directory.hs" 363 17 363 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 31 359 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 359 37 359 39]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 31 359 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 31 359 36, srcInfoPoints = []}) "isDir")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 40 359 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 40 359 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 40 359 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 40 359 58, srcInfoPoints = []}) "doesDirectoryExist"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 59 359 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 59 359 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 359 59 359 60, srcInfoPoints = []}) "f")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 72, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 72, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 31 361 37, srcInfoPoints = []}) "unless"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 38 361 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 38 361 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 38 361 43, srcInfoPoints = []}) "isDir")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 44 361 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 44 361 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 44 361 45, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 46 361 72, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 46 361 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 46 361 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 46 361 51, srcInfoPoints = []}) "throw"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 52 361 72, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 361 52 361 53,SrcSpan "tests/examples/Directory.hs" 361 71 361 72]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 53 361 71, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 361 55 361 57]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 53 361 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 53 361 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 53 361 54, srcInfoPoints = []}) "e"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 58 361 71, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 58 361 71, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 361 58 361 71, srcInfoPoints = []}) "SomeException"))))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 31 362 57, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 31 362 57, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 31 362 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 31 362 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 31 362 55, srcInfoPoints = []}) "removeDirectoryRecursive"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 56 362 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 56 362 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 362 56 362 57, srcInfoPoints = []}) "f"))))])) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 17 363 37, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 17 363 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 17 363 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 17 363 22, srcInfoPoints = []}) "Right")) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 23 363 24, srcInfoPoints = []})]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 25 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 363 25 363 27]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 28 363 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 28 363 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 28 363 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 28 363 34, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 35 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 363 35 363 36,SrcSpan "tests/examples/Directory.hs" 363 36 363 37]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 35 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 363 35 363 36,SrcSpan "tests/examples/Directory.hs" 363 36 363 37]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 363 35 363 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 363 35 363 36,SrcSpan "tests/examples/Directory.hs" 363 36 363 37]})))))) Nothing])])) Nothing]]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 1 399 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 399 12 399 14]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 1 399 11, srcInfoPoints = []}) "removeFile"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 399 24 399 26]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 32, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 399 30 399 31,SrcSpan "tests/examples/Directory.hs" 399 31 399 32]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 399 30 399 31,SrcSpan "tests/examples/Directory.hs" 399 31 399 32]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 399 30 399 31,SrcSpan "tests/examples/Directory.hs" 399 31 399 32]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 401 24, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 401 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 400 11, srcInfoPoints = []}) "removeFile") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 12 400 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 12 400 16, srcInfoPoints = []}) "path")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 17 401 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 400 17 400 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19, srcInfoPoints = []}) "deleteFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24, srcInfoPoints = []}) "path"))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 1 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 17 452 19]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 1 452 16, srcInfoPoints = []}) "renameDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 29 452 31]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 41 452 43]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 49, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 47 452 48,SrcSpan "tests/examples/Directory.hs" 452 48 452 49]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 47 452 48,SrcSpan "tests/examples/Directory.hs" 452 48 452 49]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 452 47 452 48,SrcSpan "tests/examples/Directory.hs" 452 48 452 49]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 463 64, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 463 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 453 16, srcInfoPoints = []}) "renameDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 17 453 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 17 453 22, srcInfoPoints = []}) "opath"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 23 453 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 23 453 28, srcInfoPoints = []}) "npath")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 29 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 453 29 453 30]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 31 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 453 31 453 33,SrcSpan "tests/examples/Directory.hs" 456 4 456 4,SrcSpan "tests/examples/Directory.hs" 509 1 509 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 463 64, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 463 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 42, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 18, srcInfoPoints = []}) "withFileStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 19 456 36, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 19 456 36, srcInfoPoints = []}) "renameDirectory" "renameDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 37 456 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 37 456 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 37 456 42, srcInfoPoints = []}) "opath")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 43 456 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 43 456 44, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 43 456 44, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 45 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 456 45 456 46,SrcSpan "tests/examples/Directory.hs" 456 49 456 51]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 46 456 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 46 456 48, srcInfoPoints = []}) "st")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 52 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 456 52 456 54,SrcSpan "tests/examples/Directory.hs" 457 4 457 4,SrcSpan "tests/examples/Directory.hs" 457 4 457 4,SrcSpan "tests/examples/Directory.hs" 458 4 458 4,SrcSpan "tests/examples/Directory.hs" 509 1 509 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 4 457 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 457 11 457 13]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 4 457 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 4 457 10, srcInfoPoints = []}) "is_dir")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 14 457 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 14 457 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 14 457 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 14 457 25, srcInfoPoints = []}) "isDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 26 457 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 26 457 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 457 26 457 28, srcInfoPoints = []}) "st")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 4 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 458 4 458 6,SrcSpan "tests/examples/Directory.hs" 459 5 459 9,SrcSpan "tests/examples/Directory.hs" 462 5 462 9]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 4 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 458 4 458 6,SrcSpan "tests/examples/Directory.hs" 459 5 459 9,SrcSpan "tests/examples/Directory.hs" 462 5 462 9]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 7 458 19, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 458 7 458 8,SrcSpan "tests/examples/Directory.hs" 458 18 458 19]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 8 458 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 8 458 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 8 458 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 8 458 11, srcInfoPoints = []}) "not"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 12 458 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 12 458 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 458 12 458 18, srcInfoPoints = []}) "is_dir"))))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 10 461 45, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 10 459 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 10 459 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 10 459 21, srcInfoPoints = []}) "ioException"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 22 461 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 459 22 459 23,SrcSpan "tests/examples/Directory.hs" 461 44 461 45]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 23 461 44, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 23 460 95, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 23 459 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 23 459 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 459 23 459 40, srcInfoPoints = []}) "ioeSetErrorString"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 27 460 95, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 460 27 460 28,SrcSpan "tests/examples/Directory.hs" 460 94 460 95]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 94, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 81, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 73, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 28 460 37, srcInfoPoints = []}) "mkIOError"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 38 460 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 38 460 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 38 460 55, srcInfoPoints = []}) "InappropriateType")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 56 460 73, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 56 460 73, srcInfoPoints = []}) "renameDirectory" "renameDirectory"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 74 460 81, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 74 460 81, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 74 460 81, srcInfoPoints = []}) "Nothing")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 82 460 94, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 460 82 460 83,SrcSpan "tests/examples/Directory.hs" 460 93 460 94]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 83 460 93, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 83 460 87, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 83 460 87, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 83 460 87, srcInfoPoints = []}) "Just"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 88 460 93, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 88 460 93, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 460 88 460 93, srcInfoPoints = []}) "opath")))))))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 461 27 461 44, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 461 27 461 44, srcInfoPoints = []}) "not a directory" "not a directory"))))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 462 10 463 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 462 10 462 12,SrcSpan "tests/examples/Directory.hs" 463 4 463 4,SrcSpan "tests/examples/Directory.hs" 463 4 463 4,SrcSpan "tests/examples/Directory.hs" 509 1 509 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 20, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 20, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 20, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 4 463 20, srcInfoPoints = []}) "moveFileEx"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 21 463 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 21 463 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 21 463 26, srcInfoPoints = []}) "opath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 27 463 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 27 463 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 27 463 32, srcInfoPoints = []}) "npath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 33 463 64, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 33 463 64, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 33 463 64, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 463 33 463 64, srcInfoPoints = []}) "mOVEFILE_REPLACE_EXISTING"))))]))])))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 1 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 12 509 14]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 1 509 11, srcInfoPoints = []}) "renameFile"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 24 509 26]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 36 509 38]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 44, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 42 509 43,SrcSpan "tests/examples/Directory.hs" 509 43 509 44]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 42 509 43,SrcSpan "tests/examples/Directory.hs" 509 43 509 44]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 509 42 509 43,SrcSpan "tests/examples/Directory.hs" 509 43 509 44]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 520 64, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 520 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 510 11, srcInfoPoints = []}) "renameFile") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 12 510 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 12 510 17, srcInfoPoints = []}) "opath"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 18 510 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 18 510 23, srcInfoPoints = []}) "npath")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 24 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 510 24 510 25]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 26 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 510 26 510 28,SrcSpan "tests/examples/Directory.hs" 513 4 513 4,SrcSpan "tests/examples/Directory.hs" 528 1 528 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 520 64, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 520 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 46, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 27, srcInfoPoints = []}) "withFileOrSymlinkStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 28 513 40, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 28 513 40, srcInfoPoints = []}) "renameFile" "renameFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 41 513 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 41 513 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 41 513 46, srcInfoPoints = []}) "opath")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 47 513 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 47 513 48, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 47 513 48, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 49 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 513 49 513 50,SrcSpan "tests/examples/Directory.hs" 513 53 513 55]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 50 513 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 50 513 52, srcInfoPoints = []}) "st")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 56 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 513 56 513 58,SrcSpan "tests/examples/Directory.hs" 514 4 514 4,SrcSpan "tests/examples/Directory.hs" 514 4 514 4,SrcSpan "tests/examples/Directory.hs" 515 4 515 4,SrcSpan "tests/examples/Directory.hs" 528 1 528 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 4 514 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 514 11 514 13]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 4 514 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 4 514 10, srcInfoPoints = []}) "is_dir")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 14 514 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 14 514 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 14 514 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 14 514 25, srcInfoPoints = []}) "isDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 26 514 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 26 514 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 514 26 514 28, srcInfoPoints = []}) "st")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 515 4 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 515 4 515 6,SrcSpan "tests/examples/Directory.hs" 516 5 516 9,SrcSpan "tests/examples/Directory.hs" 519 5 519 9]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 515 4 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 515 4 515 6,SrcSpan "tests/examples/Directory.hs" 516 5 516 9,SrcSpan "tests/examples/Directory.hs" 519 5 519 9]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 515 7 515 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 515 7 515 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 515 7 515 13, srcInfoPoints = []}) "is_dir"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 10 518 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 10 516 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 10 516 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 10 516 21, srcInfoPoints = []}) "ioException"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 22 518 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 516 22 516 23,SrcSpan "tests/examples/Directory.hs" 518 31 518 32]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 23 518 31, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 23 517 78, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 23 516 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 23 516 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 516 23 516 40, srcInfoPoints = []}) "ioeSetErrorString"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 15 517 78, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 517 15 517 16,SrcSpan "tests/examples/Directory.hs" 517 77 517 78]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 77, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 56, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 16 517 25, srcInfoPoints = []}) "mkIOError"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 26 517 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 26 517 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 26 517 43, srcInfoPoints = []}) "InappropriateType")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 44 517 56, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 44 517 56, srcInfoPoints = []}) "renameFile" "renameFile"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 57 517 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 57 517 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 57 517 64, srcInfoPoints = []}) "Nothing")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 65 517 77, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 517 65 517 66,SrcSpan "tests/examples/Directory.hs" 517 76 517 77]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 66 517 76, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 66 517 70, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 66 517 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 66 517 70, srcInfoPoints = []}) "Just"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 71 517 76, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 71 517 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 517 71 517 76, srcInfoPoints = []}) "opath")))))))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 518 15 518 31, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 518 15 518 31, srcInfoPoints = []}) "is a directory" "is a directory"))))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 519 10 520 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 519 10 519 12,SrcSpan "tests/examples/Directory.hs" 520 4 520 4,SrcSpan "tests/examples/Directory.hs" 520 4 520 4,SrcSpan "tests/examples/Directory.hs" 528 1 528 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 64, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 20, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 20, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 20, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 4 520 20, srcInfoPoints = []}) "moveFileEx"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 21 520 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 21 520 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 21 520 26, srcInfoPoints = []}) "opath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 27 520 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 27 520 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 27 520 32, srcInfoPoints = []}) "npath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 33 520 64, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 33 520 64, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 33 520 64, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 520 33 520 64, srcInfoPoints = []}) "mOVEFILE_REPLACE_EXISTING"))))]))])))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 1 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 10 528 12]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 1 528 9, srcInfoPoints = []}) "copyFile"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 22 528 24]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 34 528 36]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 42, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 40 528 41,SrcSpan "tests/examples/Directory.hs" 528 41 528 42]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 40 528 41,SrcSpan "tests/examples/Directory.hs" 528 41 528 42]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 528 40 528 41,SrcSpan "tests/examples/Directory.hs" 528 41 528 42]}))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 5 531 10]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 5 531 10]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 529 9, srcInfoPoints = []}) "copyFile") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 10 529 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 10 529 19, srcInfoPoints = []}) "fromFPath"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 20 529 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 20 529 27, srcInfoPoints = []}) "toFPath")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 28 530 73, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 529 28 529 29]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 73, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9, srcInfoPoints = []}) "copy"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 10 530 25, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 530 10 530 11,SrcSpan "tests/examples/Directory.hs" 530 11 530 24,SrcSpan "tests/examples/Directory.hs" 530 24 530 25]}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 10 530 25, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 530 10 530 11,SrcSpan "tests/examples/Directory.hs" 530 11 530 24,SrcSpan "tests/examples/Directory.hs" 530 24 530 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 11 530 24, srcInfoPoints = []}) "Prelude") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 11 530 24, srcInfoPoints = []}) "catch"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 26 530 73, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 530 26 530 27,SrcSpan "tests/examples/Directory.hs" 530 72 530 73]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 27 530 72, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 530 27 530 28,SrcSpan "tests/examples/Directory.hs" 530 32 530 34]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 28 530 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 28 530 31, srcInfoPoints = []}) "exc")] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 35 530 72, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 35 530 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 35 530 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 35 530 40, srcInfoPoints = []}) "throw"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 41 530 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 41 530 42, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 41 530 42, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 43 530 72, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 43 530 61, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 43 530 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 43 530 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 43 530 57, srcInfoPoints = []}) "ioeSetLocation"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 58 530 61, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 58 530 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 58 530 61, srcInfoPoints = []}) "exc")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 62 530 72, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 62 530 72, srcInfoPoints = []}) "copyFile" "copyFile")))))))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 11 531 11,SrcSpan "tests/examples/Directory.hs" 537 11 537 11,SrcSpan "tests/examples/Directory.hs" 538 11 538 11,SrcSpan "tests/examples/Directory.hs" 541 11 541 11,SrcSpan "tests/examples/Directory.hs" 543 11 543 11,SrcSpan "tests/examples/Directory.hs" 549 11 549 11,SrcSpan "tests/examples/Directory.hs" 550 11 550 11,SrcSpan "tests/examples/Directory.hs" 551 11 551 11,SrcSpan "tests/examples/Directory.hs" 560 1 560 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 536 48, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 531 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 531 15, srcInfoPoints = []}) "copy")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 16 536 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 16 531 17]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 536 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 531 68, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 531 61, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 531 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 531 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 531 25, srcInfoPoints = []}) "bracket"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 26 531 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 26 531 27,SrcSpan "tests/examples/Directory.hs" 531 60 531 61]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 27 531 60, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 27 531 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 27 531 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 27 531 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 27 531 41, srcInfoPoints = []}) "openBinaryFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 42 531 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 42 531 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 42 531 51, srcInfoPoints = []}) "fromFPath")))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 52 531 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 52 531 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 52 531 60, srcInfoPoints = []}) "ReadMode")))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 62 531 68, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 62 531 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 62 531 68, srcInfoPoints = []}) "hClose")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 69 531 70, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 69 531 70, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 69 531 70, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 71 536 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 531 71 531 72,SrcSpan "tests/examples/Directory.hs" 531 78 531 80]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 72 531 77, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 72 531 77, srcInfoPoints = []}) "hFrom")] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 536 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 532 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 532 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 532 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 532 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 18 532 32, srcInfoPoints = []}) "bracketOnError"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 33 532 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 33 532 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 33 532 40, srcInfoPoints = []}) "openTmp")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 41 532 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 41 532 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 41 532 49, srcInfoPoints = []}) "cleanTmp")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 50 532 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 50 532 51, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 50 532 51, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 52 536 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 532 52 532 53,SrcSpan "tests/examples/Directory.hs" 532 70 532 72]}) [PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 53 532 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 532 53 532 54,SrcSpan "tests/examples/Directory.hs" 532 62 532 63,SrcSpan "tests/examples/Directory.hs" 532 68 532 69]}) Boxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 54 532 62, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 54 532 62, srcInfoPoints = []}) "tmpFPath"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 64 532 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 532 64 532 68, srcInfoPoints = []}) "hTmp")]] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 18 536 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 533 18 533 20,SrcSpan "tests/examples/Directory.hs" 533 21 533 21,SrcSpan "tests/examples/Directory.hs" 534 21 534 21,SrcSpan "tests/examples/Directory.hs" 535 21 535 21,SrcSpan "tests/examples/Directory.hs" 536 21 536 21,SrcSpan "tests/examples/Directory.hs" 537 11 537 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 69, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 69, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 21 533 32, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 33 533 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 33 533 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 33 533 43, srcInfoPoints = []}) "bufferSize")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 44 533 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 44 533 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 44 533 45, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 46 533 69, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 46 533 64, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 46 533 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 46 533 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 46 533 58, srcInfoPoints = []}) "copyContents"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 59 533 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 59 533 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 59 533 64, srcInfoPoints = []}) "hFrom")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 65 533 69, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 65 533 69, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 533 65 533 69, srcInfoPoints = []}) "hTmp"))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 21 534 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 21 534 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 21 534 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 21 534 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 21 534 27, srcInfoPoints = []}) "hClose"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 28 534 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 28 534 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 534 28 534 32, srcInfoPoints = []}) "hTmp")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 21 535 76, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 21 535 76, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 21 535 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 21 535 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 21 535 39, srcInfoPoints = []}) "ignoreIOExceptions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 40 535 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 40 535 41, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 40 535 41, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 42 535 76, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 42 535 67, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 42 535 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 42 535 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 42 535 57, srcInfoPoints = []}) "copyPermissions"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 58 535 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 58 535 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 58 535 67, srcInfoPoints = []}) "fromFPath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 68 535 76, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 68 535 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 535 68 535 76, srcInfoPoints = []}) "tmpFPath"))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 21 536 31, srcInfoPoints = []}) "renameFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 32 536 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 32 536 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 32 536 40, srcInfoPoints = []}) "tmpFPath")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 41 536 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 41 536 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 536 41 536 48, srcInfoPoints = []}) "toFPath"))))])))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 79, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 18, srcInfoPoints = []}) "openTmp")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 19 537 79, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 537 19 537 20]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 79, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 63, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 39, srcInfoPoints = []}) "openBinaryTempFile"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 40 537 63, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 537 40 537 41,SrcSpan "tests/examples/Directory.hs" 537 62 537 63]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 41 537 62, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 41 537 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 41 537 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 41 537 54, srcInfoPoints = []}) "takeDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 55 537 62, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 55 537 62, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 55 537 62, srcInfoPoints = []}) "toFPath")))))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 64 537 79, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 64 537 79, srcInfoPoints = []}) ".copyFile.tmp" ".copyFile.tmp")))) Nothing,FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 540 60, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 540 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 538 19, srcInfoPoints = []}) "cleanTmp") [PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 20 538 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 538 20 538 21,SrcSpan "tests/examples/Directory.hs" 538 29 538 30,SrcSpan "tests/examples/Directory.hs" 538 35 538 36]}) Boxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 21 538 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 21 538 29, srcInfoPoints = []}) "tmpFPath"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 31 538 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 31 538 35, srcInfoPoints = []}) "hTmp")]] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 15 540 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 539 15 539 16]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 17 540 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 539 17 539 19,SrcSpan "tests/examples/Directory.hs" 539 20 539 20,SrcSpan "tests/examples/Directory.hs" 540 20 540 20,SrcSpan "tests/examples/Directory.hs" 541 11 541 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 20 539 52, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 20 539 52, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 20 539 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 20 539 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 20 539 38, srcInfoPoints = []}) "ignoreIOExceptions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 39 539 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 39 539 40, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 39 539 40, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 41 539 52, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 41 539 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 41 539 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 41 539 47, srcInfoPoints = []}) "hClose"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 48 539 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 48 539 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 48 539 52, srcInfoPoints = []}) "hTmp"))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 20 540 60, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 20 540 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 20 540 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 20 540 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 20 540 38, srcInfoPoints = []}) "ignoreIOExceptions"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 39 540 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 39 540 40, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 39 540 40, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 41 540 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 41 540 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 41 540 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 41 540 51, srcInfoPoints = []}) "removeFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 52 540 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 52 540 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 540 52 540 60, srcInfoPoints = []}) "tmpFPath")))))])) Nothing],PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 21, srcInfoPoints = []}) "bufferSize")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 22 541 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 541 22 541 23]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 24 541 28, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 24 541 28, srcInfoPoints = []}) 1024 "1024"))) Nothing,FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 547 56, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 547 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 543 23, srcInfoPoints = []}) "copyContents") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 24 543 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 24 543 29, srcInfoPoints = []}) "hFrom"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 30 543 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 30 543 33, srcInfoPoints = []}) "hTo"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 34 543 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 34 543 40, srcInfoPoints = []}) "buffer")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 41 547 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 543 41 543 42]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 43 547 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 543 43 543 45,SrcSpan "tests/examples/Directory.hs" 544 19 544 19,SrcSpan "tests/examples/Directory.hs" 545 19 545 19,SrcSpan "tests/examples/Directory.hs" 549 11 549 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 19 544 59, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 544 25 544 27]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 19 544 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 19 544 24, srcInfoPoints = []}) "count")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 59, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 28 544 35, srcInfoPoints = []}) "hGetBuf"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 36 544 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 36 544 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 36 544 41, srcInfoPoints = []}) "hFrom")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 42 544 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 42 544 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 42 544 48, srcInfoPoints = []}) "buffer")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 49 544 59, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 49 544 59, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 544 49 544 59, srcInfoPoints = []}) "bufferSize")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 547 56, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 547 56, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 545 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 545 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 545 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 19 545 23, srcInfoPoints = []}) "when"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 24 545 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 545 24 545 25,SrcSpan "tests/examples/Directory.hs" 545 34 545 35]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 25 545 34, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 25 545 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 25 545 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 25 545 30, srcInfoPoints = []}) "count"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 31 545 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 31 545 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 31 545 32, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 33 545 34, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 33 545 34, srcInfoPoints = []}) 0 "0"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 36 545 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 36 545 37, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 36 545 37, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 545 38 547 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 545 38 545 40,SrcSpan "tests/examples/Directory.hs" 546 27 546 27,SrcSpan "tests/examples/Directory.hs" 547 27 547 27,SrcSpan "tests/examples/Directory.hs" 549 11 549 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 51, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 51, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 45, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 38, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 27 546 34, srcInfoPoints = []}) "hPutBuf"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 35 546 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 35 546 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 35 546 38, srcInfoPoints = []}) "hTo")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 39 546 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 39 546 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 39 546 45, srcInfoPoints = []}) "buffer")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 46 546 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 46 546 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 546 46 546 51, srcInfoPoints = []}) "count")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 56, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 56, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 45, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 27 547 39, srcInfoPoints = []}) "copyContents"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 40 547 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 40 547 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 40 547 45, srcInfoPoints = []}) "hFrom")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 46 547 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 46 547 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 46 547 49, srcInfoPoints = []}) "hTo")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 50 547 56, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 50 547 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 547 50 547 56, srcInfoPoints = []}) "buffer"))))]))])) Nothing],FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 64, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 29, srcInfoPoints = []}) "ignoreIOExceptions") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 30 549 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 30 549 32, srcInfoPoints = []}) "io")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 33 549 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 549 33 549 34]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 35 549 64, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 35 549 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 35 549 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 35 549 37, srcInfoPoints = []}) "io"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 38 549 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 549 38 549 39,SrcSpan "tests/examples/Directory.hs" 549 39 549 44,SrcSpan "tests/examples/Directory.hs" 549 44 549 45]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 38 549 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 549 38 549 39,SrcSpan "tests/examples/Directory.hs" 549 39 549 44,SrcSpan "tests/examples/Directory.hs" 549 44 549 45]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 39 549 44, srcInfoPoints = []}) "catch"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 46 549 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 46 549 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 46 549 64, srcInfoPoints = []}) "ioExceptionIgnorer"))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 11 550 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 550 30 550 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 11 550 29, srcInfoPoints = []}) "ioExceptionIgnorer"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 550 45 550 47]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 44, srcInfoPoints = []}) "IOException"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 48 550 53, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 48 550 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 48 550 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 48 550 50, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 51 550 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 550 51 550 52,SrcSpan "tests/examples/Directory.hs" 550 52 550 53]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 51 550 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 550 51 550 52,SrcSpan "tests/examples/Directory.hs" 550 52 550 53]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 51 550 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 550 51 550 52,SrcSpan "tests/examples/Directory.hs" 550 52 550 53]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 43, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 29, srcInfoPoints = []}) "ioExceptionIgnorer") [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 30 551 31, srcInfoPoints = []})] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 32 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 551 32 551 33]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 34 551 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 34 551 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 34 551 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 34 551 40, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 41 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 551 41 551 42,SrcSpan "tests/examples/Directory.hs" 551 42 551 43]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 41 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 551 41 551 42,SrcSpan "tests/examples/Directory.hs" 551 42 551 43]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 41 551 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 551 41 551 42,SrcSpan "tests/examples/Directory.hs" 551 42 551 43]})))))) Nothing]]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 1 560 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 560 18 560 20]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 1 560 17, srcInfoPoints = []}) "canonicalizePath"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 44, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 560 30 560 32]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 44, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44, srcInfoPoints = []}) "FilePath"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 563 31, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 563 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 561 17, srcInfoPoints = []}) "canonicalizePath") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 18 561 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 18 561 23, srcInfoPoints = []}) "fpath")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 24 563 31, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 561 24 561 25]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 5 563 31, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 562 5 562 7,SrcSpan "tests/examples/Directory.hs" 562 8 562 8,SrcSpan "tests/examples/Directory.hs" 563 8 563 8,SrcSpan "tests/examples/Directory.hs" 568 1 568 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 562 13 562 15]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 12, srcInfoPoints = []}) "path")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 37, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 37, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 37, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 37, srcInfoPoints = []}) "getFullPathName"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 38 562 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 38 562 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 38 562 43, srcInfoPoints = []}) "fpath")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 31, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 31, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 14, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 15 563 31, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 563 15 563 16,SrcSpan "tests/examples/Directory.hs" 563 30 563 31]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 16 563 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 16 563 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 16 563 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 16 563 25, srcInfoPoints = []}) "normalise"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 26 563 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 26 563 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 26 563 30, srcInfoPoints = []}) "path"))))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 1 568 58, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 568 32 568 34]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 1 568 31, srcInfoPoints = []}) "makeRelativeToCurrentDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 58, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 568 44 568 46]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 58, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58, srcInfoPoints = []}) "FilePath"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 571 32, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 571 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 569 31, srcInfoPoints = []}) "makeRelativeToCurrentDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 32 569 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 32 569 33, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 34 571 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 569 34 569 35]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 36 571 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 569 36 569 38,SrcSpan "tests/examples/Directory.hs" 570 5 570 5,SrcSpan "tests/examples/Directory.hs" 571 5 571 5,SrcSpan "tests/examples/Directory.hs" 591 1 591 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 31, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 570 9 570 11]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 8, srcInfoPoints = []}) "cur")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 12 570 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 12 570 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 12 570 31, srcInfoPoints = []}) "getCurrentDirectory"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 11, srcInfoPoints = []}) "return"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 12 571 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 12 571 13, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 12 571 13, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 26, srcInfoPoints = []}) "makeRelative"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 27 571 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 27 571 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 27 571 30, srcInfoPoints = []}) "cur")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 31 571 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 31 571 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 31 571 32, srcInfoPoints = []}) "x")))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 1 591 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 591 16 591 18]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 1 591 15, srcInfoPoints = []}) "findExecutable"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 591 26 591 28]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25, srcInfoPoints = []}) "String"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 48, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31, srcInfoPoints = []}) "IO"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 32 591 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 591 32 591 33,SrcSpan "tests/examples/Directory.hs" 591 47 591 48]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 47, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38, srcInfoPoints = []}) "Maybe"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47, srcInfoPoints = []}) "FilePath"))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 593 53, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 593 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 592 15, srcInfoPoints = []}) "findExecutable") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 16 592 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 16 592 22, srcInfoPoints = []}) "binary")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 23 593 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 592 23 592 24]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 53, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 34, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19, srcInfoPoints = []}) "searchPath"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 20 593 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 20 593 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 20 593 27, srcInfoPoints = []}) "Nothing")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 28 593 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 28 593 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 28 593 34, srcInfoPoints = []}) "binary")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 35 593 53, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 593 35 593 36,SrcSpan "tests/examples/Directory.hs" 593 52 593 53]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 36 593 52, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 36 593 39, srcInfoPoints = []}) (Char (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 36 593 39, srcInfoPoints = []}) '.' ".")) (QConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 39 593 40, srcInfoPoints = []}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 39 593 40, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 39 593 40, srcInfoPoints = []})))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 40 593 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 40 593 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 40 593 52, srcInfoPoints = []}) "exeExtension"))))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 1 627 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 627 22 627 24]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 1 627 21, srcInfoPoints = []}) "getDirectoryContents"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 627 34 627 36]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 50, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39, srcInfoPoints = []}) "IO"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 40 627 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 627 40 627 41,SrcSpan "tests/examples/Directory.hs" 627 49 627 50]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49, srcInfoPoints = []}) "FilePath")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 635 3 635 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 635 3 635 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 628 21, srcInfoPoints = []}) "getDirectoryContents") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 22 628 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 22 628 26, srcInfoPoints = []}) "path")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 27 634 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 628 27 628 28]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 634 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 630 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16, srcInfoPoints = []}) "modifyIOError"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 17 630 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 629 17 629 18,SrcSpan "tests/examples/Directory.hs" 630 59 630 60]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 18 630 59, srcInfoPoints = []}) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 18 629 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 629 18 629 19,SrcSpan "tests/examples/Directory.hs" 629 40 629 41]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 19 629 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 629 19 629 20,SrcSpan "tests/examples/Directory.hs" 629 20 629 34,SrcSpan "tests/examples/Directory.hs" 629 34 629 35]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 19 629 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 629 19 629 20,SrcSpan "tests/examples/Directory.hs" 629 20 629 34,SrcSpan "tests/examples/Directory.hs" 629 34 629 35]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 20 629 34, srcInfoPoints = []}) "ioeSetFileName"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 36 629 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 36 629 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 36 629 40, srcInfoPoints = []}) "path")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 42 629 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 42 629 43, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 42 629 43, srcInfoPoints = []}) "."))) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 18 630 59, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 630 18 630 19,SrcSpan "tests/examples/Directory.hs" 630 58 630 59]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 19 630 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 630 19 630 20,SrcSpan "tests/examples/Directory.hs" 630 20 630 34,SrcSpan "tests/examples/Directory.hs" 630 34 630 35]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 19 630 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 630 19 630 20,SrcSpan "tests/examples/Directory.hs" 630 20 630 34,SrcSpan "tests/examples/Directory.hs" 630 34 630 35]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 20 630 34, srcInfoPoints = []}) "ioeSetLocation"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 36 630 58, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 36 630 58, srcInfoPoints = []}) "getDirectoryContents" "getDirectoryContents")))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 63 634 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 630 63 630 65,SrcSpan "tests/examples/Directory.hs" 631 3 631 3,SrcSpan "tests/examples/Directory.hs" 635 3 635 3,SrcSpan "tests/examples/Directory.hs" 635 3 635 3]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 634 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 634 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 633 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 632 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 631 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 631 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 631 10, srcInfoPoints = []}) "bracket"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 6 632 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 632 6 632 7,SrcSpan "tests/examples/Directory.hs" 632 41 632 42]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 7 632 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 7 632 26, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 7 632 26, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 7 632 26, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 7 632 26, srcInfoPoints = []}) "findFirstFile"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 27 632 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 632 27 632 28,SrcSpan "tests/examples/Directory.hs" 632 40 632 41]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 28 632 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 28 632 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 28 632 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 28 632 32, srcInfoPoints = []}) "path"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 33 632 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 33 632 36, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 33 632 36, srcInfoPoints = []}) "</>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 37 632 40, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 632 37 632 40, srcInfoPoints = []}) "*" "*"))))))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 6 633 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 633 6 633 7,SrcSpan "tests/examples/Directory.hs" 633 34 633 35]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 7 633 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 633 7 633 8,SrcSpan "tests/examples/Directory.hs" 633 14 633 16]}) [PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 8 633 13, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 633 8 633 9,SrcSpan "tests/examples/Directory.hs" 633 10 633 11,SrcSpan "tests/examples/Directory.hs" 633 12 633 13]}) Boxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 9 633 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 9 633 10, srcInfoPoints = []}) "h"),PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 11 633 12, srcInfoPoints = []})]] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 17 633 34, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 17 633 32, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 17 633 32, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 17 633 32, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 17 633 32, srcInfoPoints = []}) "findClose"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 33 633 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 33 633 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 633 33 633 34, srcInfoPoints = []}) "h"))))))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 6 634 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 634 6 634 7,SrcSpan "tests/examples/Directory.hs" 634 34 634 35]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 7 634 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 634 7 634 8,SrcSpan "tests/examples/Directory.hs" 634 17 634 19]}) [PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 8 634 16, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 634 8 634 9,SrcSpan "tests/examples/Directory.hs" 634 10 634 11,SrcSpan "tests/examples/Directory.hs" 634 15 634 16]}) Boxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 9 634 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 9 634 10, srcInfoPoints = []}) "h"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 11 634 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 11 634 15, srcInfoPoints = []}) "fdat")]] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 34, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 31, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 20 634 24, srcInfoPoints = []}) "loop"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 25 634 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 25 634 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 25 634 26, srcInfoPoints = []}) "h")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 27 634 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 27 634 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 27 634 31, srcInfoPoints = []}) "fdat")))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 634 32 634 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 634 32 634 33,SrcSpan "tests/examples/Directory.hs" 634 33 634 34]}) [])))))]))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 5 638 5,SrcSpan "tests/examples/Directory.hs" 639 5 639 5,SrcSpan "tests/examples/Directory.hs" 672 1 672 0]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 638 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 10 638 12]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 638 9, srcInfoPoints = []}) "loop"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 26 638 28]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 25, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 25, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 25, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 25, srcInfoPoints = []}) "HANDLE"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 44 638 46]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 43, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 43, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 43, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 43, srcInfoPoints = []}) "FindData"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 47 638 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 58 638 60]}) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 47 638 57, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 47 638 48,SrcSpan "tests/examples/Directory.hs" 638 56 638 57]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 48 638 56, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 48 638 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 48 638 56, srcInfoPoints = []}) "FilePath")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 61 638 74, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 61 638 63, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 61 638 63, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 61 638 63, srcInfoPoints = []}) "IO"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 64 638 74, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 638 64 638 65,SrcSpan "tests/examples/Directory.hs" 638 73 638 74]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 65 638 73, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 65 638 73, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 65 638 73, srcInfoPoints = []}) "FilePath")))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 644 37, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 644 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 639 9, srcInfoPoints = []}) "loop") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 10 639 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 10 639 11, srcInfoPoints = []}) "h"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 12 639 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 12 639 16, srcInfoPoints = []}) "fdat"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 17 639 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 17 639 20, srcInfoPoints = []}) "acc")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 21 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 639 21 639 22]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 23 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 639 23 639 25,SrcSpan "tests/examples/Directory.hs" 640 8 640 8,SrcSpan "tests/examples/Directory.hs" 641 8 641 8,SrcSpan "tests/examples/Directory.hs" 642 8 642 8,SrcSpan "tests/examples/Directory.hs" 672 1 672 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 8 640 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 640 17 640 19]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 8 640 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 8 640 16, srcInfoPoints = []}) "filename")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 20 640 50, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 20 640 45, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 20 640 45, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 20 640 45, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 20 640 45, srcInfoPoints = []}) "getFindDataFileName"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 46 640 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 46 640 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 640 46 640 50, srcInfoPoints = []}) "fdat")))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 8 641 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 641 13 641 15]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 8 641 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 8 641 12, srcInfoPoints = []}) "more")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 41, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 34, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 34, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 34, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 16 641 34, srcInfoPoints = []}) "findNextFile"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 35 641 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 35 641 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 35 641 36, srcInfoPoints = []}) "h")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 37 641 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 37 641 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 641 37 641 41, srcInfoPoints = []}) "fdat")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 642 8 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 642 8 642 10,SrcSpan "tests/examples/Directory.hs" 643 11 643 15,SrcSpan "tests/examples/Directory.hs" 644 11 644 15]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 642 8 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 642 8 642 10,SrcSpan "tests/examples/Directory.hs" 643 11 643 15,SrcSpan "tests/examples/Directory.hs" 644 11 644 15]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 642 11 642 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 642 11 642 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 642 11 642 15, srcInfoPoints = []}) "more"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 42, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 16 643 20, srcInfoPoints = []}) "loop"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 21 643 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 21 643 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 21 643 22, srcInfoPoints = []}) "h")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 23 643 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 23 643 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 23 643 27, srcInfoPoints = []}) "fdat")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 28 643 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 643 28 643 29,SrcSpan "tests/examples/Directory.hs" 643 41 643 42]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 29 643 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 29 643 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 29 643 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 29 643 37, srcInfoPoints = []}) "filename"))) (QConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 37 643 38, srcInfoPoints = []}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 37 643 38, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 37 643 38, srcInfoPoints = []})))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 38 643 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 38 643 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 643 38 643 41, srcInfoPoints = []}) "acc")))))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 16 644 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 16 644 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 16 644 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 16 644 22, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 23 644 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 644 23 644 24,SrcSpan "tests/examples/Directory.hs" 644 36 644 37]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 24 644 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 24 644 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 24 644 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 24 644 32, srcInfoPoints = []}) "filename"))) (QConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 32 644 33, srcInfoPoints = []}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 32 644 33, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 32 644 33, srcInfoPoints = []})))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 33 644 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 33 644 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 644 33 644 36, srcInfoPoints = []}) "acc")))))))])) Nothing]]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 1 672 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 672 21 672 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 1 672 20, srcInfoPoints = []}) "getCurrentDirectory"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 35, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35, srcInfoPoints = []}) "FilePath")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 674 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 673 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 673 20, srcInfoPoints = []}) "getCurrentDirectory")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 21 674 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 673 21 673 22]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 23 674 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 673 23 673 25,SrcSpan "tests/examples/Directory.hs" 674 3 674 3,SrcSpan "tests/examples/Directory.hs" 708 1 708 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28, srcInfoPoints = []}) "getCurrentDirectory")))])) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 1 708 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 708 21 708 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 1 708 20, srcInfoPoints = []}) "setCurrentDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 708 33 708 35]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 41, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 708 39 708 40,SrcSpan "tests/examples/Directory.hs" 708 40 708 41]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 708 39 708 40,SrcSpan "tests/examples/Directory.hs" 708 40 708 41]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 708 39 708 40,SrcSpan "tests/examples/Directory.hs" 708 40 708 41]})))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 710 33, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 710 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 709 20, srcInfoPoints = []}) "setCurrentDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 21 709 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 21 709 25, srcInfoPoints = []}) "path")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 26 710 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 709 26 709 27]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28, srcInfoPoints = []}) "setCurrentDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33, srcInfoPoints = []}) "path"))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 1 716 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 716 20 716 22]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 1 716 19, srcInfoPoints = []}) "doesDirectoryExist"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 42, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 716 32 716 34]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 42, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42, srcInfoPoints = []}) "Bool"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 719 61, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 719 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 717 19, srcInfoPoints = []}) "doesDirectoryExist") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 20 717 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 20 717 24, srcInfoPoints = []}) "name")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 25 719 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 717 25 717 26]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 4 719 61, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 4 718 70, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 718 4 718 5,SrcSpan "tests/examples/Directory.hs" 718 69 718 70]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 69, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 45, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 19, srcInfoPoints = []}) "withFileStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 20 718 40, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 20 718 40, srcInfoPoints = []}) "doesDirectoryExist" "doesDirectoryExist"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 41 718 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 41 718 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 41 718 45, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 46 718 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 46 718 47, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 46 718 47, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 48 718 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 718 48 718 49,SrcSpan "tests/examples/Directory.hs" 718 52 718 54]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 49 718 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 49 718 51, srcInfoPoints = []}) "st")] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 55 718 69, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 55 718 66, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 55 718 66, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 55 718 66, srcInfoPoints = []}) "isDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 67 718 69, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 67 718 69, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 67 718 69, srcInfoPoints = []}) "st"))))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 4 719 11, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 4 719 5,SrcSpan "tests/examples/Directory.hs" 719 5 719 10,SrcSpan "tests/examples/Directory.hs" 719 10 719 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 4 719 11, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 4 719 5,SrcSpan "tests/examples/Directory.hs" 719 5 719 10,SrcSpan "tests/examples/Directory.hs" 719 10 719 11]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 5 719 10, srcInfoPoints = []}) "catch"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 12 719 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 12 719 13,SrcSpan "tests/examples/Directory.hs" 719 60 719 61]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 13 719 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 35 719 37]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 13 719 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 13 719 14,SrcSpan "tests/examples/Directory.hs" 719 33 719 34]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 14 719 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 14 719 15,SrcSpan "tests/examples/Directory.hs" 719 18 719 20]}) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 16 719 17, srcInfoPoints = []})] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 21 719 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 21 719 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 21 719 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 21 719 27, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 28 719 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 28 719 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 28 719 33, srcInfoPoints = []}) "False")))))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 38 719 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 719 50 719 52]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 38 719 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 38 719 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 38 719 49, srcInfoPoints = []}) "IOException"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 53 719 60, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 53 719 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 53 719 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 53 719 55, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 56 719 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 56 719 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 56 719 60, srcInfoPoints = []}) "Bool"))))))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 1 725 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 725 15 725 17]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 1 725 14, srcInfoPoints = []}) "doesFileExist"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 725 27 725 29]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 37, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37, srcInfoPoints = []}) "Bool"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 728 61, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 728 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 726 14, srcInfoPoints = []}) "doesFileExist") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 15 726 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 15 726 19, srcInfoPoints = []}) "name")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 20 728 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 726 20 726 21]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 4 728 61, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 4 727 89, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 727 4 727 5,SrcSpan "tests/examples/Directory.hs" 727 88 727 89]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 88, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 40, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 19, srcInfoPoints = []}) "withFileStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 20 727 35, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 20 727 35, srcInfoPoints = []}) "doesFileExist" "doesFileExist"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 36 727 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 36 727 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 36 727 40, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 41 727 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 41 727 42, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 41 727 42, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 43 727 88, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 727 43 727 44,SrcSpan "tests/examples/Directory.hs" 727 47 727 49]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 44 727 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 44 727 46, srcInfoPoints = []}) "st")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 50 727 88, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 727 50 727 52,SrcSpan "tests/examples/Directory.hs" 727 53 727 53,SrcSpan "tests/examples/Directory.hs" 727 72 727 73,SrcSpan "tests/examples/Directory.hs" 727 88 727 88]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 53 727 72, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 727 55 727 57]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 53 727 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 53 727 54, srcInfoPoints = []}) "b")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 58 727 72, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 58 727 69, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 58 727 69, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 58 727 69, srcInfoPoints = []}) "isDirectory"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 70 727 72, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 70 727 72, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 70 727 72, srcInfoPoints = []}) "st")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 74 727 88, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 74 727 88, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 74 727 80, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 74 727 80, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 74 727 80, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 81 727 88, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 727 81 727 82,SrcSpan "tests/examples/Directory.hs" 727 87 727 88]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 82 727 87, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 82 727 85, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 82 727 85, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 82 727 85, srcInfoPoints = []}) "not"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 86 727 87, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 86 727 87, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 86 727 87, srcInfoPoints = []}) "b"))))))])))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 4 728 11, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 4 728 5,SrcSpan "tests/examples/Directory.hs" 728 5 728 10,SrcSpan "tests/examples/Directory.hs" 728 10 728 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 4 728 11, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 4 728 5,SrcSpan "tests/examples/Directory.hs" 728 5 728 10,SrcSpan "tests/examples/Directory.hs" 728 10 728 11]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 5 728 10, srcInfoPoints = []}) "catch"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 12 728 61, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 12 728 13,SrcSpan "tests/examples/Directory.hs" 728 60 728 61]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 13 728 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 35 728 37]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 13 728 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 13 728 14,SrcSpan "tests/examples/Directory.hs" 728 33 728 34]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 14 728 33, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 14 728 15,SrcSpan "tests/examples/Directory.hs" 728 18 728 20]}) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 16 728 17, srcInfoPoints = []})] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 21 728 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 21 728 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 21 728 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 21 728 27, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 28 728 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 28 728 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 28 728 33, srcInfoPoints = []}) "False")))))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 38 728 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 728 50 728 52]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 38 728 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 38 728 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 38 728 49, srcInfoPoints = []}) "IOException"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 53 728 60, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 53 728 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 53 728 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 53 728 55, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 56 728 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 56 728 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 56 728 60, srcInfoPoints = []}) "Bool"))))))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 1 742 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 742 21 742 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 1 742 20, srcInfoPoints = []}) "getModificationTime"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 742 33 742 35]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32, srcInfoPoints = []}) "FilePath"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 48, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48, srcInfoPoints = []}) "ClockTime"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 746 21, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 746 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 743 20, srcInfoPoints = []}) "getModificationTime") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 21 743 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 21 743 25, srcInfoPoints = []}) "name")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 26 746 21, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 743 26 743 27]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 28 746 21, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 743 28 743 30,SrcSpan "tests/examples/Directory.hs" 745 2 745 2,SrcSpan "tests/examples/Directory.hs" 749 1 749 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 746 21, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 746 21, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 43, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 38, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 16, srcInfoPoints = []}) "withFileStatus"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 17 745 38, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 17 745 38, srcInfoPoints = []}) "getModificationTime" "getModificationTime"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 39 745 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 39 745 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 39 745 43, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 44 745 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 44 745 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 44 745 45, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 46 746 21, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 745 46 745 47,SrcSpan "tests/examples/Directory.hs" 745 51 745 53]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 48 745 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 48 745 50, srcInfoPoints = []}) "st")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 54 746 21, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 745 54 745 56,SrcSpan "tests/examples/Directory.hs" 746 2 746 2,SrcSpan "tests/examples/Directory.hs" 746 2 746 2,SrcSpan "tests/examples/Directory.hs" 749 1 749 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 2 746 21, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 2 746 21, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 2 746 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 2 746 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 2 746 18, srcInfoPoints = []}) "modificationTime"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 19 746 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 19 746 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 746 19 746 21, srcInfoPoints = []}) "st"))))])))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 1 749 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 16 749 18]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 1 749 15, srcInfoPoints = []}) "withFileStatus"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 26 749 28]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25, srcInfoPoints = []}) "String"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 38 749 40]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 41 749 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 61 749 63]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 41 749 60, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 41 749 42,SrcSpan "tests/examples/Directory.hs" 749 59 749 60]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 59, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 749 52 749 54]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 51, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 45, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 46 749 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 46 749 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 46 749 51, srcInfoPoints = []}) "CStat")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 59, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 57, srcInfoPoints = []}) "IO"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 58 749 59, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 58 749 59, srcInfoPoints = []}) "a"))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 68, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66, srcInfoPoints = []}) "IO"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 67 749 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 67 749 68, srcInfoPoints = []}) "a")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 754 50, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 754 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 750 15, srcInfoPoints = []}) "withFileStatus") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 16 750 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 16 750 19, srcInfoPoints = []}) "loc"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 20 750 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 20 750 24, srcInfoPoints = []}) "name"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 25 750 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 25 750 26, srcInfoPoints = []}) "f")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 27 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 750 27 750 28]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 29 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 750 29 750 31,SrcSpan "tests/examples/Directory.hs" 751 3 751 3,SrcSpan "tests/examples/Directory.hs" 756 1 756 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 754 50, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 754 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 751 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 751 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 751 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 751 16, srcInfoPoints = []}) "modifyIOError"))) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 17 751 40, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 751 17 751 18,SrcSpan "tests/examples/Directory.hs" 751 39 751 40]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 18 751 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 751 18 751 19,SrcSpan "tests/examples/Directory.hs" 751 19 751 33,SrcSpan "tests/examples/Directory.hs" 751 33 751 34]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 18 751 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 751 18 751 19,SrcSpan "tests/examples/Directory.hs" 751 19 751 33,SrcSpan "tests/examples/Directory.hs" 751 33 751 34]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 19 751 33, srcInfoPoints = []}) "ioeSetFileName"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 35 751 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 35 751 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 35 751 39, srcInfoPoints = []}) "name"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 41 751 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 41 751 42, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 41 751 42, srcInfoPoints = []}) "$"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 754 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 752 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 752 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 752 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 752 16, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 17 752 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 17 752 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 17 752 28, srcInfoPoints = []}) "sizeof_stat")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 29 752 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 29 752 30, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 29 752 30, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 31 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 752 31 752 32,SrcSpan "tests/examples/Directory.hs" 752 34 752 36]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 32 752 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 32 752 33, srcInfoPoints = []}) "p")] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 7 754 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 7 753 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 7 753 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 7 753 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 7 753 19, srcInfoPoints = []}) "withFilePath"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 20 753 43, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 753 20 753 21,SrcSpan "tests/examples/Directory.hs" 753 42 753 43]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 21 753 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 21 753 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 21 753 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 21 753 37, srcInfoPoints = []}) "fileNameEndClean"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 38 753 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 38 753 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 38 753 42, srcInfoPoints = []}) "name")))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 44 753 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 44 753 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 44 753 45, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 46 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 753 46 753 47,SrcSpan "tests/examples/Directory.hs" 753 49 753 51]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 47 753 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 47 753 48, srcInfoPoints = []}) "s")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 753 52 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 753 52 753 54,SrcSpan "tests/examples/Directory.hs" 754 9 754 9,SrcSpan "tests/examples/Directory.hs" 756 1 756 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 9 754 33, srcInfoPoints = []}) "throwErrnoIfMinus1Retry_"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 34 754 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 34 754 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 34 754 37, srcInfoPoints = []}) "loc")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 38 754 50, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 754 38 754 39,SrcSpan "tests/examples/Directory.hs" 754 49 754 50]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 39 754 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 39 754 47, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 39 754 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 39 754 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 39 754 45, srcInfoPoints = []}) "c_stat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 46 754 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 46 754 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 46 754 47, srcInfoPoints = []}) "s")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 48 754 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 48 754 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 754 48 754 49, srcInfoPoints = []}) "p"))))))]))))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 1 756 77, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 25 756 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 1 756 24, srcInfoPoints = []}) "withFileOrSymlinkStatus"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 77, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 35 756 37]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34, srcInfoPoints = []}) "String"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 77, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 47 756 49]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46, srcInfoPoints = []}) "FilePath"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 50 756 77, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 70 756 72]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 50 756 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 50 756 51,SrcSpan "tests/examples/Directory.hs" 756 68 756 69]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 68, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 756 61 756 63]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 60, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 54, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 55 756 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 55 756 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 55 756 60, srcInfoPoints = []}) "CStat")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 68, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 66, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 66, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 66, srcInfoPoints = []}) "IO"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 67 756 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 67 756 68, srcInfoPoints = []}) "a"))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 77, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75, srcInfoPoints = []}) "IO"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 76 756 77, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 76 756 77, srcInfoPoints = []}) "a")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 761 49, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 761 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 757 24, srcInfoPoints = []}) "withFileOrSymlinkStatus") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 25 757 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 25 757 28, srcInfoPoints = []}) "loc"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 29 757 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 29 757 33, srcInfoPoints = []}) "name"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 34 757 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 34 757 35, srcInfoPoints = []}) "f")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 36 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 757 36 757 37]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 38 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 757 38 757 40,SrcSpan "tests/examples/Directory.hs" 758 3 758 3,SrcSpan "tests/examples/Directory.hs" 763 1 763 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 761 49, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 761 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 758 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 758 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 758 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 758 16, srcInfoPoints = []}) "modifyIOError"))) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 17 758 40, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 758 17 758 18,SrcSpan "tests/examples/Directory.hs" 758 39 758 40]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 18 758 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 758 18 758 19,SrcSpan "tests/examples/Directory.hs" 758 19 758 33,SrcSpan "tests/examples/Directory.hs" 758 33 758 34]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 18 758 34, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 758 18 758 19,SrcSpan "tests/examples/Directory.hs" 758 19 758 33,SrcSpan "tests/examples/Directory.hs" 758 33 758 34]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 19 758 33, srcInfoPoints = []}) "ioeSetFileName"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 35 758 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 35 758 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 35 758 39, srcInfoPoints = []}) "name"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 41 758 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 41 758 42, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 41 758 42, srcInfoPoints = []}) "$"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 761 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 759 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 759 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 759 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 759 16, srcInfoPoints = []}) "allocaBytes"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 17 759 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 17 759 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 17 759 28, srcInfoPoints = []}) "sizeof_stat")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 29 759 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 29 759 30, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 29 759 30, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 31 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 759 31 759 32,SrcSpan "tests/examples/Directory.hs" 759 34 759 36]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 32 759 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 32 759 33, srcInfoPoints = []}) "p")] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 7 761 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 7 760 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 7 760 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 7 760 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 7 760 19, srcInfoPoints = []}) "withFilePath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 20 760 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 20 760 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 20 760 24, srcInfoPoints = []}) "name")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 25 760 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 25 760 26, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 25 760 26, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 27 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 760 27 760 28,SrcSpan "tests/examples/Directory.hs" 760 30 760 32]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 28 760 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 28 760 29, srcInfoPoints = []}) "s")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 760 33 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 760 33 760 35,SrcSpan "tests/examples/Directory.hs" 761 9 761 9,SrcSpan "tests/examples/Directory.hs" 763 1 763 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 49, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 9 761 33, srcInfoPoints = []}) "throwErrnoIfMinus1Retry_"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 34 761 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 34 761 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 34 761 37, srcInfoPoints = []}) "loc")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 38 761 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 761 38 761 39,SrcSpan "tests/examples/Directory.hs" 761 48 761 49]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 39 761 48, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 39 761 46, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 39 761 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 39 761 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 39 761 44, srcInfoPoints = []}) "lstat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 45 761 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 45 761 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 45 761 46, srcInfoPoints = []}) "s")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 47 761 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 47 761 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 761 47 761 48, srcInfoPoints = []}) "p"))))))]))))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 1 763 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 763 18 763 20]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 1 763 17, srcInfoPoints = []}) "modificationTime"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 763 31 763 33]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 30, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30, srcInfoPoints = []}) "CStat")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 46, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46, srcInfoPoints = []}) "ClockTime"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 767 52, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 767 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 764 17, srcInfoPoints = []}) "modificationTime") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 18 764 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 18 764 22, srcInfoPoints = []}) "stat")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 23 767 52, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 764 23 764 24]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 25 767 52, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 764 25 764 27,SrcSpan "tests/examples/Directory.hs" 765 5 765 5,SrcSpan "tests/examples/Directory.hs" 766 5 766 5,SrcSpan "tests/examples/Directory.hs" 767 5 767 5,SrcSpan "tests/examples/Directory.hs" 769 1 769 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 765 11 765 13]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 10, srcInfoPoints = []}) "mtime")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 22, srcInfoPoints = []}) "st_mtime"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 23 765 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 23 765 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 23 765 27, srcInfoPoints = []}) "stat")))),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 5 766 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 5 766 8]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 9 766 9,SrcSpan "tests/examples/Directory.hs" 767 5 767 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 69, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 22, srcInfoPoints = []}) "realToInteger")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 23 766 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 23 766 24]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 25 766 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 44 766 46]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 25 766 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 25 766 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 25 766 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 25 766 30, srcInfoPoints = []}) "round"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 31 766 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 31 766 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 31 766 32, srcInfoPoints = []}) "."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 33 766 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 33 766 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 33 766 43, srcInfoPoints = []}) "realToFrac")))) (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 47 766 69, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 47 766 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 54 766 56]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 47 766 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 54 766 56]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 47 766 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 47 766 51, srcInfoPoints = []}) "Real")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 52 766 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 52 766 53, srcInfoPoints = []}) "a")]))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 57 766 69, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 766 59 766 61]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 57 766 58, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 57 766 58, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 62 766 69, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 62 766 69, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 62 766 69, srcInfoPoints = []}) "Integer"))))))) Nothing]),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 52, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 52, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 11, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 12 767 52, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 767 12 767 13,SrcSpan "tests/examples/Directory.hs" 767 51 767 52]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 13 767 51, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 13 767 49, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 13 767 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 13 767 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 13 767 16, srcInfoPoints = []}) "TOD"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 17 767 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 767 17 767 18,SrcSpan "tests/examples/Directory.hs" 767 48 767 49]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 18 767 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 18 767 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 18 767 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 18 767 31, srcInfoPoints = []}) "realToInteger"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 32 767 48, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 767 32 767 33,SrcSpan "tests/examples/Directory.hs" 767 47 767 48]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 33 767 47, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 767 39 767 41]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 33 767 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 33 767 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 33 767 38, srcInfoPoints = []}) "mtime"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 42 767 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 42 767 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 42 767 47, srcInfoPoints = []}) "CTime")))))))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 50 767 51, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 50 767 51, srcInfoPoints = []}) 0 "0")))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 1 769 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 769 13 769 15]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 1 769 12, srcInfoPoints = []}) "isDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 36, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 769 26 769 28]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 25, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25, srcInfoPoints = []}) "CStat")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 36, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36, srcInfoPoints = []}) "Bool"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 772 24, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 772 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 770 12, srcInfoPoints = []}) "isDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 13 770 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 13 770 17, srcInfoPoints = []}) "stat")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 18 772 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 770 18 770 19]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 20 772 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 770 20 770 22,SrcSpan "tests/examples/Directory.hs" 771 3 771 3,SrcSpan "tests/examples/Directory.hs" 772 3 772 3,SrcSpan "tests/examples/Directory.hs" 774 1 774 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 23, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 771 8 771 10]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 7, srcInfoPoints = []}) "mode")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 18, srcInfoPoints = []}) "st_mode"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 19 771 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 19 771 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 19 771 23, srcInfoPoints = []}) "stat")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 24, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 9, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 10 772 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 772 10 772 11,SrcSpan "tests/examples/Directory.hs" 772 23 772 24]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 11 772 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 11 772 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 11 772 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 11 772 18, srcInfoPoints = []}) "s_isdir"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 19 772 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 19 772 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 19 772 23, srcInfoPoints = []}) "mode"))))))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 1 774 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 774 18 774 20]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 1 774 17, srcInfoPoints = []}) "fileNameEndClean"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 774 28 774 30]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27, srcInfoPoints = []}) "String"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37, srcInfoPoints = []}) "String")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 776 76, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 776 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 775 17, srcInfoPoints = []}) "fileNameEndClean") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 18 775 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 18 775 22, srcInfoPoints = []}) "name")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 23 776 76, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 775 23 775 24]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 25 776 76, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 775 25 775 27,SrcSpan "tests/examples/Directory.hs" 775 41 775 45,SrcSpan "tests/examples/Directory.hs" 776 41 776 45]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 35, srcInfoPoints = []}) "isDrive"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 36 775 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 36 775 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 36 775 40, srcInfoPoints = []}) "name")))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 75, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 70, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 70, srcInfoPoints = []}) "addTrailingPathSeparator"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 71 775 75, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 71 775 75, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 71 775 75, srcInfoPoints = []}) "name")))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 76, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 71, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 71, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 71, srcInfoPoints = []}) "dropTrailingPathSeparator"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 72 776 76, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 72 776 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 72 776 76, srcInfoPoints = []}) "name")))))) Nothing],ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 1 778 78, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 778 1 778 8,SrcSpan "tests/examples/Directory.hs" 778 9 778 15,SrcSpan "tests/examples/Directory.hs" 778 29 778 61,SrcSpan "tests/examples/Directory.hs" 778 70 778 72]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 16 778 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 22 778 28, srcInfoPoints = []}))) (Just "HsDirectory.h __hscore_S_IRUSR") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 62 778 69, srcInfoPoints = []}) "s_IRUSR") (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78, srcInfoPoints = []}) "CMode"))),ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 1 779 78, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 779 1 779 8,SrcSpan "tests/examples/Directory.hs" 779 9 779 15,SrcSpan "tests/examples/Directory.hs" 779 29 779 61,SrcSpan "tests/examples/Directory.hs" 779 70 779 72]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 16 779 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 22 779 28, srcInfoPoints = []}))) (Just "HsDirectory.h __hscore_S_IWUSR") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 62 779 69, srcInfoPoints = []}) "s_IWUSR") (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78, srcInfoPoints = []}) "CMode"))),ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 1 780 78, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 780 1 780 8,SrcSpan "tests/examples/Directory.hs" 780 9 780 15,SrcSpan "tests/examples/Directory.hs" 780 29 780 61,SrcSpan "tests/examples/Directory.hs" 780 70 780 72]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 16 780 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 22 780 28, srcInfoPoints = []}))) (Just "HsDirectory.h __hscore_S_IXUSR") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 62 780 69, srcInfoPoints = []}) "s_IXUSR") (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78, srcInfoPoints = []}) "CMode"))),ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 1 781 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 781 1 781 8,SrcSpan "tests/examples/Directory.hs" 781 9 781 15,SrcSpan "tests/examples/Directory.hs" 781 29 781 47,SrcSpan "tests/examples/Directory.hs" 781 56 781 58]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 16 781 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 22 781 28, srcInfoPoints = []}))) (Just "__hscore_S_IFDIR") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 48 781 55, srcInfoPoints = []}) "s_IFDIR") (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64, srcInfoPoints = []}) "CMode"))),ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 1 785 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 784 1 784 8,SrcSpan "tests/examples/Directory.hs" 784 9 784 15,SrcSpan "tests/examples/Directory.hs" 784 29 784 54,SrcSpan "tests/examples/Directory.hs" 785 18 785 20]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 16 784 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 22 784 28, srcInfoPoints = []}))) (Just "__hscore_long_path_size") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 3 785 17, srcInfoPoints = []}) "long_path_size") (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24, srcInfoPoints = []}) "Int"))),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 1 808 32, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 808 18 808 20]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 1 808 17, srcInfoPoints = []}) "getHomeDirectory"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 32, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32, srcInfoPoints = []}) "FilePath")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 818 46, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 809 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 809 17, srcInfoPoints = []}) "getHomeDirectory")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 18 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 809 18 809 19]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 818 46, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 56, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16, srcInfoPoints = []}) "modifyIOError"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 17 810 56, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 810 17 810 18,SrcSpan "tests/examples/Directory.hs" 810 55 810 56]}) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 18 810 55, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 810 18 810 19,SrcSpan "tests/examples/Directory.hs" 810 54 810 55]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 19 810 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 810 19 810 20,SrcSpan "tests/examples/Directory.hs" 810 20 810 34,SrcSpan "tests/examples/Directory.hs" 810 34 810 35]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 19 810 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 810 19 810 20,SrcSpan "tests/examples/Directory.hs" 810 20 810 34,SrcSpan "tests/examples/Directory.hs" 810 34 810 35]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 20 810 34, srcInfoPoints = []}) "ioeSetLocation"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 36 810 54, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 36 810 54, srcInfoPoints = []}) "getHomeDirectory" "getHomeDirectory"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 59 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 810 59 810 61,SrcSpan "tests/examples/Directory.hs" 811 3 811 3,SrcSpan "tests/examples/Directory.hs" 812 3 812 3,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 73, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 811 5 811 7]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 4, srcInfoPoints = []}) "r")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 73, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 11, srcInfoPoints = []}) "try"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 12 811 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 12 811 13, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 12 811 13, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 73, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 71, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 63, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 35, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 35, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 35, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 35, srcInfoPoints = []}) "sHGetFolderPath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 36 811 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 36 811 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 36 811 43, srcInfoPoints = []}) "nullPtr")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 44 811 63, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 44 811 63, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 44 811 63, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 44 811 63, srcInfoPoints = []}) "cSIDL_PROFILE")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 64 811 71, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 64 811 71, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 64 811 71, srcInfoPoints = []}) "nullPtr")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 72 811 73, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 72 811 73, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 3 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 812 3 812 7,SrcSpan "tests/examples/Directory.hs" 812 41 812 43,SrcSpan "tests/examples/Directory.hs" 813 5 813 5,SrcSpan "tests/examples/Directory.hs" 814 5 814 5,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 3 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 812 3 812 7,SrcSpan "tests/examples/Directory.hs" 812 41 812 43,SrcSpan "tests/examples/Directory.hs" 813 5 813 5,SrcSpan "tests/examples/Directory.hs" 814 5 814 5,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 8 812 40, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 812 8 812 9,SrcSpan "tests/examples/Directory.hs" 812 39 812 40]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 9 812 39, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 812 11 812 13]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 9 812 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 9 812 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 9 812 10, srcInfoPoints = []}) "r"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 14 812 39, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 14 812 32, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 14 812 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 14 812 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 14 812 20, srcInfoPoints = []}) "Either"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 21 812 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 21 812 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 21 812 32, srcInfoPoints = []}) "IOException")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 33 812 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 33 812 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 33 812 39, srcInfoPoints = []}) "String")))))) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 5 813 24, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 5 813 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 5 813 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 5 813 10, srcInfoPoints = []}) "Right")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 11 813 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 11 813 12, srcInfoPoints = []}) "s")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 13 813 24, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 813 13 813 15]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 16 813 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 16 813 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 16 813 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 16 813 22, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 23 813 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 23 813 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 23 813 24, srcInfoPoints = []}) "s"))))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 5 818 46, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 5 814 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 5 814 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 5 814 9, srcInfoPoints = []}) "Left")) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 11 814 12, srcInfoPoints = []})]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 13 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 814 13 814 15]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 16 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 814 16 814 18,SrcSpan "tests/examples/Directory.hs" 815 7 815 7,SrcSpan "tests/examples/Directory.hs" 816 7 816 7,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 7 815 78, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 815 10 815 12]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 7 815 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 7 815 9, srcInfoPoints = []}) "r1")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 13 815 78, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 13 815 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 13 815 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 13 815 16, srcInfoPoints = []}) "try"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 17 815 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 17 815 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 17 815 18, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 78, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 76, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 68, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 40, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 40, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 40, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 19 815 40, srcInfoPoints = []}) "sHGetFolderPath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 41 815 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 41 815 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 41 815 48, srcInfoPoints = []}) "nullPtr")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 49 815 68, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 49 815 68, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 49 815 68, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 49 815 68, srcInfoPoints = []}) "cSIDL_WINDOWS")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 69 815 76, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 69 815 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 69 815 76, srcInfoPoints = []}) "nullPtr")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 77 815 78, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 815 77 815 78, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 816 7 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 816 7 816 11,SrcSpan "tests/examples/Directory.hs" 816 15 816 17,SrcSpan "tests/examples/Directory.hs" 817 9 817 9,SrcSpan "tests/examples/Directory.hs" 818 9 818 9,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 816 7 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 816 7 816 11,SrcSpan "tests/examples/Directory.hs" 816 15 816 17,SrcSpan "tests/examples/Directory.hs" 817 9 817 9,SrcSpan "tests/examples/Directory.hs" 818 9 818 9,SrcSpan "tests/examples/Directory.hs" 847 1 847 0]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 816 12 816 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 816 12 816 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 816 12 816 14, srcInfoPoints = []}) "r1"))) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 9 817 28, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 9 817 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 9 817 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 9 817 14, srcInfoPoints = []}) "Right")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 15 817 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 15 817 16, srcInfoPoints = []}) "s")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 17 817 28, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 817 17 817 19]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 20 817 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 20 817 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 20 817 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 20 817 26, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 27 817 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 27 817 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 817 27 817 28, srcInfoPoints = []}) "s"))))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 9 818 46, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 9 818 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 9 818 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 9 818 13, srcInfoPoints = []}) "Left")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 15 818 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 15 818 16, srcInfoPoints = []}) "e")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 17 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 818 17 818 19]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 20 818 46, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 20 818 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 20 818 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 20 818 27, srcInfoPoints = []}) "ioError"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 28 818 46, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 818 28 818 29,SrcSpan "tests/examples/Directory.hs" 818 45 818 46]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 29 818 45, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 818 31 818 33]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 29 818 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 29 818 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 29 818 30, srcInfoPoints = []}) "e"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 34 818 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 34 818 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 818 34 818 45, srcInfoPoints = []}) "IOException"))))))) Nothing])])) Nothing])]))) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 1 847 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 847 25 847 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 1 847 24, srcInfoPoints = []}) "getAppUserDataDirectory"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 49, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 847 35 847 37]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34, srcInfoPoints = []}) "String"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 49, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49, srcInfoPoints = []}) "FilePath"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 851 27, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 851 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 848 24, srcInfoPoints = []}) "getAppUserDataDirectory") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 25 848 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 25 848 32, srcInfoPoints = []}) "appName")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 33 851 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 848 33 848 34]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 35 851 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 848 35 848 37,SrcSpan "tests/examples/Directory.hs" 849 3 849 3,SrcSpan "tests/examples/Directory.hs" 874 1 874 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 851 27, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 851 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 849 63, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 849 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 849 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 849 16, srcInfoPoints = []}) "modifyIOError"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 17 849 63, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 849 17 849 18,SrcSpan "tests/examples/Directory.hs" 849 62 849 63]}) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 18 849 62, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 849 18 849 19,SrcSpan "tests/examples/Directory.hs" 849 61 849 62]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 19 849 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 849 19 849 20,SrcSpan "tests/examples/Directory.hs" 849 20 849 34,SrcSpan "tests/examples/Directory.hs" 849 34 849 35]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 19 849 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 849 19 849 20,SrcSpan "tests/examples/Directory.hs" 849 20 849 34,SrcSpan "tests/examples/Directory.hs" 849 34 849 35]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 20 849 34, srcInfoPoints = []}) "ioeSetLocation"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 36 849 61, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 36 849 61, srcInfoPoints = []}) "getAppUserDataDirectory" "getAppUserDataDirectory"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 64 849 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 64 849 65, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 64 849 65, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 66 851 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 849 66 849 68,SrcSpan "tests/examples/Directory.hs" 850 3 850 3,SrcSpan "tests/examples/Directory.hs" 850 3 850 3,SrcSpan "tests/examples/Directory.hs" 851 3 851 3,SrcSpan "tests/examples/Directory.hs" 874 1 874 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 3 850 67, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 850 5 850 7]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 3 850 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 3 850 4, srcInfoPoints = []}) "s")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 67, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 57, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 29, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 29, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 29, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 8 850 29, srcInfoPoints = []}) "sHGetFolderPath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 30 850 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 30 850 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 30 850 37, srcInfoPoints = []}) "nullPtr")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 38 850 57, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 38 850 57, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 38 850 57, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 38 850 57, srcInfoPoints = []}) "cSIDL_APPDATA")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 58 850 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 58 850 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 58 850 65, srcInfoPoints = []}) "nullPtr")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 66 850 67, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 850 66 850 67, srcInfoPoints = []}) 0 "0"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 3 851 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 3 851 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 3 851 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 3 851 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 3 851 9, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 10 851 27, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 851 10 851 11,SrcSpan "tests/examples/Directory.hs" 851 26 851 27]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 11 851 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 11 851 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 11 851 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 11 851 12, srcInfoPoints = []}) "s"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 12 851 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 12 851 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 12 851 14, srcInfoPoints = []}) "++"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 14 851 26, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 14 851 18, srcInfoPoints = []}) (Char (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 14 851 18, srcInfoPoints = []}) '\\' "\\\\")) (QConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 18 851 19, srcInfoPoints = []}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 18 851 19, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 18 851 19, srcInfoPoints = []})))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 19 851 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 19 851 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 851 19 851 26, srcInfoPoints = []}) "appName")))))))]))])) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 1 874 41, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 874 27 874 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 1 874 26, srcInfoPoints = []}) "getUserDocumentsDirectory"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 41, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41, srcInfoPoints = []}) "FilePath")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 877 63, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 875 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 875 26, srcInfoPoints = []}) "getUserDocumentsDirectory")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 27 877 63, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 875 27 875 28]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 29 877 63, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 875 29 875 31,SrcSpan "tests/examples/Directory.hs" 876 3 876 3,SrcSpan "tests/examples/Directory.hs" 905 1 905 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 877 63, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 877 63, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 65, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 16, srcInfoPoints = []}) "modifyIOError"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 17 876 65, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 876 17 876 18,SrcSpan "tests/examples/Directory.hs" 876 64 876 65]}) (RightSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 18 876 64, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 876 18 876 19,SrcSpan "tests/examples/Directory.hs" 876 63 876 64]}) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 19 876 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 876 19 876 20,SrcSpan "tests/examples/Directory.hs" 876 20 876 34,SrcSpan "tests/examples/Directory.hs" 876 34 876 35]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 19 876 35, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 876 19 876 20,SrcSpan "tests/examples/Directory.hs" 876 20 876 34,SrcSpan "tests/examples/Directory.hs" 876 34 876 35]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 20 876 34, srcInfoPoints = []}) "ioeSetLocation"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 36 876 63, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 36 876 63, srcInfoPoints = []}) "getUserDocumentsDirectory" "getUserDocumentsDirectory"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 66 876 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 66 876 67, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 66 876 67, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 68 877 63, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 876 68 876 70,SrcSpan "tests/examples/Directory.hs" 877 3 877 3,SrcSpan "tests/examples/Directory.hs" 877 3 877 3,SrcSpan "tests/examples/Directory.hs" 905 1 905 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 63, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 63, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 61, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 53, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 24, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 24, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 24, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 24, srcInfoPoints = []}) "sHGetFolderPath"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 25 877 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 25 877 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 25 877 32, srcInfoPoints = []}) "nullPtr")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 33 877 53, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 33 877 53, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 33 877 53, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 33 877 53, srcInfoPoints = []}) "cSIDL_PERSONAL")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 54 877 61, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 54 877 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 54 877 61, srcInfoPoints = []}) "nullPtr")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 62 877 63, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 62 877 63, srcInfoPoints = []}) 0 "0")))]))])) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 1 905 37, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 905 23 905 25]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 1 905 22, srcInfoPoints = []}) "getTemporaryDirectory"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 37, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37, srcInfoPoints = []}) "FilePath")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 907 30, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 906 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 906 22, srcInfoPoints = []}) "getTemporaryDirectory")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 23 907 30, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 906 23 906 24]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 25 907 30, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 906 25 906 27,SrcSpan "tests/examples/Directory.hs" 907 3 907 3,SrcSpan "tests/examples/Directory.hs" 912 1 912 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30, srcInfoPoints = []}) "Win32") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30, srcInfoPoints = []}) "getTemporaryDirectory")))])) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 1 912 23, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 912 14 912 16]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 1 912 13, srcInfoPoints = []}) "exeExtension"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23, srcInfoPoints = []}) "String"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 21, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 13, srcInfoPoints = []}) "exeExtension")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 14 913 21, srcInfoPoints = [SrcSpan "tests/examples/Directory.hs" 913 14 913 15]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 16 913 21, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 16 913 21, srcInfoPoints = []}) "exe" "exe"))) Nothing],[Comment False (SrcSpan "tests/examples/Directory.hs" 3 1 3 78) "---------------------------------------------------------------------------",Comment False (SrcSpan "tests/examples/Directory.hs" 4 1 4 5) " |",Comment False (SrcSpan "tests/examples/Directory.hs" 5 1 5 35) " Module      :  System.Directory",Comment False (SrcSpan "tests/examples/Directory.hs" 6 1 6 53) " Copyright   :  (c) The University of Glasgow 2001",Comment False (SrcSpan "tests/examples/Directory.hs" 7 1 7 66) " License     :  BSD-style (see the file libraries/base/LICENSE)",Comment False (SrcSpan "tests/examples/Directory.hs" 8 1 8 3) "",Comment False (SrcSpan "tests/examples/Directory.hs" 9 1 9 40) " Maintainer  :  libraries@haskell.org",Comment False (SrcSpan "tests/examples/Directory.hs" 10 1 10 25) " Stability   :  stable",Comment False (SrcSpan "tests/examples/Directory.hs" 11 1 11 27) " Portability :  portable",Comment False (SrcSpan "tests/examples/Directory.hs" 12 1 12 3) "",Comment False (SrcSpan "tests/examples/Directory.hs" 13 1 13 59) " System-independent interface to directory manipulation.",Comment False (SrcSpan "tests/examples/Directory.hs" 14 1 14 3) "",Comment False (SrcSpan "tests/examples/Directory.hs" 15 1 15 78) "---------------------------------------------------------------------------",Comment False (SrcSpan "tests/examples/Directory.hs" 19 5 19 14) " $intro",Comment False (SrcSpan "tests/examples/Directory.hs" 21 5 21 32) " * Actions on directories",Comment False (SrcSpan "tests/examples/Directory.hs" 22 29 22 52) " :: FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 23 33 23 64) " :: Bool -> FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 24 29 24 52) " :: FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 25 33 25 56) " :: FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 26 29 26 64) " :: FilePath -> FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 28 33 28 64) " :: FilePath -> IO [FilePath]",Comment False (SrcSpan "tests/examples/Directory.hs" 29 33 29 50) " :: IO FilePath",Comment False (SrcSpan "tests/examples/Directory.hs" 30 33 30 56) " :: FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 32 5 32 33) " * Pre-defined directories",Comment False (SrcSpan "tests/examples/Directory.hs" 38 5 38 26) " * Actions on files",Comment False (SrcSpan "tests/examples/Directory.hs" 39 25 39 48) " :: FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 40 33 40 68) " :: FilePath -> FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 41 33 41 68) " :: FilePath -> FilePath -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 47 5 47 25) " * Existence tests",Comment False (SrcSpan "tests/examples/Directory.hs" 48 25 48 50) " :: FilePath -> IO Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 49 33 49 58) " :: FilePath -> IO Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 51 5 51 21) " * Permissions",Comment False (SrcSpan "tests/examples/Directory.hs" 53 5 53 20) " $permissions",Comment False (SrcSpan "tests/examples/Directory.hs" 57 21 57 46) " :: Permissions -> Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 58 21 58 46) " :: Permissions -> Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 59 21 59 46) " :: Permissions -> Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 60 21 60 46) " :: Permissions -> Bool",Comment False (SrcSpan "tests/examples/Directory.hs" 63 33 63 65) " :: FilePath -> IO Permissions",Comment False (SrcSpan "tests/examples/Directory.hs" 64 33 64 71) " :: FilePath -> Permissions -> IO ()",Comment False (SrcSpan "tests/examples/Directory.hs" 67 5 67 20) " * Timestamps",Comment False (SrcSpan "tests/examples/Directory.hs" 69 33 69 63) " :: FilePath -> IO ClockTime",Comment True (SrcSpan "tests/examples/Directory.hs" 86 1 86 33) "# CFILES cbits/directory.c #",Comment True (SrcSpan "tests/examples/Directory.hs" 96 1 110 3) " $intro\nA directory contains a series of entries, each of which is a named\nreference to a file system object (file, directory etc.).  Some\nentries may be hidden, inaccessible, or have some administrative\nfunction (e.g. `.' or `..' under POSIX\n<http://www.opengroup.org/onlinepubs/009695399/>), but in\nthis standard all such entries are considered to form part of the\ndirectory contents. Entries in sub-directories are not, however,\nconsidered to form part of the directory contents.\n\nEach file system object is referenced by a /path/.  There is\nnormally at least one absolute path to each file system object.  In\nsome operating systems, it may also be possible to have paths which\nare relative to the current directory.\n",Comment False (SrcSpan "tests/examples/Directory.hs" 112 1 112 78) "---------------------------------------------------------------------------",Comment False (SrcSpan "tests/examples/Directory.hs" 113 1 113 15) " Permissions",Comment True (SrcSpan "tests/examples/Directory.hs" 115 1 132 3) " $permissions\n\n The 'Permissions' type is used to record whether certain operations are\n permissible on a file\\/directory. 'getPermissions' and 'setPermissions'\n get and set these permissions, respectively. Permissions apply both to\n files and directories. For directories, the executable field will be\n 'False', and for files the searchable field will be 'False'. Note that\n directories may be searchable without being readable, if permission has\n been given to use them as part of a path, but not to examine the\n directory contents.\n\nNote that to change some, but not all permissions, a construct on the following lines must be used.\n\n>  makeReadable f = do\n>     p <- getPermissions f\n>     setPermissions f (p {readable = True})\n\n",Comment True (SrcSpan "tests/examples/Directory.hs" 140 1 150 3) " |The 'getPermissions' operation returns the\npermissions for the file or directory.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to access\n  the permissions; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 155 3 155 69) " stat() does a better job of guessing the permissions on Windows",Comment False (SrcSpan "tests/examples/Directory.hs" 156 3 156 71) " than access() does.  e.g. for execute permission, it looks at the",Comment False (SrcSpan "tests/examples/Directory.hs" 157 3 157 28) " filename extension :-)",Comment False (SrcSpan "tests/examples/Directory.hs" 158 3 158 5) "",Comment False (SrcSpan "tests/examples/Directory.hs" 159 3 159 78) " I tried for a while to do this properly, using the Windows security API,",Comment False (SrcSpan "tests/examples/Directory.hs" 160 3 160 79) " and eventually gave up.  getPermissions is a flawed API anyway. -- SimonM",Comment True (SrcSpan "tests/examples/Directory.hs" 177 1 187 3) " |The 'setPermissions' operation sets the\npermissions for the file or directory.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to set\n  the permissions; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 217 1 217 78) "---------------------------------------------------------------------------",Comment False (SrcSpan "tests/examples/Directory.hs" 218 1 218 18) " Implementation",Comment True (SrcSpan "tests/examples/Directory.hs" 220 1 255 3) " |@'createDirectory' dir@ creates a new directory @dir@ which is\ninitially empty, or as near to empty as the operating system\nallows.\n\nThe operation may fail with:\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES]@\n\n* 'isAlreadyExistsError' \\/ 'AlreadyExists'\nThe operand refers to a directory that already exists.\n@ [EEXIST]@\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'NoSuchThing'\nThere is no path to the directory.\n@[ENOENT, ENOTDIR]@\n\n* 'ResourceExhausted'\nInsufficient resources (virtual memory, process file descriptors,\nphysical disk space, etc.) are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[EEXIST]@\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 261 1 261 70) " | @'createDirectoryIfMissing' parents dir@ creates a new directory",Comment False (SrcSpan "tests/examples/Directory.hs" 262 1 262 63) " @dir@ if it doesn\\'t exist. If the first argument is 'True'",Comment False (SrcSpan "tests/examples/Directory.hs" 263 1 263 77) " the function will also create all parent directories if they are missing.",Comment False (SrcSpan "tests/examples/Directory.hs" 264 38 264 66) " ^ Create its parents too?",Comment False (SrcSpan "tests/examples/Directory.hs" 265 30 265 77) " ^ The path to the directory you want to make",Comment False (SrcSpan "tests/examples/Directory.hs" 287 11 287 75) " createDirectory (and indeed POSIX mkdir) does not distinguish",Comment False (SrcSpan "tests/examples/Directory.hs" 288 11 288 79) " between a dir already existing and a file already existing. So we",Comment False (SrcSpan "tests/examples/Directory.hs" 289 11 289 79) " check for it here. Unfortunately there is a slight race condition",Comment False (SrcSpan "tests/examples/Directory.hs" 290 11 290 77) " here, but we think it is benign. It could report an exeption in",Comment False (SrcSpan "tests/examples/Directory.hs" 291 11 291 77) " the case that the dir did exist but another process deletes the",Comment False (SrcSpan "tests/examples/Directory.hs" 292 11 292 75) " directory and creates a file in its place before we can check",Comment False (SrcSpan "tests/examples/Directory.hs" 293 11 293 50) " that the directory did indeed exist.",Comment True (SrcSpan "tests/examples/Directory.hs" 302 1 341 3) " | @'removeDirectory' dir@ removes an existing directory /dir/.  The\nimplementation may specify additional constraints which must be\nsatisfied before a directory can be removed (e.g. the directory has to\nbe empty, or may not be in use by other processes).  It is not legal\nfor an implementation to partially remove a directory unless the\nentire directory is removed. A conformant implementation need not\nsupport directory removal in all situations (e.g. removal of the root\ndirectory).\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\nEIO\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n[ENAMETOOLONG, ELOOP]\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY, ENOTEMPTY, EEXIST]@\n\n* 'UnsupportedOperation'\nThe implementation does not support removal in this situation.\n@[EINVAL]@\n\n* 'InappropriateType'\nThe operand refers to an existing non-directory object.\n@[ENOTDIR]@\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 347 1 347 75) " | @'removeDirectoryRecursive' dir@  removes an existing directory /dir/",Comment False (SrcSpan "tests/examples/Directory.hs" 348 1 348 65) " together with its content and all subdirectories. Be careful,",Comment False (SrcSpan "tests/examples/Directory.hs" 349 1 349 70) " if the directory contains symlinks, the function will follow them.",Comment False (SrcSpan "tests/examples/Directory.hs" 360 31 360 77) " If f is not a directory, re-throw the error",Comment True (SrcSpan "tests/examples/Directory.hs" 365 1 397 3) " |'removeFile' /file/ removes the directory entry for an existing file\n/file/, where /file/ is not itself a directory. The\nimplementation may specify additional constraints which must be\nsatisfied before a file can be removed (e.g. the file may not be in\nuse by other processes).\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid file name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe file does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY]@\n\n* 'InappropriateType'\nThe operand refers to an existing directory.\n@[EPERM, EINVAL]@\n\n",Comment True (SrcSpan "tests/examples/Directory.hs" 403 1 450 3) " |@'renameDirectory' old new@ changes the name of an existing\ndirectory from /old/ to /new/.  If the /new/ directory\nalready exists, it is atomically replaced by the /old/ directory.\nIf the /new/ directory is neither the /old/ directory nor an\nalias of the /old/ directory, it is removed as if by\n'removeDirectory'.  A conformant implementation need not support\nrenaming directories in all situations (e.g. renaming to an existing\ndirectory, or across different physical devices), but the constraints\nmust be documented.\n\nOn Win32 platforms, @renameDirectory@ fails if the /new/ directory already\nexists.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nEither operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe original directory does not exist, or there is no path to the target.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY, ENOTEMPTY, EEXIST]@\n\n* 'UnsupportedOperation'\nThe implementation does not support renaming in this situation.\n@[EINVAL, EXDEV]@\n\n* 'InappropriateType'\nEither path refers to an existing non-directory object.\n@[ENOTDIR, EISDIR]@\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 454 4 454 73) " XXX this test isn't performed atomically with the following rename",Comment False (SrcSpan "tests/examples/Directory.hs" 455 4 455 26) " ToDo: use Win32 API",Comment True (SrcSpan "tests/examples/Directory.hs" 465 1 507 3) " |@'renameFile' old new@ changes the name of an existing file system\nobject from /old/ to /new/.  If the /new/ object already\nexists, it is atomically replaced by the /old/ object.  Neither\npath may refer to an existing directory.  A conformant implementation\nneed not support renaming files in all situations (e.g. renaming\nacross different physical devices), but the constraints must be\ndocumented.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nEither operand is not a valid file name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe original file does not exist, or there is no path to the target.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY]@\n\n* 'UnsupportedOperation'\nThe implementation does not support renaming in this situation.\n@[EXDEV]@\n\n* 'InappropriateType'\nEither path refers to an existing directory.\n@[ENOTDIR, EISDIR, EINVAL, EEXIST, ENOTEMPTY]@\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 511 4 511 73) " XXX this test isn't performed atomically with the following rename",Comment False (SrcSpan "tests/examples/Directory.hs" 512 4 512 26) " ToDo: use Win32 API",Comment True (SrcSpan "tests/examples/Directory.hs" 522 1 526 3) " |@'copyFile' old new@ copies the existing file from /old/ to /new/.\nIf the /new/ file already exists, it is atomically replaced by the /old/ file.\nNeither path may refer to an existing directory.  The permissions of /old/ are\ncopied to /new/, if possible.\n",Comment False (SrcSpan "tests/examples/Directory.hs" 553 1 553 60) " | Given path referring to a file or directory, returns a",Comment False (SrcSpan "tests/examples/Directory.hs" 554 1 554 64) " canonicalized path, with the intent that two paths referring",Comment False (SrcSpan "tests/examples/Directory.hs" 555 1 555 66) " to the same file\\/directory will map to the same canonicalized",Comment False (SrcSpan "tests/examples/Directory.hs" 556 1 556 58) " path. Note that it is impossible to guarantee that the",Comment False (SrcSpan "tests/examples/Directory.hs" 557 1 557 67) " implication (same file\\/dir \\<=\\> same canonicalizedPath) holds",Comment False (SrcSpan "tests/examples/Directory.hs" 558 1 558 66) " in either direction: this function can make only a best-effort",Comment False (SrcSpan "tests/examples/Directory.hs" 559 1 559 12) " attempt.",Comment False (SrcSpan "tests/examples/Directory.hs" 564 9 564 73) " normalise does more stuff, like upper-casing the drive letter",Comment False (SrcSpan "tests/examples/Directory.hs" 567 1 567 43) " | 'makeRelative' the current directory.",Comment False (SrcSpan "tests/examples/Directory.hs" 573 1 573 66) " | Given an executable file name, searches for such file in the",Comment False (SrcSpan "tests/examples/Directory.hs" 574 1 574 69) " directories listed in system PATH. The returned value is the path",Comment False (SrcSpan "tests/examples/Directory.hs" 575 1 575 70) " to the found executable or Nothing if an executable with the given",Comment False (SrcSpan "tests/examples/Directory.hs" 576 1 576 70) " name was not found. For example (findExecutable \\\"ghc\\\") gives you",Comment False (SrcSpan "tests/examples/Directory.hs" 577 1 577 20) " the path to GHC.",Comment False (SrcSpan "tests/examples/Directory.hs" 578 1 578 3) "",Comment False (SrcSpan "tests/examples/Directory.hs" 579 1 579 60) " The path returned by 'findExecutable' corresponds to the",Comment False (SrcSpan "tests/examples/Directory.hs" 580 1 580 68) " program that would be executed by 'System.Process.createProcess'",Comment False (SrcSpan "tests/examples/Directory.hs" 581 1 581 70) " when passed the same string (as a RawCommand, not a ShellCommand).",Comment False (SrcSpan "tests/examples/Directory.hs" 582 1 582 3) "",Comment False (SrcSpan "tests/examples/Directory.hs" 583 1 583 71) " On Windows, 'findExecutable' calls the Win32 function 'SearchPath',",Comment False (SrcSpan "tests/examples/Directory.hs" 584 1 584 68) " which may search other places before checking the directories in",Comment False (SrcSpan "tests/examples/Directory.hs" 585 1 585 69) " @PATH@.  Where it actually searches depends on registry settings,",Comment False (SrcSpan "tests/examples/Directory.hs" 586 1 586 61) " but notably includes the directory containing the current",Comment False (SrcSpan "tests/examples/Directory.hs" 587 1 587 19) " executable. See",Comment False (SrcSpan "tests/examples/Directory.hs" 588 1 588 68) " <http://msdn.microsoft.com/en-us/library/aa365527.aspx> for more",Comment False (SrcSpan "tests/examples/Directory.hs" 589 1 589 12) " details.",Comment False (SrcSpan "tests/examples/Directory.hs" 590 1 590 3) "",Comment True (SrcSpan "tests/examples/Directory.hs" 596 1 625 3) " |@'getDirectoryContents' dir@ returns a list of /all/ entries\nin /dir/.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EMFILE, ENFILE]@\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[ENOTDIR]@\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 636 9 636 71) " we needn't worry about empty directories: adirectory always",Comment False (SrcSpan "tests/examples/Directory.hs" 637 9 637 45) " has at least \".\" and \"..\" entries",Comment False (SrcSpan "tests/examples/Directory.hs" 645 18 645 62) " no need to reverse, ordering is undefined",Comment True (SrcSpan "tests/examples/Directory.hs" 647 1 671 3) " |If the operating system has a notion of current directories,\n'getCurrentDirectory' returns an absolute path to the\ncurrent directory of the calling process.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThere is no path referring to the current directory.\n@[EPERM, ENOENT, ESTALE...]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n\n* 'UnsupportedOperation'\nThe operating system has no notion of current directory.\n\n",Comment True (SrcSpan "tests/examples/Directory.hs" 676 1 706 3) " |If the operating system has a notion of current directories,\n@'setCurrentDirectory' dir@ changes the current\ndirectory of the calling process to /dir/.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'UnsupportedOperation'\nThe operating system has no notion of current directory, or the\ncurrent directory cannot be dynamically changed.\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[ENOTDIR]@\n\n",Comment True (SrcSpan "tests/examples/Directory.hs" 712 1 714 3) " |The operation 'doesDirectoryExist' returns 'True' if the argument file\nexists and is a directory, and 'False' otherwise.\n",Comment True (SrcSpan "tests/examples/Directory.hs" 721 1 723 3) " |The operation 'doesFileExist' returns 'True'\nif the argument file exists and is not a directory, and 'False' otherwise.\n",Comment True (SrcSpan "tests/examples/Directory.hs" 730 1 740 3) " |The 'getModificationTime' operation returns the\nclock time at which the file or directory was last modified.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to access\n  the modification time; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n",Comment False (SrcSpan "tests/examples/Directory.hs" 744 2 744 24) " ToDo: use Win32 API",Comment True (SrcSpan "tests/examples/Directory.hs" 787 1 807 3) " | Returns the current user's home directory.\n\nThe directory returned is expected to be writable by the current user,\nbut note that it isn't generally considered good practice to store\napplication-specific data here; use 'getAppUserDataDirectory'\ninstead.\n\nOn Unix, 'getHomeDirectory' returns the value of the @HOME@\nenvironment variable.  On Windows, the system is queried for a\nsuitable path; a typical path might be\n@C:/Documents And Settings/user@.\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of home directory.\n\n* 'isDoesNotExistError'\nThe home directory for the current user does not exist, or\ncannot be found.\n",Comment True (SrcSpan "tests/examples/Directory.hs" 820 1 846 3) " | Returns the pathname of a directory in which application-specific\ndata for the current user can be stored.  The result of\n'getAppUserDataDirectory' for a given application is specific to\nthe current user.\n\nThe argument should be the name of the application, which will be used\nto construct the pathname (so avoid using unusual characters that\nmight result in an invalid pathname).\n\nNote: the directory may not actually exist, and may need to be created\nfirst.  It is expected that the parent directory exists and is\nwritable.\n\nOn Unix, this function returns @$HOME\\/.appName@.  On Windows, a\ntypical path might be\n\n> C:/Documents And Settings/user/Application Data/appName\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of application-specific data directory.\n\n* 'isDoesNotExistError'\nThe home directory for the current user does not exist, or\ncannot be found.\n",Comment True (SrcSpan "tests/examples/Directory.hs" 853 1 873 3) " | Returns the current user's document directory.\n\nThe directory returned is expected to be writable by the current user,\nbut note that it isn't generally considered good practice to store\napplication-specific data here; use 'getAppUserDataDirectory'\ninstead.\n\nOn Unix, 'getUserDocumentsDirectory' returns the value of the @HOME@\nenvironment variable.  On Windows, the system is queried for a\nsuitable path; a typical path might be\n@C:\\/Documents and Settings\\/user\\/My Documents@.\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of document directory.\n\n* 'isDoesNotExistError'\nThe document directory for the current user does not exist, or\ncannot be found.\n",Comment True (SrcSpan "tests/examples/Directory.hs" 879 1 904 3) " | Returns the current directory for temporary files.\n\nOn Unix, 'getTemporaryDirectory' returns the value of the @TMPDIR@\nenvironment variable or \\\"\\/tmp\\\" if the variable isn\\'t defined.\nOn Windows, the function checks for the existence of environment variables in\nthe following order and uses the first path found:\n\n*\nTMP environment variable.\n\n*\nTEMP environment variable.\n\n*\nUSERPROFILE environment variable.\n\n*\nThe Windows directory\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of temporary directory.\n\nThe function doesn\\'t verify whether the path exists.\n",Comment False (SrcSpan "tests/examples/Directory.hs" 909 1 909 60) " ToDo: This should be determined via autoconf (AC_EXEEXT)",Comment False (SrcSpan "tests/examples/Directory.hs" 910 1 910 36) " | Extension for executable files",Comment False (SrcSpan "tests/examples/Directory.hs" 911 1 911 64) " (typically @\\\"\\\"@ on Unix and @\\\"exe\\\"@ on Windows or OS\\/2)"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 1 914 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Directory.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Directory.hs" 17 1 17 1
+            , SrcSpan "tests/examples/Directory.hs" 17 1 17 1
+            , SrcSpan "tests/examples/Directory.hs" 72 1 72 1
+            , SrcSpan "tests/examples/Directory.hs" 73 1 73 1
+            , SrcSpan "tests/examples/Directory.hs" 75 1 75 1
+            , SrcSpan "tests/examples/Directory.hs" 76 1 76 1
+            , SrcSpan "tests/examples/Directory.hs" 77 1 77 1
+            , SrcSpan "tests/examples/Directory.hs" 78 1 78 1
+            , SrcSpan "tests/examples/Directory.hs" 79 1 79 1
+            , SrcSpan "tests/examples/Directory.hs" 80 1 80 1
+            , SrcSpan "tests/examples/Directory.hs" 81 1 81 1
+            , SrcSpan "tests/examples/Directory.hs" 83 1 83 1
+            , SrcSpan "tests/examples/Directory.hs" 84 1 84 1
+            , SrcSpan "tests/examples/Directory.hs" 88 1 88 1
+            , SrcSpan "tests/examples/Directory.hs" 90 1 90 1
+            , SrcSpan "tests/examples/Directory.hs" 92 1 92 1
+            , SrcSpan "tests/examples/Directory.hs" 93 1 93 1
+            , SrcSpan "tests/examples/Directory.hs" 94 1 94 1
+            , SrcSpan "tests/examples/Directory.hs" 134 1 134 1
+            , SrcSpan "tests/examples/Directory.hs" 152 1 152 1
+            , SrcSpan "tests/examples/Directory.hs" 153 1 153 1
+            , SrcSpan "tests/examples/Directory.hs" 189 1 189 1
+            , SrcSpan "tests/examples/Directory.hs" 190 1 190 1
+            , SrcSpan "tests/examples/Directory.hs" 205 1 205 1
+            , SrcSpan "tests/examples/Directory.hs" 208 1 208 1
+            , SrcSpan "tests/examples/Directory.hs" 209 1 209 1
+            , SrcSpan "tests/examples/Directory.hs" 257 1 257 1
+            , SrcSpan "tests/examples/Directory.hs" 258 1 258 1
+            , SrcSpan "tests/examples/Directory.hs" 264 1 264 1
+            , SrcSpan "tests/examples/Directory.hs" 267 1 267 1
+            , SrcSpan "tests/examples/Directory.hs" 343 1 343 1
+            , SrcSpan "tests/examples/Directory.hs" 344 1 344 1
+            , SrcSpan "tests/examples/Directory.hs" 350 1 350 1
+            , SrcSpan "tests/examples/Directory.hs" 351 1 351 1
+            , SrcSpan "tests/examples/Directory.hs" 399 1 399 1
+            , SrcSpan "tests/examples/Directory.hs" 400 1 400 1
+            , SrcSpan "tests/examples/Directory.hs" 452 1 452 1
+            , SrcSpan "tests/examples/Directory.hs" 453 1 453 1
+            , SrcSpan "tests/examples/Directory.hs" 509 1 509 1
+            , SrcSpan "tests/examples/Directory.hs" 510 1 510 1
+            , SrcSpan "tests/examples/Directory.hs" 528 1 528 1
+            , SrcSpan "tests/examples/Directory.hs" 529 1 529 1
+            , SrcSpan "tests/examples/Directory.hs" 560 1 560 1
+            , SrcSpan "tests/examples/Directory.hs" 561 1 561 1
+            , SrcSpan "tests/examples/Directory.hs" 568 1 568 1
+            , SrcSpan "tests/examples/Directory.hs" 569 1 569 1
+            , SrcSpan "tests/examples/Directory.hs" 591 1 591 1
+            , SrcSpan "tests/examples/Directory.hs" 592 1 592 1
+            , SrcSpan "tests/examples/Directory.hs" 627 1 627 1
+            , SrcSpan "tests/examples/Directory.hs" 628 1 628 1
+            , SrcSpan "tests/examples/Directory.hs" 672 1 672 1
+            , SrcSpan "tests/examples/Directory.hs" 673 1 673 1
+            , SrcSpan "tests/examples/Directory.hs" 708 1 708 1
+            , SrcSpan "tests/examples/Directory.hs" 709 1 709 1
+            , SrcSpan "tests/examples/Directory.hs" 716 1 716 1
+            , SrcSpan "tests/examples/Directory.hs" 717 1 717 1
+            , SrcSpan "tests/examples/Directory.hs" 725 1 725 1
+            , SrcSpan "tests/examples/Directory.hs" 726 1 726 1
+            , SrcSpan "tests/examples/Directory.hs" 742 1 742 1
+            , SrcSpan "tests/examples/Directory.hs" 743 1 743 1
+            , SrcSpan "tests/examples/Directory.hs" 749 1 749 1
+            , SrcSpan "tests/examples/Directory.hs" 750 1 750 1
+            , SrcSpan "tests/examples/Directory.hs" 756 1 756 1
+            , SrcSpan "tests/examples/Directory.hs" 757 1 757 1
+            , SrcSpan "tests/examples/Directory.hs" 763 1 763 1
+            , SrcSpan "tests/examples/Directory.hs" 764 1 764 1
+            , SrcSpan "tests/examples/Directory.hs" 769 1 769 1
+            , SrcSpan "tests/examples/Directory.hs" 770 1 770 1
+            , SrcSpan "tests/examples/Directory.hs" 774 1 774 1
+            , SrcSpan "tests/examples/Directory.hs" 775 1 775 1
+            , SrcSpan "tests/examples/Directory.hs" 778 1 778 1
+            , SrcSpan "tests/examples/Directory.hs" 779 1 779 1
+            , SrcSpan "tests/examples/Directory.hs" 780 1 780 1
+            , SrcSpan "tests/examples/Directory.hs" 781 1 781 1
+            , SrcSpan "tests/examples/Directory.hs" 784 1 784 1
+            , SrcSpan "tests/examples/Directory.hs" 808 1 808 1
+            , SrcSpan "tests/examples/Directory.hs" 809 1 809 1
+            , SrcSpan "tests/examples/Directory.hs" 847 1 847 1
+            , SrcSpan "tests/examples/Directory.hs" 848 1 848 1
+            , SrcSpan "tests/examples/Directory.hs" 874 1 874 1
+            , SrcSpan "tests/examples/Directory.hs" 875 1 875 1
+            , SrcSpan "tests/examples/Directory.hs" 905 1 905 1
+            , SrcSpan "tests/examples/Directory.hs" 906 1 906 1
+            , SrcSpan "tests/examples/Directory.hs" 912 1 912 1
+            , SrcSpan "tests/examples/Directory.hs" 913 1 913 1
+            , SrcSpan "tests/examples/Directory.hs" 914 1 914 1
+            , SrcSpan "tests/examples/Directory.hs" 914 1 914 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 17 1 70 11
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Directory.hs" 17 1 17 7
+                  , SrcSpan "tests/examples/Directory.hs" 70 6 70 11
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 17 8 17 24
+                 , srcInfoPoints = []
+                 }
+               "System.Directory")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 18 4 70 5
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Directory.hs" 18 4 18 5
+                        , SrcSpan "tests/examples/Directory.hs" 23 5 23 6
+                        , SrcSpan "tests/examples/Directory.hs" 24 5 24 6
+                        , SrcSpan "tests/examples/Directory.hs" 25 5 25 6
+                        , SrcSpan "tests/examples/Directory.hs" 26 5 26 6
+                        , SrcSpan "tests/examples/Directory.hs" 28 5 28 6
+                        , SrcSpan "tests/examples/Directory.hs" 29 5 29 6
+                        , SrcSpan "tests/examples/Directory.hs" 30 5 30 6
+                        , SrcSpan "tests/examples/Directory.hs" 33 5 33 6
+                        , SrcSpan "tests/examples/Directory.hs" 34 5 34 6
+                        , SrcSpan "tests/examples/Directory.hs" 35 5 35 6
+                        , SrcSpan "tests/examples/Directory.hs" 36 5 36 6
+                        , SrcSpan "tests/examples/Directory.hs" 39 5 39 6
+                        , SrcSpan "tests/examples/Directory.hs" 40 5 40 6
+                        , SrcSpan "tests/examples/Directory.hs" 41 5 41 6
+                        , SrcSpan "tests/examples/Directory.hs" 43 5 43 6
+                        , SrcSpan "tests/examples/Directory.hs" 44 5 44 6
+                        , SrcSpan "tests/examples/Directory.hs" 45 5 45 6
+                        , SrcSpan "tests/examples/Directory.hs" 48 5 48 6
+                        , SrcSpan "tests/examples/Directory.hs" 49 5 49 6
+                        , SrcSpan "tests/examples/Directory.hs" 55 5 55 6
+                        , SrcSpan "tests/examples/Directory.hs" 63 5 63 6
+                        , SrcSpan "tests/examples/Directory.hs" 64 5 64 6
+                        , SrcSpan "tests/examples/Directory.hs" 65 5 65 6
+                        , SrcSpan "tests/examples/Directory.hs" 69 5 69 6
+                        , SrcSpan "tests/examples/Directory.hs" 70 4 70 5
+                        ]
+                    }
+                  [ EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 22 7 22 22
+                              , srcInfoPoints = []
+                              }
+                            "createDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 23 7 23 31
+                              , srcInfoPoints = []
+                              }
+                            "createDirectoryIfMissing"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 24 7 24 22
+                              , srcInfoPoints = []
+                              }
+                            "removeDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 25 7 25 31
+                              , srcInfoPoints = []
+                              }
+                            "removeDirectoryRecursive"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 26 7 26 22
+                              , srcInfoPoints = []
+                              }
+                            "renameDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 28 7 28 27
+                              , srcInfoPoints = []
+                              }
+                            "getDirectoryContents"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 29 7 29 26
+                              , srcInfoPoints = []
+                              }
+                            "getCurrentDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 30 7 30 26
+                              , srcInfoPoints = []
+                              }
+                            "setCurrentDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 33 7 33 23
+                              , srcInfoPoints = []
+                              }
+                            "getHomeDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 34 7 34 30
+                              , srcInfoPoints = []
+                              }
+                            "getAppUserDataDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 35 7 35 32
+                              , srcInfoPoints = []
+                              }
+                            "getUserDocumentsDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 36 7 36 28
+                              , srcInfoPoints = []
+                              }
+                            "getTemporaryDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 39 7 39 17
+                              , srcInfoPoints = []
+                              }
+                            "removeFile"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 40 7 40 17
+                              , srcInfoPoints = []
+                              }
+                            "renameFile"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 41 7 41 15
+                              , srcInfoPoints = []
+                              }
+                            "copyFile"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 43 7 43 23
+                              , srcInfoPoints = []
+                              }
+                            "canonicalizePath"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 44 7 44 37
+                              , srcInfoPoints = []
+                              }
+                            "makeRelativeToCurrentDirectory"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 45 7 45 21
+                              , srcInfoPoints = []
+                              }
+                            "findExecutable"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 48 7 48 20
+                              , srcInfoPoints = []
+                              }
+                            "doesFileExist"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 49 7 49 25
+                              , srcInfoPoints = []
+                              }
+                            "doesDirectoryExist"))
+                  , EThingWith
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 61 8
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 55 18 55 19
+                            , SrcSpan "tests/examples/Directory.hs" 56 16 56 17
+                            , SrcSpan "tests/examples/Directory.hs" 57 13 57 14
+                            , SrcSpan "tests/examples/Directory.hs" 58 13 58 14
+                            , SrcSpan "tests/examples/Directory.hs" 59 15 59 16
+                            , SrcSpan "tests/examples/Directory.hs" 61 7 61 8
+                            ]
+                        }
+                      (NoWildcard
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                           , srcInfoPoints = []
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 55 18
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 55 7 55 18
+                              , srcInfoPoints = []
+                              }
+                            "Permissions"))
+                      [ ConName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 56 5 56 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 56 5 56 16
+                               , srcInfoPoints = []
+                               }
+                             "Permissions")
+                      , VarName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 57 5 57 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 57 5 57 13
+                               , srcInfoPoints = []
+                               }
+                             "readable")
+                      , VarName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 58 5 58 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 58 5 58 13
+                               , srcInfoPoints = []
+                               }
+                             "writable")
+                      , VarName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 59 5 59 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 59 5 59 15
+                               , srcInfoPoints = []
+                               }
+                             "executable")
+                      , VarName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 60 5 60 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 60 5 60 15
+                               , srcInfoPoints = []
+                               }
+                             "searchable")
+                      ]
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 63 7 63 21
+                              , srcInfoPoints = []
+                              }
+                            "getPermissions"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 64 7 64 21
+                              , srcInfoPoints = []
+                              }
+                            "setPermissions"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 65 7 65 22
+                              , srcInfoPoints = []
+                              }
+                            "copyPermissions"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 69 7 69 26
+                              , srcInfoPoints = []
+                              }
+                            "getModificationTime"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 1 1 68
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Directory.hs" 1 38 1 39
+                , SrcSpan "tests/examples/Directory.hs" 1 65 1 68
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 14 1 38
+                , srcInfoPoints = []
+                }
+              "ForeignFunctionInterface"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 1 40 1 64
+                , srcInfoPoints = []
+                }
+              "NondecreasingIndentation"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 1 72 32
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 72 1 72 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 8 72 15
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 16 72 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 72 16 72 22
+                         , SrcSpan "tests/examples/Directory.hs" 72 23 72 24
+                         , SrcSpan "tests/examples/Directory.hs" 72 31 72 32
+                         ]
+                     }
+                   True
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 25 72 30
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 72 25 72 30
+                            , srcInfoPoints = []
+                            }
+                          "catch")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 73 1 73 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 73 1 73 7
+                    , SrcSpan "tests/examples/Directory.hs" 73 8 73 17
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 73 18 73 25
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 1 75 29
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 75 1 75 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 8 75 21
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 22 75 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 75 22 75 23
+                         , SrcSpan "tests/examples/Directory.hs" 75 28 75 29
+                         ]
+                     }
+                   False
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 23 75 28
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 75 23 75 28
+                            , srcInfoPoints = []
+                            }
+                          "guard")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 1 76 42
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 76 1 76 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 8 76 26
+                  , srcInfoPoints = []
+                  }
+                "System.Environment"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 32 76 42
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 76 32 76 33
+                         , SrcSpan "tests/examples/Directory.hs" 76 41 76 42
+                         ]
+                     }
+                   False
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 34 76 40
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 76 34 76 40
+                            , srcInfoPoints = []
+                            }
+                          "getEnv")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 77 1 77 23
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 77 1 77 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 77 8 77 23
+                  , srcInfoPoints = []
+                  }
+                "System.FilePath"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 78 1 78 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 78 1 78 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 78 8 78 17
+                  , srcInfoPoints = []
+                  }
+                "System.IO"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 1 79 45
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 79 1 79 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 8 79 23
+                  , srcInfoPoints = []
+                  }
+                "System.IO.Error"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 24 79 45
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 79 24 79 30
+                         , SrcSpan "tests/examples/Directory.hs" 79 31 79 32
+                         , SrcSpan "tests/examples/Directory.hs" 79 38 79 39
+                         , SrcSpan "tests/examples/Directory.hs" 79 44 79 45
+                         ]
+                     }
+                   True
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 33 79 38
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 33 79 38
+                            , srcInfoPoints = []
+                            }
+                          "catch")
+                   , IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 40 79 43
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 79 40 79 43
+                            , srcInfoPoints = []
+                            }
+                          "try")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 1 80 48
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 80 1 80 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 8 80 21
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 32 80 48
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 80 32 80 33
+                         , SrcSpan "tests/examples/Directory.hs" 80 38 80 39
+                         , SrcSpan "tests/examples/Directory.hs" 80 47 80 48
+                         ]
+                     }
+                   False
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 34 80 38
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 34 80 38
+                            , srcInfoPoints = []
+                            }
+                          "when")
+                   , IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 40 80 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 80 40 80 46
+                            , srcInfoPoints = []
+                            }
+                          "unless")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 81 1 81 30
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 81 1 81 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 81 8 81 30
+                  , srcInfoPoints = []
+                  }
+                "Control.Exception.Base"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 83 1 83 15
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 83 1 83 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 83 8 83 15
+                  , srcInfoPoints = []
+                  }
+                "Foreign"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 84 1 84 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 84 1 84 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 84 8 84 17
+                  , srcInfoPoints = []
+                  }
+                "Foreign.C"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 1 88 49
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 88 1 88 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 8 88 19
+                  , srcInfoPoints = []
+                  }
+                "System.Time"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 32 88 49
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 88 32 88 33
+                         , SrcSpan "tests/examples/Directory.hs" 88 48 88 49
+                         ]
+                     }
+                   False
+                   [ IThingAll
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 34 88 47
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 88 43 88 44
+                             , SrcSpan "tests/examples/Directory.hs" 88 44 88 46
+                             , SrcSpan "tests/examples/Directory.hs" 88 46 88 47
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 88 34 88 43
+                            , srcInfoPoints = []
+                            }
+                          "ClockTime")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 1 90 74
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 90 1 90 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 8 90 24
+                  , srcInfoPoints = []
+                  }
+                "GHC.IO.Exception"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 25 90 74
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 90 25 90 26
+                         , SrcSpan "tests/examples/Directory.hs" 90 42 90 43
+                         , SrcSpan "tests/examples/Directory.hs" 90 59 90 60
+                         , SrcSpan "tests/examples/Directory.hs" 90 73 90 74
+                         ]
+                     }
+                   False
+                   [ IThingAll
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 27 90 42
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 90 38 90 39
+                             , SrcSpan "tests/examples/Directory.hs" 90 39 90 41
+                             , SrcSpan "tests/examples/Directory.hs" 90 41 90 42
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 27 90 38
+                            , srcInfoPoints = []
+                            }
+                          "IOException")
+                   , IThingAll
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 44 90 59
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 90 55 90 56
+                             , SrcSpan "tests/examples/Directory.hs" 90 56 90 58
+                             , SrcSpan "tests/examples/Directory.hs" 90 58 90 59
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 44 90 55
+                            , srcInfoPoints = []
+                            }
+                          "IOErrorType")
+                   , IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 61 90 72
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 90 61 90 72
+                            , srcInfoPoints = []
+                            }
+                          "ioException")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 92 1 92 26
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 92 1 92 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 92 8 92 26
+                  , srcInfoPoints = []
+                  }
+                "System.Posix.Types"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 93 1 93 30
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 93 1 93 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 93 8 93 30
+                  , srcInfoPoints = []
+                  }
+                "System.Posix.Internals"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 1 94 39
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 94 1 94 7
+                    , SrcSpan "tests/examples/Directory.hs" 94 8 94 17
+                    , SrcSpan "tests/examples/Directory.hs" 94 31 94 33
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 18 94 30
+                  , srcInfoPoints = []
+                  }
+                "System.Win32"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 94 34 94 39
+                     , srcInfoPoints = []
+                     }
+                   "Win32")
+          , importSpecs = Nothing
+          }
+      ]
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 1 138 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 135 2 135 3 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 1 134 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 6 134 17
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 134 6 134 17
+                  , srcInfoPoints = []
+                  }
+                "Permissions"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 138 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 135 16 135 17
+                    , SrcSpan "tests/examples/Directory.hs" 138 4 138 5
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 138 5
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 135 16 135 17
+                       , SrcSpan "tests/examples/Directory.hs" 138 4 138 5
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 135 4 135 15
+                      , srcInfoPoints = []
+                      }
+                    "Permissions")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 5 137 35
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/Directory.hs" 136 13 136 14
+                           , SrcSpan "tests/examples/Directory.hs" 136 25 136 26
+                           , SrcSpan "tests/examples/Directory.hs" 137 15 137 16
+                           , SrcSpan "tests/examples/Directory.hs" 137 28 137 30
+                           ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 5 136 13
+                           , srcInfoPoints = []
+                           }
+                         "readable"
+                     , Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 136 17 136 25
+                           , srcInfoPoints = []
+                           }
+                         "writable"
+                     , Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 5 137 15
+                           , srcInfoPoints = []
+                           }
+                         "executable"
+                     , Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 17 137 27
+                           , srcInfoPoints = []
+                           }
+                         "searchable"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 137 31 137 35
+                                , srcInfoPoints = []
+                                }
+                              "Bool")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 6 138 36
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 138 6 138 14
+                    , SrcSpan "tests/examples/Directory.hs" 138 15 138 16
+                    , SrcSpan "tests/examples/Directory.hs" 138 18 138 19
+                    , SrcSpan "tests/examples/Directory.hs" 138 23 138 24
+                    , SrcSpan "tests/examples/Directory.hs" 138 29 138 30
+                    , SrcSpan "tests/examples/Directory.hs" 138 35 138 36
+                    ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 16 138 18
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 20 138 23
+                             , srcInfoPoints = []
+                             }
+                           "Ord")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 25 138 29
+                             , srcInfoPoints = []
+                             }
+                           "Read")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 138 31 138 35
+                             , srcInfoPoints = []
+                             }
+                           "Show")))
+              ]
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 1 152 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 152 16 152 18 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 1 152 15
+                , srcInfoPoints = []
+                }
+              "getPermissions"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 45
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 152 28 152 30 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 19 152 27
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 45
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 31 152 33
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 152 34 152 45
+                           , srcInfoPoints = []
+                           }
+                         "Permissions")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 175 5
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 175 5
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 1 153 15
+                   , srcInfoPoints = []
+                   }
+                 "getPermissions")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 16 153 20
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 16 153 20
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 21 175 5
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 153 21 153 22 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 153 23 175 5
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 153 23 153 25
+                          , SrcSpan "tests/examples/Directory.hs" 154 3 154 3
+                          , SrcSpan "tests/examples/Directory.hs" 189 1 189 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 175 5
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 175 5
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 3 154 20
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 154 3 154 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 154 3 154 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 154 3 154 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "withFilePath")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 154 16 154 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 154 16 154 20
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 154 16 154 20
+                                         , srcInfoPoints = []
+                                         }
+                                       "name"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 21 154 22
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 154 21 154 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 154 21 154 22
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 154 23 175 5
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 154 23 154 24
+                                    , SrcSpan "tests/examples/Directory.hs" 154 26 154 28
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 154 24 154 25
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 154 24 154 25
+                                       , srcInfoPoints = []
+                                       }
+                                     "s")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 154 29 175 5
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 154 29 154 31
+                                       , SrcSpan "tests/examples/Directory.hs" 161 3 161 3
+                                       , SrcSpan "tests/examples/Directory.hs" 161 3 161 3
+                                       , SrcSpan "tests/examples/Directory.hs" 189 1 189 0
+                                       ]
+                                   }
+                                 [ Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 161 3 175 5
+                                       , srcInfoPoints = []
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 161 3 175 5
+                                          , srcInfoPoints = []
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 161 3 161 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 161 3 161 14
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 161 3 161 14
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            161
+                                                            3
+                                                            161
+                                                            14
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "allocaBytes")))
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 161 15 161 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 161 15 161 26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            161
+                                                            15
+                                                            161
+                                                            26
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "sizeof_stat"))))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 161 27 161 28
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 161 27 161 28
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 161 27 161 28
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "$")))
+                                        (Lambda
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 161 29 175 5
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 161 29 161 30
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 161 38 161 40
+                                                 ]
+                                             }
+                                           [ PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 161 31 161 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          161
+                                                          31
+                                                          161
+                                                          37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "p_stat")
+                                           ]
+                                           (Do
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 161 41 175 5
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 161 41 161 43
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 162 3 162 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 162 3 162 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 163 3 163 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 164 3 164 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 165 3 165 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 166 3 166 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 167 3 167 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 168 3 168 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 189 1 189 0
+                                                    ]
+                                                }
+                                              [ Qualifier
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 162 3 162 57
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (InfixApp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             162
+                                                             3
+                                                             162
+                                                             57
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                162
+                                                                3
+                                                                162
+                                                                39
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   162
+                                                                   3
+                                                                   162
+                                                                   22
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      3
+                                                                      162
+                                                                      22
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         162
+                                                                         3
+                                                                         162
+                                                                         22
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "throwErrnoIfMinus1_")))
+                                                        (Lit
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   162
+                                                                   23
+                                                                   162
+                                                                   39
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (String
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      23
+                                                                      162
+                                                                      39
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "getPermissions"
+                                                              "getPermissions")))
+                                                     (QVarOp
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                162
+                                                                40
+                                                                162
+                                                                41
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   162
+                                                                   40
+                                                                   162
+                                                                   41
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Symbol
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      40
+                                                                      162
+                                                                      41
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "$")))
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                162
+                                                                42
+                                                                162
+                                                                57
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (App
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   162
+                                                                   42
+                                                                   162
+                                                                   50
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      42
+                                                                      162
+                                                                      48
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         162
+                                                                         42
+                                                                         162
+                                                                         48
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            162
+                                                                            42
+                                                                            162
+                                                                            48
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "c_stat")))
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      49
+                                                                      162
+                                                                      50
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         162
+                                                                         49
+                                                                         162
+                                                                         50
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            162
+                                                                            49
+                                                                            162
+                                                                            50
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "s"))))
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   162
+                                                                   51
+                                                                   162
+                                                                   57
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      162
+                                                                      51
+                                                                      162
+                                                                      57
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         162
+                                                                         51
+                                                                         162
+                                                                         57
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "p_stat")))))
+                                              , Generator
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 163 3 163 25
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            163
+                                                            8
+                                                            163
+                                                            10
+                                                        ]
+                                                    }
+                                                  (PVar
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             163
+                                                             3
+                                                             163
+                                                             7
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                163
+                                                                3
+                                                                163
+                                                                7
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "mode"))
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             163
+                                                             11
+                                                             163
+                                                             25
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                163
+                                                                11
+                                                                163
+                                                                18
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   163
+                                                                   11
+                                                                   163
+                                                                   18
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      163
+                                                                      11
+                                                                      163
+                                                                      18
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "st_mode")))
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                163
+                                                                19
+                                                                163
+                                                                25
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   163
+                                                                   19
+                                                                   163
+                                                                   25
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      163
+                                                                      19
+                                                                      163
+                                                                      25
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "p_stat"))))
+                                              , LetStmt
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 164 3 164 36
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            164
+                                                            3
+                                                            164
+                                                            6
+                                                        ]
+                                                    }
+                                                  (BDecls
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             164
+                                                             7
+                                                             164
+                                                             36
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               164
+                                                               7
+                                                               164
+                                                               7
+                                                           , SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               165
+                                                               3
+                                                               165
+                                                               0
+                                                           ]
+                                                       }
+                                                     [ PatBind
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 164
+                                                                 7
+                                                                 164
+                                                                 36
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (PVar
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    164
+                                                                    7
+                                                                    164
+                                                                    15
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       164
+                                                                       7
+                                                                       164
+                                                                       15
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "usr_read"))
+                                                         (UnGuardedRhs
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    164
+                                                                    18
+                                                                    164
+                                                                    36
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      164
+                                                                      18
+                                                                      164
+                                                                      19
+                                                                  ]
+                                                              }
+                                                            (InfixApp
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       164
+                                                                       20
+                                                                       164
+                                                                       36
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          164
+                                                                          20
+                                                                          164
+                                                                          24
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             164
+                                                                             20
+                                                                             164
+                                                                             24
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                164
+                                                                                20
+                                                                                164
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "mode")))
+                                                               (QVarOp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          164
+                                                                          25
+                                                                          164
+                                                                          28
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             164
+                                                                             25
+                                                                             164
+                                                                             28
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Symbol
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                164
+                                                                                25
+                                                                                164
+                                                                                28
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        ".&.")))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          164
+                                                                          29
+                                                                          164
+                                                                          36
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             164
+                                                                             29
+                                                                             164
+                                                                             36
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                164
+                                                                                29
+                                                                                164
+                                                                                36
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "s_IRUSR")))))
+                                                         Nothing
+                                                     ])
+                                              , LetStmt
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 165 3 165 36
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            165
+                                                            3
+                                                            165
+                                                            6
+                                                        ]
+                                                    }
+                                                  (BDecls
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             165
+                                                             7
+                                                             165
+                                                             36
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               165
+                                                               7
+                                                               165
+                                                               7
+                                                           , SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               166
+                                                               3
+                                                               166
+                                                               0
+                                                           ]
+                                                       }
+                                                     [ PatBind
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 165
+                                                                 7
+                                                                 165
+                                                                 36
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (PVar
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    165
+                                                                    7
+                                                                    165
+                                                                    16
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       165
+                                                                       7
+                                                                       165
+                                                                       16
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "usr_write"))
+                                                         (UnGuardedRhs
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    165
+                                                                    18
+                                                                    165
+                                                                    36
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      165
+                                                                      18
+                                                                      165
+                                                                      19
+                                                                  ]
+                                                              }
+                                                            (InfixApp
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       165
+                                                                       20
+                                                                       165
+                                                                       36
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          165
+                                                                          20
+                                                                          165
+                                                                          24
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             165
+                                                                             20
+                                                                             165
+                                                                             24
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                165
+                                                                                20
+                                                                                165
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "mode")))
+                                                               (QVarOp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          165
+                                                                          25
+                                                                          165
+                                                                          28
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             165
+                                                                             25
+                                                                             165
+                                                                             28
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Symbol
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                165
+                                                                                25
+                                                                                165
+                                                                                28
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        ".&.")))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          165
+                                                                          29
+                                                                          165
+                                                                          36
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             165
+                                                                             29
+                                                                             165
+                                                                             36
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                165
+                                                                                29
+                                                                                165
+                                                                                36
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "s_IWUSR")))))
+                                                         Nothing
+                                                     ])
+                                              , LetStmt
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 166 3 166 36
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            166
+                                                            3
+                                                            166
+                                                            6
+                                                        ]
+                                                    }
+                                                  (BDecls
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             166
+                                                             7
+                                                             166
+                                                             36
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               166
+                                                               7
+                                                               166
+                                                               7
+                                                           , SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               167
+                                                               3
+                                                               167
+                                                               0
+                                                           ]
+                                                       }
+                                                     [ PatBind
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 166
+                                                                 7
+                                                                 166
+                                                                 36
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (PVar
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    166
+                                                                    7
+                                                                    166
+                                                                    15
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       166
+                                                                       7
+                                                                       166
+                                                                       15
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "usr_exec"))
+                                                         (UnGuardedRhs
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    166
+                                                                    18
+                                                                    166
+                                                                    36
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      166
+                                                                      18
+                                                                      166
+                                                                      19
+                                                                  ]
+                                                              }
+                                                            (InfixApp
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       166
+                                                                       20
+                                                                       166
+                                                                       36
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          166
+                                                                          20
+                                                                          166
+                                                                          24
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             166
+                                                                             20
+                                                                             166
+                                                                             24
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                166
+                                                                                20
+                                                                                166
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "mode")))
+                                                               (QVarOp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          166
+                                                                          25
+                                                                          166
+                                                                          28
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             166
+                                                                             25
+                                                                             166
+                                                                             28
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Symbol
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                166
+                                                                                25
+                                                                                166
+                                                                                28
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        ".&.")))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          166
+                                                                          29
+                                                                          166
+                                                                          36
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             166
+                                                                             29
+                                                                             166
+                                                                             36
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                166
+                                                                                29
+                                                                                166
+                                                                                36
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "s_IXUSR")))))
+                                                         Nothing
+                                                     ])
+                                              , LetStmt
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 167 3 167 32
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            167
+                                                            3
+                                                            167
+                                                            6
+                                                        ]
+                                                    }
+                                                  (BDecls
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             167
+                                                             7
+                                                             167
+                                                             32
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               167
+                                                               7
+                                                               167
+                                                               7
+                                                           , SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               168
+                                                               3
+                                                               168
+                                                               0
+                                                           ]
+                                                       }
+                                                     [ PatBind
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 167
+                                                                 7
+                                                                 167
+                                                                 32
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (PVar
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    167
+                                                                    7
+                                                                    167
+                                                                    13
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       167
+                                                                       7
+                                                                       167
+                                                                       13
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "is_dir"))
+                                                         (UnGuardedRhs
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    167
+                                                                    14
+                                                                    167
+                                                                    32
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      167
+                                                                      14
+                                                                      167
+                                                                      15
+                                                                  ]
+                                                              }
+                                                            (InfixApp
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       167
+                                                                       16
+                                                                       167
+                                                                       32
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          167
+                                                                          16
+                                                                          167
+                                                                          20
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             167
+                                                                             16
+                                                                             167
+                                                                             20
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                167
+                                                                                16
+                                                                                167
+                                                                                20
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "mode")))
+                                                               (QVarOp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          167
+                                                                          21
+                                                                          167
+                                                                          24
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             167
+                                                                             21
+                                                                             167
+                                                                             24
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Symbol
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                167
+                                                                                21
+                                                                                167
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        ".&.")))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          167
+                                                                          25
+                                                                          167
+                                                                          32
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             167
+                                                                             25
+                                                                             167
+                                                                             32
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                167
+                                                                                25
+                                                                                167
+                                                                                32
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "s_IFDIR")))))
+                                                         Nothing
+                                                     ])
+                                              , Qualifier
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 168 3 175 5
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             168
+                                                             3
+                                                             175
+                                                             5
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                168
+                                                                3
+                                                                168
+                                                                9
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   168
+                                                                   3
+                                                                   168
+                                                                   9
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      168
+                                                                      3
+                                                                      168
+                                                                      9
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "return")))
+                                                     (Paren
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                168
+                                                                10
+                                                                175
+                                                                5
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  168
+                                                                  10
+                                                                  168
+                                                                  11
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  175
+                                                                  4
+                                                                  175
+                                                                  5
+                                                              ]
+                                                          }
+                                                        (RecConstr
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   169
+                                                                   5
+                                                                   174
+                                                                   6
+                                                             , srcInfoPoints =
+                                                                 [ SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     169
+                                                                     17
+                                                                     169
+                                                                     18
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     170
+                                                                     34
+                                                                     170
+                                                                     35
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     171
+                                                                     34
+                                                                     171
+                                                                     35
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     172
+                                                                     48
+                                                                     172
+                                                                     49
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     174
+                                                                     5
+                                                                     174
+                                                                     6
+                                                                 ]
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      169
+                                                                      5
+                                                                      169
+                                                                      16
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         169
+                                                                         5
+                                                                         169
+                                                                         16
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "Permissions"))
+                                                           [ FieldUpdate
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       170
+                                                                       7
+                                                                       170
+                                                                       34
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         170
+                                                                         18
+                                                                         170
+                                                                         19
+                                                                     ]
+                                                                 }
+                                                               (UnQual
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          170
+                                                                          7
+                                                                          170
+                                                                          15
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Ident
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             170
+                                                                             7
+                                                                             170
+                                                                             15
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     "readable"))
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          170
+                                                                          20
+                                                                          170
+                                                                          34
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             170
+                                                                             20
+                                                                             170
+                                                                             28
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                170
+                                                                                20
+                                                                                170
+                                                                                28
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   170
+                                                                                   20
+                                                                                   170
+                                                                                   28
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "usr_read")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             170
+                                                                             30
+                                                                             170
+                                                                             32
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                170
+                                                                                30
+                                                                                170
+                                                                                32
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   170
+                                                                                   30
+                                                                                   170
+                                                                                   32
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "/=")))
+                                                                  (Lit
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             170
+                                                                             33
+                                                                             170
+                                                                             34
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Int
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                170
+                                                                                33
+                                                                                170
+                                                                                34
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        0
+                                                                        "0")))
+                                                           , FieldUpdate
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       171
+                                                                       7
+                                                                       171
+                                                                       34
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         171
+                                                                         18
+                                                                         171
+                                                                         19
+                                                                     ]
+                                                                 }
+                                                               (UnQual
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          171
+                                                                          7
+                                                                          171
+                                                                          15
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Ident
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             171
+                                                                             7
+                                                                             171
+                                                                             15
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     "writable"))
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          171
+                                                                          20
+                                                                          171
+                                                                          34
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             171
+                                                                             20
+                                                                             171
+                                                                             29
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                171
+                                                                                20
+                                                                                171
+                                                                                29
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   171
+                                                                                   20
+                                                                                   171
+                                                                                   29
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "usr_write")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             171
+                                                                             30
+                                                                             171
+                                                                             32
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                171
+                                                                                30
+                                                                                171
+                                                                                32
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   171
+                                                                                   30
+                                                                                   171
+                                                                                   32
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "/=")))
+                                                                  (Lit
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             171
+                                                                             33
+                                                                             171
+                                                                             34
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Int
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                171
+                                                                                33
+                                                                                171
+                                                                                34
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        0
+                                                                        "0")))
+                                                           , FieldUpdate
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       172
+                                                                       7
+                                                                       172
+                                                                       48
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         172
+                                                                         18
+                                                                         172
+                                                                         19
+                                                                     ]
+                                                                 }
+                                                               (UnQual
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          172
+                                                                          7
+                                                                          172
+                                                                          17
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Ident
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             172
+                                                                             7
+                                                                             172
+                                                                             17
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     "executable"))
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          172
+                                                                          20
+                                                                          172
+                                                                          48
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (InfixApp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             172
+                                                                             20
+                                                                             172
+                                                                             31
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                20
+                                                                                172
+                                                                                26
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   20
+                                                                                   172
+                                                                                   26
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      172
+                                                                                      20
+                                                                                      172
+                                                                                      26
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "is_dir")))
+                                                                     (QVarOp
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                27
+                                                                                172
+                                                                                29
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   27
+                                                                                   172
+                                                                                   29
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Symbol
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      172
+                                                                                      27
+                                                                                      172
+                                                                                      29
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "==")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                30
+                                                                                172
+                                                                                31
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Int
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   30
+                                                                                   172
+                                                                                   31
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           0
+                                                                           "0")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             172
+                                                                             32
+                                                                             172
+                                                                             34
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                32
+                                                                                172
+                                                                                34
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   32
+                                                                                   172
+                                                                                   34
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "&&")))
+                                                                  (InfixApp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             172
+                                                                             35
+                                                                             172
+                                                                             48
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                35
+                                                                                172
+                                                                                43
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   35
+                                                                                   172
+                                                                                   43
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      172
+                                                                                      35
+                                                                                      172
+                                                                                      43
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "usr_exec")))
+                                                                     (QVarOp
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                44
+                                                                                172
+                                                                                46
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   44
+                                                                                   172
+                                                                                   46
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Symbol
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      172
+                                                                                      44
+                                                                                      172
+                                                                                      46
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "/=")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                172
+                                                                                47
+                                                                                172
+                                                                                48
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Int
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   172
+                                                                                   47
+                                                                                   172
+                                                                                   48
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           0
+                                                                           "0"))))
+                                                           , FieldUpdate
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       173
+                                                                       7
+                                                                       173
+                                                                       48
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         173
+                                                                         18
+                                                                         173
+                                                                         19
+                                                                     ]
+                                                                 }
+                                                               (UnQual
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          173
+                                                                          7
+                                                                          173
+                                                                          17
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Ident
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             173
+                                                                             7
+                                                                             173
+                                                                             17
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     "searchable"))
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          173
+                                                                          20
+                                                                          173
+                                                                          48
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (InfixApp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             173
+                                                                             20
+                                                                             173
+                                                                             31
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                20
+                                                                                173
+                                                                                26
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   20
+                                                                                   173
+                                                                                   26
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      173
+                                                                                      20
+                                                                                      173
+                                                                                      26
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "is_dir")))
+                                                                     (QVarOp
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                27
+                                                                                173
+                                                                                29
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   27
+                                                                                   173
+                                                                                   29
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Symbol
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      173
+                                                                                      27
+                                                                                      173
+                                                                                      29
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "/=")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                30
+                                                                                173
+                                                                                31
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Int
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   30
+                                                                                   173
+                                                                                   31
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           0
+                                                                           "0")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             173
+                                                                             32
+                                                                             173
+                                                                             34
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                32
+                                                                                173
+                                                                                34
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   32
+                                                                                   173
+                                                                                   34
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "&&")))
+                                                                  (InfixApp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             173
+                                                                             35
+                                                                             173
+                                                                             48
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                35
+                                                                                173
+                                                                                43
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   35
+                                                                                   173
+                                                                                   43
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      173
+                                                                                      35
+                                                                                      173
+                                                                                      43
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "usr_exec")))
+                                                                     (QVarOp
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                44
+                                                                                173
+                                                                                46
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   44
+                                                                                   173
+                                                                                   46
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Symbol
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      173
+                                                                                      44
+                                                                                      173
+                                                                                      46
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "/=")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                173
+                                                                                47
+                                                                                173
+                                                                                48
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Int
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   173
+                                                                                   47
+                                                                                   173
+                                                                                   48
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           0
+                                                                           "0"))))
+                                                           ])))
+                                              ])))
+                                 ])))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 1 189 51
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 189 16 189 18 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 1 189 15
+                , srcInfoPoints = []
+                }
+              "setPermissions"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 51
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 189 28 189 30 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 19 189 27
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 51
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 189 43 189 45 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 31 189 42
+                           , srcInfoPoints = []
+                           }
+                         "Permissions")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 51
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 46 189 48
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 189 49 189 50
+                            , SrcSpan "tests/examples/Directory.hs" 189 50 189 51
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 189 49 189 50
+                               , SrcSpan "tests/examples/Directory.hs" 189 50 189 51
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 189 49 189 51
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 189 49 189 50
+                                  , SrcSpan "tests/examples/Directory.hs" 189 50 189 51
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 203 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 200 2 200 7 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 203 33
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 200 2 200 7 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 1 190 15
+                   , srcInfoPoints = []
+                   }
+                 "setPermissions")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 16 190 20
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 16 190 20
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              , PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 21 190 42
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Directory.hs" 190 21 190 22
+                        , SrcSpan "tests/examples/Directory.hs" 190 41 190 42
+                        ]
+                    }
+                  (PApp
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 41
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 33
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 22 190 33
+                             , srcInfoPoints = []
+                             }
+                           "Permissions"))
+                     [ PVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 34 190 35
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 34 190 35
+                              , srcInfoPoints = []
+                              }
+                            "r")
+                     , PVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 36 190 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 36 190 37
+                              , srcInfoPoints = []
+                              }
+                            "w")
+                     , PVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 38 190 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 38 190 39
+                              , srcInfoPoints = []
+                              }
+                            "e")
+                     , PVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 40 190 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 40 190 41
+                              , srcInfoPoints = []
+                              }
+                            "s")
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 43 199 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 190 43 190 44 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 190 45 199 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 190 45 190 47
+                          , SrcSpan "tests/examples/Directory.hs" 191 3 191 3
+                          , SrcSpan "tests/examples/Directory.hs" 200 2 200 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 199 28
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 199 28
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 3 191 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 191 3 191 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 191 3 191 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 191 3 191 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "allocaBytes")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 191 15 191 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 191 15 191 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 191 15 191 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "sizeof_stat"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 27 191 28
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 191 27 191 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 191 27 191 28
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 191 29 199 28
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 191 29 191 30
+                                    , SrcSpan "tests/examples/Directory.hs" 191 38 191 40
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 191 31 191 37
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 191 31 191 37
+                                       , srcInfoPoints = []
+                                       }
+                                     "p_stat")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 191 41 199 28
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 191 41 191 43
+                                       , SrcSpan "tests/examples/Directory.hs" 192 3 192 3
+                                       , SrcSpan "tests/examples/Directory.hs" 192 3 192 3
+                                       , SrcSpan "tests/examples/Directory.hs" 200 2 200 0
+                                       ]
+                                   }
+                                 [ Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 192 3 199 28
+                                       , srcInfoPoints = []
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 192 3 199 28
+                                          , srcInfoPoints = []
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 192 3 192 20
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 192 3 192 15
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 192 3 192 15
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            192
+                                                            3
+                                                            192
+                                                            15
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "withFilePath")))
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 192 16 192 20
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 192 16 192 20
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            192
+                                                            16
+                                                            192
+                                                            20
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "name"))))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 192 21 192 22
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 192 21 192 22
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 192 21 192 22
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "$")))
+                                        (Lambda
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 192 23 199 28
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 192 23 192 24
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 192 31 192 33
+                                                 ]
+                                             }
+                                           [ PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 192 24 192 30
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          192
+                                                          24
+                                                          192
+                                                          30
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "p_name")
+                                           ]
+                                           (Do
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 192 34 199 28
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 192 34 192 36
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 193 5 193 5
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 200 2 200 0
+                                                    ]
+                                                }
+                                              [ Qualifier
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 193 5 199 28
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (InfixApp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             193
+                                                             5
+                                                             199
+                                                             28
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                193
+                                                                5
+                                                                193
+                                                                41
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   193
+                                                                   5
+                                                                   193
+                                                                   24
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      193
+                                                                      5
+                                                                      193
+                                                                      24
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         193
+                                                                         5
+                                                                         193
+                                                                         24
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "throwErrnoIfMinus1_")))
+                                                        (Lit
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   193
+                                                                   25
+                                                                   193
+                                                                   41
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (String
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      193
+                                                                      25
+                                                                      193
+                                                                      41
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "setPermissions"
+                                                              "setPermissions")))
+                                                     (QVarOp
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                193
+                                                                42
+                                                                193
+                                                                43
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   193
+                                                                   42
+                                                                   193
+                                                                   43
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Symbol
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      193
+                                                                      42
+                                                                      193
+                                                                      43
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "$")))
+                                                     (Do
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                193
+                                                                44
+                                                                199
+                                                                28
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  193
+                                                                  44
+                                                                  193
+                                                                  46
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  194
+                                                                  7
+                                                                  194
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  195
+                                                                  7
+                                                                  195
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  196
+                                                                  7
+                                                                  196
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  197
+                                                                  7
+                                                                  197
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  198
+                                                                  7
+                                                                  198
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  199
+                                                                  7
+                                                                  199
+                                                                  7
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  200
+                                                                  2
+                                                                  200
+                                                                  0
+                                                              ]
+                                                          }
+                                                        [ Qualifier
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    194
+                                                                    7
+                                                                    194
+                                                                    27
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (App
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       194
+                                                                       7
+                                                                       194
+                                                                       27
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (App
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          194
+                                                                          7
+                                                                          194
+                                                                          20
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             194
+                                                                             7
+                                                                             194
+                                                                             13
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                194
+                                                                                7
+                                                                                194
+                                                                                13
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   194
+                                                                                   7
+                                                                                   194
+                                                                                   13
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "c_stat")))
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             194
+                                                                             14
+                                                                             194
+                                                                             20
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                194
+                                                                                14
+                                                                                194
+                                                                                20
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   194
+                                                                                   14
+                                                                                   194
+                                                                                   20
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "p_name"))))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          194
+                                                                          21
+                                                                          194
+                                                                          27
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             194
+                                                                             21
+                                                                             194
+                                                                             27
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                194
+                                                                                21
+                                                                                194
+                                                                                27
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "p_stat"))))
+                                                        , Generator
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    195
+                                                                    7
+                                                                    195
+                                                                    29
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      195
+                                                                      12
+                                                                      195
+                                                                      14
+                                                                  ]
+                                                              }
+                                                            (PVar
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       195
+                                                                       7
+                                                                       195
+                                                                       11
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          195
+                                                                          7
+                                                                          195
+                                                                          11
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "mode"))
+                                                            (App
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       195
+                                                                       15
+                                                                       195
+                                                                       29
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          195
+                                                                          15
+                                                                          195
+                                                                          22
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             195
+                                                                             15
+                                                                             195
+                                                                             22
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                195
+                                                                                15
+                                                                                195
+                                                                                22
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "st_mode")))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          195
+                                                                          23
+                                                                          195
+                                                                          29
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             195
+                                                                             23
+                                                                             195
+                                                                             29
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                195
+                                                                                23
+                                                                                195
+                                                                                29
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "p_stat"))))
+                                                        , LetStmt
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    196
+                                                                    7
+                                                                    196
+                                                                    43
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      196
+                                                                      7
+                                                                      196
+                                                                      10
+                                                                  ]
+                                                              }
+                                                            (BDecls
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       196
+                                                                       11
+                                                                       196
+                                                                       43
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         196
+                                                                         11
+                                                                         196
+                                                                         11
+                                                                     , SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         197
+                                                                         7
+                                                                         197
+                                                                         0
+                                                                     ]
+                                                                 }
+                                                               [ PatBind
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           196
+                                                                           11
+                                                                           196
+                                                                           43
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (PVar
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              196
+                                                                              11
+                                                                              196
+                                                                              16
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 196
+                                                                                 11
+                                                                                 196
+                                                                                 16
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "mode1"))
+                                                                   (UnGuardedRhs
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              196
+                                                                              17
+                                                                              196
+                                                                              43
+                                                                        , srcInfoPoints =
+                                                                            [ SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                196
+                                                                                17
+                                                                                196
+                                                                                18
+                                                                            ]
+                                                                        }
+                                                                      (App
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 196
+                                                                                 19
+                                                                                 196
+                                                                                 43
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (App
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    196
+                                                                                    19
+                                                                                    196
+                                                                                    35
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (App
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       196
+                                                                                       19
+                                                                                       196
+                                                                                       30
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Var
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          196
+                                                                                          19
+                                                                                          196
+                                                                                          28
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (UnQual
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             196
+                                                                                             19
+                                                                                             196
+                                                                                             28
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Ident
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                196
+                                                                                                19
+                                                                                                196
+                                                                                                28
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        "modifyBit")))
+                                                                               (Var
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          196
+                                                                                          29
+                                                                                          196
+                                                                                          30
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (UnQual
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             196
+                                                                                             29
+                                                                                             196
+                                                                                             30
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Ident
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                196
+                                                                                                29
+                                                                                                196
+                                                                                                30
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        "r"))))
+                                                                            (Var
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       196
+                                                                                       31
+                                                                                       196
+                                                                                       35
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (UnQual
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          196
+                                                                                          31
+                                                                                          196
+                                                                                          35
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (Ident
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             196
+                                                                                             31
+                                                                                             196
+                                                                                             35
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     "mode"))))
+                                                                         (Var
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    196
+                                                                                    36
+                                                                                    196
+                                                                                    43
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (UnQual
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       196
+                                                                                       36
+                                                                                       196
+                                                                                       43
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Ident
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          196
+                                                                                          36
+                                                                                          196
+                                                                                          43
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  "s_IRUSR")))))
+                                                                   Nothing
+                                                               ])
+                                                        , LetStmt
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    197
+                                                                    7
+                                                                    197
+                                                                    44
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      197
+                                                                      7
+                                                                      197
+                                                                      10
+                                                                  ]
+                                                              }
+                                                            (BDecls
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       197
+                                                                       11
+                                                                       197
+                                                                       44
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         197
+                                                                         11
+                                                                         197
+                                                                         11
+                                                                     , SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         198
+                                                                         7
+                                                                         198
+                                                                         0
+                                                                     ]
+                                                                 }
+                                                               [ PatBind
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           197
+                                                                           11
+                                                                           197
+                                                                           44
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (PVar
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              197
+                                                                              11
+                                                                              197
+                                                                              16
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 197
+                                                                                 11
+                                                                                 197
+                                                                                 16
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "mode2"))
+                                                                   (UnGuardedRhs
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              197
+                                                                              17
+                                                                              197
+                                                                              44
+                                                                        , srcInfoPoints =
+                                                                            [ SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                197
+                                                                                17
+                                                                                197
+                                                                                18
+                                                                            ]
+                                                                        }
+                                                                      (App
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 197
+                                                                                 19
+                                                                                 197
+                                                                                 44
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (App
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    197
+                                                                                    19
+                                                                                    197
+                                                                                    36
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (App
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       197
+                                                                                       19
+                                                                                       197
+                                                                                       30
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Var
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          197
+                                                                                          19
+                                                                                          197
+                                                                                          28
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (UnQual
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             197
+                                                                                             19
+                                                                                             197
+                                                                                             28
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Ident
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                197
+                                                                                                19
+                                                                                                197
+                                                                                                28
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        "modifyBit")))
+                                                                               (Var
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          197
+                                                                                          29
+                                                                                          197
+                                                                                          30
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (UnQual
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             197
+                                                                                             29
+                                                                                             197
+                                                                                             30
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Ident
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                197
+                                                                                                29
+                                                                                                197
+                                                                                                30
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        "w"))))
+                                                                            (Var
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       197
+                                                                                       31
+                                                                                       197
+                                                                                       36
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (UnQual
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          197
+                                                                                          31
+                                                                                          197
+                                                                                          36
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (Ident
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             197
+                                                                                             31
+                                                                                             197
+                                                                                             36
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     "mode1"))))
+                                                                         (Var
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    197
+                                                                                    37
+                                                                                    197
+                                                                                    44
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (UnQual
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       197
+                                                                                       37
+                                                                                       197
+                                                                                       44
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Ident
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          197
+                                                                                          37
+                                                                                          197
+                                                                                          44
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  "s_IWUSR")))))
+                                                                   Nothing
+                                                               ])
+                                                        , LetStmt
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    198
+                                                                    7
+                                                                    198
+                                                                    51
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      198
+                                                                      7
+                                                                      198
+                                                                      10
+                                                                  ]
+                                                              }
+                                                            (BDecls
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       198
+                                                                       11
+                                                                       198
+                                                                       51
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         198
+                                                                         11
+                                                                         198
+                                                                         11
+                                                                     , SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         199
+                                                                         7
+                                                                         199
+                                                                         0
+                                                                     ]
+                                                                 }
+                                                               [ PatBind
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           198
+                                                                           11
+                                                                           198
+                                                                           51
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (PVar
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              198
+                                                                              11
+                                                                              198
+                                                                              16
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 198
+                                                                                 11
+                                                                                 198
+                                                                                 16
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "mode3"))
+                                                                   (UnGuardedRhs
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              198
+                                                                              17
+                                                                              198
+                                                                              51
+                                                                        , srcInfoPoints =
+                                                                            [ SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                198
+                                                                                17
+                                                                                198
+                                                                                18
+                                                                            ]
+                                                                        }
+                                                                      (App
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 198
+                                                                                 19
+                                                                                 198
+                                                                                 51
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (App
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    198
+                                                                                    19
+                                                                                    198
+                                                                                    43
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (App
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       198
+                                                                                       19
+                                                                                       198
+                                                                                       37
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Var
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          198
+                                                                                          19
+                                                                                          198
+                                                                                          28
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (UnQual
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             198
+                                                                                             19
+                                                                                             198
+                                                                                             28
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Ident
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                198
+                                                                                                19
+                                                                                                198
+                                                                                                28
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        "modifyBit")))
+                                                                               (Paren
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          198
+                                                                                          29
+                                                                                          198
+                                                                                          37
+                                                                                    , srcInfoPoints =
+                                                                                        [ SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            198
+                                                                                            29
+                                                                                            198
+                                                                                            30
+                                                                                        , SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            198
+                                                                                            36
+                                                                                            198
+                                                                                            37
+                                                                                        ]
+                                                                                    }
+                                                                                  (InfixApp
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             198
+                                                                                             30
+                                                                                             198
+                                                                                             36
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     (Var
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                198
+                                                                                                30
+                                                                                                198
+                                                                                                31
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        (UnQual
+                                                                                           SrcSpanInfo
+                                                                                             { srcInfoSpan =
+                                                                                                 SrcSpan
+                                                                                                   "tests/examples/Directory.hs"
+                                                                                                   198
+                                                                                                   30
+                                                                                                   198
+                                                                                                   31
+                                                                                             , srcInfoPoints =
+                                                                                                 []
+                                                                                             }
+                                                                                           (Ident
+                                                                                              SrcSpanInfo
+                                                                                                { srcInfoSpan =
+                                                                                                    SrcSpan
+                                                                                                      "tests/examples/Directory.hs"
+                                                                                                      198
+                                                                                                      30
+                                                                                                      198
+                                                                                                      31
+                                                                                                , srcInfoPoints =
+                                                                                                    []
+                                                                                                }
+                                                                                              "e")))
+                                                                                     (QVarOp
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                198
+                                                                                                32
+                                                                                                198
+                                                                                                34
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        (UnQual
+                                                                                           SrcSpanInfo
+                                                                                             { srcInfoSpan =
+                                                                                                 SrcSpan
+                                                                                                   "tests/examples/Directory.hs"
+                                                                                                   198
+                                                                                                   32
+                                                                                                   198
+                                                                                                   34
+                                                                                             , srcInfoPoints =
+                                                                                                 []
+                                                                                             }
+                                                                                           (Symbol
+                                                                                              SrcSpanInfo
+                                                                                                { srcInfoSpan =
+                                                                                                    SrcSpan
+                                                                                                      "tests/examples/Directory.hs"
+                                                                                                      198
+                                                                                                      32
+                                                                                                      198
+                                                                                                      34
+                                                                                                , srcInfoPoints =
+                                                                                                    []
+                                                                                                }
+                                                                                              "||")))
+                                                                                     (Var
+                                                                                        SrcSpanInfo
+                                                                                          { srcInfoSpan =
+                                                                                              SrcSpan
+                                                                                                "tests/examples/Directory.hs"
+                                                                                                198
+                                                                                                35
+                                                                                                198
+                                                                                                36
+                                                                                          , srcInfoPoints =
+                                                                                              []
+                                                                                          }
+                                                                                        (UnQual
+                                                                                           SrcSpanInfo
+                                                                                             { srcInfoSpan =
+                                                                                                 SrcSpan
+                                                                                                   "tests/examples/Directory.hs"
+                                                                                                   198
+                                                                                                   35
+                                                                                                   198
+                                                                                                   36
+                                                                                             , srcInfoPoints =
+                                                                                                 []
+                                                                                             }
+                                                                                           (Ident
+                                                                                              SrcSpanInfo
+                                                                                                { srcInfoSpan =
+                                                                                                    SrcSpan
+                                                                                                      "tests/examples/Directory.hs"
+                                                                                                      198
+                                                                                                      35
+                                                                                                      198
+                                                                                                      36
+                                                                                                , srcInfoPoints =
+                                                                                                    []
+                                                                                                }
+                                                                                              "s"))))))
+                                                                            (Var
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       198
+                                                                                       38
+                                                                                       198
+                                                                                       43
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (UnQual
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          198
+                                                                                          38
+                                                                                          198
+                                                                                          43
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  (Ident
+                                                                                     SrcSpanInfo
+                                                                                       { srcInfoSpan =
+                                                                                           SrcSpan
+                                                                                             "tests/examples/Directory.hs"
+                                                                                             198
+                                                                                             38
+                                                                                             198
+                                                                                             43
+                                                                                       , srcInfoPoints =
+                                                                                           []
+                                                                                       }
+                                                                                     "mode2"))))
+                                                                         (Var
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    198
+                                                                                    44
+                                                                                    198
+                                                                                    51
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (UnQual
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       198
+                                                                                       44
+                                                                                       198
+                                                                                       51
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               (Ident
+                                                                                  SrcSpanInfo
+                                                                                    { srcInfoSpan =
+                                                                                        SrcSpan
+                                                                                          "tests/examples/Directory.hs"
+                                                                                          198
+                                                                                          44
+                                                                                          198
+                                                                                          51
+                                                                                    , srcInfoPoints =
+                                                                                        []
+                                                                                    }
+                                                                                  "s_IXUSR")))))
+                                                                   Nothing
+                                                               ])
+                                                        , Qualifier
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    199
+                                                                    7
+                                                                    199
+                                                                    28
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (App
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       199
+                                                                       7
+                                                                       199
+                                                                       28
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (App
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          199
+                                                                          7
+                                                                          199
+                                                                          22
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             199
+                                                                             7
+                                                                             199
+                                                                             15
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                199
+                                                                                7
+                                                                                199
+                                                                                15
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   199
+                                                                                   7
+                                                                                   199
+                                                                                   15
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "c_wchmod")))
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             199
+                                                                             16
+                                                                             199
+                                                                             22
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                199
+                                                                                16
+                                                                                199
+                                                                                22
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   199
+                                                                                   16
+                                                                                   199
+                                                                                   22
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "p_name"))))
+                                                               (Var
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          199
+                                                                          23
+                                                                          199
+                                                                          28
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (UnQual
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             199
+                                                                             23
+                                                                             199
+                                                                             28
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Ident
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                199
+                                                                                23
+                                                                                199
+                                                                                28
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        "mode3"))))
+                                                        ]))
+                                              ])))
+                                 ])))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 203 33
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 201 4 201 4
+                          , SrcSpan "tests/examples/Directory.hs" 202 4 202 4
+                          , SrcSpan "tests/examples/Directory.hs" 203 4 203 4
+                          , SrcSpan "tests/examples/Directory.hs" 205 1 205 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 201 48
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 201 14 201 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 4 201 13
+                              , srcInfoPoints = []
+                              }
+                            "modifyBit"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 48
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 201 22 201 24 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 17 201 21
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 201 17 201 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 201 17 201 21
+                                      , srcInfoPoints = []
+                                      }
+                                    "Bool")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 201 25 201 48
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 201 31 201 33 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 201 25 201 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 201 25 201 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 201 25 201 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "CMode")))
+                              (TyFun
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 201 34 201 48
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 201 40 201 42 ]
+                                   }
+                                 (TyCon
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 201 34 201 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 201 34 201 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 201 34 201 39
+                                            , srcInfoPoints = []
+                                            }
+                                          "CMode")))
+                                 (TyCon
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 201 43 201 48
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 201 43 201 48
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 201 43 201 48
+                                            , srcInfoPoints = []
+                                            }
+                                          "CMode"))))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 203 33
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 202 46
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 4 202 13
+                                 , srcInfoPoints = []
+                                 }
+                               "modifyBit")
+                            [ PApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 202 14 202 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 202 14 202 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 202 14 202 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "False"))
+                                []
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 202 20 202 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 202 20 202 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "m")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 202 22 202 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 202 22 202 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 202 24 202 46
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 202 24 202 25 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 202 26 202 46
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 202 26 202 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 202 26 202 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 202 26 202 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "m")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 202 28 202 31
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 202 28 202 31
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 202 28 202 31
+                                             , srcInfoPoints = []
+                                             }
+                                           ".&.")))
+                                  (Paren
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 202 32 202 46
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 202 32 202 33
+                                           , SrcSpan "tests/examples/Directory.hs" 202 45 202 46
+                                           ]
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 202 33 202 45
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 202 33 202 43
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 202 33 202 43
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 202 33 202 43
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "complement")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 202 44 202 45
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 202 44 202 45
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 202 44 202 45
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "b")))))))
+                            Nothing
+                        , Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 4 203 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 4 203 13
+                                 , srcInfoPoints = []
+                                 }
+                               "modifyBit")
+                            [ PApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 203 14 203 18
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 203 14 203 18
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 203 14 203 18
+                                        , srcInfoPoints = []
+                                        }
+                                      "True"))
+                                []
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 203 20 203 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 203 20 203 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "m")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 203 22 203 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 203 22 203 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 203 24 203 33
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 203 24 203 25 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 203 26 203 33
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 203 26 203 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 203 26 203 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 203 26 203 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "m")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 203 28 203 31
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 203 28 203 31
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 203 28 203 31
+                                             , srcInfoPoints = []
+                                             }
+                                           ".|.")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 203 32 203 33
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 203 32 203 33
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 203 32 203 33
+                                             , srcInfoPoints = []
+                                             }
+                                           "b")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 1 206 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 205 1 205 8
+                , SrcSpan "tests/examples/Directory.hs" 205 9 205 15
+                , SrcSpan "tests/examples/Directory.hs" 205 29 205 38
+                , SrcSpan "tests/examples/Directory.hs" 206 13 206 15
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 16 205 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 205 22 205 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "_wchmod")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 4 206 12
+               , srcInfoPoints = []
+               }
+             "c_wchmod")
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 44
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 206 25 206 27 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 16 206 24
+                        , srcInfoPoints = []
+                        }
+                      "CWString")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 44
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 206 34 206 36 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 28 206 33
+                           , srcInfoPoints = []
+                           }
+                         "CMode")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 44
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 37 206 39
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 206 40 206 44
+                              , srcInfoPoints = []
+                              }
+                            "CInt"))))))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 1 208 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 208 17 208 19 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 1 208 16
+                , srcInfoPoints = []
+                }
+              "copyPermissions"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 49
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 208 29 208 31 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 20 208 28
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 49
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 208 41 208 43 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 32 208 40
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 49
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 44 208 46
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 208 47 208 48
+                            , SrcSpan "tests/examples/Directory.hs" 208 48 208 49
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 208 47 208 48
+                               , SrcSpan "tests/examples/Directory.hs" 208 48 208 49
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 208 47 208 49
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 208 47 208 48
+                                  , SrcSpan "tests/examples/Directory.hs" 208 48 208 49
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 215 65
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 215 65
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 1 209 16
+                   , srcInfoPoints = []
+                   }
+                 "copyPermissions")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 17 209 23
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 17 209 23
+                       , srcInfoPoints = []
+                       }
+                     "source")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 24 209 28
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 24 209 28
+                       , srcInfoPoints = []
+                       }
+                     "dest")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 29 215 65
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 209 29 209 30 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 209 31 215 65
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 209 31 209 33
+                          , SrcSpan "tests/examples/Directory.hs" 210 3 210 3
+                          , SrcSpan "tests/examples/Directory.hs" 257 1 257 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 215 65
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 215 65
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 3 210 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 210 3 210 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 210 3 210 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 210 3 210 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "allocaBytes")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 210 15 210 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 210 15 210 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 210 15 210 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "sizeof_stat"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 27 210 28
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 210 27 210 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 210 27 210 28
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 210 29 215 65
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 210 29 210 30
+                                    , SrcSpan "tests/examples/Directory.hs" 210 38 210 40
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 210 31 210 37
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 210 31 210 37
+                                       , srcInfoPoints = []
+                                       }
+                                     "p_stat")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 210 41 215 65
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 210 41 210 43
+                                       , SrcSpan "tests/examples/Directory.hs" 211 3 211 3
+                                       , SrcSpan "tests/examples/Directory.hs" 211 3 211 3
+                                       , SrcSpan "tests/examples/Directory.hs" 257 1 257 0
+                                       ]
+                                   }
+                                 [ Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 211 3 215 65
+                                       , srcInfoPoints = []
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 211 3 215 65
+                                          , srcInfoPoints = []
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 211 3 211 22
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 211 3 211 15
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 211 3 211 15
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            211
+                                                            3
+                                                            211
+                                                            15
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "withFilePath")))
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 211 16 211 22
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 211 16 211 22
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            211
+                                                            16
+                                                            211
+                                                            22
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "source"))))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 211 23 211 24
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 211 23 211 24
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 211 23 211 24
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "$")))
+                                        (Lambda
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 211 25 215 65
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 211 25 211 26
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 211 35 211 37
+                                                 ]
+                                             }
+                                           [ PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 211 26 211 34
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          211
+                                                          26
+                                                          211
+                                                          34
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "p_source")
+                                           ]
+                                           (Do
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 211 38 215 65
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 211 38 211 40
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 212 3 212 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 212 3 212 3
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 257 1 257 0
+                                                    ]
+                                                }
+                                              [ Qualifier
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 212 3 215 65
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (InfixApp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             212
+                                                             3
+                                                             215
+                                                             65
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                212
+                                                                3
+                                                                212
+                                                                20
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   212
+                                                                   3
+                                                                   212
+                                                                   15
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      212
+                                                                      3
+                                                                      212
+                                                                      15
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         212
+                                                                         3
+                                                                         212
+                                                                         15
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "withFilePath")))
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   212
+                                                                   16
+                                                                   212
+                                                                   20
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      212
+                                                                      16
+                                                                      212
+                                                                      20
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         212
+                                                                         16
+                                                                         212
+                                                                         20
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "dest"))))
+                                                     (QVarOp
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                212
+                                                                21
+                                                                212
+                                                                22
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   212
+                                                                   21
+                                                                   212
+                                                                   22
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Symbol
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      212
+                                                                      21
+                                                                      212
+                                                                      22
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "$")))
+                                                     (Lambda
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                212
+                                                                23
+                                                                215
+                                                                65
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  212
+                                                                  23
+                                                                  212
+                                                                  24
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  212
+                                                                  31
+                                                                  212
+                                                                  33
+                                                              ]
+                                                          }
+                                                        [ PVar
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    212
+                                                                    24
+                                                                    212
+                                                                    30
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       212
+                                                                       24
+                                                                       212
+                                                                       30
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "p_dest")
+                                                        ]
+                                                        (Do
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   212
+                                                                   34
+                                                                   215
+                                                                   65
+                                                             , srcInfoPoints =
+                                                                 [ SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     212
+                                                                     34
+                                                                     212
+                                                                     36
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     213
+                                                                     5
+                                                                     213
+                                                                     5
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     214
+                                                                     5
+                                                                     214
+                                                                     5
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     215
+                                                                     5
+                                                                     215
+                                                                     5
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     257
+                                                                     1
+                                                                     257
+                                                                     0
+                                                                 ]
+                                                             }
+                                                           [ Qualifier
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       213
+                                                                       5
+                                                                       213
+                                                                       67
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          213
+                                                                          5
+                                                                          213
+                                                                          67
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (App
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             213
+                                                                             5
+                                                                             213
+                                                                             42
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                213
+                                                                                5
+                                                                                213
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   5
+                                                                                   213
+                                                                                   24
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      213
+                                                                                      5
+                                                                                      213
+                                                                                      24
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "throwErrnoIfMinus1_")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                213
+                                                                                25
+                                                                                213
+                                                                                42
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (String
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   25
+                                                                                   213
+                                                                                   42
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "copyPermissions"
+                                                                           "copyPermissions")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             213
+                                                                             43
+                                                                             213
+                                                                             44
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                213
+                                                                                43
+                                                                                213
+                                                                                44
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   43
+                                                                                   213
+                                                                                   44
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "$")))
+                                                                  (App
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             213
+                                                                             45
+                                                                             213
+                                                                             67
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (App
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                213
+                                                                                45
+                                                                                213
+                                                                                60
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Var
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   45
+                                                                                   213
+                                                                                   51
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (UnQual
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      213
+                                                                                      45
+                                                                                      213
+                                                                                      51
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              (Ident
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         213
+                                                                                         45
+                                                                                         213
+                                                                                         51
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 "c_stat")))
+                                                                        (Var
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   52
+                                                                                   213
+                                                                                   60
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (UnQual
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      213
+                                                                                      52
+                                                                                      213
+                                                                                      60
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              (Ident
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         213
+                                                                                         52
+                                                                                         213
+                                                                                         60
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 "p_source"))))
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                213
+                                                                                61
+                                                                                213
+                                                                                67
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   213
+                                                                                   61
+                                                                                   213
+                                                                                   67
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      213
+                                                                                      61
+                                                                                      213
+                                                                                      67
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "p_stat")))))
+                                                           , Generator
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       214
+                                                                       5
+                                                                       214
+                                                                       27
+                                                                 , srcInfoPoints =
+                                                                     [ SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         214
+                                                                         10
+                                                                         214
+                                                                         12
+                                                                     ]
+                                                                 }
+                                                               (PVar
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          214
+                                                                          5
+                                                                          214
+                                                                          9
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Ident
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             214
+                                                                             5
+                                                                             214
+                                                                             9
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     "mode"))
+                                                               (App
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          214
+                                                                          13
+                                                                          214
+                                                                          27
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             214
+                                                                             13
+                                                                             214
+                                                                             20
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                214
+                                                                                13
+                                                                                214
+                                                                                20
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   214
+                                                                                   13
+                                                                                   214
+                                                                                   20
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "st_mode")))
+                                                                  (Var
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             214
+                                                                             21
+                                                                             214
+                                                                             27
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                214
+                                                                                21
+                                                                                214
+                                                                                27
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Ident
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   214
+                                                                                   21
+                                                                                   214
+                                                                                   27
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "p_stat"))))
+                                                           , Qualifier
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       215
+                                                                       5
+                                                                       215
+                                                                       65
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (InfixApp
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          215
+                                                                          5
+                                                                          215
+                                                                          65
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  (App
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             215
+                                                                             5
+                                                                             215
+                                                                             42
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                215
+                                                                                5
+                                                                                215
+                                                                                24
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   5
+                                                                                   215
+                                                                                   24
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      215
+                                                                                      5
+                                                                                      215
+                                                                                      24
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "throwErrnoIfMinus1_")))
+                                                                     (Lit
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                215
+                                                                                25
+                                                                                215
+                                                                                42
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (String
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   25
+                                                                                   215
+                                                                                   42
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "copyPermissions"
+                                                                           "copyPermissions")))
+                                                                  (QVarOp
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             215
+                                                                             43
+                                                                             215
+                                                                             44
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (UnQual
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                215
+                                                                                43
+                                                                                215
+                                                                                44
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Symbol
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   43
+                                                                                   215
+                                                                                   44
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           "$")))
+                                                                  (App
+                                                                     SrcSpanInfo
+                                                                       { srcInfoSpan =
+                                                                           SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             215
+                                                                             45
+                                                                             215
+                                                                             65
+                                                                       , srcInfoPoints = []
+                                                                       }
+                                                                     (App
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                215
+                                                                                45
+                                                                                215
+                                                                                60
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (Var
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   45
+                                                                                   215
+                                                                                   53
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (UnQual
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      215
+                                                                                      45
+                                                                                      215
+                                                                                      53
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              (Ident
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         215
+                                                                                         45
+                                                                                         215
+                                                                                         53
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 "c_wchmod")))
+                                                                        (Var
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   54
+                                                                                   215
+                                                                                   60
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (UnQual
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      215
+                                                                                      54
+                                                                                      215
+                                                                                      60
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              (Ident
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         215
+                                                                                         54
+                                                                                         215
+                                                                                         60
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 "p_dest"))))
+                                                                     (Var
+                                                                        SrcSpanInfo
+                                                                          { srcInfoSpan =
+                                                                              SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                215
+                                                                                61
+                                                                                215
+                                                                                65
+                                                                          , srcInfoPoints = []
+                                                                          }
+                                                                        (UnQual
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   215
+                                                                                   61
+                                                                                   215
+                                                                                   65
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      215
+                                                                                      61
+                                                                                      215
+                                                                                      65
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "mode")))))
+                                                           ])))
+                                              ])))
+                                 ])))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 1 257 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 257 17 257 19 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 1 257 16
+                , srcInfoPoints = []
+                }
+              "createDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 257 29 257 31 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 20 257 28
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 37
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 32 257 34
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 257 35 257 36
+                         , SrcSpan "tests/examples/Directory.hs" 257 36 257 37
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 257 35 257 36
+                            , SrcSpan "tests/examples/Directory.hs" 257 36 257 37
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 257 35 257 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 257 35 257 36
+                               , SrcSpan "tests/examples/Directory.hs" 257 36 257 37
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 259 37
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 259 37
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 1 258 16
+                   , srcInfoPoints = []
+                   }
+                 "createDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 17 258 21
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 17 258 21
+                       , srcInfoPoints = []
+                       }
+                     "path")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 22 259 37
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 258 22 258 23 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 258 24 259 37
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 258 24 258 26
+                          , SrcSpan "tests/examples/Directory.hs" 259 3 259 3
+                          , SrcSpan "tests/examples/Directory.hs" 264 1 264 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 37
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 37
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 3 259 29
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 259 3 259 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 259 3 259 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 259 3 259 24
+                                         , srcInfoPoints = []
+                                         }
+                                       "Win32")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 259 3 259 24
+                                         , srcInfoPoints = []
+                                         }
+                                       "createDirectory")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 259 25 259 29
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 259 25 259 29
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 259 25 259 29
+                                         , srcInfoPoints = []
+                                         }
+                                       "path"))))
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 259 30 259 37
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 259 30 259 37
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 259 30 259 37
+                                      , srcInfoPoints = []
+                                      }
+                                    "Nothing"))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 1 266 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 264 26 264 28 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 1 264 25
+                , srcInfoPoints = []
+                }
+              "createDirectoryIfMissing"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 266 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 265 18 265 20 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 264 29 264 33
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 266 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 266 18 266 20 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 265 21 265 29
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 26
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 21 266 23
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 266 24 266 25
+                            , SrcSpan "tests/examples/Directory.hs" 266 25 266 26
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 266 24 266 25
+                               , SrcSpan "tests/examples/Directory.hs" 266 25 266 26
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 266 24 266 26
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 266 24 266 25
+                                  , SrcSpan "tests/examples/Directory.hs" 266 25 266 26
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 300 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 270 3 270 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 300 46
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 270 3 270 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 1 267 25
+                   , srcInfoPoints = []
+                   }
+                 "createDirectoryIfMissing")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 26 267 40
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 26 267 40
+                       , srcInfoPoints = []
+                       }
+                     "create_parents")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 41 267 46
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 267 41 267 46
+                       , srcInfoPoints = []
+                       }
+                     "path0")
+              ]
+              (GuardedRhss
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 3 269 57
+                   , srcInfoPoints = []
+                   }
+                 [ GuardedRhs
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 3 268 48
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/Directory.hs" 268 3 268 4
+                           , SrcSpan "tests/examples/Directory.hs" 268 20 268 21
+                           ]
+                       }
+                     [ Qualifier
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 5 268 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 268 5 268 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "create_parents")))
+                     ]
+                     (App
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 48
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 32
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 22 268 32
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 268 22 268 32
+                                   , srcInfoPoints = []
+                                   }
+                                 "createDirs")))
+                        (Paren
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 33 268 48
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 268 33 268 34
+                                 , SrcSpan "tests/examples/Directory.hs" 268 47 268 48
+                                 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 268 34 268 47
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 268 34 268 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 268 34 268 41
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 268 34 268 41
+                                         , srcInfoPoints = []
+                                         }
+                                       "parents")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 268 42 268 47
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 268 42 268 47
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 268 42 268 47
+                                         , srcInfoPoints = []
+                                         }
+                                       "path0"))))))
+                 , GuardedRhs
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 3 269 57
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/Directory.hs" 269 3 269 4
+                           , SrcSpan "tests/examples/Directory.hs" 269 20 269 21
+                           ]
+                       }
+                     [ Qualifier
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 5 269 14
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 269 5 269 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "otherwise")))
+                     ]
+                     (App
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 57
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 32
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 22 269 32
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 269 22 269 32
+                                   , srcInfoPoints = []
+                                   }
+                                 "createDirs")))
+                        (Paren
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 33 269 57
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 269 33 269 34
+                                 , SrcSpan "tests/examples/Directory.hs" 269 56 269 57
+                                 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 269 34 269 56
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 269 34 269 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 269 34 269 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 269 34 269 38
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 269 34 269 38
+                                            , srcInfoPoints = []
+                                            }
+                                          "take")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 269 39 269 40
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 269 39 269 40
+                                         , srcInfoPoints = []
+                                         }
+                                       1
+                                       "1")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 269 41 269 56
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 269 41 269 42
+                                       , SrcSpan "tests/examples/Directory.hs" 269 55 269 56
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 269 42 269 55
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 269 42 269 49
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 269 42 269 49
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 269 42 269 49
+                                               , srcInfoPoints = []
+                                               }
+                                             "parents")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 269 50 269 55
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 269 50 269 55
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 269 50 269 55
+                                               , srcInfoPoints = []
+                                               }
+                                             "path0"))))))))
+                 ])
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 300 46
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 271 5 271 5
+                          , SrcSpan "tests/examples/Directory.hs" 273 5 273 5
+                          , SrcSpan "tests/examples/Directory.hs" 274 5 274 5
+                          , SrcSpan "tests/examples/Directory.hs" 275 5 275 5
+                          , SrcSpan "tests/examples/Directory.hs" 280 5 280 5
+                          , SrcSpan "tests/examples/Directory.hs" 281 5 281 5
+                          , SrcSpan "tests/examples/Directory.hs" 343 1 343 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 68
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 12
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 5 271 12
+                                , srcInfoPoints = []
+                                }
+                              "parents"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 13 271 68
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 271 13 271 14 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 271 15 271 68
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 271 15 271 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 271 15 271 22
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 15 271 22
+                                         , srcInfoPoints = []
+                                         }
+                                       "reverse")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 271 23 271 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 271 23 271 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 23 271 24
+                                         , srcInfoPoints = []
+                                         }
+                                       ".")))
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 271 25 271 68
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 271 25 271 37
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 25 271 31
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 25 271 31
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 271 25 271 31
+                                               , srcInfoPoints = []
+                                               }
+                                             "scanl1")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 32 271 37
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 271 32 271 33
+                                             , SrcSpan "tests/examples/Directory.hs" 271 33 271 36
+                                             , SrcSpan "tests/examples/Directory.hs" 271 36 271 37
+                                             ]
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 32 271 37
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 271 32 271 33
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 271 33 271 36
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 271 36 271 37
+                                                ]
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 271 33 271 36
+                                               , srcInfoPoints = []
+                                               }
+                                             "</>"))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 271 38 271 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 38 271 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 38 271 39
+                                            , srcInfoPoints = []
+                                            }
+                                          ".")))
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 271 40 271 68
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 40 271 56
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 40 271 56
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 271 40 271 56
+                                               , srcInfoPoints = []
+                                               }
+                                             "splitDirectories")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 57 271 58
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 57 271 58
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 271 57 271 58
+                                               , srcInfoPoints = []
+                                               }
+                                             ".")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 271 59 271 68
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 271 59 271 68
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 271 59 271 68
+                                               , srcInfoPoints = []
+                                               }
+                                             "normalise")))))))
+                        Nothing
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 278 28
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 273 38
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 5 273 15
+                                 , srcInfoPoints = []
+                                 }
+                               "createDirs")
+                            [ PList
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 273 16 273 18
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 273 16 273 17
+                                      , SrcSpan "tests/examples/Directory.hs" 273 17 273 18
+                                      ]
+                                  }
+                                []
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 273 27 273 38
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 273 27 273 28 ]
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 273 29 273 38
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 273 29 273 35
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 273 29 273 35
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 273 29 273 35
+                                             , srcInfoPoints = []
+                                             }
+                                           "return")))
+                                  (Con
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 273 36 273 38
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 273 36 273 37
+                                           , SrcSpan "tests/examples/Directory.hs" 273 37 273 38
+                                           ]
+                                       }
+                                     (Special
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 273 36 273 38
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 273 36 273 37
+                                              , SrcSpan "tests/examples/Directory.hs" 273 37 273 38
+                                              ]
+                                          }
+                                        (UnitCon
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 273 36 273 38
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 273 36 273 37
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 273 37 273 38
+                                                 ]
+                                             })))))
+                            Nothing
+                        , Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 5 274 48
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 5 274 15
+                                 , srcInfoPoints = []
+                                 }
+                               "createDirs")
+                            [ PParen
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 274 16 274 24
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 274 16 274 17
+                                      , SrcSpan "tests/examples/Directory.hs" 274 23 274 24
+                                      ]
+                                  }
+                                (PInfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 274 17 274 23
+                                     , srcInfoPoints = []
+                                     }
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 274 17 274 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 274 17 274 20
+                                           , srcInfoPoints = []
+                                           }
+                                         "dir"))
+                                   (Special
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 274 20 274 21
+                                        , srcInfoPoints = []
+                                        }
+                                      (Cons
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 274 20 274 21
+                                           , srcInfoPoints = []
+                                           }))
+                                   (PList
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 274 21 274 23
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 274 21 274 22
+                                            , SrcSpan "tests/examples/Directory.hs" 274 22 274 23
+                                            ]
+                                        }
+                                      []))
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 274 27 274 48
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 274 27 274 28 ]
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 274 29 274 48
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 274 29 274 42
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 274 29 274 38
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 274 29 274 38
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 274 29 274 38
+                                                , srcInfoPoints = []
+                                                }
+                                              "createDir")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 274 39 274 42
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 274 39 274 42
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 274 39 274 42
+                                                , srcInfoPoints = []
+                                                }
+                                              "dir"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 274 43 274 48
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 274 43 274 48
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 274 43 274 48
+                                             , srcInfoPoints = []
+                                             }
+                                           "throw")))))
+                            Nothing
+                        , Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 5 278 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 5 275 15
+                                 , srcInfoPoints = []
+                                 }
+                               "createDirs")
+                            [ PParen
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 275 16 275 26
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 275 16 275 17
+                                      , SrcSpan "tests/examples/Directory.hs" 275 25 275 26
+                                      ]
+                                  }
+                                (PInfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 275 17 275 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 275 17 275 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 275 17 275 20
+                                           , srcInfoPoints = []
+                                           }
+                                         "dir"))
+                                   (Special
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 275 20 275 21
+                                        , srcInfoPoints = []
+                                        }
+                                      (Cons
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 275 20 275 21
+                                           , srcInfoPoints = []
+                                           }))
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 275 21 275 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 275 21 275 25
+                                           , srcInfoPoints = []
+                                           }
+                                         "dirs")))
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 275 27 278 28
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 275 27 275 28 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 276 7 278 28
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 276 7 276 20
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 276 7 276 16
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 276 7 276 16
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 276 7 276 16
+                                                , srcInfoPoints = []
+                                                }
+                                              "createDir")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 276 17 276 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 276 17 276 20
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 276 17 276 20
+                                                , srcInfoPoints = []
+                                                }
+                                              "dir"))))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 276 21 276 22
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 276 21 276 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 276 21 276 22
+                                             , srcInfoPoints = []
+                                             }
+                                           "$")))
+                                  (Lambda
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 276 23 278 28
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 276 23 276 24
+                                           , SrcSpan "tests/examples/Directory.hs" 276 26 276 28
+                                           ]
+                                       }
+                                     [ PWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 276 24 276 25
+                                           , srcInfoPoints = []
+                                           }
+                                     ]
+                                     (Do
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 276 29 278 28
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 276 29 276 31
+                                              , SrcSpan "tests/examples/Directory.hs" 277 9 277 9
+                                              , SrcSpan "tests/examples/Directory.hs" 278 9 278 9
+                                              , SrcSpan "tests/examples/Directory.hs" 280 5 280 0
+                                              ]
+                                          }
+                                        [ Qualifier
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 277 9 277 24
+                                              , srcInfoPoints = []
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 277 9 277 24
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 277 9 277 19
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             277
+                                                             9
+                                                             277
+                                                             19
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                277
+                                                                9
+                                                                277
+                                                                19
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "createDirs")))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          277
+                                                          20
+                                                          277
+                                                          24
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             277
+                                                             20
+                                                             277
+                                                             24
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                277
+                                                                20
+                                                                277
+                                                                24
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "dirs"))))
+                                        , Qualifier
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 278 9 278 28
+                                              , srcInfoPoints = []
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 278 9 278 28
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 278 9 278 22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             278
+                                                             9
+                                                             278
+                                                             18
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                278
+                                                                9
+                                                                278
+                                                                18
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   278
+                                                                   9
+                                                                   278
+                                                                   18
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "createDir")))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             278
+                                                             19
+                                                             278
+                                                             22
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                278
+                                                                19
+                                                                278
+                                                                22
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   278
+                                                                   19
+                                                                   278
+                                                                   22
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "dir"))))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          278
+                                                          23
+                                                          278
+                                                          28
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             278
+                                                             23
+                                                             278
+                                                             28
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                278
+                                                                23
+                                                                278
+                                                                28
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "throw"))))
+                                        ]))))
+                            Nothing
+                        ]
+                    , TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 5 280 61
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 280 15 280 17 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 5 280 14
+                              , srcInfoPoints = []
+                              }
+                            "createDir"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 61
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 280 27 280 29 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 18 280 26
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 280 18 280 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 280 18 280 26
+                                      , srcInfoPoints = []
+                                      }
+                                    "FilePath")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 280 30 280 61
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 280 53 280 55 ]
+                                }
+                              (TyParen
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 280 30 280 52
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 280 30 280 31
+                                       , SrcSpan "tests/examples/Directory.hs" 280 51 280 52
+                                       ]
+                                   }
+                                 (TyFun
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 280 31 280 51
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 280 43 280 45 ]
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 280 31 280 42
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 280 31 280 42
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 280 31 280 42
+                                               , srcInfoPoints = []
+                                               }
+                                             "IOException")))
+                                    (TyApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 280 46 280 51
+                                         , srcInfoPoints = []
+                                         }
+                                       (TyCon
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 280 46 280 48
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 280 46 280 48
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 280 46 280 48
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "IO")))
+                                       (TyCon
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 280 49 280 51
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 280 49 280 50
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 280 50 280 51
+                                                ]
+                                            }
+                                          (Special
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 280 49 280 51
+                                               , srcInfoPoints =
+                                                   [ SrcSpan
+                                                       "tests/examples/Directory.hs" 280 49 280 50
+                                                   , SrcSpan
+                                                       "tests/examples/Directory.hs" 280 50 280 51
+                                                   ]
+                                               }
+                                             (UnitCon
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 280 49 280 51
+                                                  , srcInfoPoints =
+                                                      [ SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          280
+                                                          49
+                                                          280
+                                                          50
+                                                      , SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          280
+                                                          50
+                                                          280
+                                                          51
+                                                      ]
+                                                  }))))))
+                              (TyApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 280 56 280 61
+                                   , srcInfoPoints = []
+                                   }
+                                 (TyCon
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 280 56 280 58
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 280 56 280 58
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 280 56 280 58
+                                            , srcInfoPoints = []
+                                            }
+                                          "IO")))
+                                 (TyCon
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 280 59 280 61
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 280 59 280 60
+                                          , SrcSpan "tests/examples/Directory.hs" 280 60 280 61
+                                          ]
+                                      }
+                                    (Special
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 280 59 280 61
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 280 59 280 60
+                                             , SrcSpan "tests/examples/Directory.hs" 280 60 280 61
+                                             ]
+                                         }
+                                       (UnitCon
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 280 59 280 61
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 280 59 280 60
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 280 60 280 61
+                                                ]
+                                            }))))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 300 46
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 300 46
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 5 281 14
+                                 , srcInfoPoints = []
+                                 }
+                               "createDir")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 281 15 281 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 281 15 281 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "dir")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 281 19 281 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 281 19 281 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "notExistHandler")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 281 35 300 46
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 281 35 281 36 ]
+                                 }
+                               (Do
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 281 37 300 46
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 281 37 281 39
+                                        , SrcSpan "tests/examples/Directory.hs" 282 7 282 7
+                                        , SrcSpan "tests/examples/Directory.hs" 283 7 283 7
+                                        , SrcSpan "tests/examples/Directory.hs" 343 1 343 0
+                                        ]
+                                    }
+                                  [ Generator
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 282 7 282 37
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 282 9 282 11 ]
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 282 7 282 8
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 282 7 282 8
+                                              , srcInfoPoints = []
+                                              }
+                                            "r"))
+                                      (InfixApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 282 12 282 37
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 282 12 282 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 282 12 282 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          282
+                                                          12
+                                                          282
+                                                          15
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "try")))
+                                         (QVarOp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 282 16 282 17
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 282 16 282 17
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Symbol
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          282
+                                                          16
+                                                          282
+                                                          17
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "$")))
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 282 18 282 37
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 282 18 282 33
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          282
+                                                          18
+                                                          282
+                                                          33
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             282
+                                                             18
+                                                             282
+                                                             33
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "createDirectory")))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 282 34 282 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          282
+                                                          34
+                                                          282
+                                                          37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             282
+                                                             34
+                                                             282
+                                                             37
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "dir")))))
+                                  , Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 283 7 300 46
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 283 7 283 11
+                                            , SrcSpan "tests/examples/Directory.hs" 283 41 283 43
+                                            , SrcSpan "tests/examples/Directory.hs" 284 9 284 9
+                                            , SrcSpan "tests/examples/Directory.hs" 285 9 285 9
+                                            , SrcSpan "tests/examples/Directory.hs" 343 1 343 0
+                                            ]
+                                        }
+                                      (Case
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 283 7 300 46
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/Directory.hs" 283 7 283 11
+                                               , SrcSpan "tests/examples/Directory.hs" 283 41 283 43
+                                               , SrcSpan "tests/examples/Directory.hs" 284 9 284 9
+                                               , SrcSpan "tests/examples/Directory.hs" 285 9 285 9
+                                               , SrcSpan "tests/examples/Directory.hs" 343 1 343 0
+                                               ]
+                                           }
+                                         (Paren
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 283 12 283 40
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/Directory.hs" 283 12 283 13
+                                                  , SrcSpan
+                                                      "tests/examples/Directory.hs" 283 39 283 40
+                                                  ]
+                                              }
+                                            (ExpTypeSig
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 283 13 283 39
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/Directory.hs" 283 15 283 17
+                                                     ]
+                                                 }
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          283
+                                                          13
+                                                          283
+                                                          14
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             283
+                                                             13
+                                                             283
+                                                             14
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                283
+                                                                13
+                                                                283
+                                                                14
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "r")))
+                                               (TyApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          283
+                                                          18
+                                                          283
+                                                          39
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (TyApp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             283
+                                                             18
+                                                             283
+                                                             36
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (TyCon
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                283
+                                                                18
+                                                                283
+                                                                24
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   283
+                                                                   18
+                                                                   283
+                                                                   24
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      283
+                                                                      18
+                                                                      283
+                                                                      24
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "Either")))
+                                                     (TyCon
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                283
+                                                                25
+                                                                283
+                                                                36
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   283
+                                                                   25
+                                                                   283
+                                                                   36
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      283
+                                                                      25
+                                                                      283
+                                                                      36
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "IOException"))))
+                                                  (TyCon
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             283
+                                                             37
+                                                             283
+                                                             39
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               283
+                                                               37
+                                                               283
+                                                               38
+                                                           , SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               283
+                                                               38
+                                                               283
+                                                               39
+                                                           ]
+                                                       }
+                                                     (Special
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                283
+                                                                37
+                                                                283
+                                                                39
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  283
+                                                                  37
+                                                                  283
+                                                                  38
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  283
+                                                                  38
+                                                                  283
+                                                                  39
+                                                              ]
+                                                          }
+                                                        (UnitCon
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   283
+                                                                   37
+                                                                   283
+                                                                   39
+                                                             , srcInfoPoints =
+                                                                 [ SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     283
+                                                                     37
+                                                                     283
+                                                                     38
+                                                                 , SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     283
+                                                                     38
+                                                                     283
+                                                                     39
+                                                                 ]
+                                                             }))))))
+                                         [ Alt
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 284 9 284 48
+                                               , srcInfoPoints = []
+                                               }
+                                             (PApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 284 9 284 17
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           284
+                                                           9
+                                                           284
+                                                           14
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              284
+                                                              9
+                                                              284
+                                                              14
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "Right"))
+                                                [ PApp
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            284
+                                                            15
+                                                            284
+                                                            17
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              284
+                                                              15
+                                                              284
+                                                              16
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              284
+                                                              16
+                                                              284
+                                                              17
+                                                          ]
+                                                      }
+                                                    (Special
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               284
+                                                               15
+                                                               284
+                                                               17
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 284
+                                                                 15
+                                                                 284
+                                                                 16
+                                                             , SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 284
+                                                                 16
+                                                                 284
+                                                                 17
+                                                             ]
+                                                         }
+                                                       (UnitCon
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  284
+                                                                  15
+                                                                  284
+                                                                  17
+                                                            , srcInfoPoints =
+                                                                [ SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    284
+                                                                    15
+                                                                    284
+                                                                    16
+                                                                , SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    284
+                                                                    16
+                                                                    284
+                                                                    17
+                                                                ]
+                                                            }))
+                                                    []
+                                                ])
+                                             (UnGuardedRhs
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 284 36 284 48
+                                                  , srcInfoPoints =
+                                                      [ SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          284
+                                                          36
+                                                          284
+                                                          38
+                                                      ]
+                                                  }
+                                                (App
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           284
+                                                           39
+                                                           284
+                                                           48
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              284
+                                                              39
+                                                              284
+                                                              45
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 284
+                                                                 39
+                                                                 284
+                                                                 45
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    284
+                                                                    39
+                                                                    284
+                                                                    45
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "return")))
+                                                   (Con
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              284
+                                                              46
+                                                              284
+                                                              48
+                                                        , srcInfoPoints =
+                                                            [ SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                284
+                                                                46
+                                                                284
+                                                                47
+                                                            , SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                284
+                                                                47
+                                                                284
+                                                                48
+                                                            ]
+                                                        }
+                                                      (Special
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 284
+                                                                 46
+                                                                 284
+                                                                 48
+                                                           , srcInfoPoints =
+                                                               [ SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   284
+                                                                   46
+                                                                   284
+                                                                   47
+                                                               , SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   284
+                                                                   47
+                                                                   284
+                                                                   48
+                                                               ]
+                                                           }
+                                                         (UnitCon
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    284
+                                                                    46
+                                                                    284
+                                                                    48
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      284
+                                                                      46
+                                                                      284
+                                                                      47
+                                                                  , SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      284
+                                                                      47
+                                                                      284
+                                                                      48
+                                                                  ]
+                                                              })))))
+                                             Nothing
+                                         , Alt
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 285 9 300 46
+                                               , srcInfoPoints = []
+                                               }
+                                             (PApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 285 9 285 16
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           285
+                                                           9
+                                                           285
+                                                           13
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              285
+                                                              9
+                                                              285
+                                                              13
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "Left"))
+                                                [ PVar
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            285
+                                                            15
+                                                            285
+                                                            16
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               285
+                                                               15
+                                                               285
+                                                               16
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "e")
+                                                ])
+                                             (GuardedRhss
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 286 11 300 46
+                                                  , srcInfoPoints = []
+                                                  }
+                                                [ GuardedRhs
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            286
+                                                            11
+                                                            286
+                                                            56
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              286
+                                                              11
+                                                              286
+                                                              12
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              286
+                                                              36
+                                                              286
+                                                              38
+                                                          ]
+                                                      }
+                                                    [ Qualifier
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                286
+                                                                13
+                                                                286
+                                                                35
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (App
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   286
+                                                                   13
+                                                                   286
+                                                                   35
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      286
+                                                                      13
+                                                                      286
+                                                                      32
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         286
+                                                                         13
+                                                                         286
+                                                                         32
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            286
+                                                                            13
+                                                                            286
+                                                                            32
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "isDoesNotExistError")))
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      286
+                                                                      34
+                                                                      286
+                                                                      35
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         286
+                                                                         34
+                                                                         286
+                                                                         35
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            286
+                                                                            34
+                                                                            286
+                                                                            35
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "e"))))
+                                                    ]
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               286
+                                                               39
+                                                               286
+                                                               56
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  286
+                                                                  39
+                                                                  286
+                                                                  54
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     286
+                                                                     39
+                                                                     286
+                                                                     54
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        286
+                                                                        39
+                                                                        286
+                                                                        54
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "notExistHandler")))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  286
+                                                                  55
+                                                                  286
+                                                                  56
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     286
+                                                                     55
+                                                                     286
+                                                                     56
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        286
+                                                                        55
+                                                                        286
+                                                                        56
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "e"))))
+                                                , GuardedRhs
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            294
+                                                            11
+                                                            299
+                                                            68
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              294
+                                                              11
+                                                              294
+                                                              12
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              294
+                                                              36
+                                                              294
+                                                              38
+                                                          ]
+                                                      }
+                                                    [ Qualifier
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                294
+                                                                13
+                                                                294
+                                                                35
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (App
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   294
+                                                                   13
+                                                                   294
+                                                                   35
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      294
+                                                                      13
+                                                                      294
+                                                                      33
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         294
+                                                                         13
+                                                                         294
+                                                                         33
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            294
+                                                                            13
+                                                                            294
+                                                                            33
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "isAlreadyExistsError")))
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      294
+                                                                      34
+                                                                      294
+                                                                      35
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         294
+                                                                         34
+                                                                         294
+                                                                         35
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            294
+                                                                            34
+                                                                            294
+                                                                            35
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "e"))))
+                                                    ]
+                                                    (InfixApp
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               294
+                                                               39
+                                                               299
+                                                               68
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Paren
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  294
+                                                                  39
+                                                                  299
+                                                                  16
+                                                            , srcInfoPoints =
+                                                                [ SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    294
+                                                                    39
+                                                                    294
+                                                                    40
+                                                                , SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    15
+                                                                    299
+                                                                    16
+                                                                ]
+                                                            }
+                                                          (Do
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     294
+                                                                     40
+                                                                     298
+                                                                     39
+                                                               , srcInfoPoints =
+                                                                   [ SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       294
+                                                                       40
+                                                                       294
+                                                                       42
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       295
+                                                                       15
+                                                                       295
+                                                                       15
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       15
+                                                                       299
+                                                                       15
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       15
+                                                                       299
+                                                                       15
+                                                                   ]
+                                                               }
+                                                             [ Qualifier
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         295
+                                                                         15
+                                                                         298
+                                                                         39
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (InfixApp
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            295
+                                                                            15
+                                                                            298
+                                                                            39
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    (App
+                                                                       SrcSpanInfo
+                                                                         { srcInfoSpan =
+                                                                             SrcSpan
+                                                                               "tests/examples/Directory.hs"
+                                                                               295
+                                                                               15
+                                                                               295
+                                                                               60
+                                                                         , srcInfoPoints = []
+                                                                         }
+                                                                       (App
+                                                                          SrcSpanInfo
+                                                                            { srcInfoSpan =
+                                                                                SrcSpan
+                                                                                  "tests/examples/Directory.hs"
+                                                                                  295
+                                                                                  15
+                                                                                  295
+                                                                                  56
+                                                                            , srcInfoPoints = []
+                                                                            }
+                                                                          (Var
+                                                                             SrcSpanInfo
+                                                                               { srcInfoSpan =
+                                                                                   SrcSpan
+                                                                                     "tests/examples/Directory.hs"
+                                                                                     295
+                                                                                     15
+                                                                                     295
+                                                                                     29
+                                                                               , srcInfoPoints = []
+                                                                               }
+                                                                             (UnQual
+                                                                                SrcSpanInfo
+                                                                                  { srcInfoSpan =
+                                                                                      SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        295
+                                                                                        15
+                                                                                        295
+                                                                                        29
+                                                                                  , srcInfoPoints =
+                                                                                      []
+                                                                                  }
+                                                                                (Ident
+                                                                                   SrcSpanInfo
+                                                                                     { srcInfoSpan =
+                                                                                         SrcSpan
+                                                                                           "tests/examples/Directory.hs"
+                                                                                           295
+                                                                                           15
+                                                                                           295
+                                                                                           29
+                                                                                     , srcInfoPoints =
+                                                                                         []
+                                                                                     }
+                                                                                   "withFileStatus")))
+                                                                          (Lit
+                                                                             SrcSpanInfo
+                                                                               { srcInfoSpan =
+                                                                                   SrcSpan
+                                                                                     "tests/examples/Directory.hs"
+                                                                                     295
+                                                                                     30
+                                                                                     295
+                                                                                     56
+                                                                               , srcInfoPoints = []
+                                                                               }
+                                                                             (String
+                                                                                SrcSpanInfo
+                                                                                  { srcInfoSpan =
+                                                                                      SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        295
+                                                                                        30
+                                                                                        295
+                                                                                        56
+                                                                                  , srcInfoPoints =
+                                                                                      []
+                                                                                  }
+                                                                                "createDirectoryIfMissing"
+                                                                                "createDirectoryIfMissing")))
+                                                                       (Var
+                                                                          SrcSpanInfo
+                                                                            { srcInfoSpan =
+                                                                                SrcSpan
+                                                                                  "tests/examples/Directory.hs"
+                                                                                  295
+                                                                                  57
+                                                                                  295
+                                                                                  60
+                                                                            , srcInfoPoints = []
+                                                                            }
+                                                                          (UnQual
+                                                                             SrcSpanInfo
+                                                                               { srcInfoSpan =
+                                                                                   SrcSpan
+                                                                                     "tests/examples/Directory.hs"
+                                                                                     295
+                                                                                     57
+                                                                                     295
+                                                                                     60
+                                                                               , srcInfoPoints = []
+                                                                               }
+                                                                             (Ident
+                                                                                SrcSpanInfo
+                                                                                  { srcInfoSpan =
+                                                                                      SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        295
+                                                                                        57
+                                                                                        295
+                                                                                        60
+                                                                                  , srcInfoPoints =
+                                                                                      []
+                                                                                  }
+                                                                                "dir"))))
+                                                                    (QVarOp
+                                                                       SrcSpanInfo
+                                                                         { srcInfoSpan =
+                                                                             SrcSpan
+                                                                               "tests/examples/Directory.hs"
+                                                                               295
+                                                                               61
+                                                                               295
+                                                                               62
+                                                                         , srcInfoPoints = []
+                                                                         }
+                                                                       (UnQual
+                                                                          SrcSpanInfo
+                                                                            { srcInfoSpan =
+                                                                                SrcSpan
+                                                                                  "tests/examples/Directory.hs"
+                                                                                  295
+                                                                                  61
+                                                                                  295
+                                                                                  62
+                                                                            , srcInfoPoints = []
+                                                                            }
+                                                                          (Symbol
+                                                                             SrcSpanInfo
+                                                                               { srcInfoSpan =
+                                                                                   SrcSpan
+                                                                                     "tests/examples/Directory.hs"
+                                                                                     295
+                                                                                     61
+                                                                                     295
+                                                                                     62
+                                                                               , srcInfoPoints = []
+                                                                               }
+                                                                             "$")))
+                                                                    (Lambda
+                                                                       SrcSpanInfo
+                                                                         { srcInfoSpan =
+                                                                             SrcSpan
+                                                                               "tests/examples/Directory.hs"
+                                                                               295
+                                                                               63
+                                                                               298
+                                                                               39
+                                                                         , srcInfoPoints =
+                                                                             [ SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 295
+                                                                                 63
+                                                                                 295
+                                                                                 64
+                                                                             , SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 295
+                                                                                 67
+                                                                                 295
+                                                                                 69
+                                                                             ]
+                                                                         }
+                                                                       [ PVar
+                                                                           SrcSpanInfo
+                                                                             { srcInfoSpan =
+                                                                                 SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   295
+                                                                                   64
+                                                                                   295
+                                                                                   66
+                                                                             , srcInfoPoints = []
+                                                                             }
+                                                                           (Ident
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      295
+                                                                                      64
+                                                                                      295
+                                                                                      66
+                                                                                , srcInfoPoints = []
+                                                                                }
+                                                                              "st")
+                                                                       ]
+                                                                       (Do
+                                                                          SrcSpanInfo
+                                                                            { srcInfoSpan =
+                                                                                SrcSpan
+                                                                                  "tests/examples/Directory.hs"
+                                                                                  295
+                                                                                  70
+                                                                                  298
+                                                                                  39
+                                                                            , srcInfoPoints =
+                                                                                [ SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    295
+                                                                                    70
+                                                                                    295
+                                                                                    72
+                                                                                , SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    296
+                                                                                    18
+                                                                                    296
+                                                                                    18
+                                                                                , SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    297
+                                                                                    18
+                                                                                    297
+                                                                                    18
+                                                                                , SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    299
+                                                                                    15
+                                                                                    299
+                                                                                    0
+                                                                                ]
+                                                                            }
+                                                                          [ Generator
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      296
+                                                                                      18
+                                                                                      296
+                                                                                      41
+                                                                                , srcInfoPoints =
+                                                                                    [ SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        296
+                                                                                        24
+                                                                                        296
+                                                                                        26
+                                                                                    ]
+                                                                                }
+                                                                              (PVar
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         296
+                                                                                         18
+                                                                                         296
+                                                                                         23
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 (Ident
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            296
+                                                                                            18
+                                                                                            296
+                                                                                            23
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    "isDir"))
+                                                                              (App
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         296
+                                                                                         27
+                                                                                         296
+                                                                                         41
+                                                                                   , srcInfoPoints =
+                                                                                       []
+                                                                                   }
+                                                                                 (Var
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            296
+                                                                                            27
+                                                                                            296
+                                                                                            38
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    (UnQual
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               296
+                                                                                               27
+                                                                                               296
+                                                                                               38
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (Ident
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  296
+                                                                                                  27
+                                                                                                  296
+                                                                                                  38
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          "isDirectory")))
+                                                                                 (Var
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            296
+                                                                                            39
+                                                                                            296
+                                                                                            41
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    (UnQual
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               296
+                                                                                               39
+                                                                                               296
+                                                                                               41
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (Ident
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  296
+                                                                                                  39
+                                                                                                  296
+                                                                                                  41
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          "st"))))
+                                                                          , Qualifier
+                                                                              SrcSpanInfo
+                                                                                { srcInfoSpan =
+                                                                                    SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      297
+                                                                                      18
+                                                                                      298
+                                                                                      39
+                                                                                , srcInfoPoints =
+                                                                                    [ SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        297
+                                                                                        18
+                                                                                        297
+                                                                                        20
+                                                                                    , SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        297
+                                                                                        27
+                                                                                        297
+                                                                                        31
+                                                                                    , SrcSpan
+                                                                                        "tests/examples/Directory.hs"
+                                                                                        298
+                                                                                        27
+                                                                                        298
+                                                                                        31
+                                                                                    ]
+                                                                                }
+                                                                              (If
+                                                                                 SrcSpanInfo
+                                                                                   { srcInfoSpan =
+                                                                                       SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         297
+                                                                                         18
+                                                                                         298
+                                                                                         39
+                                                                                   , srcInfoPoints =
+                                                                                       [ SrcSpan
+                                                                                           "tests/examples/Directory.hs"
+                                                                                           297
+                                                                                           18
+                                                                                           297
+                                                                                           20
+                                                                                       , SrcSpan
+                                                                                           "tests/examples/Directory.hs"
+                                                                                           297
+                                                                                           27
+                                                                                           297
+                                                                                           31
+                                                                                       , SrcSpan
+                                                                                           "tests/examples/Directory.hs"
+                                                                                           298
+                                                                                           27
+                                                                                           298
+                                                                                           31
+                                                                                       ]
+                                                                                   }
+                                                                                 (Var
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            297
+                                                                                            21
+                                                                                            297
+                                                                                            26
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    (UnQual
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               297
+                                                                                               21
+                                                                                               297
+                                                                                               26
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (Ident
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  297
+                                                                                                  21
+                                                                                                  297
+                                                                                                  26
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          "isDir")))
+                                                                                 (App
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            297
+                                                                                            32
+                                                                                            297
+                                                                                            41
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    (Var
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               297
+                                                                                               32
+                                                                                               297
+                                                                                               38
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (UnQual
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  297
+                                                                                                  32
+                                                                                                  297
+                                                                                                  38
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          (Ident
+                                                                                             SrcSpanInfo
+                                                                                               { srcInfoSpan =
+                                                                                                   SrcSpan
+                                                                                                     "tests/examples/Directory.hs"
+                                                                                                     297
+                                                                                                     32
+                                                                                                     297
+                                                                                                     38
+                                                                                               , srcInfoPoints =
+                                                                                                   []
+                                                                                               }
+                                                                                             "return")))
+                                                                                    (Con
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               297
+                                                                                               39
+                                                                                               297
+                                                                                               41
+                                                                                         , srcInfoPoints =
+                                                                                             [ SrcSpan
+                                                                                                 "tests/examples/Directory.hs"
+                                                                                                 297
+                                                                                                 39
+                                                                                                 297
+                                                                                                 40
+                                                                                             , SrcSpan
+                                                                                                 "tests/examples/Directory.hs"
+                                                                                                 297
+                                                                                                 40
+                                                                                                 297
+                                                                                                 41
+                                                                                             ]
+                                                                                         }
+                                                                                       (Special
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  297
+                                                                                                  39
+                                                                                                  297
+                                                                                                  41
+                                                                                            , srcInfoPoints =
+                                                                                                [ SrcSpan
+                                                                                                    "tests/examples/Directory.hs"
+                                                                                                    297
+                                                                                                    39
+                                                                                                    297
+                                                                                                    40
+                                                                                                , SrcSpan
+                                                                                                    "tests/examples/Directory.hs"
+                                                                                                    297
+                                                                                                    40
+                                                                                                    297
+                                                                                                    41
+                                                                                                ]
+                                                                                            }
+                                                                                          (UnitCon
+                                                                                             SrcSpanInfo
+                                                                                               { srcInfoSpan =
+                                                                                                   SrcSpan
+                                                                                                     "tests/examples/Directory.hs"
+                                                                                                     297
+                                                                                                     39
+                                                                                                     297
+                                                                                                     41
+                                                                                               , srcInfoPoints =
+                                                                                                   [ SrcSpan
+                                                                                                       "tests/examples/Directory.hs"
+                                                                                                       297
+                                                                                                       39
+                                                                                                       297
+                                                                                                       40
+                                                                                                   , SrcSpan
+                                                                                                       "tests/examples/Directory.hs"
+                                                                                                       297
+                                                                                                       40
+                                                                                                       297
+                                                                                                       41
+                                                                                                   ]
+                                                                                               }))))
+                                                                                 (App
+                                                                                    SrcSpanInfo
+                                                                                      { srcInfoSpan =
+                                                                                          SrcSpan
+                                                                                            "tests/examples/Directory.hs"
+                                                                                            298
+                                                                                            32
+                                                                                            298
+                                                                                            39
+                                                                                      , srcInfoPoints =
+                                                                                          []
+                                                                                      }
+                                                                                    (Var
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               298
+                                                                                               32
+                                                                                               298
+                                                                                               37
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (UnQual
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  298
+                                                                                                  32
+                                                                                                  298
+                                                                                                  37
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          (Ident
+                                                                                             SrcSpanInfo
+                                                                                               { srcInfoSpan =
+                                                                                                   SrcSpan
+                                                                                                     "tests/examples/Directory.hs"
+                                                                                                     298
+                                                                                                     32
+                                                                                                     298
+                                                                                                     37
+                                                                                               , srcInfoPoints =
+                                                                                                   []
+                                                                                               }
+                                                                                             "throw")))
+                                                                                    (Var
+                                                                                       SrcSpanInfo
+                                                                                         { srcInfoSpan =
+                                                                                             SrcSpan
+                                                                                               "tests/examples/Directory.hs"
+                                                                                               298
+                                                                                               38
+                                                                                               298
+                                                                                               39
+                                                                                         , srcInfoPoints =
+                                                                                             []
+                                                                                         }
+                                                                                       (UnQual
+                                                                                          SrcSpanInfo
+                                                                                            { srcInfoSpan =
+                                                                                                SrcSpan
+                                                                                                  "tests/examples/Directory.hs"
+                                                                                                  298
+                                                                                                  38
+                                                                                                  298
+                                                                                                  39
+                                                                                            , srcInfoPoints =
+                                                                                                []
+                                                                                            }
+                                                                                          (Ident
+                                                                                             SrcSpanInfo
+                                                                                               { srcInfoSpan =
+                                                                                                   SrcSpan
+                                                                                                     "tests/examples/Directory.hs"
+                                                                                                     298
+                                                                                                     38
+                                                                                                     298
+                                                                                                     39
+                                                                                               , srcInfoPoints =
+                                                                                                   []
+                                                                                               }
+                                                                                             "e")))))
+                                                                          ])))
+                                                             ]))
+                                                       (QVarOp
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  299
+                                                                  17
+                                                                  299
+                                                                  24
+                                                            , srcInfoPoints =
+                                                                [ SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    17
+                                                                    299
+                                                                    18
+                                                                , SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    18
+                                                                    299
+                                                                    23
+                                                                , SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    23
+                                                                    299
+                                                                    24
+                                                                ]
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     299
+                                                                     17
+                                                                     299
+                                                                     24
+                                                               , srcInfoPoints =
+                                                                   [ SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       17
+                                                                       299
+                                                                       18
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       18
+                                                                       299
+                                                                       23
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       23
+                                                                       299
+                                                                       24
+                                                                   ]
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        299
+                                                                        18
+                                                                        299
+                                                                        23
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "catch")))
+                                                       (Paren
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  299
+                                                                  25
+                                                                  299
+                                                                  68
+                                                            , srcInfoPoints =
+                                                                [ SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    25
+                                                                    299
+                                                                    26
+                                                                , SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    299
+                                                                    67
+                                                                    299
+                                                                    68
+                                                                ]
+                                                            }
+                                                          (ExpTypeSig
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     299
+                                                                     26
+                                                                     299
+                                                                     67
+                                                               , srcInfoPoints =
+                                                                   [ SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       299
+                                                                       44
+                                                                       299
+                                                                       46
+                                                                   ]
+                                                               }
+                                                             (Paren
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        299
+                                                                        26
+                                                                        299
+                                                                        43
+                                                                  , srcInfoPoints =
+                                                                      [ SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          299
+                                                                          26
+                                                                          299
+                                                                          27
+                                                                      , SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          299
+                                                                          42
+                                                                          299
+                                                                          43
+                                                                      ]
+                                                                  }
+                                                                (Lambda
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           299
+                                                                           27
+                                                                           299
+                                                                           42
+                                                                     , srcInfoPoints =
+                                                                         [ SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             299
+                                                                             27
+                                                                             299
+                                                                             28
+                                                                         , SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             299
+                                                                             30
+                                                                             299
+                                                                             32
+                                                                         ]
+                                                                     }
+                                                                   [ PWildCard
+                                                                       SrcSpanInfo
+                                                                         { srcInfoSpan =
+                                                                             SrcSpan
+                                                                               "tests/examples/Directory.hs"
+                                                                               299
+                                                                               28
+                                                                               299
+                                                                               29
+                                                                         , srcInfoPoints = []
+                                                                         }
+                                                                   ]
+                                                                   (App
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              299
+                                                                              33
+                                                                              299
+                                                                              42
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Var
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 299
+                                                                                 33
+                                                                                 299
+                                                                                 39
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (UnQual
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    299
+                                                                                    33
+                                                                                    299
+                                                                                    39
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            (Ident
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       299
+                                                                                       33
+                                                                                       299
+                                                                                       39
+                                                                                 , srcInfoPoints =
+                                                                                     []
+                                                                                 }
+                                                                               "return")))
+                                                                      (Con
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 299
+                                                                                 40
+                                                                                 299
+                                                                                 42
+                                                                           , srcInfoPoints =
+                                                                               [ SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   299
+                                                                                   40
+                                                                                   299
+                                                                                   41
+                                                                               , SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   299
+                                                                                   41
+                                                                                   299
+                                                                                   42
+                                                                               ]
+                                                                           }
+                                                                         (Special
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    299
+                                                                                    40
+                                                                                    299
+                                                                                    42
+                                                                              , srcInfoPoints =
+                                                                                  [ SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      299
+                                                                                      40
+                                                                                      299
+                                                                                      41
+                                                                                  , SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      299
+                                                                                      41
+                                                                                      299
+                                                                                      42
+                                                                                  ]
+                                                                              }
+                                                                            (UnitCon
+                                                                               SrcSpanInfo
+                                                                                 { srcInfoSpan =
+                                                                                     SrcSpan
+                                                                                       "tests/examples/Directory.hs"
+                                                                                       299
+                                                                                       40
+                                                                                       299
+                                                                                       42
+                                                                                 , srcInfoPoints =
+                                                                                     [ SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         299
+                                                                                         40
+                                                                                         299
+                                                                                         41
+                                                                                     , SrcSpan
+                                                                                         "tests/examples/Directory.hs"
+                                                                                         299
+                                                                                         41
+                                                                                         299
+                                                                                         42
+                                                                                     ]
+                                                                                 }))))))
+                                                             (TyFun
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        299
+                                                                        47
+                                                                        299
+                                                                        67
+                                                                  , srcInfoPoints =
+                                                                      [ SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          299
+                                                                          59
+                                                                          299
+                                                                          61
+                                                                      ]
+                                                                  }
+                                                                (TyCon
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           299
+                                                                           47
+                                                                           299
+                                                                           58
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (UnQual
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              299
+                                                                              47
+                                                                              299
+                                                                              58
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 299
+                                                                                 47
+                                                                                 299
+                                                                                 58
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "IOException")))
+                                                                (TyApp
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           299
+                                                                           62
+                                                                           299
+                                                                           67
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (TyCon
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              299
+                                                                              62
+                                                                              299
+                                                                              64
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 299
+                                                                                 62
+                                                                                 299
+                                                                                 64
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    299
+                                                                                    62
+                                                                                    299
+                                                                                    64
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "IO")))
+                                                                   (TyCon
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              299
+                                                                              65
+                                                                              299
+                                                                              67
+                                                                        , srcInfoPoints =
+                                                                            [ SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                299
+                                                                                65
+                                                                                299
+                                                                                66
+                                                                            , SrcSpan
+                                                                                "tests/examples/Directory.hs"
+                                                                                299
+                                                                                66
+                                                                                299
+                                                                                67
+                                                                            ]
+                                                                        }
+                                                                      (Special
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 299
+                                                                                 65
+                                                                                 299
+                                                                                 67
+                                                                           , srcInfoPoints =
+                                                                               [ SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   299
+                                                                                   65
+                                                                                   299
+                                                                                   66
+                                                                               , SrcSpan
+                                                                                   "tests/examples/Directory.hs"
+                                                                                   299
+                                                                                   66
+                                                                                   299
+                                                                                   67
+                                                                               ]
+                                                                           }
+                                                                         (UnitCon
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    299
+                                                                                    65
+                                                                                    299
+                                                                                    67
+                                                                              , srcInfoPoints =
+                                                                                  [ SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      299
+                                                                                      65
+                                                                                      299
+                                                                                      66
+                                                                                  , SrcSpan
+                                                                                      "tests/examples/Directory.hs"
+                                                                                      299
+                                                                                      66
+                                                                                      299
+                                                                                      67
+                                                                                  ]
+                                                                              }))))))))
+                                                , GuardedRhs
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            300
+                                                            11
+                                                            300
+                                                            46
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              300
+                                                              11
+                                                              300
+                                                              12
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              300
+                                                              36
+                                                              300
+                                                              38
+                                                          ]
+                                                      }
+                                                    [ Qualifier
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                300
+                                                                13
+                                                                300
+                                                                22
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   300
+                                                                   13
+                                                                   300
+                                                                   22
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      300
+                                                                      13
+                                                                      300
+                                                                      22
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         300
+                                                                         13
+                                                                         300
+                                                                         22
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "otherwise")))
+                                                    ]
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               300
+                                                               39
+                                                               300
+                                                               46
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  300
+                                                                  39
+                                                                  300
+                                                                  44
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     300
+                                                                     39
+                                                                     300
+                                                                     44
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        300
+                                                                        39
+                                                                        300
+                                                                        44
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "throw")))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  300
+                                                                  45
+                                                                  300
+                                                                  46
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     300
+                                                                     45
+                                                                     300
+                                                                     46
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        300
+                                                                        45
+                                                                        300
+                                                                        46
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "e"))))
+                                                ])
+                                             Nothing
+                                         ])
+                                  ]))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 1 343 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 343 17 343 19 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 1 343 16
+                , srcInfoPoints = []
+                }
+              "removeDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 343 29 343 31 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 20 343 28
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 37
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 32 343 34
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 343 35 343 36
+                         , SrcSpan "tests/examples/Directory.hs" 343 36 343 37
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 343 35 343 36
+                            , SrcSpan "tests/examples/Directory.hs" 343 36 343 37
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 343 35 343 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 343 35 343 36
+                               , SrcSpan "tests/examples/Directory.hs" 343 36 343 37
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 345 29
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 345 29
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 1 344 16
+                   , srcInfoPoints = []
+                   }
+                 "removeDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 17 344 21
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 17 344 21
+                       , srcInfoPoints = []
+                       }
+                     "path")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 344 22 345 29
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 344 22 344 23 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 29
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24
+                         , srcInfoPoints = []
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24
+                            , srcInfoPoints = []
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24
+                               , srcInfoPoints = []
+                               }
+                             "Win32")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 3 345 24
+                               , srcInfoPoints = []
+                               }
+                             "removeDirectory")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 345 25 345 29
+                               , srcInfoPoints = []
+                               }
+                             "path")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 1 350 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 350 26 350 28 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 1 350 25
+                , srcInfoPoints = []
+                }
+              "removeDirectoryRecursive"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 46
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 350 38 350 40 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 29 350 37
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 46
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 41 350 43
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 350 44 350 45
+                         , SrcSpan "tests/examples/Directory.hs" 350 45 350 46
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 350 44 350 45
+                            , SrcSpan "tests/examples/Directory.hs" 350 45 350 46
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 350 44 350 46
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 350 44 350 45
+                               , SrcSpan "tests/examples/Directory.hs" 350 45 350 46
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 363 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 355 3 355 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 363 37
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 355 3 355 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 1 351 25
+                   , srcInfoPoints = []
+                   }
+                 "removeDirectoryRecursive")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 26 351 34
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 26 351 34
+                       , srcInfoPoints = []
+                       }
+                     "startLoc")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 35 354 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 351 35 351 36 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 351 37 354 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 351 37 351 39
+                          , SrcSpan "tests/examples/Directory.hs" 352 3 352 3
+                          , SrcSpan "tests/examples/Directory.hs" 353 3 353 3
+                          , SrcSpan "tests/examples/Directory.hs" 354 3 354 3
+                          , SrcSpan "tests/examples/Directory.hs" 355 3 355 3
+                          , SrcSpan "tests/examples/Directory.hs" 355 3 355 3
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 40
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 352 8 352 10 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 3 352 7
+                                , srcInfoPoints = []
+                                }
+                              "cont"))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 40
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 11 352 31
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 352 11 352 31
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 352 11 352 31
+                                      , srcInfoPoints = []
+                                      }
+                                    "getDirectoryContents")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 352 32 352 40
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 352 32 352 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 352 32 352 40
+                                      , srcInfoPoints = []
+                                      }
+                                    "startLoc"))))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 69
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 69
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 3 353 12
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 353 3 353 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 353 3 353 12
+                                      , srcInfoPoints = []
+                                      }
+                                    "sequence_")))
+                           (ListComp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 353 13 353 69
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 353 13 353 14
+                                    , SrcSpan "tests/examples/Directory.hs" 353 34 353 35
+                                    , SrcSpan "tests/examples/Directory.hs" 353 45 353 46
+                                    , SrcSpan "tests/examples/Directory.hs" 353 68 353 69
+                                    ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 353 14 353 33
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 353 14 353 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 353 14 353 16
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 353 14 353 16
+                                            , srcInfoPoints = []
+                                            }
+                                          "rm")))
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 353 17 353 33
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 353 17 353 18
+                                          , SrcSpan "tests/examples/Directory.hs" 353 32 353 33
+                                          ]
+                                      }
+                                    (InfixApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 353 18 353 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 353 18 353 26
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 353 18 353 26
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 353 18 353 26
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "startLoc")))
+                                       (QVarOp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 353 27 353 30
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 353 27 353 30
+                                               , srcInfoPoints = []
+                                               }
+                                             (Symbol
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 353 27 353 30
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "</>")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 353 31 353 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 353 31 353 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 353 31 353 32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "x"))))))
+                              [ QualStmt
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 353 36 353 45
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 353 38 353 40 ]
+                                    }
+                                  (Generator
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 353 36 353 45
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 353 38 353 40 ]
+                                       }
+                                     (PVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 353 36 353 37
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 353 36 353 37
+                                             , srcInfoPoints = []
+                                             }
+                                           "x"))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 353 41 353 45
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 353 41 353 45
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 41 353 45
+                                                , srcInfoPoints = []
+                                                }
+                                              "cont"))))
+                              , QualStmt
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 353 47 353 68
+                                    , srcInfoPoints = []
+                                    }
+                                  (Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 353 47 353 68
+                                       , srcInfoPoints = []
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 353 47 353 68
+                                          , srcInfoPoints = []
+                                          }
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 353 47 353 55
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 47 353 48
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 47 353 48
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            353
+                                                            47
+                                                            353
+                                                            48
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "x")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 49 353 51
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 49 353 51
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            353
+                                                            49
+                                                            353
+                                                            51
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "/=")))
+                                           (Lit
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 52 353 55
+                                                , srcInfoPoints = []
+                                                }
+                                              (String
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 52 353 55
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "."
+                                                 ".")))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 353 56 353 58
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 56 353 58
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 56 353 58
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "&&")))
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 353 59 353 68
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 59 353 60
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 59 353 60
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            353
+                                                            59
+                                                            353
+                                                            60
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "x")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 61 353 63
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 61 353 63
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            353
+                                                            61
+                                                            353
+                                                            63
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "/=")))
+                                           (Lit
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 353 64 353 68
+                                                , srcInfoPoints = []
+                                                }
+                                              (String
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 353 64 353 68
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 ".."
+                                                 "..")))))
+                              ]))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 27
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 27
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 3 354 18
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 354 3 354 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 354 3 354 18
+                                      , srcInfoPoints = []
+                                      }
+                                    "removeDirectory")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 354 19 354 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 354 19 354 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 354 19 354 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "startLoc"))))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 363 37
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 356 5 356 5
+                          , SrcSpan "tests/examples/Directory.hs" 357 5 357 5
+                          , SrcSpan "tests/examples/Directory.hs" 399 1 399 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 356 28
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 356 8 356 10 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 5 356 7
+                              , srcInfoPoints = []
+                              }
+                            "rm"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 28
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 356 20 356 22 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 11 356 19
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 356 11 356 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 356 11 356 19
+                                      , srcInfoPoints = []
+                                      }
+                                    "FilePath")))
+                           (TyApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 356 23 356 28
+                                , srcInfoPoints = []
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 356 23 356 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 356 23 356 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 356 23 356 25
+                                         , srcInfoPoints = []
+                                         }
+                                       "IO")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 356 26 356 28
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 356 26 356 27
+                                       , SrcSpan "tests/examples/Directory.hs" 356 27 356 28
+                                       ]
+                                   }
+                                 (Special
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 356 26 356 28
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 356 26 356 27
+                                          , SrcSpan "tests/examples/Directory.hs" 356 27 356 28
+                                          ]
+                                      }
+                                    (UnitCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 356 26 356 28
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 356 26 356 27
+                                             , SrcSpan "tests/examples/Directory.hs" 356 27 356 28
+                                             ]
+                                         })))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 363 37
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 363 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 5 357 7
+                                 , srcInfoPoints = []
+                                 }
+                               "rm")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 8 357 9
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 357 8 357 9
+                                     , srcInfoPoints = []
+                                     }
+                                   "f")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 357 10 363 37
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 357 10 357 11 ]
+                                 }
+                               (Do
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 357 12 363 37
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 357 12 357 14
+                                        , SrcSpan "tests/examples/Directory.hs" 357 15 357 15
+                                        , SrcSpan "tests/examples/Directory.hs" 358 15 358 15
+                                        , SrcSpan "tests/examples/Directory.hs" 399 1 399 0
+                                        ]
+                                    }
+                                  [ Generator
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 357 15 357 41
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 357 20 357 22 ]
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 357 15 357 19
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 357 15 357 19
+                                              , srcInfoPoints = []
+                                              }
+                                            "temp"))
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 357 23 357 41
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 357 23 357 26
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 357 23 357 26
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          357
+                                                          23
+                                                          357
+                                                          26
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "try")))
+                                         (Paren
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 357 27 357 41
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/Directory.hs" 357 27 357 28
+                                                  , SrcSpan
+                                                      "tests/examples/Directory.hs" 357 40 357 41
+                                                  ]
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 357 28 357 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          357
+                                                          28
+                                                          357
+                                                          38
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             357
+                                                             28
+                                                             357
+                                                             38
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                357
+                                                                28
+                                                                357
+                                                                38
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "removeFile")))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          357
+                                                          39
+                                                          357
+                                                          40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             357
+                                                             39
+                                                             357
+                                                             40
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                357
+                                                                39
+                                                                357
+                                                                40
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "f"))))))
+                                  , Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 358 15 363 37
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 358 15 358 19
+                                            , SrcSpan "tests/examples/Directory.hs" 358 25 358 27
+                                            , SrcSpan "tests/examples/Directory.hs" 359 17 359 17
+                                            , SrcSpan "tests/examples/Directory.hs" 363 17 363 17
+                                            , SrcSpan "tests/examples/Directory.hs" 399 1 399 0
+                                            ]
+                                        }
+                                      (Case
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 358 15 363 37
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/Directory.hs" 358 15 358 19
+                                               , SrcSpan "tests/examples/Directory.hs" 358 25 358 27
+                                               , SrcSpan "tests/examples/Directory.hs" 359 17 359 17
+                                               , SrcSpan "tests/examples/Directory.hs" 363 17 363 17
+                                               , SrcSpan "tests/examples/Directory.hs" 399 1 399 0
+                                               ]
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 358 20 358 24
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 358 20 358 24
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          358
+                                                          20
+                                                          358
+                                                          24
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "temp")))
+                                         [ Alt
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 359 17 362 57
+                                               , srcInfoPoints = []
+                                               }
+                                             (PApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 359 17 359 23
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           359
+                                                           17
+                                                           359
+                                                           21
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              359
+                                                              17
+                                                              359
+                                                              21
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "Left"))
+                                                [ PVar
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            359
+                                                            22
+                                                            359
+                                                            23
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               359
+                                                               22
+                                                               359
+                                                               23
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "e")
+                                                ])
+                                             (UnGuardedRhs
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 359 25 362 57
+                                                  , srcInfoPoints =
+                                                      [ SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          359
+                                                          25
+                                                          359
+                                                          27
+                                                      ]
+                                                  }
+                                                (Do
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           359
+                                                           28
+                                                           362
+                                                           57
+                                                     , srcInfoPoints =
+                                                         [ SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             359
+                                                             28
+                                                             359
+                                                             30
+                                                         , SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             359
+                                                             31
+                                                             359
+                                                             31
+                                                         , SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             361
+                                                             31
+                                                             361
+                                                             31
+                                                         , SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             362
+                                                             31
+                                                             362
+                                                             31
+                                                         , SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             363
+                                                             17
+                                                             363
+                                                             0
+                                                         ]
+                                                     }
+                                                   [ Generator
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               359
+                                                               31
+                                                               359
+                                                               60
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 359
+                                                                 37
+                                                                 359
+                                                                 39
+                                                             ]
+                                                         }
+                                                       (PVar
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  359
+                                                                  31
+                                                                  359
+                                                                  36
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     359
+                                                                     31
+                                                                     359
+                                                                     36
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "isDir"))
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  359
+                                                                  40
+                                                                  359
+                                                                  60
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     359
+                                                                     40
+                                                                     359
+                                                                     58
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        359
+                                                                        40
+                                                                        359
+                                                                        58
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           359
+                                                                           40
+                                                                           359
+                                                                           58
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "doesDirectoryExist")))
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     359
+                                                                     59
+                                                                     359
+                                                                     60
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        359
+                                                                        59
+                                                                        359
+                                                                        60
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           359
+                                                                           59
+                                                                           359
+                                                                           60
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "f"))))
+                                                   , Qualifier
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               361
+                                                               31
+                                                               361
+                                                               72
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (InfixApp
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  361
+                                                                  31
+                                                                  361
+                                                                  72
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (App
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     361
+                                                                     31
+                                                                     361
+                                                                     43
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        361
+                                                                        31
+                                                                        361
+                                                                        37
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           361
+                                                                           31
+                                                                           361
+                                                                           37
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              361
+                                                                              31
+                                                                              361
+                                                                              37
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "unless")))
+                                                             (Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        361
+                                                                        38
+                                                                        361
+                                                                        43
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           361
+                                                                           38
+                                                                           361
+                                                                           43
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              361
+                                                                              38
+                                                                              361
+                                                                              43
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "isDir"))))
+                                                          (QVarOp
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     361
+                                                                     44
+                                                                     361
+                                                                     45
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        361
+                                                                        44
+                                                                        361
+                                                                        45
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Symbol
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           361
+                                                                           44
+                                                                           361
+                                                                           45
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "$")))
+                                                          (App
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     361
+                                                                     46
+                                                                     361
+                                                                     72
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        361
+                                                                        46
+                                                                        361
+                                                                        51
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           361
+                                                                           46
+                                                                           361
+                                                                           51
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              361
+                                                                              46
+                                                                              361
+                                                                              51
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "throw")))
+                                                             (Paren
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        361
+                                                                        52
+                                                                        361
+                                                                        72
+                                                                  , srcInfoPoints =
+                                                                      [ SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          361
+                                                                          52
+                                                                          361
+                                                                          53
+                                                                      , SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          361
+                                                                          71
+                                                                          361
+                                                                          72
+                                                                      ]
+                                                                  }
+                                                                (ExpTypeSig
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           361
+                                                                           53
+                                                                           361
+                                                                           71
+                                                                     , srcInfoPoints =
+                                                                         [ SrcSpan
+                                                                             "tests/examples/Directory.hs"
+                                                                             361
+                                                                             55
+                                                                             361
+                                                                             57
+                                                                         ]
+                                                                     }
+                                                                   (Var
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              361
+                                                                              53
+                                                                              361
+                                                                              54
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 361
+                                                                                 53
+                                                                                 361
+                                                                                 54
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    361
+                                                                                    53
+                                                                                    361
+                                                                                    54
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "e")))
+                                                                   (TyCon
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              361
+                                                                              58
+                                                                              361
+                                                                              71
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 361
+                                                                                 58
+                                                                                 361
+                                                                                 71
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    361
+                                                                                    58
+                                                                                    361
+                                                                                    71
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "SomeException")))))))
+                                                   , Qualifier
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               362
+                                                               31
+                                                               362
+                                                               57
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  362
+                                                                  31
+                                                                  362
+                                                                  57
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     362
+                                                                     31
+                                                                     362
+                                                                     55
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        362
+                                                                        31
+                                                                        362
+                                                                        55
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           362
+                                                                           31
+                                                                           362
+                                                                           55
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "removeDirectoryRecursive")))
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     362
+                                                                     56
+                                                                     362
+                                                                     57
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        362
+                                                                        56
+                                                                        362
+                                                                        57
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           362
+                                                                           56
+                                                                           362
+                                                                           57
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "f"))))
+                                                   ]))
+                                             Nothing
+                                         , Alt
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 363 17 363 37
+                                               , srcInfoPoints = []
+                                               }
+                                             (PApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 363 17 363 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           363
+                                                           17
+                                                           363
+                                                           22
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              363
+                                                              17
+                                                              363
+                                                              22
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "Right"))
+                                                [ PWildCard
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            363
+                                                            23
+                                                            363
+                                                            24
+                                                      , srcInfoPoints = []
+                                                      }
+                                                ])
+                                             (UnGuardedRhs
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 363 25 363 37
+                                                  , srcInfoPoints =
+                                                      [ SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          363
+                                                          25
+                                                          363
+                                                          27
+                                                      ]
+                                                  }
+                                                (App
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           363
+                                                           28
+                                                           363
+                                                           37
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              363
+                                                              28
+                                                              363
+                                                              34
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 363
+                                                                 28
+                                                                 363
+                                                                 34
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    363
+                                                                    28
+                                                                    363
+                                                                    34
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "return")))
+                                                   (Con
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              363
+                                                              35
+                                                              363
+                                                              37
+                                                        , srcInfoPoints =
+                                                            [ SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                363
+                                                                35
+                                                                363
+                                                                36
+                                                            , SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                363
+                                                                36
+                                                                363
+                                                                37
+                                                            ]
+                                                        }
+                                                      (Special
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 363
+                                                                 35
+                                                                 363
+                                                                 37
+                                                           , srcInfoPoints =
+                                                               [ SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   363
+                                                                   35
+                                                                   363
+                                                                   36
+                                                               , SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   363
+                                                                   36
+                                                                   363
+                                                                   37
+                                                               ]
+                                                           }
+                                                         (UnitCon
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    363
+                                                                    35
+                                                                    363
+                                                                    37
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      363
+                                                                      35
+                                                                      363
+                                                                      36
+                                                                  , SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      363
+                                                                      36
+                                                                      363
+                                                                      37
+                                                                  ]
+                                                              })))))
+                                             Nothing
+                                         ])
+                                  ]))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 1 399 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 399 12 399 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 1 399 11
+                , srcInfoPoints = []
+                }
+              "removeFile"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 32
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 399 24 399 26 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 15 399 23
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 32
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 27 399 29
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 399 30 399 31
+                         , SrcSpan "tests/examples/Directory.hs" 399 31 399 32
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 399 30 399 31
+                            , SrcSpan "tests/examples/Directory.hs" 399 31 399 32
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 399 30 399 32
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 399 30 399 31
+                               , SrcSpan "tests/examples/Directory.hs" 399 31 399 32
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 401 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 401 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 1 400 11
+                   , srcInfoPoints = []
+                   }
+                 "removeFile")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 12 400 16
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 12 400 16
+                       , srcInfoPoints = []
+                       }
+                     "path")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 400 17 401 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 400 17 400 18 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 24
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19
+                         , srcInfoPoints = []
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19
+                            , srcInfoPoints = []
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19
+                               , srcInfoPoints = []
+                               }
+                             "Win32")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 3 401 19
+                               , srcInfoPoints = []
+                               }
+                             "deleteFile")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 401 20 401 24
+                               , srcInfoPoints = []
+                               }
+                             "path")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 1 452 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 452 17 452 19 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 1 452 16
+                , srcInfoPoints = []
+                }
+              "renameDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 49
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 452 29 452 31 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 20 452 28
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 49
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 452 41 452 43 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 32 452 40
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 49
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 44 452 46
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 452 47 452 48
+                            , SrcSpan "tests/examples/Directory.hs" 452 48 452 49
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 452 47 452 48
+                               , SrcSpan "tests/examples/Directory.hs" 452 48 452 49
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 452 47 452 49
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 452 47 452 48
+                                  , SrcSpan "tests/examples/Directory.hs" 452 48 452 49
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 463 64
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 463 64
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 1 453 16
+                   , srcInfoPoints = []
+                   }
+                 "renameDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 17 453 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 17 453 22
+                       , srcInfoPoints = []
+                       }
+                     "opath")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 23 453 28
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 23 453 28
+                       , srcInfoPoints = []
+                       }
+                     "npath")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 29 463 64
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 453 29 453 30 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 453 31 463 64
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 453 31 453 33
+                          , SrcSpan "tests/examples/Directory.hs" 456 4 456 4
+                          , SrcSpan "tests/examples/Directory.hs" 509 1 509 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 463 64
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 463 64
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 4 456 42
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 456 4 456 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 456 4 456 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 456 4 456 18
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 456 4 456 18
+                                            , srcInfoPoints = []
+                                            }
+                                          "withFileStatus")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 456 19 456 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (String
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 456 19 456 36
+                                         , srcInfoPoints = []
+                                         }
+                                       "renameDirectory"
+                                       "renameDirectory")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 456 37 456 42
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 456 37 456 42
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 456 37 456 42
+                                         , srcInfoPoints = []
+                                         }
+                                       "opath"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 43 456 44
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 456 43 456 44
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 456 43 456 44
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 456 45 463 64
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 456 45 456 46
+                                    , SrcSpan "tests/examples/Directory.hs" 456 49 456 51
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 456 46 456 48
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 456 46 456 48
+                                       , srcInfoPoints = []
+                                       }
+                                     "st")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 456 52 463 64
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 456 52 456 54
+                                       , SrcSpan "tests/examples/Directory.hs" 457 4 457 4
+                                       , SrcSpan "tests/examples/Directory.hs" 457 4 457 4
+                                       , SrcSpan "tests/examples/Directory.hs" 458 4 458 4
+                                       , SrcSpan "tests/examples/Directory.hs" 509 1 509 0
+                                       ]
+                                   }
+                                 [ Generator
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 457 4 457 28
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 457 11 457 13 ]
+                                       }
+                                     (PVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 457 4 457 10
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 457 4 457 10
+                                             , srcInfoPoints = []
+                                             }
+                                           "is_dir"))
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 457 14 457 28
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 457 14 457 25
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 457 14 457 25
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 457 14 457 25
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "isDirectory")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 457 26 457 28
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 457 26 457 28
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 457 26 457 28
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "st"))))
+                                 , Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 458 4 463 64
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 458 4 458 6
+                                           , SrcSpan "tests/examples/Directory.hs" 459 5 459 9
+                                           , SrcSpan "tests/examples/Directory.hs" 462 5 462 9
+                                           ]
+                                       }
+                                     (If
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 458 4 463 64
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 458 4 458 6
+                                              , SrcSpan "tests/examples/Directory.hs" 459 5 459 9
+                                              , SrcSpan "tests/examples/Directory.hs" 462 5 462 9
+                                              ]
+                                          }
+                                        (Paren
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 458 7 458 19
+                                             , srcInfoPoints =
+                                                 [ SrcSpan "tests/examples/Directory.hs" 458 7 458 8
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 458 18 458 19
+                                                 ]
+                                             }
+                                           (App
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 458 8 458 18
+                                                , srcInfoPoints = []
+                                                }
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 458 8 458 11
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            458
+                                                            8
+                                                            458
+                                                            11
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               458
+                                                               8
+                                                               458
+                                                               11
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "not")))
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 458 12 458 18
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            458
+                                                            12
+                                                            458
+                                                            18
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               458
+                                                               12
+                                                               458
+                                                               18
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "is_dir")))))
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 459 10 461 45
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 459 10 459 21
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 459 10 459 21
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            459
+                                                            10
+                                                            459
+                                                            21
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "ioException")))
+                                           (Paren
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 459 22 461 45
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 459 22 459 23
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 461 44 461 45
+                                                    ]
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 459 23 461 44
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            459
+                                                            23
+                                                            460
+                                                            95
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               459
+                                                               23
+                                                               459
+                                                               40
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  459
+                                                                  23
+                                                                  459
+                                                                  40
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     459
+                                                                     23
+                                                                     459
+                                                                     40
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "ioeSetErrorString")))
+                                                    (Paren
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               460
+                                                               27
+                                                               460
+                                                               95
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 460
+                                                                 27
+                                                                 460
+                                                                 28
+                                                             , SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 460
+                                                                 94
+                                                                 460
+                                                                 95
+                                                             ]
+                                                         }
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  460
+                                                                  28
+                                                                  460
+                                                                  94
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (App
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     460
+                                                                     28
+                                                                     460
+                                                                     81
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (App
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        460
+                                                                        28
+                                                                        460
+                                                                        73
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (App
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           460
+                                                                           28
+                                                                           460
+                                                                           55
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Var
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              28
+                                                                              460
+                                                                              37
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 460
+                                                                                 28
+                                                                                 460
+                                                                                 37
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    460
+                                                                                    28
+                                                                                    460
+                                                                                    37
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "mkIOError")))
+                                                                   (Con
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              38
+                                                                              460
+                                                                              55
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 460
+                                                                                 38
+                                                                                 460
+                                                                                 55
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    460
+                                                                                    38
+                                                                                    460
+                                                                                    55
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "InappropriateType"))))
+                                                                (Lit
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           460
+                                                                           56
+                                                                           460
+                                                                           73
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (String
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              56
+                                                                              460
+                                                                              73
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "renameDirectory"
+                                                                      "renameDirectory")))
+                                                             (Con
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        460
+                                                                        74
+                                                                        460
+                                                                        81
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           460
+                                                                           74
+                                                                           460
+                                                                           81
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              74
+                                                                              460
+                                                                              81
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "Nothing"))))
+                                                          (Paren
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     460
+                                                                     82
+                                                                     460
+                                                                     94
+                                                               , srcInfoPoints =
+                                                                   [ SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       460
+                                                                       82
+                                                                       460
+                                                                       83
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       460
+                                                                       93
+                                                                       460
+                                                                       94
+                                                                   ]
+                                                               }
+                                                             (App
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        460
+                                                                        83
+                                                                        460
+                                                                        93
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Con
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           460
+                                                                           83
+                                                                           460
+                                                                           87
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (UnQual
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              83
+                                                                              460
+                                                                              87
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 460
+                                                                                 83
+                                                                                 460
+                                                                                 87
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "Just")))
+                                                                (Var
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           460
+                                                                           88
+                                                                           460
+                                                                           93
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (UnQual
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              460
+                                                                              88
+                                                                              460
+                                                                              93
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 460
+                                                                                 88
+                                                                                 460
+                                                                                 93
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "opath"))))))))
+                                                 (Lit
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            461
+                                                            27
+                                                            461
+                                                            44
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (String
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               461
+                                                               27
+                                                               461
+                                                               44
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "not a directory"
+                                                       "not a directory")))))
+                                        (Do
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 462 10 463 64
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 462 10 462 12
+                                                 , SrcSpan "tests/examples/Directory.hs" 463 4 463 4
+                                                 , SrcSpan "tests/examples/Directory.hs" 463 4 463 4
+                                                 , SrcSpan "tests/examples/Directory.hs" 509 1 509 0
+                                                 ]
+                                             }
+                                           [ Qualifier
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 463 4 463 64
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 463 4 463 64
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             463
+                                                             4
+                                                             463
+                                                             32
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                463
+                                                                4
+                                                                463
+                                                                26
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   463
+                                                                   4
+                                                                   463
+                                                                   20
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Qual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      463
+                                                                      4
+                                                                      463
+                                                                      20
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (ModuleName
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         463
+                                                                         4
+                                                                         463
+                                                                         20
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "Win32")
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         463
+                                                                         4
+                                                                         463
+                                                                         20
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "moveFileEx")))
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   463
+                                                                   21
+                                                                   463
+                                                                   26
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      463
+                                                                      21
+                                                                      463
+                                                                      26
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         463
+                                                                         21
+                                                                         463
+                                                                         26
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "opath"))))
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                463
+                                                                27
+                                                                463
+                                                                32
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   463
+                                                                   27
+                                                                   463
+                                                                   32
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      463
+                                                                      27
+                                                                      463
+                                                                      32
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "npath"))))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             463
+                                                             33
+                                                             463
+                                                             64
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Qual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                463
+                                                                33
+                                                                463
+                                                                64
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (ModuleName
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   463
+                                                                   33
+                                                                   463
+                                                                   64
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "Win32")
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   463
+                                                                   33
+                                                                   463
+                                                                   64
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "mOVEFILE_REPLACE_EXISTING"))))
+                                           ]))
+                                 ])))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 1 509 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 509 12 509 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 1 509 11
+                , srcInfoPoints = []
+                }
+              "renameFile"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 44
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 509 24 509 26 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 15 509 23
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 44
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 509 36 509 38 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 27 509 35
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 44
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 39 509 41
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 509 42 509 43
+                            , SrcSpan "tests/examples/Directory.hs" 509 43 509 44
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 509 42 509 43
+                               , SrcSpan "tests/examples/Directory.hs" 509 43 509 44
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 509 42 509 44
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 509 42 509 43
+                                  , SrcSpan "tests/examples/Directory.hs" 509 43 509 44
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 520 64
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 520 64
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 1 510 11
+                   , srcInfoPoints = []
+                   }
+                 "renameFile")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 12 510 17
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 12 510 17
+                       , srcInfoPoints = []
+                       }
+                     "opath")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 18 510 23
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 18 510 23
+                       , srcInfoPoints = []
+                       }
+                     "npath")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 24 520 64
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 510 24 510 25 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 510 26 520 64
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 510 26 510 28
+                          , SrcSpan "tests/examples/Directory.hs" 513 4 513 4
+                          , SrcSpan "tests/examples/Directory.hs" 528 1 528 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 520 64
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 520 64
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 4 513 46
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 513 4 513 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 513 4 513 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 513 4 513 27
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 513 4 513 27
+                                            , srcInfoPoints = []
+                                            }
+                                          "withFileOrSymlinkStatus")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 513 28 513 40
+                                      , srcInfoPoints = []
+                                      }
+                                    (String
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 513 28 513 40
+                                         , srcInfoPoints = []
+                                         }
+                                       "renameFile"
+                                       "renameFile")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 513 41 513 46
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 513 41 513 46
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 513 41 513 46
+                                         , srcInfoPoints = []
+                                         }
+                                       "opath"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 47 513 48
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 513 47 513 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 513 47 513 48
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 513 49 520 64
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 513 49 513 50
+                                    , SrcSpan "tests/examples/Directory.hs" 513 53 513 55
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 513 50 513 52
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 513 50 513 52
+                                       , srcInfoPoints = []
+                                       }
+                                     "st")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 513 56 520 64
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 513 56 513 58
+                                       , SrcSpan "tests/examples/Directory.hs" 514 4 514 4
+                                       , SrcSpan "tests/examples/Directory.hs" 514 4 514 4
+                                       , SrcSpan "tests/examples/Directory.hs" 515 4 515 4
+                                       , SrcSpan "tests/examples/Directory.hs" 528 1 528 0
+                                       ]
+                                   }
+                                 [ Generator
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 514 4 514 28
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 514 11 514 13 ]
+                                       }
+                                     (PVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 514 4 514 10
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 514 4 514 10
+                                             , srcInfoPoints = []
+                                             }
+                                           "is_dir"))
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 514 14 514 28
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 514 14 514 25
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 514 14 514 25
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 514 14 514 25
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "isDirectory")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 514 26 514 28
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 514 26 514 28
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 514 26 514 28
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "st"))))
+                                 , Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 515 4 520 64
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 515 4 515 6
+                                           , SrcSpan "tests/examples/Directory.hs" 516 5 516 9
+                                           , SrcSpan "tests/examples/Directory.hs" 519 5 519 9
+                                           ]
+                                       }
+                                     (If
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 515 4 520 64
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 515 4 515 6
+                                              , SrcSpan "tests/examples/Directory.hs" 516 5 516 9
+                                              , SrcSpan "tests/examples/Directory.hs" 519 5 519 9
+                                              ]
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 515 7 515 13
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 515 7 515 13
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 515 7 515 13
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "is_dir")))
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 516 10 518 32
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 516 10 516 21
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 516 10 516 21
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            516
+                                                            10
+                                                            516
+                                                            21
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "ioException")))
+                                           (Paren
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 516 22 518 32
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 516 22 516 23
+                                                    , SrcSpan
+                                                        "tests/examples/Directory.hs" 518 31 518 32
+                                                    ]
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 516 23 518 31
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            516
+                                                            23
+                                                            517
+                                                            78
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               516
+                                                               23
+                                                               516
+                                                               40
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  516
+                                                                  23
+                                                                  516
+                                                                  40
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     516
+                                                                     23
+                                                                     516
+                                                                     40
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "ioeSetErrorString")))
+                                                    (Paren
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               517
+                                                               15
+                                                               517
+                                                               78
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 517
+                                                                 15
+                                                                 517
+                                                                 16
+                                                             , SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 517
+                                                                 77
+                                                                 517
+                                                                 78
+                                                             ]
+                                                         }
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  517
+                                                                  16
+                                                                  517
+                                                                  77
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (App
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     517
+                                                                     16
+                                                                     517
+                                                                     64
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (App
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        517
+                                                                        16
+                                                                        517
+                                                                        56
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (App
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           517
+                                                                           16
+                                                                           517
+                                                                           43
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Var
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              16
+                                                                              517
+                                                                              25
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 517
+                                                                                 16
+                                                                                 517
+                                                                                 25
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    517
+                                                                                    16
+                                                                                    517
+                                                                                    25
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "mkIOError")))
+                                                                   (Con
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              26
+                                                                              517
+                                                                              43
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 517
+                                                                                 26
+                                                                                 517
+                                                                                 43
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/Directory.hs"
+                                                                                    517
+                                                                                    26
+                                                                                    517
+                                                                                    43
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "InappropriateType"))))
+                                                                (Lit
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           517
+                                                                           44
+                                                                           517
+                                                                           56
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (String
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              44
+                                                                              517
+                                                                              56
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "renameFile"
+                                                                      "renameFile")))
+                                                             (Con
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        517
+                                                                        57
+                                                                        517
+                                                                        64
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           517
+                                                                           57
+                                                                           517
+                                                                           64
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              57
+                                                                              517
+                                                                              64
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "Nothing"))))
+                                                          (Paren
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     517
+                                                                     65
+                                                                     517
+                                                                     77
+                                                               , srcInfoPoints =
+                                                                   [ SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       517
+                                                                       65
+                                                                       517
+                                                                       66
+                                                                   , SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       517
+                                                                       76
+                                                                       517
+                                                                       77
+                                                                   ]
+                                                               }
+                                                             (App
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        517
+                                                                        66
+                                                                        517
+                                                                        76
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Con
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           517
+                                                                           66
+                                                                           517
+                                                                           70
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (UnQual
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              66
+                                                                              517
+                                                                              70
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 517
+                                                                                 66
+                                                                                 517
+                                                                                 70
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "Just")))
+                                                                (Var
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           517
+                                                                           71
+                                                                           517
+                                                                           76
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (UnQual
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/Directory.hs"
+                                                                              517
+                                                                              71
+                                                                              517
+                                                                              76
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (Ident
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/Directory.hs"
+                                                                                 517
+                                                                                 71
+                                                                                 517
+                                                                                 76
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         "opath"))))))))
+                                                 (Lit
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            518
+                                                            15
+                                                            518
+                                                            31
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (String
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               518
+                                                               15
+                                                               518
+                                                               31
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "is a directory"
+                                                       "is a directory")))))
+                                        (Do
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 519 10 520 64
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 519 10 519 12
+                                                 , SrcSpan "tests/examples/Directory.hs" 520 4 520 4
+                                                 , SrcSpan "tests/examples/Directory.hs" 520 4 520 4
+                                                 , SrcSpan "tests/examples/Directory.hs" 528 1 528 0
+                                                 ]
+                                             }
+                                           [ Qualifier
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 520 4 520 64
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 520 4 520 64
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             520
+                                                             4
+                                                             520
+                                                             32
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (App
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                520
+                                                                4
+                                                                520
+                                                                26
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   520
+                                                                   4
+                                                                   520
+                                                                   20
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Qual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      520
+                                                                      4
+                                                                      520
+                                                                      20
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (ModuleName
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         520
+                                                                         4
+                                                                         520
+                                                                         20
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "Win32")
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         520
+                                                                         4
+                                                                         520
+                                                                         20
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "moveFileEx")))
+                                                        (Var
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   520
+                                                                   21
+                                                                   520
+                                                                   26
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (UnQual
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      520
+                                                                      21
+                                                                      520
+                                                                      26
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (Ident
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         520
+                                                                         21
+                                                                         520
+                                                                         26
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 "opath"))))
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                520
+                                                                27
+                                                                520
+                                                                32
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   520
+                                                                   27
+                                                                   520
+                                                                   32
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      520
+                                                                      27
+                                                                      520
+                                                                      32
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "npath"))))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             520
+                                                             33
+                                                             520
+                                                             64
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Qual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                520
+                                                                33
+                                                                520
+                                                                64
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (ModuleName
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   520
+                                                                   33
+                                                                   520
+                                                                   64
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "Win32")
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   520
+                                                                   33
+                                                                   520
+                                                                   64
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "mOVEFILE_REPLACE_EXISTING"))))
+                                           ]))
+                                 ])))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 1 528 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 528 10 528 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 1 528 9
+                , srcInfoPoints = []
+                }
+              "copyFile"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 42
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 528 22 528 24 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 13 528 21
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 42
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 528 34 528 36 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 25 528 33
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 42
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 37 528 39
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 528 40 528 41
+                            , SrcSpan "tests/examples/Directory.hs" 528 41 528 42
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 528 40 528 41
+                               , SrcSpan "tests/examples/Directory.hs" 528 41 528 42
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 528 40 528 42
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 528 40 528 41
+                                  , SrcSpan "tests/examples/Directory.hs" 528 41 528 42
+                                  ]
+                              }))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 551 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 531 5 531 10 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 551 43
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 531 5 531 10 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 1 529 9
+                   , srcInfoPoints = []
+                   }
+                 "copyFile")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 10 529 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 10 529 19
+                       , srcInfoPoints = []
+                       }
+                     "fromFPath")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 20 529 27
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 20 529 27
+                       , srcInfoPoints = []
+                       }
+                     "toFPath")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 529 28 530 73
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 529 28 529 29 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 73
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 5 530 9
+                               , srcInfoPoints = []
+                               }
+                             "copy")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 10 530 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 530 10 530 11
+                             , SrcSpan "tests/examples/Directory.hs" 530 11 530 24
+                             , SrcSpan "tests/examples/Directory.hs" 530 24 530 25
+                             ]
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 10 530 25
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 530 10 530 11
+                                , SrcSpan "tests/examples/Directory.hs" 530 11 530 24
+                                , SrcSpan "tests/examples/Directory.hs" 530 24 530 25
+                                ]
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 11 530 24
+                               , srcInfoPoints = []
+                               }
+                             "Prelude")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 11 530 24
+                               , srcInfoPoints = []
+                               }
+                             "catch")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 26 530 73
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 530 26 530 27
+                             , SrcSpan "tests/examples/Directory.hs" 530 72 530 73
+                             ]
+                         }
+                       (Lambda
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 27 530 72
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 530 27 530 28
+                                , SrcSpan "tests/examples/Directory.hs" 530 32 530 34
+                                ]
+                            }
+                          [ PVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 28 530 31
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 530 28 530 31
+                                   , srcInfoPoints = []
+                                   }
+                                 "exc")
+                          ]
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 530 35 530 72
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 530 35 530 40
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 530 35 530 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 530 35 530 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "throw")))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 530 41 530 42
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 530 41 530 42
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 530 41 530 42
+                                        , srcInfoPoints = []
+                                        }
+                                      "$")))
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 530 43 530 72
+                                  , srcInfoPoints = []
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 530 43 530 61
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 530 43 530 57
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 530 43 530 57
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 530 43 530 57
+                                              , srcInfoPoints = []
+                                              }
+                                            "ioeSetLocation")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 530 58 530 61
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 530 58 530 61
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 530 58 530 61
+                                              , srcInfoPoints = []
+                                              }
+                                            "exc"))))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 530 62 530 72
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 530 62 530 72
+                                        , srcInfoPoints = []
+                                        }
+                                      "copyFile"
+                                      "copyFile"))))))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 551 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 531 11 531 11
+                          , SrcSpan "tests/examples/Directory.hs" 537 11 537 11
+                          , SrcSpan "tests/examples/Directory.hs" 538 11 538 11
+                          , SrcSpan "tests/examples/Directory.hs" 541 11 541 11
+                          , SrcSpan "tests/examples/Directory.hs" 543 11 543 11
+                          , SrcSpan "tests/examples/Directory.hs" 549 11 549 11
+                          , SrcSpan "tests/examples/Directory.hs" 550 11 550 11
+                          , SrcSpan "tests/examples/Directory.hs" 551 11 551 11
+                          , SrcSpan "tests/examples/Directory.hs" 560 1 560 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 536 48
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 531 15
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 11 531 15
+                                , srcInfoPoints = []
+                                }
+                              "copy"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 16 536 48
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 531 16 531 17 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 531 18 536 48
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 531 18 531 68
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 531 18 531 61
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 531 18 531 25
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 531 18 531 25
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 531 18 531 25
+                                               , srcInfoPoints = []
+                                               }
+                                             "bracket")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 531 26 531 61
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 531 26 531 27
+                                             , SrcSpan "tests/examples/Directory.hs" 531 60 531 61
+                                             ]
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 531 27 531 60
+                                            , srcInfoPoints = []
+                                            }
+                                          (App
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 531 27 531 51
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 531 27 531 41
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           531
+                                                           27
+                                                           531
+                                                           41
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              531
+                                                              27
+                                                              531
+                                                              41
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "openBinaryFile")))
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 531 42 531 51
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           531
+                                                           42
+                                                           531
+                                                           51
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              531
+                                                              42
+                                                              531
+                                                              51
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "fromFPath"))))
+                                          (Con
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 531 52 531 60
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 531 52 531 60
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           531
+                                                           52
+                                                           531
+                                                           60
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "ReadMode"))))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 531 62 531 68
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 531 62 531 68
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 531 62 531 68
+                                            , srcInfoPoints = []
+                                            }
+                                          "hClose"))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 531 69 531 70
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 531 69 531 70
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 531 69 531 70
+                                         , srcInfoPoints = []
+                                         }
+                                       "$")))
+                              (Lambda
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 531 71 536 48
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 531 71 531 72
+                                       , SrcSpan "tests/examples/Directory.hs" 531 78 531 80
+                                       ]
+                                   }
+                                 [ PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 531 72 531 77
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 531 72 531 77
+                                          , srcInfoPoints = []
+                                          }
+                                        "hFrom")
+                                 ]
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 532 18 536 48
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 532 18 532 49
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 532 18 532 40
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 532 18 532 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 532 18 532 32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           532
+                                                           18
+                                                           532
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "bracketOnError")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 532 33 532 40
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 532 33 532 40
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           532
+                                                           33
+                                                           532
+                                                           40
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "openTmp"))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 532 41 532 49
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 532 41 532 49
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 532 41 532 49
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "cleanTmp"))))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 532 50 532 51
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 532 50 532 51
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 532 50 532 51
+                                               , srcInfoPoints = []
+                                               }
+                                             "$")))
+                                    (Lambda
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 532 52 536 48
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 532 52 532 53
+                                             , SrcSpan "tests/examples/Directory.hs" 532 70 532 72
+                                             ]
+                                         }
+                                       [ PTuple
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 532 53 532 69
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 532 53 532 54
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 532 62 532 63
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 532 68 532 69
+                                                 ]
+                                             }
+                                           Boxed
+                                           [ PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 532 54 532 62
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          532
+                                                          54
+                                                          532
+                                                          62
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "tmpFPath")
+                                           , PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 532 64 532 68
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          532
+                                                          64
+                                                          532
+                                                          68
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "hTmp")
+                                           ]
+                                       ]
+                                       (Do
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 533 18 536 48
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 533 18 533 20
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 533 21 533 21
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 534 21 534 21
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 535 21 535 21
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 536 21 536 21
+                                                , SrcSpan "tests/examples/Directory.hs" 537 11 537 0
+                                                ]
+                                            }
+                                          [ Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 533 21 533 69
+                                                , srcInfoPoints = []
+                                                }
+                                              (InfixApp
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 533 21 533 69
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            533
+                                                            21
+                                                            533
+                                                            43
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               533
+                                                               21
+                                                               533
+                                                               32
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  21
+                                                                  533
+                                                                  32
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     533
+                                                                     21
+                                                                     533
+                                                                     32
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "allocaBytes")))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               533
+                                                               33
+                                                               533
+                                                               43
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  33
+                                                                  533
+                                                                  43
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     533
+                                                                     33
+                                                                     533
+                                                                     43
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "bufferSize"))))
+                                                 (QVarOp
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            533
+                                                            44
+                                                            533
+                                                            45
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               533
+                                                               44
+                                                               533
+                                                               45
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Symbol
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  44
+                                                                  533
+                                                                  45
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "$")))
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            533
+                                                            46
+                                                            533
+                                                            69
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               533
+                                                               46
+                                                               533
+                                                               64
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  46
+                                                                  533
+                                                                  58
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     533
+                                                                     46
+                                                                     533
+                                                                     58
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        533
+                                                                        46
+                                                                        533
+                                                                        58
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "copyContents")))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  59
+                                                                  533
+                                                                  64
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     533
+                                                                     59
+                                                                     533
+                                                                     64
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        533
+                                                                        59
+                                                                        533
+                                                                        64
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "hFrom"))))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               533
+                                                               65
+                                                               533
+                                                               69
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  533
+                                                                  65
+                                                                  533
+                                                                  69
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     533
+                                                                     65
+                                                                     533
+                                                                     69
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "hTmp")))))
+                                          , Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 534 21 534 32
+                                                , srcInfoPoints = []
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 534 21 534 32
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            534
+                                                            21
+                                                            534
+                                                            27
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               534
+                                                               21
+                                                               534
+                                                               27
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  534
+                                                                  21
+                                                                  534
+                                                                  27
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "hClose")))
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            534
+                                                            28
+                                                            534
+                                                            32
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               534
+                                                               28
+                                                               534
+                                                               32
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  534
+                                                                  28
+                                                                  534
+                                                                  32
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "hTmp"))))
+                                          , Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 535 21 535 76
+                                                , srcInfoPoints = []
+                                                }
+                                              (InfixApp
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 535 21 535 76
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            535
+                                                            21
+                                                            535
+                                                            39
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               535
+                                                               21
+                                                               535
+                                                               39
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  535
+                                                                  21
+                                                                  535
+                                                                  39
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "ignoreIOExceptions")))
+                                                 (QVarOp
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            535
+                                                            40
+                                                            535
+                                                            41
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               535
+                                                               40
+                                                               535
+                                                               41
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Symbol
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  535
+                                                                  40
+                                                                  535
+                                                                  41
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "$")))
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            535
+                                                            42
+                                                            535
+                                                            76
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               535
+                                                               42
+                                                               535
+                                                               67
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  535
+                                                                  42
+                                                                  535
+                                                                  57
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     535
+                                                                     42
+                                                                     535
+                                                                     57
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        535
+                                                                        42
+                                                                        535
+                                                                        57
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "copyPermissions")))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  535
+                                                                  58
+                                                                  535
+                                                                  67
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     535
+                                                                     58
+                                                                     535
+                                                                     67
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        535
+                                                                        58
+                                                                        535
+                                                                        67
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "fromFPath"))))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               535
+                                                               68
+                                                               535
+                                                               76
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  535
+                                                                  68
+                                                                  535
+                                                                  76
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     535
+                                                                     68
+                                                                     535
+                                                                     76
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "tmpFPath")))))
+                                          , Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 536 21 536 48
+                                                , srcInfoPoints = []
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 536 21 536 48
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            536
+                                                            21
+                                                            536
+                                                            40
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               536
+                                                               21
+                                                               536
+                                                               31
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  536
+                                                                  21
+                                                                  536
+                                                                  31
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     536
+                                                                     21
+                                                                     536
+                                                                     31
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "renameFile")))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               536
+                                                               32
+                                                               536
+                                                               40
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  536
+                                                                  32
+                                                                  536
+                                                                  40
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     536
+                                                                     32
+                                                                     536
+                                                                     40
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "tmpFPath"))))
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            536
+                                                            41
+                                                            536
+                                                            48
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               536
+                                                               41
+                                                               536
+                                                               48
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  536
+                                                                  41
+                                                                  536
+                                                                  48
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "toFPath"))))
+                                          ]))))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 79
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 18
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 11 537 18
+                                , srcInfoPoints = []
+                                }
+                              "openTmp"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 19 537 79
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 537 19 537 20 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 537 21 537 79
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 537 21 537 63
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 537 21 537 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 537 21 537 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 537 21 537 39
+                                            , srcInfoPoints = []
+                                            }
+                                          "openBinaryTempFile")))
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 537 40 537 63
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 537 40 537 41
+                                          , SrcSpan "tests/examples/Directory.hs" 537 62 537 63
+                                          ]
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 537 41 537 62
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 537 41 537 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 537 41 537 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 537 41 537 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "takeDirectory")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 537 55 537 62
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 537 55 537 62
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 537 55 537 62
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "toFPath"))))))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 537 64 537 79
+                                   , srcInfoPoints = []
+                                   }
+                                 (String
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 537 64 537 79
+                                      , srcInfoPoints = []
+                                      }
+                                    ".copyFile.tmp"
+                                    ".copyFile.tmp"))))
+                        Nothing
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 540 60
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 540 60
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 538 11 538 19
+                                 , srcInfoPoints = []
+                                 }
+                               "cleanTmp")
+                            [ PTuple
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 538 20 538 36
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 538 20 538 21
+                                      , SrcSpan "tests/examples/Directory.hs" 538 29 538 30
+                                      , SrcSpan "tests/examples/Directory.hs" 538 35 538 36
+                                      ]
+                                  }
+                                Boxed
+                                [ PVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 538 21 538 29
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 538 21 538 29
+                                         , srcInfoPoints = []
+                                         }
+                                       "tmpFPath")
+                                , PVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 538 31 538 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 538 31 538 35
+                                         , srcInfoPoints = []
+                                         }
+                                       "hTmp")
+                                ]
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 539 15 540 60
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 539 15 539 16 ]
+                                 }
+                               (Do
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 539 17 540 60
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 539 17 539 19
+                                        , SrcSpan "tests/examples/Directory.hs" 539 20 539 20
+                                        , SrcSpan "tests/examples/Directory.hs" 540 20 540 20
+                                        , SrcSpan "tests/examples/Directory.hs" 541 11 541 0
+                                        ]
+                                    }
+                                  [ Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 539 20 539 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (InfixApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 539 20 539 52
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 539 20 539 38
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 539 20 539 38
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          539
+                                                          20
+                                                          539
+                                                          38
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ignoreIOExceptions")))
+                                         (QVarOp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 539 39 539 40
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 539 39 539 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Symbol
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          539
+                                                          39
+                                                          539
+                                                          40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "$")))
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 539 41 539 52
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 539 41 539 47
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          539
+                                                          41
+                                                          539
+                                                          47
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             539
+                                                             41
+                                                             539
+                                                             47
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "hClose")))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 539 48 539 52
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          539
+                                                          48
+                                                          539
+                                                          52
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             539
+                                                             48
+                                                             539
+                                                             52
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "hTmp")))))
+                                  , Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 540 20 540 60
+                                        , srcInfoPoints = []
+                                        }
+                                      (InfixApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 540 20 540 60
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 540 20 540 38
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 540 20 540 38
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          540
+                                                          20
+                                                          540
+                                                          38
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ignoreIOExceptions")))
+                                         (QVarOp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 540 39 540 40
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 540 39 540 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Symbol
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          540
+                                                          39
+                                                          540
+                                                          40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "$")))
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 540 41 540 60
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 540 41 540 51
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          540
+                                                          41
+                                                          540
+                                                          51
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             540
+                                                             41
+                                                             540
+                                                             51
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "removeFile")))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 540 52 540 60
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          540
+                                                          52
+                                                          540
+                                                          60
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             540
+                                                             52
+                                                             540
+                                                             60
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "tmpFPath")))))
+                                  ]))
+                            Nothing
+                        ]
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 28
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 21
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 11 541 21
+                                , srcInfoPoints = []
+                                }
+                              "bufferSize"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 22 541 28
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 541 22 541 23 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 541 24 541 28
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 541 24 541 28
+                                   , srcInfoPoints = []
+                                   }
+                                 1024
+                                 "1024")))
+                        Nothing
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 547 56
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 547 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 11 543 23
+                                 , srcInfoPoints = []
+                                 }
+                               "copyContents")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 543 24 543 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 543 24 543 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "hFrom")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 543 30 543 33
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 543 30 543 33
+                                     , srcInfoPoints = []
+                                     }
+                                   "hTo")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 543 34 543 40
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 543 34 543 40
+                                     , srcInfoPoints = []
+                                     }
+                                   "buffer")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 543 41 547 56
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 543 41 543 42 ]
+                                 }
+                               (Do
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 543 43 547 56
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 543 43 543 45
+                                        , SrcSpan "tests/examples/Directory.hs" 544 19 544 19
+                                        , SrcSpan "tests/examples/Directory.hs" 545 19 545 19
+                                        , SrcSpan "tests/examples/Directory.hs" 549 11 549 0
+                                        ]
+                                    }
+                                  [ Generator
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 544 19 544 59
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 544 25 544 27 ]
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 544 19 544 24
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 544 19 544 24
+                                              , srcInfoPoints = []
+                                              }
+                                            "count"))
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 544 28 544 59
+                                           , srcInfoPoints = []
+                                           }
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 544 28 544 48
+                                              , srcInfoPoints = []
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 544 28 544 41
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          544
+                                                          28
+                                                          544
+                                                          35
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             544
+                                                             28
+                                                             544
+                                                             35
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                544
+                                                                28
+                                                                544
+                                                                35
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "hGetBuf")))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          544
+                                                          36
+                                                          544
+                                                          41
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             544
+                                                             36
+                                                             544
+                                                             41
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                544
+                                                                36
+                                                                544
+                                                                41
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "hFrom"))))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 544 42 544 48
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          544
+                                                          42
+                                                          544
+                                                          48
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             544
+                                                             42
+                                                             544
+                                                             48
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "buffer"))))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 544 49 544 59
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 544 49 544 59
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          544
+                                                          49
+                                                          544
+                                                          59
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "bufferSize"))))
+                                  , Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 545 19 547 56
+                                        , srcInfoPoints = []
+                                        }
+                                      (InfixApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 545 19 547 56
+                                           , srcInfoPoints = []
+                                           }
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 545 19 545 35
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 545 19 545 23
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          545
+                                                          19
+                                                          545
+                                                          23
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             545
+                                                             19
+                                                             545
+                                                             23
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "when")))
+                                            (Paren
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 545 24 545 35
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/Directory.hs" 545 24 545 25
+                                                     , SrcSpan
+                                                         "tests/examples/Directory.hs" 545 34 545 35
+                                                     ]
+                                                 }
+                                               (InfixApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          545
+                                                          25
+                                                          545
+                                                          34
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             545
+                                                             25
+                                                             545
+                                                             30
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                545
+                                                                25
+                                                                545
+                                                                30
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   545
+                                                                   25
+                                                                   545
+                                                                   30
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "count")))
+                                                  (QVarOp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             545
+                                                             31
+                                                             545
+                                                             32
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                545
+                                                                31
+                                                                545
+                                                                32
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Symbol
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   545
+                                                                   31
+                                                                   545
+                                                                   32
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           ">")))
+                                                  (Lit
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             545
+                                                             33
+                                                             545
+                                                             34
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Int
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                545
+                                                                33
+                                                                545
+                                                                34
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        0
+                                                        "0")))))
+                                         (QVarOp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 545 36 545 37
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 545 36 545 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Symbol
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          545
+                                                          36
+                                                          545
+                                                          37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "$")))
+                                         (Do
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 545 38 547 56
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/Directory.hs" 545 38 545 40
+                                                  , SrcSpan
+                                                      "tests/examples/Directory.hs" 546 27 546 27
+                                                  , SrcSpan
+                                                      "tests/examples/Directory.hs" 547 27 547 27
+                                                  , SrcSpan
+                                                      "tests/examples/Directory.hs" 549 11 549 0
+                                                  ]
+                                              }
+                                            [ Qualifier
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 546 27 546 51
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (App
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           546
+                                                           27
+                                                           546
+                                                           51
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (App
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              546
+                                                              27
+                                                              546
+                                                              45
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (App
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 546
+                                                                 27
+                                                                 546
+                                                                 38
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Var
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    546
+                                                                    27
+                                                                    546
+                                                                    34
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (UnQual
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       546
+                                                                       27
+                                                                       546
+                                                                       34
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          546
+                                                                          27
+                                                                          546
+                                                                          34
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "hPutBuf")))
+                                                         (Var
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    546
+                                                                    35
+                                                                    546
+                                                                    38
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (UnQual
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       546
+                                                                       35
+                                                                       546
+                                                                       38
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          546
+                                                                          35
+                                                                          546
+                                                                          38
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "hTo"))))
+                                                      (Var
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 546
+                                                                 39
+                                                                 546
+                                                                 45
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (UnQual
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    546
+                                                                    39
+                                                                    546
+                                                                    45
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       546
+                                                                       39
+                                                                       546
+                                                                       45
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "buffer"))))
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              546
+                                                              46
+                                                              546
+                                                              51
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 546
+                                                                 46
+                                                                 546
+                                                                 51
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    546
+                                                                    46
+                                                                    546
+                                                                    51
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "count"))))
+                                            , Qualifier
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 547 27 547 56
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (App
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           547
+                                                           27
+                                                           547
+                                                           56
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (App
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              547
+                                                              27
+                                                              547
+                                                              49
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (App
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 547
+                                                                 27
+                                                                 547
+                                                                 45
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Var
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    547
+                                                                    27
+                                                                    547
+                                                                    39
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (UnQual
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       547
+                                                                       27
+                                                                       547
+                                                                       39
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          547
+                                                                          27
+                                                                          547
+                                                                          39
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "copyContents")))
+                                                         (Var
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    547
+                                                                    40
+                                                                    547
+                                                                    45
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (UnQual
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       547
+                                                                       40
+                                                                       547
+                                                                       45
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/Directory.hs"
+                                                                          547
+                                                                          40
+                                                                          547
+                                                                          45
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "hFrom"))))
+                                                      (Var
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 547
+                                                                 46
+                                                                 547
+                                                                 49
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (UnQual
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    547
+                                                                    46
+                                                                    547
+                                                                    49
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (Ident
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/Directory.hs"
+                                                                       547
+                                                                       46
+                                                                       547
+                                                                       49
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               "hTo"))))
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              547
+                                                              50
+                                                              547
+                                                              56
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 547
+                                                                 50
+                                                                 547
+                                                                 56
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/Directory.hs"
+                                                                    547
+                                                                    50
+                                                                    547
+                                                                    56
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "buffer"))))
+                                            ]))
+                                  ]))
+                            Nothing
+                        ]
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 64
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 64
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 11 549 29
+                                 , srcInfoPoints = []
+                                 }
+                               "ignoreIOExceptions")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 549 30 549 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 549 30 549 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "io")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 549 33 549 64
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 549 33 549 34 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 549 35 549 64
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 549 35 549 37
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 549 35 549 37
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 549 35 549 37
+                                             , srcInfoPoints = []
+                                             }
+                                           "io")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 549 38 549 45
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 549 38 549 39
+                                           , SrcSpan "tests/examples/Directory.hs" 549 39 549 44
+                                           , SrcSpan "tests/examples/Directory.hs" 549 44 549 45
+                                           ]
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 549 38 549 45
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 549 38 549 39
+                                              , SrcSpan "tests/examples/Directory.hs" 549 39 549 44
+                                              , SrcSpan "tests/examples/Directory.hs" 549 44 549 45
+                                              ]
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 549 39 549 44
+                                             , srcInfoPoints = []
+                                             }
+                                           "catch")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 549 46 549 64
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 549 46 549 64
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 549 46 549 64
+                                             , srcInfoPoints = []
+                                             }
+                                           "ioExceptionIgnorer")))))
+                            Nothing
+                        ]
+                    , TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 11 550 53
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 550 30 550 32 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 11 550 29
+                              , srcInfoPoints = []
+                              }
+                            "ioExceptionIgnorer"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 53
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 550 45 550 47 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 33 550 44
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 550 33 550 44
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 550 33 550 44
+                                      , srcInfoPoints = []
+                                      }
+                                    "IOException")))
+                           (TyApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 550 48 550 53
+                                , srcInfoPoints = []
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 550 48 550 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 550 48 550 50
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 550 48 550 50
+                                         , srcInfoPoints = []
+                                         }
+                                       "IO")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 550 51 550 53
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 550 51 550 52
+                                       , SrcSpan "tests/examples/Directory.hs" 550 52 550 53
+                                       ]
+                                   }
+                                 (Special
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 550 51 550 53
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 550 51 550 52
+                                          , SrcSpan "tests/examples/Directory.hs" 550 52 550 53
+                                          ]
+                                      }
+                                    (UnitCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 550 51 550 53
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 550 51 550 52
+                                             , SrcSpan "tests/examples/Directory.hs" 550 52 550 53
+                                             ]
+                                         })))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 43
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 43
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 11 551 29
+                                 , srcInfoPoints = []
+                                 }
+                               "ioExceptionIgnorer")
+                            [ PWildCard
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 551 30 551 31
+                                  , srcInfoPoints = []
+                                  }
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 551 32 551 43
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 551 32 551 33 ]
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 551 34 551 43
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 551 34 551 40
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 551 34 551 40
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 551 34 551 40
+                                             , srcInfoPoints = []
+                                             }
+                                           "return")))
+                                  (Con
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 551 41 551 43
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 551 41 551 42
+                                           , SrcSpan "tests/examples/Directory.hs" 551 42 551 43
+                                           ]
+                                       }
+                                     (Special
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 551 41 551 43
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 551 41 551 42
+                                              , SrcSpan "tests/examples/Directory.hs" 551 42 551 43
+                                              ]
+                                          }
+                                        (UnitCon
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 551 41 551 43
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 551 41 551 42
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 551 42 551 43
+                                                 ]
+                                             })))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 1 560 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 560 18 560 20 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 1 560 17
+                , srcInfoPoints = []
+                }
+              "canonicalizePath"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 44
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 560 30 560 32 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 21 560 29
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 44
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 33 560 35
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 560 36 560 44
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 563 31
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 563 31
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 1 561 17
+                   , srcInfoPoints = []
+                   }
+                 "canonicalizePath")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 18 561 23
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 18 561 23
+                       , srcInfoPoints = []
+                       }
+                     "fpath")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 561 24 563 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 561 24 561 25 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 5 563 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 562 5 562 7
+                          , SrcSpan "tests/examples/Directory.hs" 562 8 562 8
+                          , SrcSpan "tests/examples/Directory.hs" 563 8 563 8
+                          , SrcSpan "tests/examples/Directory.hs" 568 1 568 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 43
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 562 13 562 15 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 12
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 8 562 12
+                                , srcInfoPoints = []
+                                }
+                              "path"))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 43
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 16 562 37
+                                , srcInfoPoints = []
+                                }
+                              (Qual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 562 16 562 37
+                                   , srcInfoPoints = []
+                                   }
+                                 (ModuleName
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 562 16 562 37
+                                      , srcInfoPoints = []
+                                      }
+                                    "Win32")
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 562 16 562 37
+                                      , srcInfoPoints = []
+                                      }
+                                    "getFullPathName")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 562 38 562 43
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 562 38 562 43
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 562 38 562 43
+                                      , srcInfoPoints = []
+                                      }
+                                    "fpath"))))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 31
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 31
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 8 563 14
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 563 8 563 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 563 8 563 14
+                                      , srcInfoPoints = []
+                                      }
+                                    "return")))
+                           (Paren
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 563 15 563 31
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 563 15 563 16
+                                    , SrcSpan "tests/examples/Directory.hs" 563 30 563 31
+                                    ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 563 16 563 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 563 16 563 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 563 16 563 25
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 563 16 563 25
+                                            , srcInfoPoints = []
+                                            }
+                                          "normalise")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 563 26 563 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 563 26 563 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 563 26 563 30
+                                            , srcInfoPoints = []
+                                            }
+                                          "path"))))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 1 568 58
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 568 32 568 34 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 1 568 31
+                , srcInfoPoints = []
+                }
+              "makeRelativeToCurrentDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 58
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 568 44 568 46 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 35 568 43
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 58
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 47 568 49
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 568 50 568 58
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 571 32
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 571 32
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 1 569 31
+                   , srcInfoPoints = []
+                   }
+                 "makeRelativeToCurrentDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 32 569 33
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 32 569 33
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 34 571 32
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 569 34 569 35 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 569 36 571 32
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 569 36 569 38
+                          , SrcSpan "tests/examples/Directory.hs" 570 5 570 5
+                          , SrcSpan "tests/examples/Directory.hs" 571 5 571 5
+                          , SrcSpan "tests/examples/Directory.hs" 591 1 591 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 31
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 570 9 570 11 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 8
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 5 570 8
+                                , srcInfoPoints = []
+                                }
+                              "cur"))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 12 570 31
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 570 12 570 31
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 570 12 570 31
+                                   , srcInfoPoints = []
+                                   }
+                                 "getCurrentDirectory")))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 32
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 32
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 5 571 11
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 571 5 571 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 571 5 571 11
+                                      , srcInfoPoints = []
+                                      }
+                                    "return")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 12 571 13
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 571 12 571 13
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 571 12 571 13
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 571 14 571 32
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 571 14 571 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 571 14 571 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 571 14 571 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 571 14 571 26
+                                            , srcInfoPoints = []
+                                            }
+                                          "makeRelative")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 571 27 571 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 571 27 571 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 571 27 571 30
+                                            , srcInfoPoints = []
+                                            }
+                                          "cur"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 571 31 571 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 571 31 571 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 571 31 571 32
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 1 591 48
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 591 16 591 18 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 1 591 15
+                , srcInfoPoints = []
+                }
+              "findExecutable"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 48
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 591 26 591 28 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 19 591 25
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 48
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 29 591 31
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 32 591 48
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 591 32 591 33
+                         , SrcSpan "tests/examples/Directory.hs" 591 47 591 48
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 47
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 33 591 38
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 591 39 591 47
+                                 , srcInfoPoints = []
+                                 }
+                               "FilePath")))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 593 53
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 593 53
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 1 592 15
+                   , srcInfoPoints = []
+                   }
+                 "findExecutable")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 16 592 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 16 592 22
+                       , srcInfoPoints = []
+                       }
+                     "binary")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 592 23 593 53
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 592 23 592 24 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 53
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 34
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 27
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19
+                               , srcInfoPoints = []
+                               }
+                             (Qual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 3 593 19
+                                  , srcInfoPoints = []
+                                  }
+                                (ModuleName
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 593 3 593 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "Win32")
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 593 3 593 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "searchPath")))
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 20 593 27
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 593 20 593 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 593 20 593 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "Nothing"))))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 28 593 34
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 28 593 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 593 28 593 34
+                                  , srcInfoPoints = []
+                                  }
+                                "binary"))))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 35 593 53
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 593 35 593 36
+                             , SrcSpan "tests/examples/Directory.hs" 593 52 593 53
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 36 593 52
+                            , srcInfoPoints = []
+                            }
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 36 593 39
+                               , srcInfoPoints = []
+                               }
+                             (Char
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 593 36 593 39
+                                  , srcInfoPoints = []
+                                  }
+                                '.'
+                                "."))
+                          (QConOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 39 593 40
+                               , srcInfoPoints = []
+                               }
+                             (Special
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 593 39 593 40
+                                  , srcInfoPoints = []
+                                  }
+                                (Cons
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 593 39 593 40
+                                     , srcInfoPoints = []
+                                     })))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 593 40 593 52
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 593 40 593 52
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 593 40 593 52
+                                     , srcInfoPoints = []
+                                     }
+                                   "exeExtension")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 1 627 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 627 22 627 24 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 1 627 21
+                , srcInfoPoints = []
+                }
+              "getDirectoryContents"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 50
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 627 34 627 36 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 25 627 33
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 50
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 37 627 39
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 40 627 50
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 627 40 627 41
+                         , SrcSpan "tests/examples/Directory.hs" 627 49 627 50
+                         ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 627 41 627 49
+                              , srcInfoPoints = []
+                              }
+                            "FilePath"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 644 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 635 3 635 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 644 37
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Directory.hs" 635 3 635 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 1 628 21
+                   , srcInfoPoints = []
+                   }
+                 "getDirectoryContents")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 22 628 26
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 22 628 26
+                       , srcInfoPoints = []
+                       }
+                     "path")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 628 27 634 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 628 27 628 28 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 634 35
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 630 60
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 3 629 16
+                                  , srcInfoPoints = []
+                                  }
+                                "modifyIOError")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 17 630 60
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 629 17 629 18
+                                , SrcSpan "tests/examples/Directory.hs" 630 59 630 60
+                                ]
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 629 18 630 59
+                               , srcInfoPoints = []
+                               }
+                             (RightSection
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 629 18 629 41
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 629 18 629 19
+                                      , SrcSpan "tests/examples/Directory.hs" 629 40 629 41
+                                      ]
+                                  }
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 629 19 629 35
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Directory.hs" 629 19 629 20
+                                         , SrcSpan "tests/examples/Directory.hs" 629 20 629 34
+                                         , SrcSpan "tests/examples/Directory.hs" 629 34 629 35
+                                         ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 629 19 629 35
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 629 19 629 20
+                                            , SrcSpan "tests/examples/Directory.hs" 629 20 629 34
+                                            , SrcSpan "tests/examples/Directory.hs" 629 34 629 35
+                                            ]
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 629 20 629 34
+                                           , srcInfoPoints = []
+                                           }
+                                         "ioeSetFileName")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 629 36 629 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 629 36 629 40
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 629 36 629 40
+                                           , srcInfoPoints = []
+                                           }
+                                         "path"))))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 629 42 629 43
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 629 42 629 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 629 42 629 43
+                                        , srcInfoPoints = []
+                                        }
+                                      ".")))
+                             (RightSection
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 630 18 630 59
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 630 18 630 19
+                                      , SrcSpan "tests/examples/Directory.hs" 630 58 630 59
+                                      ]
+                                  }
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 630 19 630 35
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Directory.hs" 630 19 630 20
+                                         , SrcSpan "tests/examples/Directory.hs" 630 20 630 34
+                                         , SrcSpan "tests/examples/Directory.hs" 630 34 630 35
+                                         ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 630 19 630 35
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 630 19 630 20
+                                            , SrcSpan "tests/examples/Directory.hs" 630 20 630 34
+                                            , SrcSpan "tests/examples/Directory.hs" 630 34 630 35
+                                            ]
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 630 20 630 34
+                                           , srcInfoPoints = []
+                                           }
+                                         "ioeSetLocation")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 630 36 630 58
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 630 36 630 58
+                                        , srcInfoPoints = []
+                                        }
+                                      "getDirectoryContents"
+                                      "getDirectoryContents"))))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 61 630 62
+                               , srcInfoPoints = []
+                               }
+                             "$")))
+                    (Do
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 630 63 634 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 630 63 630 65
+                             , SrcSpan "tests/examples/Directory.hs" 631 3 631 3
+                             , SrcSpan "tests/examples/Directory.hs" 635 3 635 3
+                             , SrcSpan "tests/examples/Directory.hs" 635 3 635 3
+                             ]
+                         }
+                       [ Qualifier
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 634 35
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 631 3 634 35
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 631 3 633 35
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 631 3 632 42
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 631 3 631 10
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 631 3 631 10
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 631 3 631 10
+                                               , srcInfoPoints = []
+                                               }
+                                             "bracket")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 632 6 632 42
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 632 6 632 7
+                                             , SrcSpan "tests/examples/Directory.hs" 632 41 632 42
+                                             ]
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 632 7 632 41
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 632 7 632 26
+                                               , srcInfoPoints = []
+                                               }
+                                             (Qual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 632 7 632 26
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (ModuleName
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           632
+                                                           7
+                                                           632
+                                                           26
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "Win32")
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           632
+                                                           7
+                                                           632
+                                                           26
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "findFirstFile")))
+                                          (Paren
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 632 27 632 41
+                                               , srcInfoPoints =
+                                                   [ SrcSpan
+                                                       "tests/examples/Directory.hs" 632 27 632 28
+                                                   , SrcSpan
+                                                       "tests/examples/Directory.hs" 632 40 632 41
+                                                   ]
+                                               }
+                                             (InfixApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 632 28 632 40
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           632
+                                                           28
+                                                           632
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              632
+                                                              28
+                                                              632
+                                                              32
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 632
+                                                                 28
+                                                                 632
+                                                                 32
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "path")))
+                                                (QVarOp
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           632
+                                                           33
+                                                           632
+                                                           36
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              632
+                                                              33
+                                                              632
+                                                              36
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Symbol
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 632
+                                                                 33
+                                                                 632
+                                                                 36
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "</>")))
+                                                (Lit
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           632
+                                                           37
+                                                           632
+                                                           40
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (String
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              632
+                                                              37
+                                                              632
+                                                              40
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "*"
+                                                      "*")))))))
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 633 6 633 35
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 633 6 633 7
+                                          , SrcSpan "tests/examples/Directory.hs" 633 34 633 35
+                                          ]
+                                      }
+                                    (Lambda
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 633 7 633 34
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 633 7 633 8
+                                             , SrcSpan "tests/examples/Directory.hs" 633 14 633 16
+                                             ]
+                                         }
+                                       [ PTuple
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 633 8 633 13
+                                             , srcInfoPoints =
+                                                 [ SrcSpan "tests/examples/Directory.hs" 633 8 633 9
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 633 10 633 11
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 633 12 633 13
+                                                 ]
+                                             }
+                                           Boxed
+                                           [ PVar
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 633 9 633 10
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 633 9 633 10
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "h")
+                                           , PWildCard
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 633 11 633 12
+                                                 , srcInfoPoints = []
+                                                 }
+                                           ]
+                                       ]
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 633 17 633 34
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 633 17 633 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (Qual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 633 17 633 32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (ModuleName
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           633
+                                                           17
+                                                           633
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "Win32")
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           633
+                                                           17
+                                                           633
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "findClose")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 633 33 633 34
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 633 33 633 34
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           633
+                                                           33
+                                                           633
+                                                           34
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "h")))))))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 634 6 634 35
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 634 6 634 7
+                                       , SrcSpan "tests/examples/Directory.hs" 634 34 634 35
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 634 7 634 34
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 634 7 634 8
+                                          , SrcSpan "tests/examples/Directory.hs" 634 17 634 19
+                                          ]
+                                      }
+                                    [ PTuple
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 634 8 634 16
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 634 8 634 9
+                                              , SrcSpan "tests/examples/Directory.hs" 634 10 634 11
+                                              , SrcSpan "tests/examples/Directory.hs" 634 15 634 16
+                                              ]
+                                          }
+                                        Boxed
+                                        [ PVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 634 9 634 10
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 634 9 634 10
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "h")
+                                        , PVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 634 11 634 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 634 11 634 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "fdat")
+                                        ]
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 634 20 634 34
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 634 20 634 31
+                                            , srcInfoPoints = []
+                                            }
+                                          (App
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 634 20 634 26
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 634 20 634 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           634
+                                                           20
+                                                           634
+                                                           24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              634
+                                                              20
+                                                              634
+                                                              24
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "loop")))
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 634 25 634 26
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           634
+                                                           25
+                                                           634
+                                                           26
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              634
+                                                              25
+                                                              634
+                                                              26
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "h"))))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 634 27 634 31
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 634 27 634 31
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           634
+                                                           27
+                                                           634
+                                                           31
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "fdat"))))
+                                       (List
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 634 32 634 34
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 634 32 634 33
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 634 33 634 34
+                                                ]
+                                            }
+                                          [])))))
+                       ])))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 644 37
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 638 5 638 5
+                          , SrcSpan "tests/examples/Directory.hs" 639 5 639 5
+                          , SrcSpan "tests/examples/Directory.hs" 672 1 672 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 638 74
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 638 10 638 12 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 5 638 9
+                              , srcInfoPoints = []
+                              }
+                            "loop"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 74
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 638 26 638 28 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 13 638 25
+                                , srcInfoPoints = []
+                                }
+                              (Qual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 638 13 638 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (ModuleName
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 638 13 638 25
+                                      , srcInfoPoints = []
+                                      }
+                                    "Win32")
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 638 13 638 25
+                                      , srcInfoPoints = []
+                                      }
+                                    "HANDLE")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 638 29 638 74
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 638 44 638 46 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 638 29 638 43
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 638 29 638 43
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 638 29 638 43
+                                         , srcInfoPoints = []
+                                         }
+                                       "Win32")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 638 29 638 43
+                                         , srcInfoPoints = []
+                                         }
+                                       "FindData")))
+                              (TyFun
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 638 47 638 74
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 638 58 638 60 ]
+                                   }
+                                 (TyList
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 638 47 638 57
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 638 47 638 48
+                                          , SrcSpan "tests/examples/Directory.hs" 638 56 638 57
+                                          ]
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 638 48 638 56
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 638 48 638 56
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 638 48 638 56
+                                               , srcInfoPoints = []
+                                               }
+                                             "FilePath"))))
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 638 61 638 74
+                                      , srcInfoPoints = []
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 638 61 638 63
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 638 61 638 63
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 638 61 638 63
+                                               , srcInfoPoints = []
+                                               }
+                                             "IO")))
+                                    (TyList
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 638 64 638 74
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 638 64 638 65
+                                             , SrcSpan "tests/examples/Directory.hs" 638 73 638 74
+                                             ]
+                                         }
+                                       (TyCon
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 638 65 638 73
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 638 65 638 73
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 638 65 638 73
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "FilePath"))))))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 644 37
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 644 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 5 639 9
+                                 , srcInfoPoints = []
+                                 }
+                               "loop")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 639 10 639 11
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 639 10 639 11
+                                     , srcInfoPoints = []
+                                     }
+                                   "h")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 639 12 639 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 639 12 639 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "fdat")
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 639 17 639 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 639 17 639 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "acc")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 639 21 644 37
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 639 21 639 22 ]
+                                 }
+                               (Do
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 639 23 644 37
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 639 23 639 25
+                                        , SrcSpan "tests/examples/Directory.hs" 640 8 640 8
+                                        , SrcSpan "tests/examples/Directory.hs" 641 8 641 8
+                                        , SrcSpan "tests/examples/Directory.hs" 642 8 642 8
+                                        , SrcSpan "tests/examples/Directory.hs" 672 1 672 0
+                                        ]
+                                    }
+                                  [ Generator
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 640 8 640 50
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 640 17 640 19 ]
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 640 8 640 16
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 640 8 640 16
+                                              , srcInfoPoints = []
+                                              }
+                                            "filename"))
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 640 20 640 50
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 640 20 640 45
+                                              , srcInfoPoints = []
+                                              }
+                                            (Qual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 640 20 640 45
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (ModuleName
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          640
+                                                          20
+                                                          640
+                                                          45
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "Win32")
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          640
+                                                          20
+                                                          640
+                                                          45
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "getFindDataFileName")))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 640 46 640 50
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 640 46 640 50
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          640
+                                                          46
+                                                          640
+                                                          50
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "fdat"))))
+                                  , Generator
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 641 8 641 41
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 641 13 641 15 ]
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 641 8 641 12
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Directory.hs" 641 8 641 12
+                                              , srcInfoPoints = []
+                                              }
+                                            "more"))
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 641 16 641 41
+                                           , srcInfoPoints = []
+                                           }
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 641 16 641 36
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 641 16 641 34
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Qual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          641
+                                                          16
+                                                          641
+                                                          34
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (ModuleName
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             641
+                                                             16
+                                                             641
+                                                             34
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "Win32")
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             641
+                                                             16
+                                                             641
+                                                             34
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "findNextFile")))
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 641 35 641 36
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          641
+                                                          35
+                                                          641
+                                                          36
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             641
+                                                             35
+                                                             641
+                                                             36
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "h"))))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 641 37 641 41
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 641 37 641 41
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          641
+                                                          37
+                                                          641
+                                                          41
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "fdat"))))
+                                  , Qualifier
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 642 8 644 37
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 642 8 642 10
+                                            , SrcSpan "tests/examples/Directory.hs" 643 11 643 15
+                                            , SrcSpan "tests/examples/Directory.hs" 644 11 644 15
+                                            ]
+                                        }
+                                      (If
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 642 8 644 37
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/Directory.hs" 642 8 642 10
+                                               , SrcSpan "tests/examples/Directory.hs" 643 11 643 15
+                                               , SrcSpan "tests/examples/Directory.hs" 644 11 644 15
+                                               ]
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 642 11 642 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 642 11 642 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          642
+                                                          11
+                                                          642
+                                                          15
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "more")))
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 643 16 643 42
+                                              , srcInfoPoints = []
+                                              }
+                                            (App
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 643 16 643 27
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (App
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          643
+                                                          16
+                                                          643
+                                                          22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             16
+                                                             643
+                                                             20
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                16
+                                                                643
+                                                                20
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   643
+                                                                   16
+                                                                   643
+                                                                   20
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "loop")))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             21
+                                                             643
+                                                             22
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                21
+                                                                643
+                                                                22
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   643
+                                                                   21
+                                                                   643
+                                                                   22
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "h"))))
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          643
+                                                          23
+                                                          643
+                                                          27
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             23
+                                                             643
+                                                             27
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                23
+                                                                643
+                                                                27
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "fdat"))))
+                                            (Paren
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 643 28 643 42
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/Directory.hs" 643 28 643 29
+                                                     , SrcSpan
+                                                         "tests/examples/Directory.hs" 643 41 643 42
+                                                     ]
+                                                 }
+                                               (InfixApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          643
+                                                          29
+                                                          643
+                                                          41
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             29
+                                                             643
+                                                             37
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                29
+                                                                643
+                                                                37
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   643
+                                                                   29
+                                                                   643
+                                                                   37
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "filename")))
+                                                  (QConOp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             37
+                                                             643
+                                                             38
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Special
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                37
+                                                                643
+                                                                38
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Cons
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   643
+                                                                   37
+                                                                   643
+                                                                   38
+                                                             , srcInfoPoints = []
+                                                             })))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             643
+                                                             38
+                                                             643
+                                                             41
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                643
+                                                                38
+                                                                643
+                                                                41
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   643
+                                                                   38
+                                                                   643
+                                                                   41
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "acc"))))))
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 644 16 644 37
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 644 16 644 22
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          644
+                                                          16
+                                                          644
+                                                          22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             644
+                                                             16
+                                                             644
+                                                             22
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "return")))
+                                            (Paren
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 644 23 644 37
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/Directory.hs" 644 23 644 24
+                                                     , SrcSpan
+                                                         "tests/examples/Directory.hs" 644 36 644 37
+                                                     ]
+                                                 }
+                                               (InfixApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          644
+                                                          24
+                                                          644
+                                                          36
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             644
+                                                             24
+                                                             644
+                                                             32
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                644
+                                                                24
+                                                                644
+                                                                32
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   644
+                                                                   24
+                                                                   644
+                                                                   32
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "filename")))
+                                                  (QConOp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             644
+                                                             32
+                                                             644
+                                                             33
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Special
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                644
+                                                                32
+                                                                644
+                                                                33
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Cons
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   644
+                                                                   32
+                                                                   644
+                                                                   33
+                                                             , srcInfoPoints = []
+                                                             })))
+                                                  (Var
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             644
+                                                             33
+                                                             644
+                                                             36
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (UnQual
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                644
+                                                                33
+                                                                644
+                                                                36
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (Ident
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   644
+                                                                   33
+                                                                   644
+                                                                   36
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           "acc")))))))
+                                  ]))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 1 672 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 672 21 672 23 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 1 672 20
+                , srcInfoPoints = []
+                }
+              "getCurrentDirectory"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 35
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 24 672 26
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 672 27 672 35
+                        , srcInfoPoints = []
+                        }
+                      "FilePath"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 674 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 673 20
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 1 673 20
+                  , srcInfoPoints = []
+                  }
+                "getCurrentDirectory"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 21 674 28
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 673 21 673 22 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 673 23 674 28
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 673 23 673 25
+                      , SrcSpan "tests/examples/Directory.hs" 674 3 674 3
+                      , SrcSpan "tests/examples/Directory.hs" 708 1 708 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28
+                         , srcInfoPoints = []
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28
+                            , srcInfoPoints = []
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28
+                               , srcInfoPoints = []
+                               }
+                             "Win32")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 674 3 674 28
+                               , srcInfoPoints = []
+                               }
+                             "getCurrentDirectory")))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 1 708 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 708 21 708 23 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 1 708 20
+                , srcInfoPoints = []
+                }
+              "setCurrentDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 41
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 708 33 708 35 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 24 708 32
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 41
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 36 708 38
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 708 39 708 40
+                         , SrcSpan "tests/examples/Directory.hs" 708 40 708 41
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 708 39 708 40
+                            , SrcSpan "tests/examples/Directory.hs" 708 40 708 41
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 708 39 708 41
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 708 39 708 40
+                               , SrcSpan "tests/examples/Directory.hs" 708 40 708 41
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 710 33
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 710 33
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 1 709 20
+                   , srcInfoPoints = []
+                   }
+                 "setCurrentDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 21 709 25
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 21 709 25
+                       , srcInfoPoints = []
+                       }
+                     "path")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 709 26 710 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 709 26 709 27 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 33
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28
+                         , srcInfoPoints = []
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28
+                            , srcInfoPoints = []
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28
+                               , srcInfoPoints = []
+                               }
+                             "Win32")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 3 710 28
+                               , srcInfoPoints = []
+                               }
+                             "setCurrentDirectory")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 710 29 710 33
+                               , srcInfoPoints = []
+                               }
+                             "path")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 1 716 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 716 20 716 22 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 1 716 19
+                , srcInfoPoints = []
+                }
+              "doesDirectoryExist"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 42
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 716 32 716 34 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 23 716 31
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 42
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 35 716 37
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 716 38 716 42
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 719 61
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 719 61
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 1 717 19
+                   , srcInfoPoints = []
+                   }
+                 "doesDirectoryExist")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 20 717 24
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 20 717 24
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 717 25 719 61
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 717 25 717 26 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 4 719 61
+                      , srcInfoPoints = []
+                      }
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 4 718 70
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 718 4 718 5
+                             , SrcSpan "tests/examples/Directory.hs" 718 69 718 70
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 69
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 45
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 5 718 40
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 5 718 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 718 5 718 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 718 5 718 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "withFileStatus")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 20 718 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 718 20 718 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "doesDirectoryExist"
+                                      "doesDirectoryExist")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 718 41 718 45
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 41 718 45
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 718 41 718 45
+                                        , srcInfoPoints = []
+                                        }
+                                      "name"))))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 46 718 47
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 718 46 718 47
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 46 718 47
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (Lambda
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 718 48 718 69
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 718 48 718 49
+                                   , SrcSpan "tests/examples/Directory.hs" 718 52 718 54
+                                   ]
+                               }
+                             [ PVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 718 49 718 51
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 718 49 718 51
+                                      , srcInfoPoints = []
+                                      }
+                                    "st")
+                             ]
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 718 55 718 69
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 55 718 66
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 718 55 718 66
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 718 55 718 66
+                                           , srcInfoPoints = []
+                                           }
+                                         "isDirectory")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 718 67 718 69
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 718 67 718 69
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 718 67 718 69
+                                           , srcInfoPoints = []
+                                           }
+                                         "st")))))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 4 719 11
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 719 4 719 5
+                             , SrcSpan "tests/examples/Directory.hs" 719 5 719 10
+                             , SrcSpan "tests/examples/Directory.hs" 719 10 719 11
+                             ]
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 4 719 11
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 719 4 719 5
+                                , SrcSpan "tests/examples/Directory.hs" 719 5 719 10
+                                , SrcSpan "tests/examples/Directory.hs" 719 10 719 11
+                                ]
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 5 719 10
+                               , srcInfoPoints = []
+                               }
+                             "catch")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 12 719 61
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 719 12 719 13
+                             , SrcSpan "tests/examples/Directory.hs" 719 60 719 61
+                             ]
+                         }
+                       (ExpTypeSig
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 13 719 60
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 719 35 719 37 ]
+                            }
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 13 719 34
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 719 13 719 14
+                                   , SrcSpan "tests/examples/Directory.hs" 719 33 719 34
+                                   ]
+                               }
+                             (Lambda
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 719 14 719 33
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 719 14 719 15
+                                      , SrcSpan "tests/examples/Directory.hs" 719 18 719 20
+                                      ]
+                                  }
+                                [ PWildCard
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 719 16 719 17
+                                      , srcInfoPoints = []
+                                      }
+                                ]
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 719 21 719 33
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 719 21 719 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 719 21 719 27
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 719 21 719 27
+                                              , srcInfoPoints = []
+                                              }
+                                            "return")))
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 719 28 719 33
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 719 28 719 33
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 719 28 719 33
+                                              , srcInfoPoints = []
+                                              }
+                                            "False"))))))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 719 38 719 60
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 719 50 719 52 ]
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 719 38 719 49
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 719 38 719 49
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 719 38 719 49
+                                        , srcInfoPoints = []
+                                        }
+                                      "IOException")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 719 53 719 60
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 719 53 719 55
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 719 53 719 55
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 719 53 719 55
+                                           , srcInfoPoints = []
+                                           }
+                                         "IO")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 719 56 719 60
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 719 56 719 60
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 719 56 719 60
+                                           , srcInfoPoints = []
+                                           }
+                                         "Bool")))))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 1 725 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 725 15 725 17 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 1 725 14
+                , srcInfoPoints = []
+                }
+              "doesFileExist"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 725 27 725 29 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 18 725 26
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 37
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 30 725 32
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 725 33 725 37
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 728 61
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 728 61
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 1 726 14
+                   , srcInfoPoints = []
+                   }
+                 "doesFileExist")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 15 726 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 15 726 19
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 726 20 728 61
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 726 20 726 21 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 4 728 61
+                      , srcInfoPoints = []
+                      }
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 4 727 89
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 727 4 727 5
+                             , SrcSpan "tests/examples/Directory.hs" 727 88 727 89
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 88
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 40
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 5 727 35
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 727 5 727 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 727 5 727 19
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 727 5 727 19
+                                           , srcInfoPoints = []
+                                           }
+                                         "withFileStatus")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 727 20 727 35
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 727 20 727 35
+                                        , srcInfoPoints = []
+                                        }
+                                      "doesFileExist"
+                                      "doesFileExist")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 727 36 727 40
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 727 36 727 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 727 36 727 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "name"))))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 41 727 42
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 727 41 727 42
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 727 41 727 42
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (Lambda
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 727 43 727 88
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 727 43 727 44
+                                   , SrcSpan "tests/examples/Directory.hs" 727 47 727 49
+                                   ]
+                               }
+                             [ PVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 727 44 727 46
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 727 44 727 46
+                                      , srcInfoPoints = []
+                                      }
+                                    "st")
+                             ]
+                             (Do
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 727 50 727 88
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 727 50 727 52
+                                      , SrcSpan "tests/examples/Directory.hs" 727 53 727 53
+                                      , SrcSpan "tests/examples/Directory.hs" 727 72 727 73
+                                      , SrcSpan "tests/examples/Directory.hs" 727 88 727 88
+                                      ]
+                                  }
+                                [ Generator
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 727 53 727 72
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 727 55 727 57 ]
+                                      }
+                                    (PVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 727 53 727 54
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 727 53 727 54
+                                            , srcInfoPoints = []
+                                            }
+                                          "b"))
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 727 58 727 72
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 727 58 727 69
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 727 58 727 69
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 727 58 727 69
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "isDirectory")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 727 70 727 72
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 727 70 727 72
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 727 70 727 72
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "st"))))
+                                , Qualifier
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 727 74 727 88
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 727 74 727 88
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 727 74 727 80
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 727 74 727 80
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 727 74 727 80
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Paren
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 727 81 727 88
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 727 81 727 82
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 727 87 727 88
+                                                ]
+                                            }
+                                          (App
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 727 82 727 87
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 727 82 727 85
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           727
+                                                           82
+                                                           727
+                                                           85
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              727
+                                                              82
+                                                              727
+                                                              85
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "not")))
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 727 86 727 87
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           727
+                                                           86
+                                                           727
+                                                           87
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              727
+                                                              86
+                                                              727
+                                                              87
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "b"))))))
+                                ]))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 4 728 11
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 728 4 728 5
+                             , SrcSpan "tests/examples/Directory.hs" 728 5 728 10
+                             , SrcSpan "tests/examples/Directory.hs" 728 10 728 11
+                             ]
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 4 728 11
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 728 4 728 5
+                                , SrcSpan "tests/examples/Directory.hs" 728 5 728 10
+                                , SrcSpan "tests/examples/Directory.hs" 728 10 728 11
+                                ]
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 5 728 10
+                               , srcInfoPoints = []
+                               }
+                             "catch")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 12 728 61
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 728 12 728 13
+                             , SrcSpan "tests/examples/Directory.hs" 728 60 728 61
+                             ]
+                         }
+                       (ExpTypeSig
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 13 728 60
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 728 35 728 37 ]
+                            }
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 13 728 34
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 728 13 728 14
+                                   , SrcSpan "tests/examples/Directory.hs" 728 33 728 34
+                                   ]
+                               }
+                             (Lambda
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 728 14 728 33
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 728 14 728 15
+                                      , SrcSpan "tests/examples/Directory.hs" 728 18 728 20
+                                      ]
+                                  }
+                                [ PWildCard
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 728 16 728 17
+                                      , srcInfoPoints = []
+                                      }
+                                ]
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 728 21 728 33
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 728 21 728 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 728 21 728 27
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 728 21 728 27
+                                              , srcInfoPoints = []
+                                              }
+                                            "return")))
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 728 28 728 33
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 728 28 728 33
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 728 28 728 33
+                                              , srcInfoPoints = []
+                                              }
+                                            "False"))))))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 728 38 728 60
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 728 50 728 52 ]
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 728 38 728 49
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 728 38 728 49
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 728 38 728 49
+                                        , srcInfoPoints = []
+                                        }
+                                      "IOException")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 728 53 728 60
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 728 53 728 55
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 728 53 728 55
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 728 53 728 55
+                                           , srcInfoPoints = []
+                                           }
+                                         "IO")))
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 728 56 728 60
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 728 56 728 60
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 728 56 728 60
+                                           , srcInfoPoints = []
+                                           }
+                                         "Bool")))))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 1 742 48
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 742 21 742 23 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 1 742 20
+                , srcInfoPoints = []
+                }
+              "getModificationTime"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 48
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 742 33 742 35 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 24 742 32
+                        , srcInfoPoints = []
+                        }
+                      "FilePath")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 48
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 36 742 38
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 742 39 742 48
+                           , srcInfoPoints = []
+                           }
+                         "ClockTime")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 746 21
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 746 21
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 1 743 20
+                   , srcInfoPoints = []
+                   }
+                 "getModificationTime")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 21 743 25
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 21 743 25
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 26 746 21
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 743 26 743 27 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 743 28 746 21
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 743 28 743 30
+                          , SrcSpan "tests/examples/Directory.hs" 745 2 745 2
+                          , SrcSpan "tests/examples/Directory.hs" 749 1 749 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 746 21
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 746 21
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 2 745 43
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 745 2 745 38
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 745 2 745 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 745 2 745 16
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 745 2 745 16
+                                            , srcInfoPoints = []
+                                            }
+                                          "withFileStatus")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 745 17 745 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (String
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 745 17 745 38
+                                         , srcInfoPoints = []
+                                         }
+                                       "getModificationTime"
+                                       "getModificationTime")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 745 39 745 43
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 745 39 745 43
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 745 39 745 43
+                                         , srcInfoPoints = []
+                                         }
+                                       "name"))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 44 745 45
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 745 44 745 45
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 745 44 745 45
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 745 46 746 21
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 745 46 745 47
+                                    , SrcSpan "tests/examples/Directory.hs" 745 51 745 53
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 745 48 745 50
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 745 48 745 50
+                                       , srcInfoPoints = []
+                                       }
+                                     "st")
+                              ]
+                              (Do
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 745 54 746 21
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 745 54 745 56
+                                       , SrcSpan "tests/examples/Directory.hs" 746 2 746 2
+                                       , SrcSpan "tests/examples/Directory.hs" 746 2 746 2
+                                       , SrcSpan "tests/examples/Directory.hs" 749 1 749 0
+                                       ]
+                                   }
+                                 [ Qualifier
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 746 2 746 21
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 746 2 746 21
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 746 2 746 18
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 746 2 746 18
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 746 2 746 18
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "modificationTime")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 746 19 746 21
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 746 19 746 21
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 746 19 746 21
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "st"))))
+                                 ])))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 1 749 68
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 749 16 749 18 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 1 749 15
+                , srcInfoPoints = []
+                }
+              "withFileStatus"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 68
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 749 26 749 28 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 19 749 25
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 68
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 749 38 749 40 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 29 749 37
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 41 749 68
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 749 61 749 63 ]
+                     }
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 41 749 60
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 749 41 749 42
+                            , SrcSpan "tests/examples/Directory.hs" 749 59 749 60
+                            ]
+                        }
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 59
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 749 52 749 54 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 51
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 42 749 45
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 749 42 749 45
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 749 42 749 45
+                                       , srcInfoPoints = []
+                                       }
+                                     "Ptr")))
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 46 749 51
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 749 46 749 51
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 749 46 749 51
+                                       , srcInfoPoints = []
+                                       }
+                                     "CStat"))))
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 59
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 55 749 57
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 749 55 749 57
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 749 55 749 57
+                                       , srcInfoPoints = []
+                                       }
+                                     "IO")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 58 749 59
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 749 58 749 59
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 68
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 64 749 66
+                                 , srcInfoPoints = []
+                                 }
+                               "IO")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 67 749 68
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 749 67 749 68
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 754 50
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 754 50
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 1 750 15
+                   , srcInfoPoints = []
+                   }
+                 "withFileStatus")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 16 750 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 16 750 19
+                       , srcInfoPoints = []
+                       }
+                     "loc")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 20 750 24
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 20 750 24
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 25 750 26
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 25 750 26
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 27 754 50
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 750 27 750 28 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 750 29 754 50
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 750 29 750 31
+                          , SrcSpan "tests/examples/Directory.hs" 751 3 751 3
+                          , SrcSpan "tests/examples/Directory.hs" 756 1 756 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 754 50
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 754 50
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 3 751 40
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 751 3 751 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 751 3 751 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 751 3 751 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "modifyIOError")))
+                              (RightSection
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 751 17 751 40
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 751 17 751 18
+                                       , SrcSpan "tests/examples/Directory.hs" 751 39 751 40
+                                       ]
+                                   }
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 751 18 751 34
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 751 18 751 19
+                                          , SrcSpan "tests/examples/Directory.hs" 751 19 751 33
+                                          , SrcSpan "tests/examples/Directory.hs" 751 33 751 34
+                                          ]
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 751 18 751 34
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 751 18 751 19
+                                             , SrcSpan "tests/examples/Directory.hs" 751 19 751 33
+                                             , SrcSpan "tests/examples/Directory.hs" 751 33 751 34
+                                             ]
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 751 19 751 33
+                                            , srcInfoPoints = []
+                                            }
+                                          "ioeSetFileName")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 751 35 751 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 751 35 751 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 751 35 751 39
+                                            , srcInfoPoints = []
+                                            }
+                                          "name")))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 751 41 751 42
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 751 41 751 42
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 751 41 751 42
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 752 5 754 50
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 752 5 752 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 752 5 752 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 752 5 752 16
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 752 5 752 16
+                                            , srcInfoPoints = []
+                                            }
+                                          "allocaBytes")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 752 17 752 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 752 17 752 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 752 17 752 28
+                                            , srcInfoPoints = []
+                                            }
+                                          "sizeof_stat"))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 752 29 752 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 752 29 752 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 752 29 752 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "$")))
+                              (Lambda
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 752 31 754 50
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 752 31 752 32
+                                       , SrcSpan "tests/examples/Directory.hs" 752 34 752 36
+                                       ]
+                                   }
+                                 [ PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 752 32 752 33
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 752 32 752 33
+                                          , srcInfoPoints = []
+                                          }
+                                        "p")
+                                 ]
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 753 7 754 50
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 753 7 753 43
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 753 7 753 19
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 753 7 753 19
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 753 7 753 19
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "withFilePath")))
+                                       (Paren
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 753 20 753 43
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 753 20 753 21
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 753 42 753 43
+                                                ]
+                                            }
+                                          (App
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 753 21 753 42
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 753 21 753 37
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           753
+                                                           21
+                                                           753
+                                                           37
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              753
+                                                              21
+                                                              753
+                                                              37
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "fileNameEndClean")))
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 753 38 753 42
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           753
+                                                           38
+                                                           753
+                                                           42
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              753
+                                                              38
+                                                              753
+                                                              42
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "name"))))))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 753 44 753 45
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 753 44 753 45
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 753 44 753 45
+                                               , srcInfoPoints = []
+                                               }
+                                             "$")))
+                                    (Lambda
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 753 46 754 50
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 753 46 753 47
+                                             , SrcSpan "tests/examples/Directory.hs" 753 49 753 51
+                                             ]
+                                         }
+                                       [ PVar
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 753 47 753 48
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 753 47 753 48
+                                                , srcInfoPoints = []
+                                                }
+                                              "s")
+                                       ]
+                                       (Do
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 753 52 754 50
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 753 52 753 54
+                                                , SrcSpan "tests/examples/Directory.hs" 754 9 754 9
+                                                , SrcSpan "tests/examples/Directory.hs" 756 1 756 0
+                                                ]
+                                            }
+                                          [ Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 754 9 754 50
+                                                , srcInfoPoints = []
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 754 9 754 50
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            754
+                                                            9
+                                                            754
+                                                            37
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               754
+                                                               9
+                                                               754
+                                                               33
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  754
+                                                                  9
+                                                                  754
+                                                                  33
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     754
+                                                                     9
+                                                                     754
+                                                                     33
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "throwErrnoIfMinus1Retry_")))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               754
+                                                               34
+                                                               754
+                                                               37
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  754
+                                                                  34
+                                                                  754
+                                                                  37
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     754
+                                                                     34
+                                                                     754
+                                                                     37
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "loc"))))
+                                                 (Paren
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            754
+                                                            38
+                                                            754
+                                                            50
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              754
+                                                              38
+                                                              754
+                                                              39
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              754
+                                                              49
+                                                              754
+                                                              50
+                                                          ]
+                                                      }
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               754
+                                                               39
+                                                               754
+                                                               49
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  754
+                                                                  39
+                                                                  754
+                                                                  47
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     754
+                                                                     39
+                                                                     754
+                                                                     45
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        754
+                                                                        39
+                                                                        754
+                                                                        45
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           754
+                                                                           39
+                                                                           754
+                                                                           45
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "c_stat")))
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     754
+                                                                     46
+                                                                     754
+                                                                     47
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        754
+                                                                        46
+                                                                        754
+                                                                        47
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           754
+                                                                           46
+                                                                           754
+                                                                           47
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "s"))))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  754
+                                                                  48
+                                                                  754
+                                                                  49
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     754
+                                                                     48
+                                                                     754
+                                                                     49
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        754
+                                                                        48
+                                                                        754
+                                                                        49
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "p"))))))
+                                          ]))))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 1 756 77
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 756 25 756 27 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 1 756 24
+                , srcInfoPoints = []
+                }
+              "withFileOrSymlinkStatus"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 77
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 756 35 756 37 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 28 756 34
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 77
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 756 47 756 49 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 38 756 46
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 50 756 77
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 756 70 756 72 ]
+                     }
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 50 756 69
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 756 50 756 51
+                            , SrcSpan "tests/examples/Directory.hs" 756 68 756 69
+                            ]
+                        }
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 68
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 756 61 756 63 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 60
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 51 756 54
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 756 51 756 54
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 756 51 756 54
+                                       , srcInfoPoints = []
+                                       }
+                                     "Ptr")))
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 55 756 60
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 756 55 756 60
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 756 55 756 60
+                                       , srcInfoPoints = []
+                                       }
+                                     "CStat"))))
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 68
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 64 756 66
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 756 64 756 66
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 756 64 756 66
+                                       , srcInfoPoints = []
+                                       }
+                                     "IO")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 67 756 68
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 756 67 756 68
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 77
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 73 756 75
+                                 , srcInfoPoints = []
+                                 }
+                               "IO")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 76 756 77
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 756 76 756 77
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 761 49
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 761 49
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 1 757 24
+                   , srcInfoPoints = []
+                   }
+                 "withFileOrSymlinkStatus")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 25 757 28
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 25 757 28
+                       , srcInfoPoints = []
+                       }
+                     "loc")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 29 757 33
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 29 757 33
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 34 757 35
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 34 757 35
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 36 761 49
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 757 36 757 37 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 757 38 761 49
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 757 38 757 40
+                          , SrcSpan "tests/examples/Directory.hs" 758 3 758 3
+                          , SrcSpan "tests/examples/Directory.hs" 763 1 763 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 761 49
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 761 49
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 3 758 40
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 758 3 758 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 758 3 758 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 758 3 758 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "modifyIOError")))
+                              (RightSection
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 758 17 758 40
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 758 17 758 18
+                                       , SrcSpan "tests/examples/Directory.hs" 758 39 758 40
+                                       ]
+                                   }
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 758 18 758 34
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 758 18 758 19
+                                          , SrcSpan "tests/examples/Directory.hs" 758 19 758 33
+                                          , SrcSpan "tests/examples/Directory.hs" 758 33 758 34
+                                          ]
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 758 18 758 34
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 758 18 758 19
+                                             , SrcSpan "tests/examples/Directory.hs" 758 19 758 33
+                                             , SrcSpan "tests/examples/Directory.hs" 758 33 758 34
+                                             ]
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 758 19 758 33
+                                            , srcInfoPoints = []
+                                            }
+                                          "ioeSetFileName")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 758 35 758 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 758 35 758 39
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 758 35 758 39
+                                            , srcInfoPoints = []
+                                            }
+                                          "name")))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 758 41 758 42
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 758 41 758 42
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 758 41 758 42
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 759 5 761 49
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 759 5 759 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 759 5 759 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 759 5 759 16
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 759 5 759 16
+                                            , srcInfoPoints = []
+                                            }
+                                          "allocaBytes")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 759 17 759 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 759 17 759 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 759 17 759 28
+                                            , srcInfoPoints = []
+                                            }
+                                          "sizeof_stat"))))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 759 29 759 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 759 29 759 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 759 29 759 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "$")))
+                              (Lambda
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 759 31 761 49
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 759 31 759 32
+                                       , SrcSpan "tests/examples/Directory.hs" 759 34 759 36
+                                       ]
+                                   }
+                                 [ PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 759 32 759 33
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 759 32 759 33
+                                          , srcInfoPoints = []
+                                          }
+                                        "p")
+                                 ]
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 760 7 761 49
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 760 7 760 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 760 7 760 19
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 760 7 760 19
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 760 7 760 19
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "withFilePath")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 760 20 760 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 760 20 760 24
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 760 20 760 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "name"))))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 760 25 760 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 760 25 760 26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 760 25 760 26
+                                               , srcInfoPoints = []
+                                               }
+                                             "$")))
+                                    (Lambda
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 760 27 761 49
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 760 27 760 28
+                                             , SrcSpan "tests/examples/Directory.hs" 760 30 760 32
+                                             ]
+                                         }
+                                       [ PVar
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 760 28 760 29
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 760 28 760 29
+                                                , srcInfoPoints = []
+                                                }
+                                              "s")
+                                       ]
+                                       (Do
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 760 33 761 49
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 760 33 760 35
+                                                , SrcSpan "tests/examples/Directory.hs" 761 9 761 9
+                                                , SrcSpan "tests/examples/Directory.hs" 763 1 763 0
+                                                ]
+                                            }
+                                          [ Qualifier
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 761 9 761 49
+                                                , srcInfoPoints = []
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 761 9 761 49
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            761
+                                                            9
+                                                            761
+                                                            37
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               761
+                                                               9
+                                                               761
+                                                               33
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  761
+                                                                  9
+                                                                  761
+                                                                  33
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     761
+                                                                     9
+                                                                     761
+                                                                     33
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "throwErrnoIfMinus1Retry_")))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               761
+                                                               34
+                                                               761
+                                                               37
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  761
+                                                                  34
+                                                                  761
+                                                                  37
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     761
+                                                                     34
+                                                                     761
+                                                                     37
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "loc"))))
+                                                 (Paren
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            761
+                                                            38
+                                                            761
+                                                            49
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              761
+                                                              38
+                                                              761
+                                                              39
+                                                          , SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              761
+                                                              48
+                                                              761
+                                                              49
+                                                          ]
+                                                      }
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               761
+                                                               39
+                                                               761
+                                                               48
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (App
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  761
+                                                                  39
+                                                                  761
+                                                                  46
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     761
+                                                                     39
+                                                                     761
+                                                                     44
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        761
+                                                                        39
+                                                                        761
+                                                                        44
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           761
+                                                                           39
+                                                                           761
+                                                                           44
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "lstat")))
+                                                          (Var
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     761
+                                                                     45
+                                                                     761
+                                                                     46
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (UnQual
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        761
+                                                                        45
+                                                                        761
+                                                                        46
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (Ident
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/Directory.hs"
+                                                                           761
+                                                                           45
+                                                                           761
+                                                                           46
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   "s"))))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  761
+                                                                  47
+                                                                  761
+                                                                  48
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     761
+                                                                     47
+                                                                     761
+                                                                     48
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        761
+                                                                        47
+                                                                        761
+                                                                        48
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "p"))))))
+                                          ]))))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 1 763 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 763 18 763 20 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 1 763 17
+                , srcInfoPoints = []
+                }
+              "modificationTime"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 46
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 763 31 763 33 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 30
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 21 763 24
+                           , srcInfoPoints = []
+                           }
+                         "Ptr")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 25 763 30
+                           , srcInfoPoints = []
+                           }
+                         "CStat"))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 46
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 34 763 36
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 763 37 763 46
+                           , srcInfoPoints = []
+                           }
+                         "ClockTime")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 767 52
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 767 52
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 1 764 17
+                   , srcInfoPoints = []
+                   }
+                 "modificationTime")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 18 764 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 18 764 22
+                       , srcInfoPoints = []
+                       }
+                     "stat")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 23 767 52
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 764 23 764 24 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 764 25 767 52
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 764 25 764 27
+                          , SrcSpan "tests/examples/Directory.hs" 765 5 765 5
+                          , SrcSpan "tests/examples/Directory.hs" 766 5 766 5
+                          , SrcSpan "tests/examples/Directory.hs" 767 5 767 5
+                          , SrcSpan "tests/examples/Directory.hs" 769 1 769 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 27
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 765 11 765 13 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 10
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 5 765 10
+                                , srcInfoPoints = []
+                                }
+                              "mtime"))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 27
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 14 765 22
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 765 14 765 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 765 14 765 22
+                                      , srcInfoPoints = []
+                                      }
+                                    "st_mtime")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 765 23 765 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 765 23 765 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 765 23 765 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "stat"))))
+                    , LetStmt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 5 766 69
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 766 5 766 8 ]
+                          }
+                        (BDecls
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 69
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Directory.hs" 766 9 766 9
+                                 , SrcSpan "tests/examples/Directory.hs" 767 5 767 0
+                                 ]
+                             }
+                           [ PatBind
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 766 9 766 69
+                                 , srcInfoPoints = []
+                                 }
+                               (PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 766 9 766 22
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 766 9 766 22
+                                       , srcInfoPoints = []
+                                       }
+                                     "realToInteger"))
+                               (UnGuardedRhs
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 766 23 766 69
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 766 23 766 24 ]
+                                    }
+                                  (ExpTypeSig
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 766 25 766 69
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Directory.hs" 766 44 766 46 ]
+                                       }
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 766 25 766 43
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 766 25 766 30
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 25 766 30
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 25 766 30
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "round")))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 766 31 766 32
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 31 766 32
+                                                , srcInfoPoints = []
+                                                }
+                                              (Symbol
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 31 766 32
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 ".")))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 766 33 766 43
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 33 766 43
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 33 766 43
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "realToFrac"))))
+                                     (TyForall
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 766 47 766 69
+                                          , srcInfoPoints = []
+                                          }
+                                        Nothing
+                                        (Just
+                                           (CxSingle
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 47 766 56
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/Directory.hs" 766 54 766 56
+                                                    ]
+                                                }
+                                              (TypeA
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 47 766 56
+                                                   , srcInfoPoints =
+                                                       [ SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           766
+                                                           54
+                                                           766
+                                                           56
+                                                       ]
+                                                   }
+                                                 (TyApp
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            766
+                                                            47
+                                                            766
+                                                            56
+                                                      , srcInfoPoints =
+                                                          [ SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              766
+                                                              54
+                                                              766
+                                                              56
+                                                          ]
+                                                      }
+                                                    (TyCon
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               766
+                                                               47
+                                                               766
+                                                               56
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 766
+                                                                 54
+                                                                 766
+                                                                 56
+                                                             ]
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  766
+                                                                  47
+                                                                  766
+                                                                  51
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     766
+                                                                     47
+                                                                     766
+                                                                     51
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "Real")))
+                                                    (TyVar
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               766
+                                                               52
+                                                               766
+                                                               53
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  766
+                                                                  52
+                                                                  766
+                                                                  53
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "a"))))))
+                                        (TyFun
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 766 57 766 69
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 766 59 766 61
+                                                 ]
+                                             }
+                                           (TyVar
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 57 766 58
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 57 766 58
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "a"))
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 766 62 766 69
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 766 62 766 69
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            766
+                                                            62
+                                                            766
+                                                            69
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "Integer")))))))
+                               Nothing
+                           ])
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 52
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 52
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 5 767 11
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 767 5 767 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 767 5 767 11
+                                      , srcInfoPoints = []
+                                      }
+                                    "return")))
+                           (Paren
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 767 12 767 52
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 767 12 767 13
+                                    , SrcSpan "tests/examples/Directory.hs" 767 51 767 52
+                                    ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 767 13 767 51
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 767 13 767 49
+                                      , srcInfoPoints = []
+                                      }
+                                    (Con
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 767 13 767 16
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 767 13 767 16
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 767 13 767 16
+                                               , srcInfoPoints = []
+                                               }
+                                             "TOD")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 767 17 767 49
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 767 17 767 18
+                                             , SrcSpan "tests/examples/Directory.hs" 767 48 767 49
+                                             ]
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 767 18 767 48
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 767 18 767 31
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 767 18 767 31
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           767
+                                                           18
+                                                           767
+                                                           31
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "realToInteger")))
+                                          (Paren
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 767 32 767 48
+                                               , srcInfoPoints =
+                                                   [ SrcSpan
+                                                       "tests/examples/Directory.hs" 767 32 767 33
+                                                   , SrcSpan
+                                                       "tests/examples/Directory.hs" 767 47 767 48
+                                                   ]
+                                               }
+                                             (ExpTypeSig
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 767 33 767 47
+                                                  , srcInfoPoints =
+                                                      [ SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          767
+                                                          39
+                                                          767
+                                                          41
+                                                      ]
+                                                  }
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           767
+                                                           33
+                                                           767
+                                                           38
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              767
+                                                              33
+                                                              767
+                                                              38
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 767
+                                                                 33
+                                                                 767
+                                                                 38
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "mtime")))
+                                                (TyCon
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           767
+                                                           42
+                                                           767
+                                                           47
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              767
+                                                              42
+                                                              767
+                                                              47
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 767
+                                                                 42
+                                                                 767
+                                                                 47
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "CTime"))))))))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 767 50 767 51
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 767 50 767 51
+                                         , srcInfoPoints = []
+                                         }
+                                       0
+                                       "0")))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 1 769 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 769 13 769 15 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 1 769 12
+                , srcInfoPoints = []
+                }
+              "isDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 769 26 769 28 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 25
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 16 769 19
+                           , srcInfoPoints = []
+                           }
+                         "Ptr")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 20 769 25
+                           , srcInfoPoints = []
+                           }
+                         "CStat"))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 36
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 29 769 31
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 769 32 769 36
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 772 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 772 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 1 770 12
+                   , srcInfoPoints = []
+                   }
+                 "isDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 13 770 17
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 13 770 17
+                       , srcInfoPoints = []
+                       }
+                     "stat")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 18 772 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 770 18 770 19 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 770 20 772 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 770 20 770 22
+                          , SrcSpan "tests/examples/Directory.hs" 771 3 771 3
+                          , SrcSpan "tests/examples/Directory.hs" 772 3 772 3
+                          , SrcSpan "tests/examples/Directory.hs" 774 1 774 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 23
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Directory.hs" 771 8 771 10 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 3 771 7
+                                , srcInfoPoints = []
+                                }
+                              "mode"))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 23
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 11 771 18
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 771 11 771 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 771 11 771 18
+                                      , srcInfoPoints = []
+                                      }
+                                    "st_mode")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 771 19 771 23
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 771 19 771 23
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 771 19 771 23
+                                      , srcInfoPoints = []
+                                      }
+                                    "stat"))))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 24
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 24
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 9
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 3 772 9
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 772 3 772 9
+                                      , srcInfoPoints = []
+                                      }
+                                    "return")))
+                           (Paren
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 772 10 772 24
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 772 10 772 11
+                                    , SrcSpan "tests/examples/Directory.hs" 772 23 772 24
+                                    ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 772 11 772 23
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 772 11 772 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 772 11 772 18
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 772 11 772 18
+                                            , srcInfoPoints = []
+                                            }
+                                          "s_isdir")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 772 19 772 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 772 19 772 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 772 19 772 23
+                                            , srcInfoPoints = []
+                                            }
+                                          "mode"))))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 1 774 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 774 18 774 20 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 1 774 17
+                , srcInfoPoints = []
+                }
+              "fileNameEndClean"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 774 28 774 30 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 21 774 27
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 774 31 774 37
+                        , srcInfoPoints = []
+                        }
+                      "String"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 776 76
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 776 76
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 1 775 17
+                   , srcInfoPoints = []
+                   }
+                 "fileNameEndClean")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 18 775 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 18 775 22
+                       , srcInfoPoints = []
+                       }
+                     "name")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 23 776 76
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 775 23 775 24 ]
+                   }
+                 (If
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 25 776 76
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 775 25 775 27
+                          , SrcSpan "tests/examples/Directory.hs" 775 41 775 45
+                          , SrcSpan "tests/examples/Directory.hs" 776 41 776 45
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 28 775 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 775 28 775 35
+                                  , srcInfoPoints = []
+                                  }
+                                "isDrive")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 36 775 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 36 775 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 775 36 775 40
+                                  , srcInfoPoints = []
+                                  }
+                                "name"))))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 75
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 70
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 46 775 70
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 775 46 775 70
+                                  , srcInfoPoints = []
+                                  }
+                                "addTrailingPathSeparator")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 71 775 75
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 775 71 775 75
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 775 71 775 75
+                                  , srcInfoPoints = []
+                                  }
+                                "name"))))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 76
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 71
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 46 776 71
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 776 46 776 71
+                                  , srcInfoPoints = []
+                                  }
+                                "dropTrailingPathSeparator")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 72 776 76
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 776 72 776 76
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 776 72 776 76
+                                  , srcInfoPoints = []
+                                  }
+                                "name"))))))
+              Nothing
+          ]
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 1 778 78
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 778 1 778 8
+                , SrcSpan "tests/examples/Directory.hs" 778 9 778 15
+                , SrcSpan "tests/examples/Directory.hs" 778 29 778 61
+                , SrcSpan "tests/examples/Directory.hs" 778 70 778 72
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 16 778 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 22 778 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "HsDirectory.h __hscore_S_IRUSR")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 62 778 69
+               , srcInfoPoints = []
+               }
+             "s_IRUSR")
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 778 73 778 78
+                     , srcInfoPoints = []
+                     }
+                   "CMode")))
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 1 779 78
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 779 1 779 8
+                , SrcSpan "tests/examples/Directory.hs" 779 9 779 15
+                , SrcSpan "tests/examples/Directory.hs" 779 29 779 61
+                , SrcSpan "tests/examples/Directory.hs" 779 70 779 72
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 16 779 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 22 779 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "HsDirectory.h __hscore_S_IWUSR")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 62 779 69
+               , srcInfoPoints = []
+               }
+             "s_IWUSR")
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 779 73 779 78
+                     , srcInfoPoints = []
+                     }
+                   "CMode")))
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 1 780 78
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 780 1 780 8
+                , SrcSpan "tests/examples/Directory.hs" 780 9 780 15
+                , SrcSpan "tests/examples/Directory.hs" 780 29 780 61
+                , SrcSpan "tests/examples/Directory.hs" 780 70 780 72
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 16 780 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 22 780 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "HsDirectory.h __hscore_S_IXUSR")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 62 780 69
+               , srcInfoPoints = []
+               }
+             "s_IXUSR")
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 780 73 780 78
+                     , srcInfoPoints = []
+                     }
+                   "CMode")))
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 1 781 64
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 781 1 781 8
+                , SrcSpan "tests/examples/Directory.hs" 781 9 781 15
+                , SrcSpan "tests/examples/Directory.hs" 781 29 781 47
+                , SrcSpan "tests/examples/Directory.hs" 781 56 781 58
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 16 781 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 22 781 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "__hscore_S_IFDIR")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 48 781 55
+               , srcInfoPoints = []
+               }
+             "s_IFDIR")
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 781 59 781 64
+                     , srcInfoPoints = []
+                     }
+                   "CMode")))
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 1 785 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 784 1 784 8
+                , SrcSpan "tests/examples/Directory.hs" 784 9 784 15
+                , SrcSpan "tests/examples/Directory.hs" 784 29 784 54
+                , SrcSpan "tests/examples/Directory.hs" 785 18 785 20
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 16 784 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 784 22 784 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "__hscore_long_path_size")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 3 785 17
+               , srcInfoPoints = []
+               }
+             "long_path_size")
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 785 21 785 24
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 1 808 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 808 18 808 20 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 1 808 17
+                , srcInfoPoints = []
+                }
+              "getHomeDirectory"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 32
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 21 808 23
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 808 24 808 32
+                        , srcInfoPoints = []
+                        }
+                      "FilePath"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 818 46
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 809 17
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 1 809 17
+                  , srcInfoPoints = []
+                  }
+                "getHomeDirectory"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 809 18 818 46
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 809 18 809 19 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 818 46
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 56
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 3 810 16
+                              , srcInfoPoints = []
+                              }
+                            "modifyIOError")))
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 17 810 56
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Directory.hs" 810 17 810 18
+                            , SrcSpan "tests/examples/Directory.hs" 810 55 810 56
+                            ]
+                        }
+                      (RightSection
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 18 810 55
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Directory.hs" 810 18 810 19
+                               , SrcSpan "tests/examples/Directory.hs" 810 54 810 55
+                               ]
+                           }
+                         (QVarOp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 19 810 35
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Directory.hs" 810 19 810 20
+                                  , SrcSpan "tests/examples/Directory.hs" 810 20 810 34
+                                  , SrcSpan "tests/examples/Directory.hs" 810 34 810 35
+                                  ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 19 810 35
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Directory.hs" 810 19 810 20
+                                     , SrcSpan "tests/examples/Directory.hs" 810 20 810 34
+                                     , SrcSpan "tests/examples/Directory.hs" 810 34 810 35
+                                     ]
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 810 20 810 34
+                                    , srcInfoPoints = []
+                                    }
+                                  "ioeSetLocation")))
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 36 810 54
+                              , srcInfoPoints = []
+                              }
+                            (String
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 36 810 54
+                                 , srcInfoPoints = []
+                                 }
+                               "getHomeDirectory"
+                               "getHomeDirectory")))))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 57 810 58
+                           , srcInfoPoints = []
+                           }
+                         "$")))
+                (Do
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 810 59 818 46
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Directory.hs" 810 59 810 61
+                         , SrcSpan "tests/examples/Directory.hs" 811 3 811 3
+                         , SrcSpan "tests/examples/Directory.hs" 812 3 812 3
+                         , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                         ]
+                     }
+                   [ Generator
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 73
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 811 5 811 7 ]
+                         }
+                       (PVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 4
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 3 811 4
+                               , srcInfoPoints = []
+                               }
+                             "r"))
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 73
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 11
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 8 811 11
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 811 8 811 11
+                                     , srcInfoPoints = []
+                                     }
+                                   "try")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 12 811 13
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 811 12 811 13
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 811 12 811 13
+                                     , srcInfoPoints = []
+                                     }
+                                   "$")))
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 811 14 811 73
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 811 14 811 71
+                                  , srcInfoPoints = []
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 811 14 811 63
+                                     , srcInfoPoints = []
+                                     }
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 811 14 811 43
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 811 14 811 35
+                                           , srcInfoPoints = []
+                                           }
+                                         (Qual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 811 14 811 35
+                                              , srcInfoPoints = []
+                                              }
+                                            (ModuleName
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 811 14 811 35
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Win32")
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 811 14 811 35
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "sHGetFolderPath")))
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 811 36 811 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 811 36 811 43
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 811 36 811 43
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "nullPtr"))))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 811 44 811 63
+                                        , srcInfoPoints = []
+                                        }
+                                      (Qual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 811 44 811 63
+                                           , srcInfoPoints = []
+                                           }
+                                         (ModuleName
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 811 44 811 63
+                                              , srcInfoPoints = []
+                                              }
+                                            "Win32")
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 811 44 811 63
+                                              , srcInfoPoints = []
+                                              }
+                                            "cSIDL_PROFILE"))))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 811 64 811 71
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 811 64 811 71
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 811 64 811 71
+                                           , srcInfoPoints = []
+                                           }
+                                         "nullPtr"))))
+                             (Lit
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 811 72 811 73
+                                  , srcInfoPoints = []
+                                  }
+                                (Int
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 811 72 811 73
+                                     , srcInfoPoints = []
+                                     }
+                                   0
+                                   "0"))))
+                   , Qualifier
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 3 818 46
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Directory.hs" 812 3 812 7
+                             , SrcSpan "tests/examples/Directory.hs" 812 41 812 43
+                             , SrcSpan "tests/examples/Directory.hs" 813 5 813 5
+                             , SrcSpan "tests/examples/Directory.hs" 814 5 814 5
+                             , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                             ]
+                         }
+                       (Case
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 3 818 46
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 812 3 812 7
+                                , SrcSpan "tests/examples/Directory.hs" 812 41 812 43
+                                , SrcSpan "tests/examples/Directory.hs" 813 5 813 5
+                                , SrcSpan "tests/examples/Directory.hs" 814 5 814 5
+                                , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                                ]
+                            }
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 8 812 40
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 812 8 812 9
+                                   , SrcSpan "tests/examples/Directory.hs" 812 39 812 40
+                                   ]
+                               }
+                             (ExpTypeSig
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 812 9 812 39
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 812 11 812 13 ]
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 812 9 812 10
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 812 9 812 10
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 812 9 812 10
+                                           , srcInfoPoints = []
+                                           }
+                                         "r")))
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 812 14 812 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 812 14 812 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 812 14 812 20
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 812 14 812 20
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 812 14 812 20
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Either")))
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 812 21 812 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 812 21 812 32
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 812 21 812 32
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "IOException"))))
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 812 33 812 39
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 812 33 812 39
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/Directory.hs" 812 33 812 39
+                                              , srcInfoPoints = []
+                                              }
+                                            "String"))))))
+                          [ Alt
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 813 5 813 24
+                                , srcInfoPoints = []
+                                }
+                              (PApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 813 5 813 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 813 5 813 10
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 813 5 813 10
+                                         , srcInfoPoints = []
+                                         }
+                                       "Right"))
+                                 [ PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 813 11 813 12
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 813 11 813 12
+                                          , srcInfoPoints = []
+                                          }
+                                        "s")
+                                 ])
+                              (UnGuardedRhs
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 813 13 813 24
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 813 13 813 15 ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 813 16 813 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 813 16 813 22
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 813 16 813 22
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 813 16 813 22
+                                               , srcInfoPoints = []
+                                               }
+                                             "return")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 813 23 813 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 813 23 813 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 813 23 813 24
+                                               , srcInfoPoints = []
+                                               }
+                                             "s")))))
+                              Nothing
+                          , Alt
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 814 5 818 46
+                                , srcInfoPoints = []
+                                }
+                              (PApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 814 5 814 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 814 5 814 9
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 814 5 814 9
+                                         , srcInfoPoints = []
+                                         }
+                                       "Left"))
+                                 [ PWildCard
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 814 11 814 12
+                                       , srcInfoPoints = []
+                                       }
+                                 ])
+                              (UnGuardedRhs
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 814 13 818 46
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 814 13 814 15 ]
+                                   }
+                                 (Do
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 814 16 818 46
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 814 16 814 18
+                                          , SrcSpan "tests/examples/Directory.hs" 815 7 815 7
+                                          , SrcSpan "tests/examples/Directory.hs" 816 7 816 7
+                                          , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                                          ]
+                                      }
+                                    [ Generator
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 815 7 815 78
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 815 10 815 12
+                                              ]
+                                          }
+                                        (PVar
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 815 7 815 9
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 815 7 815 9
+                                                , srcInfoPoints = []
+                                                }
+                                              "r1"))
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 815 13 815 78
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 815 13 815 16
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 815 13 815 16
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            815
+                                                            13
+                                                            815
+                                                            16
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "try")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 815 17 815 18
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 815 17 815 18
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            815
+                                                            17
+                                                            815
+                                                            18
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "$")))
+                                           (App
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 815 19 815 78
+                                                , srcInfoPoints = []
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 815 19 815 76
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            815
+                                                            19
+                                                            815
+                                                            68
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (App
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               815
+                                                               19
+                                                               815
+                                                               48
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  815
+                                                                  19
+                                                                  815
+                                                                  40
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Qual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     815
+                                                                     19
+                                                                     815
+                                                                     40
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (ModuleName
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        815
+                                                                        19
+                                                                        815
+                                                                        40
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "Win32")
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        815
+                                                                        19
+                                                                        815
+                                                                        40
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "sHGetFolderPath")))
+                                                       (Var
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  815
+                                                                  41
+                                                                  815
+                                                                  48
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (UnQual
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     815
+                                                                     41
+                                                                     815
+                                                                     48
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Ident
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/Directory.hs"
+                                                                        815
+                                                                        41
+                                                                        815
+                                                                        48
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                "nullPtr"))))
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               815
+                                                               49
+                                                               815
+                                                               68
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Qual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  815
+                                                                  49
+                                                                  815
+                                                                  68
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (ModuleName
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     815
+                                                                     49
+                                                                     815
+                                                                     68
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "Win32")
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     815
+                                                                     49
+                                                                     815
+                                                                     68
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "cSIDL_WINDOWS"))))
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            815
+                                                            69
+                                                            815
+                                                            76
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               815
+                                                               69
+                                                               815
+                                                               76
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  815
+                                                                  69
+                                                                  815
+                                                                  76
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "nullPtr"))))
+                                              (Lit
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 815 77 815 78
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Int
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            815
+                                                            77
+                                                            815
+                                                            78
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    0
+                                                    "0"))))
+                                    , Qualifier
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 816 7 818 46
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 816 7 816 11
+                                              , SrcSpan "tests/examples/Directory.hs" 816 15 816 17
+                                              , SrcSpan "tests/examples/Directory.hs" 817 9 817 9
+                                              , SrcSpan "tests/examples/Directory.hs" 818 9 818 9
+                                              , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                                              ]
+                                          }
+                                        (Case
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 816 7 818 46
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/Directory.hs" 816 7 816 11
+                                                 , SrcSpan
+                                                     "tests/examples/Directory.hs" 816 15 816 17
+                                                 , SrcSpan "tests/examples/Directory.hs" 817 9 817 9
+                                                 , SrcSpan "tests/examples/Directory.hs" 818 9 818 9
+                                                 , SrcSpan "tests/examples/Directory.hs" 847 1 847 0
+                                                 ]
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 816 12 816 14
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 816 12 816 14
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            816
+                                                            12
+                                                            816
+                                                            14
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "r1")))
+                                           [ Alt
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 817 9 817 28
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (PApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 817 9 817 16
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             817
+                                                             9
+                                                             817
+                                                             14
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                817
+                                                                9
+                                                                817
+                                                                14
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "Right"))
+                                                  [ PVar
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              817
+                                                              15
+                                                              817
+                                                              16
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 817
+                                                                 15
+                                                                 817
+                                                                 16
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "s")
+                                                  ])
+                                               (UnGuardedRhs
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          817
+                                                          17
+                                                          817
+                                                          28
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            817
+                                                            17
+                                                            817
+                                                            19
+                                                        ]
+                                                    }
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             817
+                                                             20
+                                                             817
+                                                             28
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                817
+                                                                20
+                                                                817
+                                                                26
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   817
+                                                                   20
+                                                                   817
+                                                                   26
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      817
+                                                                      20
+                                                                      817
+                                                                      26
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "return")))
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                817
+                                                                27
+                                                                817
+                                                                28
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   817
+                                                                   27
+                                                                   817
+                                                                   28
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      817
+                                                                      27
+                                                                      817
+                                                                      28
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "s")))))
+                                               Nothing
+                                           , Alt
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/Directory.hs" 818 9 818 46
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (PApp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs" 818 9 818 16
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             818
+                                                             9
+                                                             818
+                                                             13
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                818
+                                                                9
+                                                                818
+                                                                13
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "Left"))
+                                                  [ PVar
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/Directory.hs"
+                                                              818
+                                                              15
+                                                              818
+                                                              16
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/Directory.hs"
+                                                                 818
+                                                                 15
+                                                                 818
+                                                                 16
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "e")
+                                                  ])
+                                               (UnGuardedRhs
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Directory.hs"
+                                                          818
+                                                          17
+                                                          818
+                                                          46
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            818
+                                                            17
+                                                            818
+                                                            19
+                                                        ]
+                                                    }
+                                                  (App
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Directory.hs"
+                                                             818
+                                                             20
+                                                             818
+                                                             46
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                818
+                                                                20
+                                                                818
+                                                                27
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   818
+                                                                   20
+                                                                   818
+                                                                   27
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      818
+                                                                      20
+                                                                      818
+                                                                      27
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "ioError")))
+                                                     (Paren
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/Directory.hs"
+                                                                818
+                                                                28
+                                                                818
+                                                                46
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  818
+                                                                  28
+                                                                  818
+                                                                  29
+                                                              , SrcSpan
+                                                                  "tests/examples/Directory.hs"
+                                                                  818
+                                                                  45
+                                                                  818
+                                                                  46
+                                                              ]
+                                                          }
+                                                        (ExpTypeSig
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/Directory.hs"
+                                                                   818
+                                                                   29
+                                                                   818
+                                                                   45
+                                                             , srcInfoPoints =
+                                                                 [ SrcSpan
+                                                                     "tests/examples/Directory.hs"
+                                                                     818
+                                                                     31
+                                                                     818
+                                                                     33
+                                                                 ]
+                                                             }
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      818
+                                                                      29
+                                                                      818
+                                                                      30
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         818
+                                                                         29
+                                                                         818
+                                                                         30
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            818
+                                                                            29
+                                                                            818
+                                                                            30
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "e")))
+                                                           (TyCon
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/Directory.hs"
+                                                                      818
+                                                                      34
+                                                                      818
+                                                                      45
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/Directory.hs"
+                                                                         818
+                                                                         34
+                                                                         818
+                                                                         45
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/Directory.hs"
+                                                                            818
+                                                                            34
+                                                                            818
+                                                                            45
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "IOException")))))))
+                                               Nothing
+                                           ])
+                                    ]))
+                              Nothing
+                          ])
+                   ])))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 1 847 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 847 25 847 27 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 1 847 24
+                , srcInfoPoints = []
+                }
+              "getAppUserDataDirectory"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 49
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 847 35 847 37 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 28 847 34
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 49
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 38 847 40
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 847 41 847 49
+                           , srcInfoPoints = []
+                           }
+                         "FilePath")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 851 27
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 851 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 1 848 24
+                   , srcInfoPoints = []
+                   }
+                 "getAppUserDataDirectory")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 25 848 32
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 25 848 32
+                       , srcInfoPoints = []
+                       }
+                     "appName")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 33 851 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Directory.hs" 848 33 848 34 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 848 35 851 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Directory.hs" 848 35 848 37
+                          , SrcSpan "tests/examples/Directory.hs" 849 3 849 3
+                          , SrcSpan "tests/examples/Directory.hs" 874 1 874 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 851 27
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 851 27
+                             , srcInfoPoints = []
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 3 849 63
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 849 3 849 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 849 3 849 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 849 3 849 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "modifyIOError")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 849 17 849 63
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Directory.hs" 849 17 849 18
+                                       , SrcSpan "tests/examples/Directory.hs" 849 62 849 63
+                                       ]
+                                   }
+                                 (RightSection
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 849 18 849 62
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Directory.hs" 849 18 849 19
+                                          , SrcSpan "tests/examples/Directory.hs" 849 61 849 62
+                                          ]
+                                      }
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 849 19 849 35
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Directory.hs" 849 19 849 20
+                                             , SrcSpan "tests/examples/Directory.hs" 849 20 849 34
+                                             , SrcSpan "tests/examples/Directory.hs" 849 34 849 35
+                                             ]
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 849 19 849 35
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/Directory.hs" 849 19 849 20
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 849 20 849 34
+                                                , SrcSpan
+                                                    "tests/examples/Directory.hs" 849 34 849 35
+                                                ]
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 849 20 849 34
+                                               , srcInfoPoints = []
+                                               }
+                                             "ioeSetLocation")))
+                                    (Lit
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 849 36 849 61
+                                         , srcInfoPoints = []
+                                         }
+                                       (String
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 849 36 849 61
+                                            , srcInfoPoints = []
+                                            }
+                                          "getAppUserDataDirectory"
+                                          "getAppUserDataDirectory")))))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 64 849 65
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 849 64 849 65
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 849 64 849 65
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (Do
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 849 66 851 27
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Directory.hs" 849 66 849 68
+                                    , SrcSpan "tests/examples/Directory.hs" 850 3 850 3
+                                    , SrcSpan "tests/examples/Directory.hs" 850 3 850 3
+                                    , SrcSpan "tests/examples/Directory.hs" 851 3 851 3
+                                    , SrcSpan "tests/examples/Directory.hs" 874 1 874 0
+                                    ]
+                                }
+                              [ Generator
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 850 3 850 67
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Directory.hs" 850 5 850 7 ]
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 850 3 850 4
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 850 3 850 4
+                                          , srcInfoPoints = []
+                                          }
+                                        "s"))
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 850 8 850 67
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 850 8 850 65
+                                          , srcInfoPoints = []
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 850 8 850 57
+                                             , srcInfoPoints = []
+                                             }
+                                           (App
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 850 8 850 37
+                                                , srcInfoPoints = []
+                                                }
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 850 8 850 29
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Qual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            850
+                                                            8
+                                                            850
+                                                            29
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (ModuleName
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               850
+                                                               8
+                                                               850
+                                                               29
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "Win32")
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               850
+                                                               8
+                                                               850
+                                                               29
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "sHGetFolderPath")))
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 850 30 850 37
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            850
+                                                            30
+                                                            850
+                                                            37
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               850
+                                                               30
+                                                               850
+                                                               37
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "nullPtr"))))
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 850 38 850 57
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 850 38 850 57
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            850
+                                                            38
+                                                            850
+                                                            57
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "Win32")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            850
+                                                            38
+                                                            850
+                                                            57
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "cSIDL_APPDATA"))))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 850 58 850 65
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 850 58 850 65
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 850 58 850 65
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "nullPtr"))))
+                                     (Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 850 66 850 67
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 850 66 850 67
+                                             , srcInfoPoints = []
+                                             }
+                                           0
+                                           "0")))
+                              , Qualifier
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/Directory.hs" 851 3 851 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Directory.hs" 851 3 851 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 851 3 851 9
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 851 3 851 9
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 851 3 851 9
+                                                , srcInfoPoints = []
+                                                }
+                                              "return")))
+                                     (Paren
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Directory.hs" 851 10 851 27
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Directory.hs" 851 10 851 11
+                                              , SrcSpan "tests/examples/Directory.hs" 851 26 851 27
+                                              ]
+                                          }
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Directory.hs" 851 11 851 26
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 851 11 851 12
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 851 11 851 12
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            851
+                                                            11
+                                                            851
+                                                            12
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "s")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 851 12 851 14
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 851 12 851 14
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            851
+                                                            12
+                                                            851
+                                                            14
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "++")))
+                                           (InfixApp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/Directory.hs" 851 14 851 26
+                                                , srcInfoPoints = []
+                                                }
+                                              (Lit
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 851 14 851 18
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Char
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            851
+                                                            14
+                                                            851
+                                                            18
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    '\\'
+                                                    "\\\\"))
+                                              (QConOp
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 851 18 851 19
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Special
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            851
+                                                            18
+                                                            851
+                                                            19
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Cons
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               851
+                                                               18
+                                                               851
+                                                               19
+                                                         , srcInfoPoints = []
+                                                         })))
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/Directory.hs" 851 19 851 26
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Directory.hs"
+                                                            851
+                                                            19
+                                                            851
+                                                            26
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/Directory.hs"
+                                                               851
+                                                               19
+                                                               851
+                                                               26
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "appName")))))))
+                              ]))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 1 874 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 874 27 874 29 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 1 874 26
+                , srcInfoPoints = []
+                }
+              "getUserDocumentsDirectory"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 41
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 30 874 32
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 874 33 874 41
+                        , srcInfoPoints = []
+                        }
+                      "FilePath"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 877 63
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 875 26
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 1 875 26
+                  , srcInfoPoints = []
+                  }
+                "getUserDocumentsDirectory"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 27 877 63
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 875 27 875 28 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 875 29 877 63
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 875 29 875 31
+                      , SrcSpan "tests/examples/Directory.hs" 876 3 876 3
+                      , SrcSpan "tests/examples/Directory.hs" 905 1 905 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 877 63
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 877 63
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 65
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 3 876 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 876 3 876 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "modifyIOError")))
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 17 876 65
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Directory.hs" 876 17 876 18
+                                   , SrcSpan "tests/examples/Directory.hs" 876 64 876 65
+                                   ]
+                               }
+                             (RightSection
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 876 18 876 64
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Directory.hs" 876 18 876 19
+                                      , SrcSpan "tests/examples/Directory.hs" 876 63 876 64
+                                      ]
+                                  }
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 876 19 876 35
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Directory.hs" 876 19 876 20
+                                         , SrcSpan "tests/examples/Directory.hs" 876 20 876 34
+                                         , SrcSpan "tests/examples/Directory.hs" 876 34 876 35
+                                         ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 876 19 876 35
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Directory.hs" 876 19 876 20
+                                            , SrcSpan "tests/examples/Directory.hs" 876 20 876 34
+                                            , SrcSpan "tests/examples/Directory.hs" 876 34 876 35
+                                            ]
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Directory.hs" 876 20 876 34
+                                           , srcInfoPoints = []
+                                           }
+                                         "ioeSetLocation")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Directory.hs" 876 36 876 63
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Directory.hs" 876 36 876 63
+                                        , srcInfoPoints = []
+                                        }
+                                      "getUserDocumentsDirectory"
+                                      "getUserDocumentsDirectory")))))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 66 876 67
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 66 876 67
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/Directory.hs" 876 66 876 67
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (Do
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 876 68 877 63
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Directory.hs" 876 68 876 70
+                                , SrcSpan "tests/examples/Directory.hs" 877 3 877 3
+                                , SrcSpan "tests/examples/Directory.hs" 877 3 877 3
+                                , SrcSpan "tests/examples/Directory.hs" 905 1 905 0
+                                ]
+                            }
+                          [ Qualifier
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 877 3 877 63
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Directory.hs" 877 3 877 63
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 877 3 877 61
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 877 3 877 53
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 877 3 877 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 877 3 877 24
+                                               , srcInfoPoints = []
+                                               }
+                                             (Qual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 877 3 877 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (ModuleName
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           877
+                                                           3
+                                                           877
+                                                           24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "Win32")
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           877
+                                                           3
+                                                           877
+                                                           24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "sHGetFolderPath")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 877 25 877 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 877 25 877 32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Directory.hs"
+                                                           877
+                                                           25
+                                                           877
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "nullPtr"))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 877 33 877 53
+                                            , srcInfoPoints = []
+                                            }
+                                          (Qual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 877 33 877 53
+                                               , srcInfoPoints = []
+                                               }
+                                             (ModuleName
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 877 33 877 53
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "Win32")
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Directory.hs" 877 33 877 53
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "cSIDL_PERSONAL"))))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 877 54 877 61
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Directory.hs" 877 54 877 61
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/Directory.hs" 877 54 877 61
+                                               , srcInfoPoints = []
+                                               }
+                                             "nullPtr"))))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Directory.hs" 877 62 877 63
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Directory.hs" 877 62 877 63
+                                         , srcInfoPoints = []
+                                         }
+                                       0
+                                       "0")))
+                          ]))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 1 905 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 905 23 905 25 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 1 905 22
+                , srcInfoPoints = []
+                }
+              "getTemporaryDirectory"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 37
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 26 905 28
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 905 29 905 37
+                        , srcInfoPoints = []
+                        }
+                      "FilePath"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 907 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 906 22
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 1 906 22
+                  , srcInfoPoints = []
+                  }
+                "getTemporaryDirectory"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 23 907 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 906 23 906 24 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 906 25 907 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Directory.hs" 906 25 906 27
+                      , SrcSpan "tests/examples/Directory.hs" 907 3 907 3
+                      , SrcSpan "tests/examples/Directory.hs" 912 1 912 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30
+                         , srcInfoPoints = []
+                         }
+                       (Qual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30
+                            , srcInfoPoints = []
+                            }
+                          (ModuleName
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30
+                               , srcInfoPoints = []
+                               }
+                             "Win32")
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 907 3 907 30
+                               , srcInfoPoints = []
+                               }
+                             "getTemporaryDirectory")))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 1 912 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Directory.hs" 912 14 912 16 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 1 912 13
+                , srcInfoPoints = []
+                }
+              "exeExtension"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 912 17 912 23
+                     , srcInfoPoints = []
+                     }
+                   "String")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 1 913 13
+                  , srcInfoPoints = []
+                  }
+                "exeExtension"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 14 913 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Directory.hs" 913 14 913 15 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 16 913 21
+                  , srcInfoPoints = []
+                  }
+                (String
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Directory.hs" 913 16 913 21
+                     , srcInfoPoints = []
+                     }
+                   "exe"
+                   "exe")))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 3 1 3 78)
+        "---------------------------------------------------------------------------"
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 4 1 4 5) " |"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 5 1 5 35)
+        " Module      :  System.Directory"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 6 1 6 53)
+        " Copyright   :  (c) The University of Glasgow 2001"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 7 1 7 66)
+        " License     :  BSD-style (see the file libraries/base/LICENSE)"
+    , Comment False (SrcSpan "tests/examples/Directory.hs" 8 1 8 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 9 1 9 40)
+        " Maintainer  :  libraries@haskell.org"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 10 1 10 25)
+        " Stability   :  stable"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 11 1 11 27)
+        " Portability :  portable"
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 12 1 12 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 13 1 13 59)
+        " System-independent interface to directory manipulation."
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 14 1 14 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 15 1 15 78)
+        "---------------------------------------------------------------------------"
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 19 5 19 14) " $intro"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 21 5 21 32)
+        " * Actions on directories"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 22 29 22 52)
+        " :: FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 23 33 23 64)
+        " :: Bool -> FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 24 29 24 52)
+        " :: FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 25 33 25 56)
+        " :: FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 26 29 26 64)
+        " :: FilePath -> FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 28 33 28 64)
+        " :: FilePath -> IO [FilePath]"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 29 33 29 50)
+        " :: IO FilePath"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 30 33 30 56)
+        " :: FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 32 5 32 33)
+        " * Pre-defined directories"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 38 5 38 26)
+        " * Actions on files"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 39 25 39 48)
+        " :: FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 40 33 40 68)
+        " :: FilePath -> FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 41 33 41 68)
+        " :: FilePath -> FilePath -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 47 5 47 25)
+        " * Existence tests"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 48 25 48 50)
+        " :: FilePath -> IO Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 49 33 49 58)
+        " :: FilePath -> IO Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 51 5 51 21)
+        " * Permissions"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 53 5 53 20)
+        " $permissions"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 57 21 57 46)
+        " :: Permissions -> Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 58 21 58 46)
+        " :: Permissions -> Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 59 21 59 46)
+        " :: Permissions -> Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 60 21 60 46)
+        " :: Permissions -> Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 63 33 63 65)
+        " :: FilePath -> IO Permissions"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 64 33 64 71)
+        " :: FilePath -> Permissions -> IO ()"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 67 5 67 20)
+        " * Timestamps"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 69 33 69 63)
+        " :: FilePath -> IO ClockTime"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 86 1 86 33)
+        "# CFILES cbits/directory.c #"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 96 1 110 3)
+        " $intro\nA directory contains a series of entries, each of which is a named\nreference to a file system object (file, directory etc.).  Some\nentries may be hidden, inaccessible, or have some administrative\nfunction (e.g. `.' or `..' under POSIX\n<http://www.opengroup.org/onlinepubs/009695399/>), but in\nthis standard all such entries are considered to form part of the\ndirectory contents. Entries in sub-directories are not, however,\nconsidered to form part of the directory contents.\n\nEach file system object is referenced by a /path/.  There is\nnormally at least one absolute path to each file system object.  In\nsome operating systems, it may also be possible to have paths which\nare relative to the current directory.\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 112 1 112 78)
+        "---------------------------------------------------------------------------"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 113 1 113 15)
+        " Permissions"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 115 1 132 3)
+        " $permissions\n\n The 'Permissions' type is used to record whether certain operations are\n permissible on a file\\/directory. 'getPermissions' and 'setPermissions'\n get and set these permissions, respectively. Permissions apply both to\n files and directories. For directories, the executable field will be\n 'False', and for files the searchable field will be 'False'. Note that\n directories may be searchable without being readable, if permission has\n been given to use them as part of a path, but not to examine the\n directory contents.\n\nNote that to change some, but not all permissions, a construct on the following lines must be used.\n\n>  makeReadable f = do\n>     p <- getPermissions f\n>     setPermissions f (p {readable = True})\n\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 140 1 150 3)
+        " |The 'getPermissions' operation returns the\npermissions for the file or directory.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to access\n  the permissions; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 155 3 155 69)
+        " stat() does a better job of guessing the permissions on Windows"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 156 3 156 71)
+        " than access() does.  e.g. for execute permission, it looks at the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 157 3 157 28)
+        " filename extension :-)"
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 158 3 158 5) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 159 3 159 78)
+        " I tried for a while to do this properly, using the Windows security API,"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 160 3 160 79)
+        " and eventually gave up.  getPermissions is a flawed API anyway. -- SimonM"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 177 1 187 3)
+        " |The 'setPermissions' operation sets the\npermissions for the file or directory.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to set\n  the permissions; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 217 1 217 78)
+        "---------------------------------------------------------------------------"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 218 1 218 18)
+        " Implementation"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 220 1 255 3)
+        " |@'createDirectory' dir@ creates a new directory @dir@ which is\ninitially empty, or as near to empty as the operating system\nallows.\n\nThe operation may fail with:\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES]@\n\n* 'isAlreadyExistsError' \\/ 'AlreadyExists'\nThe operand refers to a directory that already exists.\n@ [EEXIST]@\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'NoSuchThing'\nThere is no path to the directory.\n@[ENOENT, ENOTDIR]@\n\n* 'ResourceExhausted'\nInsufficient resources (virtual memory, process file descriptors,\nphysical disk space, etc.) are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[EEXIST]@\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 261 1 261 70)
+        " | @'createDirectoryIfMissing' parents dir@ creates a new directory"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 262 1 262 63)
+        " @dir@ if it doesn\\'t exist. If the first argument is 'True'"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 263 1 263 77)
+        " the function will also create all parent directories if they are missing."
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 264 38 264 66)
+        " ^ Create its parents too?"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 265 30 265 77)
+        " ^ The path to the directory you want to make"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 287 11 287 75)
+        " createDirectory (and indeed POSIX mkdir) does not distinguish"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 288 11 288 79)
+        " between a dir already existing and a file already existing. So we"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 289 11 289 79)
+        " check for it here. Unfortunately there is a slight race condition"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 290 11 290 77)
+        " here, but we think it is benign. It could report an exeption in"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 291 11 291 77)
+        " the case that the dir did exist but another process deletes the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 292 11 292 75)
+        " directory and creates a file in its place before we can check"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 293 11 293 50)
+        " that the directory did indeed exist."
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 302 1 341 3)
+        " | @'removeDirectory' dir@ removes an existing directory /dir/.  The\nimplementation may specify additional constraints which must be\nsatisfied before a directory can be removed (e.g. the directory has to\nbe empty, or may not be in use by other processes).  It is not legal\nfor an implementation to partially remove a directory unless the\nentire directory is removed. A conformant implementation need not\nsupport directory removal in all situations (e.g. removal of the root\ndirectory).\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\nEIO\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n[ENAMETOOLONG, ELOOP]\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY, ENOTEMPTY, EEXIST]@\n\n* 'UnsupportedOperation'\nThe implementation does not support removal in this situation.\n@[EINVAL]@\n\n* 'InappropriateType'\nThe operand refers to an existing non-directory object.\n@[ENOTDIR]@\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 347 1 347 75)
+        " | @'removeDirectoryRecursive' dir@  removes an existing directory /dir/"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 348 1 348 65)
+        " together with its content and all subdirectories. Be careful,"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 349 1 349 70)
+        " if the directory contains symlinks, the function will follow them."
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 360 31 360 77)
+        " If f is not a directory, re-throw the error"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 365 1 397 3)
+        " |'removeFile' /file/ removes the directory entry for an existing file\n/file/, where /file/ is not itself a directory. The\nimplementation may specify additional constraints which must be\nsatisfied before a file can be removed (e.g. the file may not be in\nuse by other processes).\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid file name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe file does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY]@\n\n* 'InappropriateType'\nThe operand refers to an existing directory.\n@[EPERM, EINVAL]@\n\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 403 1 450 3)
+        " |@'renameDirectory' old new@ changes the name of an existing\ndirectory from /old/ to /new/.  If the /new/ directory\nalready exists, it is atomically replaced by the /old/ directory.\nIf the /new/ directory is neither the /old/ directory nor an\nalias of the /old/ directory, it is removed as if by\n'removeDirectory'.  A conformant implementation need not support\nrenaming directories in all situations (e.g. renaming to an existing\ndirectory, or across different physical devices), but the constraints\nmust be documented.\n\nOn Win32 platforms, @renameDirectory@ fails if the /new/ directory already\nexists.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nEither operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe original directory does not exist, or there is no path to the target.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY, ENOTEMPTY, EEXIST]@\n\n* 'UnsupportedOperation'\nThe implementation does not support renaming in this situation.\n@[EINVAL, EXDEV]@\n\n* 'InappropriateType'\nEither path refers to an existing non-directory object.\n@[ENOTDIR, EISDIR]@\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 454 4 454 73)
+        " XXX this test isn't performed atomically with the following rename"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 455 4 455 26)
+        " ToDo: use Win32 API"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 465 1 507 3)
+        " |@'renameFile' old new@ changes the name of an existing file system\nobject from /old/ to /new/.  If the /new/ object already\nexists, it is atomically replaced by the /old/ object.  Neither\npath may refer to an existing directory.  A conformant implementation\nneed not support renaming files in all situations (e.g. renaming\nacross different physical devices), but the constraints must be\ndocumented.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nEither operand is not a valid file name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe original file does not exist, or there is no path to the target.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EROFS, EACCES, EPERM]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EDQUOT, ENOSPC, ENOMEM, EMLINK]@\n\n* 'UnsatisfiedConstraints'\nImplementation-dependent constraints are not satisfied.\n@[EBUSY]@\n\n* 'UnsupportedOperation'\nThe implementation does not support renaming in this situation.\n@[EXDEV]@\n\n* 'InappropriateType'\nEither path refers to an existing directory.\n@[ENOTDIR, EISDIR, EINVAL, EEXIST, ENOTEMPTY]@\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 511 4 511 73)
+        " XXX this test isn't performed atomically with the following rename"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 512 4 512 26)
+        " ToDo: use Win32 API"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 522 1 526 3)
+        " |@'copyFile' old new@ copies the existing file from /old/ to /new/.\nIf the /new/ file already exists, it is atomically replaced by the /old/ file.\nNeither path may refer to an existing directory.  The permissions of /old/ are\ncopied to /new/, if possible.\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 553 1 553 60)
+        " | Given path referring to a file or directory, returns a"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 554 1 554 64)
+        " canonicalized path, with the intent that two paths referring"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 555 1 555 66)
+        " to the same file\\/directory will map to the same canonicalized"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 556 1 556 58)
+        " path. Note that it is impossible to guarantee that the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 557 1 557 67)
+        " implication (same file\\/dir \\<=\\> same canonicalizedPath) holds"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 558 1 558 66)
+        " in either direction: this function can make only a best-effort"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 559 1 559 12)
+        " attempt."
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 564 9 564 73)
+        " normalise does more stuff, like upper-casing the drive letter"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 567 1 567 43)
+        " | 'makeRelative' the current directory."
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 573 1 573 66)
+        " | Given an executable file name, searches for such file in the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 574 1 574 69)
+        " directories listed in system PATH. The returned value is the path"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 575 1 575 70)
+        " to the found executable or Nothing if an executable with the given"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 576 1 576 70)
+        " name was not found. For example (findExecutable \\\"ghc\\\") gives you"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 577 1 577 20)
+        " the path to GHC."
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 578 1 578 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 579 1 579 60)
+        " The path returned by 'findExecutable' corresponds to the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 580 1 580 68)
+        " program that would be executed by 'System.Process.createProcess'"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 581 1 581 70)
+        " when passed the same string (as a RawCommand, not a ShellCommand)."
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 582 1 582 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 583 1 583 71)
+        " On Windows, 'findExecutable' calls the Win32 function 'SearchPath',"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 584 1 584 68)
+        " which may search other places before checking the directories in"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 585 1 585 69)
+        " @PATH@.  Where it actually searches depends on registry settings,"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 586 1 586 61)
+        " but notably includes the directory containing the current"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 587 1 587 19)
+        " executable. See"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 588 1 588 68)
+        " <http://msdn.microsoft.com/en-us/library/aa365527.aspx> for more"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 589 1 589 12)
+        " details."
+    , Comment
+        False (SrcSpan "tests/examples/Directory.hs" 590 1 590 3) ""
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 596 1 625 3)
+        " |@'getDirectoryContents' dir@ returns a list of /all/ entries\nin /dir/.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n@[EMFILE, ENFILE]@\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[ENOTDIR]@\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 636 9 636 71)
+        " we needn't worry about empty directories: adirectory always"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 637 9 637 45)
+        " has at least \".\" and \"..\" entries"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 645 18 645 62)
+        " no need to reverse, ordering is undefined"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 647 1 671 3)
+        " |If the operating system has a notion of current directories,\n'getCurrentDirectory' returns an absolute path to the\ncurrent directory of the calling process.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThere is no path referring to the current directory.\n@[EPERM, ENOENT, ESTALE...]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'ResourceExhausted'\nInsufficient resources are available to perform the operation.\n\n* 'UnsupportedOperation'\nThe operating system has no notion of current directory.\n\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 676 1 706 3)
+        " |If the operating system has a notion of current directories,\n@'setCurrentDirectory' dir@ changes the current\ndirectory of the calling process to /dir/.\n\nThe operation may fail with:\n\n* 'HardwareFault'\nA physical I\\/O error has occurred.\n@[EIO]@\n\n* 'InvalidArgument'\nThe operand is not a valid directory name.\n@[ENAMETOOLONG, ELOOP]@\n\n* 'isDoesNotExistError' \\/ 'NoSuchThing'\nThe directory does not exist.\n@[ENOENT, ENOTDIR]@\n\n* 'isPermissionError' \\/ 'PermissionDenied'\nThe process has insufficient privileges to perform the operation.\n@[EACCES]@\n\n* 'UnsupportedOperation'\nThe operating system has no notion of current directory, or the\ncurrent directory cannot be dynamically changed.\n\n* 'InappropriateType'\nThe path refers to an existing non-directory object.\n@[ENOTDIR]@\n\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 712 1 714 3)
+        " |The operation 'doesDirectoryExist' returns 'True' if the argument file\nexists and is a directory, and 'False' otherwise.\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 721 1 723 3)
+        " |The operation 'doesFileExist' returns 'True'\nif the argument file exists and is not a directory, and 'False' otherwise.\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 730 1 740 3)
+        " |The 'getModificationTime' operation returns the\nclock time at which the file or directory was last modified.\n\nThe operation may fail with:\n\n* 'isPermissionError' if the user is not permitted to access\n  the modification time; or\n\n* 'isDoesNotExistError' if the file or directory does not exist.\n\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 744 2 744 24)
+        " ToDo: use Win32 API"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 787 1 807 3)
+        " | Returns the current user's home directory.\n\nThe directory returned is expected to be writable by the current user,\nbut note that it isn't generally considered good practice to store\napplication-specific data here; use 'getAppUserDataDirectory'\ninstead.\n\nOn Unix, 'getHomeDirectory' returns the value of the @HOME@\nenvironment variable.  On Windows, the system is queried for a\nsuitable path; a typical path might be\n@C:/Documents And Settings/user@.\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of home directory.\n\n* 'isDoesNotExistError'\nThe home directory for the current user does not exist, or\ncannot be found.\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 820 1 846 3)
+        " | Returns the pathname of a directory in which application-specific\ndata for the current user can be stored.  The result of\n'getAppUserDataDirectory' for a given application is specific to\nthe current user.\n\nThe argument should be the name of the application, which will be used\nto construct the pathname (so avoid using unusual characters that\nmight result in an invalid pathname).\n\nNote: the directory may not actually exist, and may need to be created\nfirst.  It is expected that the parent directory exists and is\nwritable.\n\nOn Unix, this function returns @$HOME\\/.appName@.  On Windows, a\ntypical path might be\n\n> C:/Documents And Settings/user/Application Data/appName\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of application-specific data directory.\n\n* 'isDoesNotExistError'\nThe home directory for the current user does not exist, or\ncannot be found.\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 853 1 873 3)
+        " | Returns the current user's document directory.\n\nThe directory returned is expected to be writable by the current user,\nbut note that it isn't generally considered good practice to store\napplication-specific data here; use 'getAppUserDataDirectory'\ninstead.\n\nOn Unix, 'getUserDocumentsDirectory' returns the value of the @HOME@\nenvironment variable.  On Windows, the system is queried for a\nsuitable path; a typical path might be\n@C:\\/Documents and Settings\\/user\\/My Documents@.\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of document directory.\n\n* 'isDoesNotExistError'\nThe document directory for the current user does not exist, or\ncannot be found.\n"
+    , Comment
+        True
+        (SrcSpan "tests/examples/Directory.hs" 879 1 904 3)
+        " | Returns the current directory for temporary files.\n\nOn Unix, 'getTemporaryDirectory' returns the value of the @TMPDIR@\nenvironment variable or \\\"\\/tmp\\\" if the variable isn\\'t defined.\nOn Windows, the function checks for the existence of environment variables in\nthe following order and uses the first path found:\n\n*\nTMP environment variable.\n\n*\nTEMP environment variable.\n\n*\nUSERPROFILE environment variable.\n\n*\nThe Windows directory\n\nThe operation may fail with:\n\n* 'UnsupportedOperation'\nThe operating system has no notion of temporary directory.\n\nThe function doesn\\'t verify whether the path exists.\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 909 1 909 60)
+        " ToDo: This should be determined via autoconf (AC_EXEEXT)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 910 1 910 36)
+        " | Extension for executable files"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Directory.hs" 911 1 911 64)
+        " (typically @\\\"\\\"@ on Unix and @\\\"exe\\\"@ on Windows or OS\\/2)"
+    ]
+  )
diff --git a/tests/examples/Directory.hs.prettyprinter.golden b/tests/examples/Directory.hs.prettyprinter.golden
--- a/tests/examples/Directory.hs.prettyprinter.golden
+++ b/tests/examples/Directory.hs.prettyprinter.golden
@@ -29,11 +29,11 @@
 import System.Posix.Types
 import System.Posix.Internals
 import qualified System.Win32 as Win32
- 
+
 data Permissions = Permissions{readable, writable, executable,
                                searchable :: Bool}
-                 deriving (Eq, Ord, Read, Show)
- 
+                     deriving (Eq, Ord, Read, Show)
+
 getPermissions :: FilePath -> IO Permissions
 getPermissions name
   = do withFilePath name $
@@ -50,7 +50,7 @@
                        (Permissions{readable = usr_read /= 0, writable = usr_write /= 0,
                                     executable = is_dir == 0 && usr_exec /= 0,
                                     searchable = is_dir /= 0 && usr_exec /= 0})
- 
+
 setPermissions :: FilePath -> Permissions -> IO ()
 setPermissions name (Permissions r w e s)
   = do allocaBytes sizeof_stat $
@@ -64,14 +64,13 @@
                           let mode2 = modifyBit w mode1 s_IWUSR
                           let mode3 = modifyBit (e || s) mode2 s_IXUSR
                           c_wchmod p_name mode3
-  where  
-        modifyBit :: Bool -> CMode -> CMode -> CMode
+  where modifyBit :: Bool -> CMode -> CMode -> CMode
         modifyBit False m b = m .&. (complement b)
         modifyBit True m b = m .|. b
- 
+
 foreign import ccall unsafe "_wchmod" c_wchmod ::
                CWString -> CMode -> IO CInt
- 
+
 copyPermissions :: FilePath -> FilePath -> IO ()
 copyPermissions source dest
   = do allocaBytes sizeof_stat $
@@ -83,10 +82,10 @@
                          do throwErrnoIfMinus1_ "copyPermissions" $ c_stat p_source p_stat
                             mode <- st_mode p_stat
                             throwErrnoIfMinus1_ "copyPermissions" $ c_wchmod p_dest mode
- 
+
 createDirectory :: FilePath -> IO ()
 createDirectory path = do Win32.createDirectory path Nothing
- 
+
 createDirectoryIfMissing :: Bool -> FilePath -> IO ()
 createDirectoryIfMissing create_parents path0
   | create_parents = createDirs (parents path0)
@@ -100,7 +99,7 @@
               \ _ ->
                 do createDirs dirs
                    createDir dir throw
-         
+        
         createDir :: FilePath -> (IOException -> IO ()) -> IO ()
         createDir dir notExistHandler
           = do r <- try $ createDirectory dir
@@ -114,17 +113,16 @@
                                        if isDir then return () else throw e)
                               `catch` ((\ _ -> return ()) :: IOException -> IO ())
                           | otherwise -> throw e
- 
+
 removeDirectory :: FilePath -> IO ()
 removeDirectory path = Win32.removeDirectory path
- 
+
 removeDirectoryRecursive :: FilePath -> IO ()
 removeDirectoryRecursive startLoc
   = do cont <- getDirectoryContents startLoc
        sequence_ [rm (startLoc </> x) | x <- cont, x /= "." && x /= ".."]
        removeDirectory startLoc
-  where  
-        rm :: FilePath -> IO ()
+  where rm :: FilePath -> IO ()
         rm f
           = do temp <- try (removeFile f)
                case temp of
@@ -132,10 +130,10 @@
                                 unless isDir $ throw (e :: SomeException)
                                 removeDirectoryRecursive f
                    Right _ -> return ()
- 
+
 removeFile :: FilePath -> IO ()
 removeFile path = Win32.deleteFile path
- 
+
 renameDirectory :: FilePath -> FilePath -> IO ()
 renameDirectory opath npath
   = do withFileStatus "renameDirectory" opath $
@@ -149,7 +147,7 @@
                      "not a directory")
                 else
                 do Win32.moveFileEx opath npath Win32.mOVEFILE_REPLACE_EXISTING
- 
+
 renameFile :: FilePath -> FilePath -> IO ()
 renameFile opath npath
   = do withFileOrSymlinkStatus "renameFile" opath $
@@ -162,7 +160,7 @@
                      "is a directory")
                 else
                 do Win32.moveFileEx opath npath Win32.mOVEFILE_REPLACE_EXISTING
- 
+
 copyFile :: FilePath -> FilePath -> IO ()
 copyFile fromFPath toFPath
   = copy `Prelude.catch`
@@ -188,24 +186,24 @@
                  do hPutBuf hTo buffer count
                     copyContents hFrom hTo buffer
         ignoreIOExceptions io = io `catch` ioExceptionIgnorer
-         
+        
         ioExceptionIgnorer :: IOException -> IO ()
         ioExceptionIgnorer _ = return ()
- 
+
 canonicalizePath :: FilePath -> IO FilePath
 canonicalizePath fpath
   = do path <- Win32.getFullPathName fpath
        return (normalise path)
- 
+
 makeRelativeToCurrentDirectory :: FilePath -> IO FilePath
 makeRelativeToCurrentDirectory x
   = do cur <- getCurrentDirectory
        return $ makeRelative cur x
- 
+
 findExecutable :: String -> IO (Maybe FilePath)
 findExecutable binary
   = Win32.searchPath Nothing binary ('.' : exeExtension)
- 
+
 getDirectoryContents :: FilePath -> IO [FilePath]
 getDirectoryContents path
   = modifyIOError
@@ -215,27 +213,26 @@
       do bracket (Win32.findFirstFile (path </> "*"))
            (\ (h, _) -> Win32.findClose h)
            (\ (h, fdat) -> loop h fdat [])
-  where  
-        loop ::
+  where loop ::
              Win32.HANDLE -> Win32.FindData -> [FilePath] -> IO [FilePath]
         loop h fdat acc
           = do filename <- Win32.getFindDataFileName fdat
                more <- Win32.findNextFile h fdat
                if more then loop h fdat (filename : acc) else
                  return (filename : acc)
- 
+
 getCurrentDirectory :: IO FilePath
 getCurrentDirectory = do Win32.getCurrentDirectory
- 
+
 setCurrentDirectory :: FilePath -> IO ()
 setCurrentDirectory path = Win32.setCurrentDirectory path
- 
+
 doesDirectoryExist :: FilePath -> IO Bool
 doesDirectoryExist name
   = (withFileStatus "doesDirectoryExist" name $
        \ st -> isDirectory st)
       `catch` ((\ _ -> return False) :: IOException -> IO Bool)
- 
+
 doesFileExist :: FilePath -> IO Bool
 doesFileExist name
   = (withFileStatus "doesFileExist" name $
@@ -243,12 +240,12 @@
          do b <- isDirectory st
             return (not b))
       `catch` ((\ _ -> return False) :: IOException -> IO Bool)
- 
+
 getModificationTime :: FilePath -> IO ClockTime
 getModificationTime name
   = do withFileStatus "getModificationTime" name $
          \ st -> do modificationTime st
- 
+
 withFileStatus :: String -> FilePath -> (Ptr CStat -> IO a) -> IO a
 withFileStatus loc name f
   = do modifyIOError (`ioeSetFileName` name) $
@@ -256,7 +253,7 @@
            \ p ->
              withFilePath (fileNameEndClean name) $
                \ s -> do throwErrnoIfMinus1Retry_ loc (c_stat s p)
- 
+
 withFileOrSymlinkStatus ::
                         String -> FilePath -> (Ptr CStat -> IO a) -> IO a
 withFileOrSymlinkStatus loc name f
@@ -265,37 +262,37 @@
            \ p ->
              withFilePath name $
                \ s -> do throwErrnoIfMinus1Retry_ loc (lstat s p)
- 
+
 modificationTime :: Ptr CStat -> IO ClockTime
 modificationTime stat
   = do mtime <- st_mtime stat
        let realToInteger = round . realToFrac :: Real a => a -> Integer
        return (TOD (realToInteger (mtime :: CTime)) 0)
- 
+
 isDirectory :: Ptr CStat -> IO Bool
 isDirectory stat
   = do mode <- st_mode stat
        return (s_isdir mode)
- 
+
 fileNameEndClean :: String -> String
 fileNameEndClean name
   = if isDrive name then addTrailingPathSeparator name else
       dropTrailingPathSeparator name
- 
+
 foreign import ccall unsafe "HsDirectory.h __hscore_S_IRUSR"
                s_IRUSR :: CMode
- 
+
 foreign import ccall unsafe "HsDirectory.h __hscore_S_IWUSR"
                s_IWUSR :: CMode
- 
+
 foreign import ccall unsafe "HsDirectory.h __hscore_S_IXUSR"
                s_IXUSR :: CMode
- 
+
 foreign import ccall unsafe "__hscore_S_IFDIR" s_IFDIR :: CMode
- 
+
 foreign import ccall unsafe "__hscore_long_path_size"
                long_path_size :: Int
- 
+
 getHomeDirectory :: IO FilePath
 getHomeDirectory
   = modifyIOError ((`ioeSetLocation` "getHomeDirectory")) $
@@ -308,20 +305,20 @@
                           case r1 of
                               Right s -> return s
                               Left e -> ioError (e :: IOException)
- 
+
 getAppUserDataDirectory :: String -> IO FilePath
 getAppUserDataDirectory appName
   = do modifyIOError ((`ioeSetLocation` "getAppUserDataDirectory")) $
          do s <- Win32.sHGetFolderPath nullPtr Win32.cSIDL_APPDATA nullPtr 0
             return (s ++ '\\' : appName)
- 
+
 getUserDocumentsDirectory :: IO FilePath
 getUserDocumentsDirectory
   = do modifyIOError ((`ioeSetLocation` "getUserDocumentsDirectory"))
          $ do Win32.sHGetFolderPath nullPtr Win32.cSIDL_PERSONAL nullPtr 0
- 
+
 getTemporaryDirectory :: IO FilePath
 getTemporaryDirectory = do Win32.getTemporaryDirectory
- 
+
 exeExtension :: String
 exeExtension = "exe"
diff --git a/tests/examples/DoRec.hs.parser.golden b/tests/examples/DoRec.hs.parser.golden
--- a/tests/examples/DoRec.hs.parser.golden
+++ b/tests/examples/DoRec.hs.parser.golden
@@ -1,1 +1,177 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 1 1 1 1,SrcSpan "tests/examples/DoRec.hs" 3 1 3 1,SrcSpan "tests/examples/DoRec.hs" 3 1 3 1,SrcSpan "tests/examples/DoRec.hs" 3 1 3 1,SrcSpan "tests/examples/DoRec.hs" 5 1 5 1,SrcSpan "tests/examples/DoRec.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 1 1 1 13,SrcSpan "tests/examples/DoRec.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 14 1 19, srcInfoPoints = []}) "DoRec"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 4 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 3 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 3 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 6 4 20, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 6 3 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 8 4 20, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 8 3 10,SrcSpan "tests/examples/DoRec.hs" 3 11 3 11,SrcSpan "tests/examples/DoRec.hs" 4 11 4 11,SrcSpan "tests/examples/DoRec.hs" 5 1 5 0]}) [RecStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 11 3 24, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 11 3 14,SrcSpan "tests/examples/DoRec.hs" 3 15 3 15,SrcSpan "tests/examples/DoRec.hs" 4 11 4 0]}) [LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 15 3 24, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 15 3 18]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 24, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 19 3 19,SrcSpan "tests/examples/DoRec.hs" 4 11 4 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 24, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 20, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 21 3 24, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 3 21 3 22]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 23 3 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 23 3 24, srcInfoPoints = []}) 1 "1"))) Nothing])],Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 20, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 4 18 4 19,SrcSpan "tests/examples/DoRec.hs" 4 19 4 20]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 4 18 4 19,SrcSpan "tests/examples/DoRec.hs" 4 19 4 20]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20, srcInfoPoints = [SrcSpan "tests/examples/DoRec.hs" 4 18 4 19,SrcSpan "tests/examples/DoRec.hs" 4 19 4 20]})))))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DoRec.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DoRec.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DoRec.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DoRec.hs" 3 1 3 1
+            , SrcSpan "tests/examples/DoRec.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DoRec.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DoRec.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DoRec.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "DoRec"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 4 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 3 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 1 3 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 6 4 20
+               , srcInfoPoints = [ SrcSpan "tests/examples/DoRec.hs" 3 6 3 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 8 4 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DoRec.hs" 3 8 3 10
+                      , SrcSpan "tests/examples/DoRec.hs" 3 11 3 11
+                      , SrcSpan "tests/examples/DoRec.hs" 4 11 4 11
+                      , SrcSpan "tests/examples/DoRec.hs" 5 1 5 0
+                      ]
+                  }
+                [ RecStmt
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 11 3 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/DoRec.hs" 3 11 3 14
+                          , SrcSpan "tests/examples/DoRec.hs" 3 15 3 15
+                          , SrcSpan "tests/examples/DoRec.hs" 4 11 4 0
+                          ]
+                      }
+                    [ LetStmt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 15 3 24
+                          , srcInfoPoints = [ SrcSpan "tests/examples/DoRec.hs" 3 15 3 18 ]
+                          }
+                        (BDecls
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 24
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/DoRec.hs" 3 19 3 19
+                                 , SrcSpan "tests/examples/DoRec.hs" 4 11 4 0
+                                 ]
+                             }
+                           [ PatBind
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 24
+                                 , srcInfoPoints = []
+                                 }
+                               (PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 20
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 19 3 20
+                                       , srcInfoPoints = []
+                                       }
+                                     "x"))
+                               (UnGuardedRhs
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 21 3 24
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/DoRec.hs" 3 21 3 22 ]
+                                    }
+                                  (Lit
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 3 23 3 24
+                                       , srcInfoPoints = []
+                                       }
+                                     (Int
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DoRec.hs" 3 23 3 24
+                                          , srcInfoPoints = []
+                                          }
+                                        1
+                                        "1")))
+                               Nothing
+                           ])
+                    ]
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 20
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 20
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 11 4 17
+                                  , srcInfoPoints = []
+                                  }
+                                "return")))
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DoRec.hs" 4 18 4 19
+                                , SrcSpan "tests/examples/DoRec.hs" 4 19 4 20
+                                ]
+                            }
+                          (Special
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DoRec.hs" 4 18 4 19
+                                   , SrcSpan "tests/examples/DoRec.hs" 4 19 4 20
+                                   ]
+                               }
+                             (UnitCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/DoRec.hs" 4 18 4 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DoRec.hs" 4 18 4 19
+                                      , SrcSpan "tests/examples/DoRec.hs" 4 19 4 20
+                                      ]
+                                  }))))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/DoRec.hs.prettyprinter.golden b/tests/examples/DoRec.hs.prettyprinter.golden
--- a/tests/examples/DoRec.hs.prettyprinter.golden
+++ b/tests/examples/DoRec.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE DoRec #-}
-module Main (main) where
 main
   = do rec let x = 1
        return ()
diff --git a/tests/examples/DoubleHashOp.hs.parser.golden b/tests/examples/DoubleHashOp.hs.parser.golden
--- a/tests/examples/DoubleHashOp.hs.parser.golden
+++ b/tests/examples/DoubleHashOp.hs.parser.golden
@@ -1,1 +1,317 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 13 1, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 1,SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 1,SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 1,SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 1,SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 1,SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 1,SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 1,SrcSpan "tests/examples/DoubleHashOp.hs" 13 1 13 1,SrcSpan "tests/examples/DoubleHashOp.hs" 13 1 13 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 26, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 7,SrcSpan "tests/examples/DoubleHashOp.hs" 2 21 2 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 2 8 2 20, srcInfoPoints = []}) "DoubleHashOp") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 13,SrcSpan "tests/examples/DoubleHashOp.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 14 1 27, srcInfoPoints = []}) "UnboxedTuples"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 4 6 4 8]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 5, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 2,SrcSpan "tests/examples/DoubleHashOp.hs" 4 2 4 4,SrcSpan "tests/examples/DoubleHashOp.hs" 4 4 4 5]}) "##"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 4 11 4 13]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 10, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 4 16 4 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 15, srcInfoPoints = []}) "b")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22, srcInfoPoints = []}) "Int"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 11, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 2, srcInfoPoints = []}) "a")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 3 5 5, srcInfoPoints = []}) "##") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 6 5 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 6 5 7, srcInfoPoints = []}) "b")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 8 5 11, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 5 8 5 9]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 10 5 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 10 5 11, srcInfoPoints = []}) 0 "0"))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 7 6 7 8]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 5, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 2,SrcSpan "tests/examples/DoubleHashOp.hs" 7 2 7 4,SrcSpan "tests/examples/DoubleHashOp.hs" 7 4 7 5]}) "#*"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 7 11 7 13]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 10, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 22, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 7 16 7 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 15, srcInfoPoints = []}) "b")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22, srcInfoPoints = []}) "Int"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 11, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 2, srcInfoPoints = []}) "a")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 3 8 5, srcInfoPoints = []}) "#*") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 6 8 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 6 8 7, srcInfoPoints = []}) "b")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 8 8 11, srcInfoPoints = [SrcSpan "tests/examples/DoubleHashOp.hs" 8 8 8 9]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 10 8 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 10 8 11, srcInfoPoints = []}) 1 "1"))) Nothing]],[Comment False (SrcSpan "tests/examples/DoubleHashOp.hs" 10 1 10 36) " This still does not work though:",Comment False (SrcSpan "tests/examples/DoubleHashOp.hs" 11 1 11 24) " (#) :: a -> b -> Int",Comment False (SrcSpan "tests/examples/DoubleHashOp.hs" 12 1 12 13) " a # b = 2"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 13 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 13 1 13 1
+            , SrcSpan "tests/examples/DoubleHashOp.hs" 13 1 13 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DoubleHashOp.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/DoubleHashOp.hs" 2 21 2 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 2 8 2 20
+                 , srcInfoPoints = []
+                 }
+               "DoubleHashOp")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DoubleHashOp.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DoubleHashOp.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnboxedTuples"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DoubleHashOp.hs" 4 6 4 8 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DoubleHashOp.hs" 4 1 4 2
+                    , SrcSpan "tests/examples/DoubleHashOp.hs" 4 2 4 4
+                    , SrcSpan "tests/examples/DoubleHashOp.hs" 4 4 4 5
+                    ]
+                }
+              "##"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DoubleHashOp.hs" 4 11 4 13 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 9 4 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DoubleHashOp.hs" 4 16 4 18 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 14 4 15
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 4 19 4 22
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 11
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 11
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 1 5 2
+                      , srcInfoPoints = []
+                      }
+                    "a"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 3 5 5
+                   , srcInfoPoints = []
+                   }
+                 "##")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 6 5 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 6 5 7
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 8 5 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DoubleHashOp.hs" 5 8 5 9 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 10 5 11
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 5 10 5 11
+                         , srcInfoPoints = []
+                         }
+                       0
+                       "0")))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DoubleHashOp.hs" 7 6 7 8 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DoubleHashOp.hs" 7 1 7 2
+                    , SrcSpan "tests/examples/DoubleHashOp.hs" 7 2 7 4
+                    , SrcSpan "tests/examples/DoubleHashOp.hs" 7 4 7 5
+                    ]
+                }
+              "#*"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DoubleHashOp.hs" 7 11 7 13 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 9 7 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DoubleHashOp.hs" 7 16 7 18 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 14 7 15
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 7 19 7 22
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 11
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 11
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 1 8 2
+                      , srcInfoPoints = []
+                      }
+                    "a"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 3 8 5
+                   , srcInfoPoints = []
+                   }
+                 "#*")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 6 8 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 6 8 7
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 8 8 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DoubleHashOp.hs" 8 8 8 9 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 10 8 11
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DoubleHashOp.hs" 8 10 8 11
+                         , srcInfoPoints = []
+                         }
+                       1
+                       "1")))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/DoubleHashOp.hs" 10 1 10 36)
+        " This still does not work though:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DoubleHashOp.hs" 11 1 11 24)
+        " (#) :: a -> b -> Int"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DoubleHashOp.hs" 12 1 12 13)
+        " a # b = 2"
+    ]
+  )
diff --git a/tests/examples/DoubleHashOp.hs.prettyprinter.golden b/tests/examples/DoubleHashOp.hs.prettyprinter.golden
--- a/tests/examples/DoubleHashOp.hs.prettyprinter.golden
+++ b/tests/examples/DoubleHashOp.hs.prettyprinter.golden
@@ -1,8 +1,8 @@
 {-# LANGUAGE UnboxedTuples #-}
 module DoubleHashOp where
- 
+
 ( ## ) :: a -> b -> Int
 a ## b = 0
- 
+
 ( #* ) :: a -> b -> Int
 a #* b = 1
diff --git a/tests/examples/DsStrictData.hs b/tests/examples/DsStrictData.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/DsStrictData.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE ScopedTypeVariables, StrictData, GADTs #-}
+
+-- | Tests the StrictData LANGUAGE pragma.
+module Main where
+
+import qualified Control.Exception as E
+import System.IO.Unsafe (unsafePerformIO)
+
+data Strict a = S a
+data Strict2 b = S2 !b
+data Strict3 c where
+  S3 :: c -> Strict3 c
+
+data UStrict = US {-# UNPACK #-} Int
+
+data Lazy d = L ~d
+data Lazy2 e where
+  L2 :: ~e -> Lazy2 e
+
+main :: IO ()
+main =
+  do print (isBottom (S bottom))
+     print (isBottom (S2 bottom))
+     print (isBottom (US bottom))
+     print (isBottom (S3 bottom))
+     putStrLn ""
+     print (not (isBottom (L bottom)))
+     print (not (isBottom (L2 bottom)))
+     print (not (isBottom (Just bottom))) -- sanity check
+
+------------------------------------------------------------------------
+-- Support for testing for bottom
+
+bottom :: a
+bottom = error "_|_"
+
+isBottom :: a -> Bool
+isBottom f = unsafePerformIO $
+  (E.evaluate f >> return False) `E.catches`
+    [ E.Handler (\(_ :: E.ArrayException)   -> return True)
+    , E.Handler (\(_ :: E.ErrorCall)        -> return True)
+    , E.Handler (\(_ :: E.NoMethodError)    -> return True)
+    , E.Handler (\(_ :: E.NonTermination)   -> return True)
+    , E.Handler (\(_ :: E.PatternMatchFail) -> return True)
+    , E.Handler (\(_ :: E.RecConError)      -> return True)
+    , E.Handler (\(_ :: E.RecSelError)      -> return True)
+    , E.Handler (\(_ :: E.RecUpdError)      -> return True)
+    ]
diff --git a/tests/examples/DsStrictData.hs.exactprinter.golden b/tests/examples/DsStrictData.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DsStrictData.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DsStrictData.hs.parser.golden b/tests/examples/DsStrictData.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DsStrictData.hs.parser.golden
@@ -0,0 +1,3591 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 1 1 49 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/DsStrictData.hs" 1 1 1 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 4 1 4 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 6 1 6 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 7 1 7 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 9 1 9 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 10 1 10 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 11 1 11 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 14 1 14 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 16 1 16 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 17 1 17 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 20 1 20 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 21 1 21 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 34 1 34 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 35 1 35 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 37 1 37 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 38 1 38 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 49 1 49 1
+            , SrcSpan "tests/examples/DsStrictData.hs" 49 1 49 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 4 1 4 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/DsStrictData.hs" 4 1 4 7
+                  , SrcSpan "tests/examples/DsStrictData.hs" 4 13 4 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 4 8 4 12
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 1 1 1 56
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 1 1 1 13
+                , SrcSpan "tests/examples/DsStrictData.hs" 1 33 1 34
+                , SrcSpan "tests/examples/DsStrictData.hs" 1 45 1 46
+                , SrcSpan "tests/examples/DsStrictData.hs" 1 53 1 56
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 1 14 1 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 1 35 1 45
+                , srcInfoPoints = []
+                }
+              "StrictData"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 1 47 1 52
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 6 1 6 40
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DsStrictData.hs" 6 1 6 7
+                    , SrcSpan "tests/examples/DsStrictData.hs" 6 8 6 17
+                    , SrcSpan "tests/examples/DsStrictData.hs" 6 36 6 38
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 6 18 6 35
+                  , srcInfoPoints = []
+                  }
+                "Control.Exception"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 6 39 6 40
+                     , srcInfoPoints = []
+                     }
+                   "E")
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 7 1 7 42
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DsStrictData.hs" 7 1 7 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 7 8 7 24
+                  , srcInfoPoints = []
+                  }
+                "System.IO.Unsafe"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 7 25 7 42
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DsStrictData.hs" 7 25 7 26
+                         , SrcSpan "tests/examples/DsStrictData.hs" 7 41 7 42
+                         ]
+                     }
+                   False
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 7 26 7 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 7 26 7 41
+                            , srcInfoPoints = []
+                            }
+                          "unsafePerformIO")
+                   ])
+          }
+      ]
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 1 9 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 9 15 9 16 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 1 9 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 6 9 14
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 6 9 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 6 9 12
+                     , srcInfoPoints = []
+                     }
+                   "Strict"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 13 9 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 13 9 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 17 9 20
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 17 9 20
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 17 9 18
+                      , srcInfoPoints = []
+                      }
+                    "S")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 19 9 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 9 19 9 20
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 10 1 10 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 10 16 10 17 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 10 1 10 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 10 6 10 15
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 10 6 10 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 10 6 10 13
+                     , srcInfoPoints = []
+                     }
+                   "Strict2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 10 14 10 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 10 14 10 15
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DsStrictData.hs" 10 18 10 23
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DsStrictData.hs" 10 18 10 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DsStrictData.hs" 10 18 10 20
+                      , srcInfoPoints = []
+                      }
+                    "S2")
+                 [ TyBang
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DsStrictData.hs" 10 21 10 23
+                       , srcInfoPoints = []
+                       }
+                     (BangedTy
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 10 21 10 22
+                          , srcInfoPoints = []
+                          })
+                     (NoUnpackPragma
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                          , srcInfoPoints = []
+                          })
+                     (TyVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 10 22 10 23
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DsStrictData.hs" 10 22 10 23
+                             , srcInfoPoints = []
+                             }
+                           "b"))
+                 ])
+          ]
+          []
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 11 1 14 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 11 16 11 21
+                , SrcSpan "tests/examples/DsStrictData.hs" 12 3 12 3
+                , SrcSpan "tests/examples/DsStrictData.hs" 14 1 14 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 11 1 11 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 11 6 11 15
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 11 6 11 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 11 6 11 13
+                     , srcInfoPoints = []
+                     }
+                   "Strict3"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 11 14 11 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 11 14 11 15
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 3 12 23
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DsStrictData.hs" 12 6 12 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 3 12 5
+                   , srcInfoPoints = []
+                   }
+                 "S3")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 9 12 23
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DsStrictData.hs" 12 11 12 13 ]
+                   }
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 9 12 10
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 9 12 10
+                         , srcInfoPoints = []
+                         }
+                       "c"))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DsStrictData.hs" 12 14 12 23
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 12 14 12 21
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 12 14 12 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 12 14 12 21
+                               , srcInfoPoints = []
+                               }
+                             "Strict3")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 12 22 12 23
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 12 22 12 23
+                            , srcInfoPoints = []
+                            }
+                          "c"))))
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 14 1 14 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 14 14 14 15 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 14 1 14 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 14 6 14 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 14 6 14 13
+                  , srcInfoPoints = []
+                  }
+                "UStrict"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DsStrictData.hs" 14 16 14 37
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DsStrictData.hs" 14 16 14 37
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DsStrictData.hs" 14 16 14 18
+                      , srcInfoPoints = []
+                      }
+                    "US")
+                 [ TyBang
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DsStrictData.hs" 14 19 14 37
+                       , srcInfoPoints = []
+                       }
+                     (NoStrictAnnot
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                          , srcInfoPoints = []
+                          })
+                     (Unpack
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 14 19 14 33
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/DsStrictData.hs" 14 19 14 29
+                              , SrcSpan "tests/examples/DsStrictData.hs" 14 30 14 33
+                              ]
+                          })
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 14 34 14 37
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DsStrictData.hs" 14 34 14 37
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/DsStrictData.hs" 14 34 14 37
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 16 1 16 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 16 13 16 14 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 16 1 16 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 16 6 16 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 16 6 16 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 16 6 16 10
+                     , srcInfoPoints = []
+                     }
+                   "Lazy"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 16 11 16 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 16 11 16 12
+                     , srcInfoPoints = []
+                     }
+                   "d")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/DsStrictData.hs" 16 15 16 19
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/DsStrictData.hs" 16 15 16 19
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DsStrictData.hs" 16 15 16 16
+                      , srcInfoPoints = []
+                      }
+                    "L")
+                 [ TyBang
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DsStrictData.hs" 16 17 16 19
+                       , srcInfoPoints = []
+                       }
+                     (LazyTy
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 16 17 16 18
+                          , srcInfoPoints = []
+                          })
+                     (NoUnpackPragma
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                          , srcInfoPoints = []
+                          })
+                     (TyVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/DsStrictData.hs" 16 18 16 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/DsStrictData.hs" 16 18 16 19
+                             , srcInfoPoints = []
+                             }
+                           "d"))
+                 ])
+          ]
+          []
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 17 1 20 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 17 14 17 19
+                , SrcSpan "tests/examples/DsStrictData.hs" 18 3 18 3
+                , SrcSpan "tests/examples/DsStrictData.hs" 20 1 20 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 17 1 17 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 17 6 17 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 17 6 17 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 17 6 17 11
+                     , srcInfoPoints = []
+                     }
+                   "Lazy2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 17 12 17 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 17 12 17 13
+                     , srcInfoPoints = []
+                     }
+                   "e")))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 18 3 18 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/DsStrictData.hs" 18 6 18 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 18 3 18 5
+                   , srcInfoPoints = []
+                   }
+                 "L2")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 18 9 18 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DsStrictData.hs" 18 12 18 14 ]
+                   }
+                 (TyBang
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 18 9 18 11
+                      , srcInfoPoints = []
+                      }
+                    (LazyTy
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 18 9 18 10
+                         , srcInfoPoints = []
+                         })
+                    (NoUnpackPragma
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                         , srcInfoPoints = []
+                         })
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 18 10 18 11
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 18 10 18 11
+                            , srcInfoPoints = []
+                            }
+                          "e")))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/DsStrictData.hs" 18 15 18 22
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 18 15 18 20
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 18 15 18 20
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 18 15 18 20
+                               , srcInfoPoints = []
+                               }
+                             "Lazy2")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 18 21 18 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 18 21 18 22
+                            , srcInfoPoints = []
+                            }
+                          "e"))))
+          ]
+          []
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 1 20 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 20 6 20 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 1 20 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 9 20 14
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 9 20 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 9 20 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 20 9 20 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 13
+                      , SrcSpan "tests/examples/DsStrictData.hs" 20 13 20 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 13
+                         , SrcSpan "tests/examples/DsStrictData.hs" 20 13 20 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/DsStrictData.hs" 20 12 20 13
+                            , SrcSpan "tests/examples/DsStrictData.hs" 20 13 20 14
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 21 1 29 42
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 21 1 21 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 21 1 21 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 21 6 29 42
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DsStrictData.hs" 21 6 21 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 22 3 29 42
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/DsStrictData.hs" 22 3 22 5
+                      , SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 6
+                      , SrcSpan "tests/examples/DsStrictData.hs" 34 1 34 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 33
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 33
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 22 6 22 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 22 12 22 33
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 22 12 22 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 22 32 22 33
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 22 13 22 32
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 22 13 22 21
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 22 13 22 21
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 22 13 22 21
+                                        , srcInfoPoints = []
+                                        }
+                                      "isBottom")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 22 22 22 32
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 22 22 22 23
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 22 31 22 32
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 22 23 22 31
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 22 23 22 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 22 23 22 24
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 22 23 22 24
+                                              , srcInfoPoints = []
+                                              }
+                                            "S")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 22 25 22 31
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 22 25 22 31
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 22 25 22 31
+                                              , srcInfoPoints = []
+                                              }
+                                            "bottom"))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 34
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 34
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 23 6 23 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 23 12 23 34
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 23 12 23 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 23 33 23 34
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 23 13 23 33
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 23 13 23 21
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 23 13 23 21
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 23 13 23 21
+                                        , srcInfoPoints = []
+                                        }
+                                      "isBottom")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 23 22 23 33
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 23 22 23 23
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 23 32 23 33
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 23 23 23 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 23 23 23 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 23 23 23 25
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 23 23 23 25
+                                              , srcInfoPoints = []
+                                              }
+                                            "S2")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 23 26 23 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 23 26 23 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 23 26 23 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "bottom"))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 34
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 34
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 24 6 24 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 24 12 24 34
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 24 12 24 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 24 33 24 34
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 24 13 24 33
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 24 13 24 21
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 24 13 24 21
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 24 13 24 21
+                                        , srcInfoPoints = []
+                                        }
+                                      "isBottom")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 24 22 24 33
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 24 22 24 23
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 24 32 24 33
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 24 23 24 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 24 23 24 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 24 23 24 25
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 24 23 24 25
+                                              , srcInfoPoints = []
+                                              }
+                                            "US")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 24 26 24 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 24 26 24 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 24 26 24 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "bottom"))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 34
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 34
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 25 6 25 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 25 12 25 34
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 25 12 25 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 25 33 25 34
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 25 13 25 33
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 25 13 25 21
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 25 13 25 21
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 25 13 25 21
+                                        , srcInfoPoints = []
+                                        }
+                                      "isBottom")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 25 22 25 33
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 25 22 25 23
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 25 32 25 33
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 25 23 25 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 25 23 25 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 25 23 25 25
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 25 23 25 25
+                                              , srcInfoPoints = []
+                                              }
+                                            "S3")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 25 26 25 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 25 26 25 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 25 26 25 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "bottom"))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 17
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 17
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 14
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 26 6 26 14
+                                  , srcInfoPoints = []
+                                  }
+                                "putStrLn")))
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 26 15 26 17
+                            , srcInfoPoints = []
+                            }
+                          (String
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 26 15 26 17
+                               , srcInfoPoints = []
+                               }
+                             ""
+                             "")))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 39
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 39
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 27 6 27 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 27 12 27 39
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 27 12 27 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 27 38 27 39
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 27 13 27 38
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 27 13 27 16
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 27 13 27 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 27 13 27 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "not")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 27 17 27 38
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 27 17 27 18
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 27 37 27 38
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 27 18 27 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 27 18 27 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 27 18 27 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 27 18 27 26
+                                              , srcInfoPoints = []
+                                              }
+                                            "isBottom")))
+                                   (Paren
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 27 27 27 37
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DsStrictData.hs" 27 27 27 28
+                                            , SrcSpan "tests/examples/DsStrictData.hs" 27 36 27 37
+                                            ]
+                                        }
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 27 28 27 36
+                                           , srcInfoPoints = []
+                                           }
+                                         (Con
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 27 28 27 29
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 27 28 27 29
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          27
+                                                          28
+                                                          27
+                                                          29
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "L")))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 27 30 27 36
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 27 30 27 36
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          27
+                                                          30
+                                                          27
+                                                          36
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "bottom"))))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 40
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 28 6 28 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 28 12 28 40
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 28 12 28 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 28 39 28 40
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 28 13 28 39
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 28 13 28 16
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 28 13 28 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 28 13 28 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "not")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 28 17 28 39
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 28 17 28 18
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 28 38 28 39
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 28 18 28 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 28 18 28 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 28 18 28 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 28 18 28 26
+                                              , srcInfoPoints = []
+                                              }
+                                            "isBottom")))
+                                   (Paren
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 28 27 28 38
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DsStrictData.hs" 28 27 28 28
+                                            , SrcSpan "tests/examples/DsStrictData.hs" 28 37 28 38
+                                            ]
+                                        }
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 28 28 28 37
+                                           , srcInfoPoints = []
+                                           }
+                                         (Con
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 28 28 28 30
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 28 28 28 30
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          28
+                                                          28
+                                                          28
+                                                          30
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "L2")))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 28 31 28 37
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 28 31 28 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          28
+                                                          31
+                                                          28
+                                                          37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "bottom"))))))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 42
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 42
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 29 6 29 11
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 29 12 29 42
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 29 12 29 13
+                                , SrcSpan "tests/examples/DsStrictData.hs" 29 41 29 42
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 29 13 29 41
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 29 13 29 16
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 29 13 29 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 29 13 29 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "not")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 29 17 29 41
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/DsStrictData.hs" 29 17 29 18
+                                      , SrcSpan "tests/examples/DsStrictData.hs" 29 40 29 41
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 29 18 29 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 29 18 29 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 29 18 29 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 29 18 29 26
+                                              , srcInfoPoints = []
+                                              }
+                                            "isBottom")))
+                                   (Paren
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 29 27 29 40
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/DsStrictData.hs" 29 27 29 28
+                                            , SrcSpan "tests/examples/DsStrictData.hs" 29 39 29 40
+                                            ]
+                                        }
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 29 28 29 39
+                                           , srcInfoPoints = []
+                                           }
+                                         (Con
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 29 28 29 32
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 29 28 29 32
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          29
+                                                          28
+                                                          29
+                                                          32
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "Just")))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/DsStrictData.hs" 29 33 29 39
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/DsStrictData.hs" 29 33 29 39
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/DsStrictData.hs"
+                                                          29
+                                                          33
+                                                          29
+                                                          39
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "bottom"))))))))))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 34 1 34 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 34 8 34 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 34 1 34 7
+                , srcInfoPoints = []
+                }
+              "bottom"
+          ]
+          (TyVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DsStrictData.hs" 34 11 34 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 34 11 34 12
+                  , srcInfoPoints = []
+                  }
+                "a"))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 35 1 35 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 35 1 35 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 35 1 35 7
+                  , srcInfoPoints = []
+                  }
+                "bottom"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 35 8 35 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DsStrictData.hs" 35 8 35 9 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 35 10 35 21
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 35 10 35 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DsStrictData.hs" 35 10 35 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/DsStrictData.hs" 35 10 35 15
+                           , srcInfoPoints = []
+                           }
+                         "error")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 35 16 35 21
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DsStrictData.hs" 35 16 35 21
+                        , srcInfoPoints = []
+                        }
+                      "_|_"
+                      "_|_"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 37 1 37 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/DsStrictData.hs" 37 10 37 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 37 1 37 9
+                , srcInfoPoints = []
+                }
+              "isBottom"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/DsStrictData.hs" 37 13 37 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/DsStrictData.hs" 37 15 37 17 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 37 13 37 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 37 13 37 14
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/DsStrictData.hs" 37 18 37 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/DsStrictData.hs" 37 18 37 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/DsStrictData.hs" 37 18 37 22
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 38 1 48 6
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 38 1 48 6
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 38 1 38 9
+                   , srcInfoPoints = []
+                   }
+                 "isBottom")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/DsStrictData.hs" 38 10 38 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/DsStrictData.hs" 38 10 38 11
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 38 12 48 6
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/DsStrictData.hs" 38 12 38 13 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 38 14 48 6
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 38 14 38 29
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 38 14 38 29
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 38 14 38 29
+                               , srcInfoPoints = []
+                               }
+                             "unsafePerformIO")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/DsStrictData.hs" 38 30 38 31
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 38 30 38 31
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 38 30 38 31
+                               , srcInfoPoints = []
+                               }
+                             "$")))
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 39 3 48 6
+                         , srcInfoPoints = []
+                         }
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 39 3 39 33
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 39 3 39 4
+                                , SrcSpan "tests/examples/DsStrictData.hs" 39 32 39 33
+                                ]
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 32
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 14
+                                     , srcInfoPoints = []
+                                     }
+                                   (Qual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 14
+                                        , srcInfoPoints = []
+                                        }
+                                      (ModuleName
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 14
+                                           , srcInfoPoints = []
+                                           }
+                                         "E")
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 39 4 39 14
+                                           , srcInfoPoints = []
+                                           }
+                                         "evaluate")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 39 15 39 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 39 15 39 16
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 39 15 39 16
+                                           , srcInfoPoints = []
+                                           }
+                                         "f"))))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 39 17 39 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 39 17 39 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 39 17 39 19
+                                        , srcInfoPoints = []
+                                        }
+                                      ">>")))
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 39 20 39 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 39 20 39 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 39 20 39 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 39 20 39 26
+                                           , srcInfoPoints = []
+                                           }
+                                         "return")))
+                                (Con
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/DsStrictData.hs" 39 27 39 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/DsStrictData.hs" 39 27 39 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/DsStrictData.hs" 39 27 39 32
+                                           , srcInfoPoints = []
+                                           }
+                                         "False"))))))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/DsStrictData.hs" 39 34 39 45
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 39 34 39 35
+                                , SrcSpan "tests/examples/DsStrictData.hs" 39 35 39 44
+                                , SrcSpan "tests/examples/DsStrictData.hs" 39 44 39 45
+                                ]
+                            }
+                          (Qual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/DsStrictData.hs" 39 34 39 45
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/DsStrictData.hs" 39 34 39 35
+                                   , SrcSpan "tests/examples/DsStrictData.hs" 39 35 39 44
+                                   , SrcSpan "tests/examples/DsStrictData.hs" 39 44 39 45
+                                   ]
+                               }
+                             (ModuleName
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 39 35 39 44
+                                  , srcInfoPoints = []
+                                  }
+                                "E")
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/DsStrictData.hs" 39 35 39 44
+                                  , srcInfoPoints = []
+                                  }
+                                "catches")))
+                       (List
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 40 5 48 6
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/DsStrictData.hs" 40 5 40 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 41 5 41 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 42 5 42 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 43 5 43 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 44 5 44 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 45 5 45 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 46 5 46 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 47 5 47 6
+                                , SrcSpan "tests/examples/DsStrictData.hs" 48 5 48 6
+                                ]
+                            }
+                          [ App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 40 7 40 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 40 7 40 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 40 7 40 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 40 7 40 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 40 7 40 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 40 17 40 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 40 17 40 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 40 59 40 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 40 18 40 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 40 18 40 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 40 45 40 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 40 19 40 42
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 40 19 40 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 40 41 40 42
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 40 20 40 41
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 40 22 40 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 40 20 40 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 40 25 40 41
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         40
+                                                         25
+                                                         40
+                                                         41
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            40
+                                                            25
+                                                            40
+                                                            41
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            40
+                                                            25
+                                                            40
+                                                            41
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "ArrayException"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 40 48 40 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 40 48 40 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 40 48 40 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 40 48 40 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 40 55 40 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 40 55 40 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 40 55 40 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 41 7 41 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 41 7 41 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 41 7 41 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 41 7 41 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 41 7 41 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 41 17 41 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 41 17 41 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 41 59 41 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 41 18 41 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 41 18 41 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 41 45 41 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 41 19 41 37
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 41 19 41 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 41 36 41 37
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 41 20 41 36
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 41 22 41 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 41 20 41 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 41 25 41 36
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         41
+                                                         25
+                                                         41
+                                                         36
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            41
+                                                            25
+                                                            41
+                                                            36
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            41
+                                                            25
+                                                            41
+                                                            36
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "ErrorCall"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 41 48 41 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 41 48 41 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 41 48 41 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 41 48 41 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 41 55 41 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 41 55 41 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 41 55 41 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 42 7 42 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 42 7 42 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 42 7 42 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 42 7 42 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 42 7 42 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 42 17 42 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 42 17 42 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 42 59 42 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 42 18 42 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 42 18 42 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 42 45 42 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 42 19 42 41
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 42 19 42 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 42 40 42 41
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 42 20 42 40
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 42 22 42 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 42 20 42 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 42 25 42 40
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         42
+                                                         25
+                                                         42
+                                                         40
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            42
+                                                            25
+                                                            42
+                                                            40
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            42
+                                                            25
+                                                            42
+                                                            40
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "NoMethodError"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 42 48 42 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 42 48 42 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 42 48 42 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 42 48 42 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 42 55 42 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 42 55 42 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 42 55 42 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 43 7 43 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 43 7 43 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 43 7 43 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 43 7 43 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 43 7 43 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 43 17 43 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 43 17 43 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 43 59 43 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 43 18 43 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 43 18 43 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 43 45 43 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 43 19 43 42
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 43 19 43 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 43 41 43 42
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 43 20 43 41
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 43 22 43 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 43 20 43 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 43 25 43 41
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         43
+                                                         25
+                                                         43
+                                                         41
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            43
+                                                            25
+                                                            43
+                                                            41
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            43
+                                                            25
+                                                            43
+                                                            41
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "NonTermination"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 43 48 43 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 43 48 43 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 43 48 43 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 43 48 43 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 43 55 43 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 43 55 43 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 43 55 43 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 44 7 44 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 44 7 44 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 44 7 44 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 44 7 44 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 44 7 44 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 44 17 44 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 44 17 44 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 44 59 44 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 44 18 44 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 44 18 44 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 44 45 44 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 44 19 44 44
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 44 19 44 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 44 43 44 44
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 44 20 44 43
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 44 22 44 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 44 20 44 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 44 25 44 43
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         44
+                                                         25
+                                                         44
+                                                         43
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            44
+                                                            25
+                                                            44
+                                                            43
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            44
+                                                            25
+                                                            44
+                                                            43
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "PatternMatchFail"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 44 48 44 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 44 48 44 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 44 48 44 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 44 48 44 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 44 55 44 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 44 55 44 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 44 55 44 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 45 7 45 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 45 7 45 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 45 7 45 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 45 7 45 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 45 7 45 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 45 17 45 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 45 17 45 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 45 59 45 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 45 18 45 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 45 18 45 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 45 45 45 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 45 19 45 39
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 45 19 45 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 45 38 45 39
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 45 20 45 38
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 45 22 45 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 45 20 45 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 45 25 45 38
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         45
+                                                         25
+                                                         45
+                                                         38
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            45
+                                                            25
+                                                            45
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            45
+                                                            25
+                                                            45
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "RecConError"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 45 48 45 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 45 48 45 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 45 48 45 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 45 48 45 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 45 55 45 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 45 55 45 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 45 55 45 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 46 7 46 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 46 7 46 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 46 7 46 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 46 7 46 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 46 7 46 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 46 17 46 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 46 17 46 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 46 59 46 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 46 18 46 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 46 18 46 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 46 45 46 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 46 19 46 39
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 46 19 46 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 46 38 46 39
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 46 20 46 38
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 46 22 46 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 46 20 46 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 46 25 46 38
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         46
+                                                         25
+                                                         46
+                                                         38
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            46
+                                                            25
+                                                            46
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            46
+                                                            25
+                                                            46
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "RecSelError"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 46 48 46 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 46 48 46 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 46 48 46 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 46 48 46 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 46 55 46 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 46 55 46 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 46 55 46 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 47 7 47 60
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 47 7 47 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 47 7 47 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 47 7 47 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "E")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 47 7 47 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "Handler")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/DsStrictData.hs" 47 17 47 60
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/DsStrictData.hs" 47 17 47 18
+                                       , SrcSpan "tests/examples/DsStrictData.hs" 47 59 47 60
+                                       ]
+                                   }
+                                 (Lambda
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/DsStrictData.hs" 47 18 47 59
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/DsStrictData.hs" 47 18 47 19
+                                          , SrcSpan "tests/examples/DsStrictData.hs" 47 45 47 47
+                                          ]
+                                      }
+                                    [ PParen
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/DsStrictData.hs" 47 19 47 39
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/DsStrictData.hs" 47 19 47 20
+                                              , SrcSpan "tests/examples/DsStrictData.hs" 47 38 47 39
+                                              ]
+                                          }
+                                        (PatTypeSig
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/DsStrictData.hs" 47 20 47 38
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 47 22 47 24
+                                                 ]
+                                             }
+                                           (PWildCard
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 47 20 47 21
+                                                , srcInfoPoints = []
+                                                })
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/DsStrictData.hs" 47 25 47 38
+                                                , srcInfoPoints = []
+                                                }
+                                              (Qual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/DsStrictData.hs"
+                                                         47
+                                                         25
+                                                         47
+                                                         38
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (ModuleName
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            47
+                                                            25
+                                                            47
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "E")
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/DsStrictData.hs"
+                                                            47
+                                                            25
+                                                            47
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "RecUpdError"))))
+                                    ]
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/DsStrictData.hs" 47 48 47 59
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 47 48 47 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 47 48 47 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 47 48 47 54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "return")))
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/DsStrictData.hs" 47 55 47 59
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/DsStrictData.hs" 47 55 47 59
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/DsStrictData.hs" 47 55 47 59
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))))
+                          ]))))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/DsStrictData.hs" 3 1 3 43)
+        " | Tests the StrictData LANGUAGE pragma."
+    , Comment
+        False
+        (SrcSpan "tests/examples/DsStrictData.hs" 29 43 29 58)
+        " sanity check"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DsStrictData.hs" 31 1 31 73)
+        "----------------------------------------------------------------------"
+    , Comment
+        False
+        (SrcSpan "tests/examples/DsStrictData.hs" 32 1 32 34)
+        " Support for testing for bottom"
+    ]
+  )
diff --git a/tests/examples/DsStrictData.hs.prettyparser.golden b/tests/examples/DsStrictData.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DsStrictData.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/DsStrictData.hs.prettyprinter.golden b/tests/examples/DsStrictData.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/DsStrictData.hs.prettyprinter.golden
@@ -0,0 +1,45 @@
+{-# LANGUAGE ScopedTypeVariables, StrictData, GADTs #-}
+module Main where
+import qualified Control.Exception as E
+import System.IO.Unsafe (unsafePerformIO)
+
+data Strict a = S a
+
+data Strict2 b = S2 !b
+
+data Strict3 c where
+        S3 :: c -> Strict3 c
+
+data UStrict = US {-# UNPACK #-} Int
+
+data Lazy d = L ~d
+
+data Lazy2 e where
+        L2 :: ~e -> Lazy2 e
+
+main :: IO ()
+main
+  = do print (isBottom (S bottom))
+       print (isBottom (S2 bottom))
+       print (isBottom (US bottom))
+       print (isBottom (S3 bottom))
+       putStrLn ""
+       print (not (isBottom (L bottom)))
+       print (not (isBottom (L2 bottom)))
+       print (not (isBottom (Just bottom)))
+
+bottom :: a
+bottom = error "_|_"
+
+isBottom :: a -> Bool
+isBottom f
+  = unsafePerformIO $
+      (E.evaluate f >> return False) `E.catches`
+        [E.Handler (\ (_ :: E.ArrayException) -> return True),
+         E.Handler (\ (_ :: E.ErrorCall) -> return True),
+         E.Handler (\ (_ :: E.NoMethodError) -> return True),
+         E.Handler (\ (_ :: E.NonTermination) -> return True),
+         E.Handler (\ (_ :: E.PatternMatchFail) -> return True),
+         E.Handler (\ (_ :: E.RecConError) -> return True),
+         E.Handler (\ (_ :: E.RecSelError) -> return True),
+         E.Handler (\ (_ :: E.RecUpdError) -> return True)]
diff --git a/tests/examples/EmptyAnn.hs.parser.golden b/tests/examples/EmptyAnn.hs.parser.golden
--- a/tests/examples/EmptyAnn.hs.parser.golden
+++ b/tests/examples/EmptyAnn.hs.parser.golden
@@ -1,1 +1,49 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1]}) Nothing [AnnModulePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 38, srcInfoPoints = [SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 8,SrcSpan "tests/examples/EmptyAnn.hs" 1 35 1 38]}) (Ann (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 9 1 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 9 1 12, srcInfoPoints = []}) "foo") (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 13 1 34, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 13 1 34, srcInfoPoints = []}) "Hlint: ignore Test4" "Hlint: ignore Test4")))] [] [],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyAnn.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      [ AnnModulePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyAnn.hs" 1 1 1 8
+                , SrcSpan "tests/examples/EmptyAnn.hs" 1 35 1 38
+                ]
+            }
+          (Ann
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 9 1 34
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 9 1 12
+                  , srcInfoPoints = []
+                  }
+                "foo")
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 13 1 34
+                  , srcInfoPoints = []
+                  }
+                (String
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyAnn.hs" 1 13 1 34
+                     , srcInfoPoints = []
+                     }
+                   "Hlint: ignore Test4"
+                   "Hlint: ignore Test4")))
+      ]
+      []
+      []
+  , []
+  )
diff --git a/tests/examples/EmptyAnn.hs.prettyprinter.golden b/tests/examples/EmptyAnn.hs.prettyprinter.golden
--- a/tests/examples/EmptyAnn.hs.prettyprinter.golden
+++ b/tests/examples/EmptyAnn.hs.prettyprinter.golden
@@ -1,2 +1,1 @@
 {-# ANN foo "Hlint: ignore Test4" #-}
-module Main (main) where
diff --git a/tests/examples/EmptyCase.hs b/tests/examples/EmptyCase.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyCase.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE EmptyCase #-}
+{-# LANGUAGE LambdaCase #-}
+
+f x = case x of {}
+
+g x = \case {}
diff --git a/tests/examples/EmptyCase.hs.exactprinter.golden b/tests/examples/EmptyCase.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyCase.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/EmptyCase.hs.parser.golden b/tests/examples/EmptyCase.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyCase.hs.parser.golden
@@ -0,0 +1,159 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyCase.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 6 1 6 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 7 1 7 1
+            , SrcSpan "tests/examples/EmptyCase.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyCase.hs" 1 1 1 13
+                , SrcSpan "tests/examples/EmptyCase.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "EmptyCase"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 2 1 2 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyCase.hs" 2 1 2 13
+                , SrcSpan "tests/examples/EmptyCase.hs" 2 25 2 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 2 14 2 24
+                , srcInfoPoints = []
+                }
+              "LambdaCase"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 3 4 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 3 4 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 5 4 19
+                   , srcInfoPoints = [ SrcSpan "tests/examples/EmptyCase.hs" 4 5 4 6 ]
+                   }
+                 (Case
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 7 4 19
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/EmptyCase.hs" 4 7 4 11
+                          , SrcSpan "tests/examples/EmptyCase.hs" 4 14 4 16
+                          , SrcSpan "tests/examples/EmptyCase.hs" 4 17 4 18
+                          , SrcSpan "tests/examples/EmptyCase.hs" 4 18 4 19
+                          ]
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 12 4 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 12 4 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 4 12 4 13
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    []))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 1 6 15
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 1 6 15
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 1 6 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 3 6 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 3 6 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 5 6 15
+                   , srcInfoPoints = [ SrcSpan "tests/examples/EmptyCase.hs" 6 5 6 6 ]
+                   }
+                 (LCase
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/EmptyCase.hs" 6 7 6 15
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/EmptyCase.hs" 6 7 6 8
+                          , SrcSpan "tests/examples/EmptyCase.hs" 6 8 6 12
+                          , SrcSpan "tests/examples/EmptyCase.hs" 6 13 6 14
+                          , SrcSpan "tests/examples/EmptyCase.hs" 6 14 6 15
+                          ]
+                      }
+                    []))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyCase.hs.prettyparser.golden b/tests/examples/EmptyCase.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyCase.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/EmptyCase.hs.prettyprinter.golden b/tests/examples/EmptyCase.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyCase.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE EmptyCase #-}
+{-# LANGUAGE LambdaCase #-}
+f x = case x of { }
+g x = \case { }
diff --git a/tests/examples/EmptyContext.hs.parser.golden b/tests/examples/EmptyContext.hs.parser.golden
--- a/tests/examples/EmptyContext.hs.parser.golden
+++ b/tests/examples/EmptyContext.hs.parser.golden
@@ -1,1 +1,79 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyContext.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyContext.hs" 2 1 2 1]}) Nothing [] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/EmptyContext.hs" 1 11 1 13]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 10, srcInfoPoints = []}) "happyThen"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 23, srcInfoPoints = []}) Nothing (Just (CxEmpty (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 19, srcInfoPoints = [SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 15,SrcSpan "tests/examples/EmptyContext.hs" 1 15 1 16,SrcSpan "tests/examples/EmptyContext.hs" 1 17 1 19]}))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 23, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21, srcInfoPoints = []}) "P"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 22 1 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 22 1 23, srcInfoPoints = []}) "a"))))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyContext.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyContext.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyContext.hs" 1 11 1 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 1 1 10
+                , srcInfoPoints = []
+                }
+              "happyThen"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 23
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxEmpty
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 19
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/EmptyContext.hs" 1 14 1 15
+                         , SrcSpan "tests/examples/EmptyContext.hs" 1 15 1 16
+                         , SrcSpan "tests/examples/EmptyContext.hs" 1 17 1 19
+                         ]
+                     }))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 23
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 20 1 21
+                           , srcInfoPoints = []
+                           }
+                         "P")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 22 1 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/EmptyContext.hs" 1 22 1 23
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyContext.hs.prettyparser.golden b/tests/examples/EmptyContext.hs.prettyparser.golden
--- a/tests/examples/EmptyContext.hs.prettyparser.golden
+++ b/tests/examples/EmptyContext.hs.prettyparser.golden
@@ -1,10 +1,1 @@
-Roundtrip test failed
-
-AST 1:
-
-Module (SrcLoc "" -1 -1) (ModuleName "Main") [] Nothing (Just [EVar NoNamespace (UnQual (Ident "main"))]) [] [TypeSig (SrcLoc "" -1 -1) [Ident "happyThen"] (TyForall Nothing [] (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a"))))]
-
-AST 2:
-
-Module (SrcLoc "" -1 -1) (ModuleName "Main") [] Nothing (Just [EVar NoNamespace (UnQual (Ident "main"))]) [] [TypeSig (SrcLoc "" -1 -1) [Ident "happyThen"] (TyApp (TyCon (UnQual (Ident "P"))) (TyVar (Ident "a")))]
-
+Match
diff --git a/tests/examples/EmptyContext.hs.prettyprinter.golden b/tests/examples/EmptyContext.hs.prettyprinter.golden
--- a/tests/examples/EmptyContext.hs.prettyprinter.golden
+++ b/tests/examples/EmptyContext.hs.prettyprinter.golden
@@ -1,3 +1,1 @@
-module Main (main) where
- 
-happyThen :: P a
+happyThen :: () => P a
diff --git a/tests/examples/EmptyFunDepPremise.hs.parser.golden b/tests/examples/EmptyFunDepPremise.hs.parser.golden
--- a/tests/examples/EmptyFunDepPremise.hs.parser.golden
+++ b/tests/examples/EmptyFunDepPremise.hs.parser.golden
@@ -1,1 +1,115 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 1,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 1,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 5 1 5 1,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 32, srcInfoPoints = [SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 7,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 27 2 32]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 8 2 26, srcInfoPoints = []}) "EmptyFunDepPremise") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 40, srcInfoPoints = [SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 13,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 37 1 40]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 14 1 36, srcInfoPoints = []}) "FunctionalDependencies"]] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 17, srcInfoPoints = [SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 6,SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 11 4 12]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 10, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 8, srcInfoPoints = []}) "C")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 9 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 9 4 10, srcInfoPoints = []}) "a"))) [FunDep (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 13 4 17, srcInfoPoints = [SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 13 4 15]}) [] [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 16 4 17, srcInfoPoints = []}) "a"]] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 5 1 5 1
+            , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 32
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 27 2 32
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/EmptyFunDepPremise.hs" 2 8 2 26
+                 , srcInfoPoints = []
+                 }
+               "EmptyFunDepPremise")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 1 1 13
+                , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 37 1 40
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/EmptyFunDepPremise.hs" 1 14 1 36
+                , srcInfoPoints = []
+                }
+              "FunctionalDependencies"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 1 4 6
+                , SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 11 4 12
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 7 4 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 9 4 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 9 4 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ FunDep
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 13 4 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 13 4 15 ]
+                }
+              []
+              [ Ident
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/EmptyFunDepPremise.hs" 4 16 4 17
+                    , srcInfoPoints = []
+                    }
+                  "a"
+              ]
+          ]
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyFunDepPremise.hs.prettyprinter.golden b/tests/examples/EmptyFunDepPremise.hs.prettyprinter.golden
--- a/tests/examples/EmptyFunDepPremise.hs.prettyprinter.golden
+++ b/tests/examples/EmptyFunDepPremise.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 {-# LANGUAGE FunctionalDependencies #-}
 module EmptyFunDepPremise where
- 
+
 class C a | -> a
diff --git a/tests/examples/EmptyInstance.hs.parser.golden b/tests/examples/EmptyInstance.hs.parser.golden
--- a/tests/examples/EmptyInstance.hs.parser.golden
+++ b/tests/examples/EmptyInstance.hs.parser.golden
@@ -1,1 +1,141 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1,SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 1,SrcSpan "tests/examples/EmptyInstance.hs" 5 1 5 1,SrcSpan "tests/examples/EmptyInstance.hs" 5 1 5 1]}) Nothing [] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 1 3 0, srcInfoPoints = [SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 9,SrcSpan "tests/examples/EmptyInstance.hs" 1 27 1 32,SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1,SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1,SrcSpan "tests/examples/EmptyInstance.hs" 3 0 3 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 26, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 26, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21, srcInfoPoints = []}) "Traversable"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26, srcInfoPoints = []}) "Tree"))))) (Just []),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 9, srcInfoPoints = [SrcSpan "tests/examples/EmptyInstance.hs" 3 3 3 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 2, srcInfoPoints = []}) "x"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9, srcInfoPoints = []}) "Int"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 6, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 3 4 6, srcInfoPoints = [SrcSpan "tests/examples/EmptyInstance.hs" 4 3 4 4]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 5 4 6, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 5 4 6, srcInfoPoints = []}) 1 "1"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 5 1 5 1
+            , SrcSpan "tests/examples/EmptyInstance.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 1 3 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyInstance.hs" 1 1 1 9
+                , SrcSpan "tests/examples/EmptyInstance.hs" 1 27 1 32
+                , SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1
+                , SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 1
+                , SrcSpan "tests/examples/EmptyInstance.hs" 3 0 3 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 26
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 26
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 10 1 21
+                           , srcInfoPoints = []
+                           }
+                         "Traversable")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 1 22 1 26
+                           , srcInfoPoints = []
+                           }
+                         "Tree")))))
+          (Just [])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 9
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyInstance.hs" 3 3 3 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 1 3 2
+                , srcInfoPoints = []
+                }
+              "x"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 3 6 3 9
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 6
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 1 4 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 3 4 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/EmptyInstance.hs" 4 3 4 4 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 5 4 6
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyInstance.hs" 4 5 4 6
+                     , srcInfoPoints = []
+                     }
+                   1
+                   "1")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyInstance.hs.prettyprinter.golden b/tests/examples/EmptyInstance.hs.prettyprinter.golden
--- a/tests/examples/EmptyInstance.hs.prettyprinter.golden
+++ b/tests/examples/EmptyInstance.hs.prettyprinter.golden
@@ -1,6 +1,4 @@
-module Main (main) where
- 
-instance Traversable Tree
- 
+instance Traversable Tree where
+
 x :: Int
 x = 1
diff --git a/tests/examples/EmptyList.hs.parser.golden b/tests/examples/EmptyList.hs.parser.golden
--- a/tests/examples/EmptyList.hs.parser.golden
+++ b/tests/examples/EmptyList.hs.parser.golden
@@ -1,1 +1,65 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/EmptyList.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyList.hs" 1 1 1 1,SrcSpan "tests/examples/EmptyList.hs" 3 1 3 1,SrcSpan "tests/examples/EmptyList.hs" 4 1 4 1,SrcSpan "tests/examples/EmptyList.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/EmptyList.hs" 1 1 1 7,SrcSpan "tests/examples/EmptyList.hs" 1 18 1 23]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 8 1 17, srcInfoPoints = []}) "EmptyList") Nothing Nothing)) [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 12, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 7, srcInfoPoints = []}) "eAttrs")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 8 3 12, srcInfoPoints = [SrcSpan "tests/examples/EmptyList.hs" 3 8 3 9]}) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 10 3 12, srcInfoPoints = [SrcSpan "tests/examples/EmptyList.hs" 3 10 3 11,SrcSpan "tests/examples/EmptyList.hs" 3 11 3 12]}) [])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyList.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyList.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyList.hs" 3 1 3 1
+            , SrcSpan "tests/examples/EmptyList.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EmptyList.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 1 1 23
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/EmptyList.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/EmptyList.hs" 1 18 1 23
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 1 8 1 17
+                 , srcInfoPoints = []
+                 }
+               "EmptyList")
+            Nothing
+            Nothing))
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 12
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 1 3 7
+                  , srcInfoPoints = []
+                  }
+                "eAttrs"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 8 3 12
+               , srcInfoPoints = [ SrcSpan "tests/examples/EmptyList.hs" 3 8 3 9 ]
+               }
+             (List
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyList.hs" 3 10 3 12
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/EmptyList.hs" 3 10 3 11
+                      , SrcSpan "tests/examples/EmptyList.hs" 3 11 3 12
+                      ]
+                  }
+                []))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyWhere.hs b/tests/examples/EmptyWhere.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyWhere.hs
@@ -0,0 +1,1 @@
+foo = 5 where
diff --git a/tests/examples/EmptyWhere.hs.exactprinter.golden b/tests/examples/EmptyWhere.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyWhere.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/EmptyWhere.hs.parser.golden b/tests/examples/EmptyWhere.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyWhere.hs.parser.golden
@@ -0,0 +1,64 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EmptyWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/EmptyWhere.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EmptyWhere.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 1 2 1
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EmptyWhere.hs" 1 9 1 14 ]
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 1 1 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 1 1 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 5 1 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/EmptyWhere.hs" 1 5 1 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 7 1 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 1 7 1 8
+                     , srcInfoPoints = []
+                     }
+                   5
+                   "5")))
+          (Just
+             (BDecls
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/EmptyWhere.hs" 2 0 2 1
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/EmptyWhere.hs" 2 1 2 1
+                      , SrcSpan "tests/examples/EmptyWhere.hs" 2 1 2 1
+                      , SrcSpan "tests/examples/EmptyWhere.hs" 2 0 2 0
+                      ]
+                  }
+                []))
+      ]
+  , []
+  )
diff --git a/tests/examples/EmptyWhere.hs.prettyparser.golden b/tests/examples/EmptyWhere.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyWhere.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/EmptyWhere.hs.prettyprinter.golden b/tests/examples/EmptyWhere.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/EmptyWhere.hs.prettyprinter.golden
@@ -0,0 +1,2 @@
+foo = 5
+  where
diff --git a/tests/examples/EqualityConstraints1.hs.parser.golden b/tests/examples/EqualityConstraints1.hs.parser.golden
--- a/tests/examples/EqualityConstraints1.hs.parser.golden
+++ b/tests/examples/EqualityConstraints1.hs.parser.golden
@@ -1,1 +1,178 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 6 1 6 1,SrcSpan "tests/examples/EqualityConstraints1.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 23, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 13,SrcSpan "tests/examples/EqualityConstraints1.hs" 2 20 2 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 2 14 2 19, srcInfoPoints = []}) "GADTs"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 20, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 4 5 4 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 4, srcInfoPoints = []}) "one"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 20, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 15, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18]}) (EqualP (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 15, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 4 10 4 11]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 9, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15, srcInfoPoints = []}) "Int")))))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 19 4 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 4 19 4 20, srcInfoPoints = []}) "a"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 8, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 4, srcInfoPoints = []}) "one")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 5 5 8, srcInfoPoints = [SrcSpan "tests/examples/EqualityConstraints1.hs" 5 5 5 6]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 7 5 8, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/EqualityConstraints1.hs" 5 7 5 8, srcInfoPoints = []}) 1 "1"))) Nothing],[Comment False (SrcSpan "tests/examples/EqualityConstraints1.hs" 1 1 1 63) " https://github.com/haskell-suite/haskell-src-exts/issues/91"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 6 1 6 1
+            , SrcSpan "tests/examples/EqualityConstraints1.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EqualityConstraints1.hs" 2 1 2 13
+                , SrcSpan "tests/examples/EqualityConstraints1.hs" 2 20 2 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/EqualityConstraints1.hs" 2 14 2 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 5 4 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/EqualityConstraints1.hs" 4 1 4 4
+                , srcInfoPoints = []
+                }
+              "one"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 20
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 10 4 11
+                         , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 10 4 11
+                            , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18
+                            ]
+                        }
+                      (TyEquals
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 18
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 10 4 11
+                               , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 9
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 9
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/EqualityConstraints1.hs" 4 19 4 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/EqualityConstraints1.hs" 4 19 4 20
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/EqualityConstraints1.hs" 5 1 5 4
+                  , srcInfoPoints = []
+                  }
+                "one"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/EqualityConstraints1.hs" 5 5 5 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/EqualityConstraints1.hs" 5 5 5 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/EqualityConstraints1.hs" 5 7 5 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/EqualityConstraints1.hs" 5 7 5 8
+                     , srcInfoPoints = []
+                     }
+                   1
+                   "1")))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/EqualityConstraints1.hs" 1 1 1 63)
+        " https://github.com/haskell-suite/haskell-src-exts/issues/91"
+    ]
+  )
diff --git a/tests/examples/EqualityConstraints1.hs.prettyprinter.golden b/tests/examples/EqualityConstraints1.hs.prettyprinter.golden
--- a/tests/examples/EqualityConstraints1.hs.prettyprinter.golden
+++ b/tests/examples/EqualityConstraints1.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 one :: a ~ Int => a
 one = 1
diff --git a/tests/examples/EqualityConstraints2.hs.exactprinter.golden b/tests/examples/EqualityConstraints2.hs.exactprinter.golden
--- a/tests/examples/EqualityConstraints2.hs.exactprinter.golden
+++ b/tests/examples/EqualityConstraints2.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "TypeFamilies or GADTs is not enabled"
+ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "At least one of TypeFamilies or GADTs language extensions needs to be enabled. Please add: {-# LANGUAGE TypeFamilies #-} or {-# LANGUAGE GADTs #-} language pragma at the top of your module."
diff --git a/tests/examples/EqualityConstraints2.hs.parser.golden b/tests/examples/EqualityConstraints2.hs.parser.golden
--- a/tests/examples/EqualityConstraints2.hs.parser.golden
+++ b/tests/examples/EqualityConstraints2.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "TypeFamilies or GADTs is not enabled"
+ParseFailed
+  (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19)
+  "At least one of TypeFamilies or GADTs language extensions needs to be enabled. Please add: {-# LANGUAGE TypeFamilies #-} or {-# LANGUAGE GADTs #-} language pragma at the top of your module."
diff --git a/tests/examples/EqualityConstraints2.hs.prettyparser.golden b/tests/examples/EqualityConstraints2.hs.prettyparser.golden
--- a/tests/examples/EqualityConstraints2.hs.prettyparser.golden
+++ b/tests/examples/EqualityConstraints2.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "TypeFamilies or GADTs is not enabled"
+ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "At least one of TypeFamilies or GADTs language extensions needs to be enabled. Please add: {-# LANGUAGE TypeFamilies #-} or {-# LANGUAGE GADTs #-} language pragma at the top of your module."
diff --git a/tests/examples/EqualityConstraints2.hs.prettyprinter.golden b/tests/examples/EqualityConstraints2.hs.prettyprinter.golden
--- a/tests/examples/EqualityConstraints2.hs.prettyprinter.golden
+++ b/tests/examples/EqualityConstraints2.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "TypeFamilies or GADTs is not enabled"
+ParseFailed (SrcLoc "tests/examples/EqualityConstraints2.hs" 1 19) "At least one of TypeFamilies or GADTs language extensions needs to be enabled. Please add: {-# LANGUAGE TypeFamilies #-} or {-# LANGUAGE GADTs #-} language pragma at the top of your module."
diff --git a/tests/examples/ExplicitNamespaces1.hs.parser.golden b/tests/examples/ExplicitNamespaces1.hs.parser.golden
--- a/tests/examples/ExplicitNamespaces1.hs.parser.golden
+++ b/tests/examples/ExplicitNamespaces1.hs.parser.golden
@@ -1,1 +1,237 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 5 1 5 1,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 36, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 13,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 33 1 36]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 14 1 32, srcInfoPoints = []}) "ExplicitNamespaces"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 37, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 8 2 23, srcInfoPoints = []}) "Data.Array.Repa", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 24 2 37, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 24 2 25,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 36 2 37]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 35, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 35]}) (TypeNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30]})) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 35, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 32,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 32 2 34,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 34 2 35]}) "++")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 56, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 8 3 23, srcInfoPoints = []}) "Data.Array.Repa", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 24 3 56, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 24 3 25,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 55 3 56]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 54, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 54]}) (TypeNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30]})) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 54, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 51,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 51 3 53,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 53 3 54]}) "++")])},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 76, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 8 4 23, srcInfoPoints = []}) "Data.Array.Repa", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 24 4 76, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 24 4 25,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 75 4 76]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 58, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 58]}) (TypeNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33]})) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 58, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 55,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 55 4 57,SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 57 4 58]}) "++")])}] [],[Comment True (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 31 3 49) " comment here ",Comment True (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 34 4 53) " comment2 here ",Comment True (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 60 4 74) " and here "])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces1.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "ExplicitNamespaces"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 37
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 1 2 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 8 2 23
+                  , srcInfoPoints = []
+                  }
+                "Data.Array.Repa"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 24 2 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 24 2 25
+                         , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 36 2 37
+                         ]
+                     }
+                   False
+                   [ IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30
+                             , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 35
+                             ]
+                         }
+                       (TypeNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 26 2 30 ]
+                            })
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 35
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 31 2 32
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 32 2 34
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 2 34 2 35
+                                ]
+                            }
+                          "++")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 56
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 8 3 23
+                  , srcInfoPoints = []
+                  }
+                "Data.Array.Repa"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 24 3 56
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 24 3 25
+                         , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 55 3 56
+                         ]
+                     }
+                   False
+                   [ IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 54
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30
+                             , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 54
+                             ]
+                         }
+                       (TypeNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 26 3 30 ]
+                            })
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 54
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 50 3 51
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 51 3 53
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 53 3 54
+                                ]
+                            }
+                          "++")
+                   ])
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 76
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 8 4 23
+                  , srcInfoPoints = []
+                  }
+                "Data.Array.Repa"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 24 4 76
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 24 4 25
+                         , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 75 4 76
+                         ]
+                     }
+                   False
+                   [ IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 58
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33
+                             , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 58
+                             ]
+                         }
+                       (TypeNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 29 4 33 ]
+                            })
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 58
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 54 4 55
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 55 4 57
+                                , SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 57 4 58
+                                ]
+                            }
+                          "++")
+                   ])
+          }
+      ]
+      []
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 3 31 3 49)
+        " comment here "
+    , Comment
+        True
+        (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 34 4 53)
+        " comment2 here "
+    , Comment
+        True
+        (SrcSpan "tests/examples/ExplicitNamespaces1.hs" 4 60 4 74)
+        " and here "
+    ]
+  )
diff --git a/tests/examples/ExplicitNamespaces1.hs.prettyprinter.golden b/tests/examples/ExplicitNamespaces1.hs.prettyprinter.golden
--- a/tests/examples/ExplicitNamespaces1.hs.prettyprinter.golden
+++ b/tests/examples/ExplicitNamespaces1.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE ExplicitNamespaces #-}
-module Main (main) where
 import Data.Array.Repa (type (++))
 import Data.Array.Repa (type (++))
 import Data.Array.Repa (type (++))
diff --git a/tests/examples/ExplicitNamespaces2.hs.parser.golden b/tests/examples/ExplicitNamespaces2.hs.parser.golden
--- a/tests/examples/ExplicitNamespaces2.hs.parser.golden
+++ b/tests/examples/ExplicitNamespaces2.hs.parser.golden
@@ -1,1 +1,164 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 1,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 1,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 1,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 1,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 5 1 5 1,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 50, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 7,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 45 2 50]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 8 2 27, srcInfoPoints = []}) "ExplicitNamespaces2") Nothing (Just (ExportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 28 2 44, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 28 2 29,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 31 2 32,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 43 2 44]}) [EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31, srcInfoPoints = []})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31, srcInfoPoints = []}) "f")),EVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 42, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 42]}) (TypeNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37]})) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 42, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 39,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 39 2 41,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 41 2 42]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 39 2 41, srcInfoPoints = []}) "++"))])))) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 36, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 13,SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 33 1 36]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 14 1 32, srcInfoPoints = []}) "ExplicitNamespaces"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 2, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 3 4 14, srcInfoPoints = [SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 3 4 4]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14, srcInfoPoints = []}) "undefined")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 50
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 45 2 50
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 8 2 27
+                 , srcInfoPoints = []
+                 }
+               "ExplicitNamespaces2")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 28 2 44
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 28 2 29
+                        , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 31 2 32
+                        , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 43 2 44
+                        ]
+                    }
+                  [ EVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 30 2 31
+                              , srcInfoPoints = []
+                              }
+                            "f"))
+                  , EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 42
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37
+                            , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 42
+                            ]
+                        }
+                      (TypeNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 33 2 37 ]
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 42
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 38 2 39
+                               , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 39 2 41
+                               , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 41 2 42
+                               ]
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ExplicitNamespaces2.hs" 2 39 2 41
+                              , srcInfoPoints = []
+                              }
+                            "++"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces2.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "ExplicitNamespaces"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 1 4 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 3 4 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 3 4 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ExplicitNamespaces2.hs" 4 5 4 14
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ExplicitNamespaces3.hs b/tests/examples/ExplicitNamespaces3.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces3.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+
+module Foo(type Str) where
+
+data Str = Str
diff --git a/tests/examples/ExplicitNamespaces3.hs.exactprinter.golden b/tests/examples/ExplicitNamespaces3.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces3.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ExplicitNamespaces3.hs.parser.golden b/tests/examples/ExplicitNamespaces3.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces3.hs.parser.golden
@@ -0,0 +1,145 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 1 3 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 22 3 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 8 3 11
+                 , srcInfoPoints = []
+                 }
+               "Foo")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 11 3 21
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 11 3 12
+                        , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 20 3 21
+                        ]
+                    }
+                  [ EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 12 3 20
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 12 3 16
+                            , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 17 3 20
+                            ]
+                        }
+                      (TypeNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 12 3 16
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 12 3 16 ]
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 17 3 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ExplicitNamespaces3.hs" 3 17 3 20
+                              , srcInfoPoints = []
+                              }
+                            "Str"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces3.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "ExplicitNamespaces"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 1 5 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 10 5 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 6 5 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 6 5 9
+                  , srcInfoPoints = []
+                  }
+                "Str"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 12 5 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 12 5 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExplicitNamespaces3.hs" 5 12 5 15
+                      , srcInfoPoints = []
+                      }
+                    "Str")
+                 [])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/ExplicitNamespaces3.hs.prettyparser.golden b/tests/examples/ExplicitNamespaces3.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces3.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ExplicitNamespaces3.hs.prettyprinter.golden b/tests/examples/ExplicitNamespaces3.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces3.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+module Foo (type Str) where
+
+data Str = Str
diff --git a/tests/examples/ExplicitNamespaces4.hs b/tests/examples/ExplicitNamespaces4.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces4.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE TypeOperators #-}
+module Foo (type (:-)) where
+
+data (:-) = Foo
diff --git a/tests/examples/ExplicitNamespaces4.hs.exactprinter.golden b/tests/examples/ExplicitNamespaces4.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces4.hs.exactprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE TypeOperators #-}
+module Foo (type (:-)) where
+
+data :-   = Foo
+
diff --git a/tests/examples/ExplicitNamespaces4.hs.parser.golden b/tests/examples/ExplicitNamespaces4.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces4.hs.parser.golden
@@ -0,0 +1,171 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 1 3 29
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 24 3 29
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 8 3 11
+                 , srcInfoPoints = []
+                 }
+               "Foo")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 12 3 23
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 12 3 13
+                        , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 22 3 23
+                        ]
+                    }
+                  [ EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 13 3 22
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 13 3 17
+                            , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 18 3 22
+                            ]
+                        }
+                      (TypeNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 13 3 17
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 13 3 17 ]
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 18 3 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 18 3 19
+                               , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 19 3 21
+                               , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 21 3 22
+                               ]
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ExplicitNamespaces4.hs" 3 19 3 21
+                              , srcInfoPoints = []
+                              }
+                            ":-"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 1 1 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 33 1 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces4.hs" 1 14 1 32
+                , srcInfoPoints = []
+                }
+              "ExplicitNamespaces"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces4.hs" 2 1 2 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 2 1 2 13
+                , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 2 28 2 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces4.hs" 2 14 2 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 1 5 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 11 5 12 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 6 5 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 6 5 7
+                   , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 7 5 9
+                   , SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 9 5 10
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 7 5 9
+                  , srcInfoPoints = []
+                  }
+                ":-"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 13 5 16
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 13 5 16
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExplicitNamespaces4.hs" 5 13 5 16
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/ExplicitNamespaces4.hs.prettyparser.golden b/tests/examples/ExplicitNamespaces4.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces4.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ExplicitNamespaces4.hs.prettyprinter.golden b/tests/examples/ExplicitNamespaces4.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExplicitNamespaces4.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE TypeOperators #-}
+module Foo (type (:-)) where
+
+data (:-) = Foo
diff --git a/tests/examples/ExprHole.hs b/tests/examples/ExprHole.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExprHole.hs
@@ -0,0 +1,10 @@
+
+foo = _
+
+foo = _ x
+
+foo =    _
+
+foo x = baz
+  where
+    foo _ = _
diff --git a/tests/examples/ExprHole.hs.exactprinter.golden b/tests/examples/ExprHole.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExprHole.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ExprHole.hs.parser.golden b/tests/examples/ExprHole.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExprHole.hs.parser.golden
@@ -0,0 +1,260 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 1 11 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExprHole.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExprHole.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExprHole.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ExprHole.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ExprHole.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ExprHole.hs" 8 1 8 1
+            , SrcSpan "tests/examples/ExprHole.hs" 11 1 11 1
+            , SrcSpan "tests/examples/ExprHole.hs" 11 1 11 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 1 2 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 1 2 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 1 2 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 5 2 8
+               , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 2 5 2 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 7 2 8
+                  , srcInfoPoints = []
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 7 2 8
+                     , srcInfoPoints = []
+                     }
+                   (ExprHole
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 2 7 2 8
+                        , srcInfoPoints = []
+                        }))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 1 4 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 5 4 10
+               , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 4 5 4 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 7 4 10
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 7 4 8
+                     , srcInfoPoints = []
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 7 4 8
+                        , srcInfoPoints = []
+                        }
+                      (ExprHole
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 7 4 8
+                           , srcInfoPoints = []
+                           })))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 9 4 10
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 9 4 10
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 4 9 4 10
+                           , srcInfoPoints = []
+                           }
+                         "x")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 1 6 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 1 6 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 1 6 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 5 6 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 6 5 6 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 10 6 11
+                  , srcInfoPoints = []
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 10 6 11
+                     , srcInfoPoints = []
+                     }
+                   (ExprHole
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 6 10 6 11
+                        , srcInfoPoints = []
+                        }))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 1 10 14
+            , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 9 3 9 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 1 10 14
+                , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 9 3 9 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 1 8 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 5 8 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 5 8 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 7 8 12
+                   , srcInfoPoints = [ SrcSpan "tests/examples/ExprHole.hs" 8 7 8 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 9 8 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 9 8 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 8 9 8 12
+                            , srcInfoPoints = []
+                            }
+                          "baz"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 5 10 14
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ExprHole.hs" 10 5 10 5
+                          , SrcSpan "tests/examples/ExprHole.hs" 11 1 11 0
+                          ]
+                      }
+                    [ FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 5 10 14
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 5 10 14
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 5 10 8
+                                 , srcInfoPoints = []
+                                 }
+                               "foo")
+                            [ PWildCard
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 9 10 10
+                                  , srcInfoPoints = []
+                                  }
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 11 10 14
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/ExprHole.hs" 10 11 10 12 ]
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/ExprHole.hs" 10 13 10 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Special
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/ExprHole.hs" 10 13 10 14
+                                       , srcInfoPoints = []
+                                       }
+                                     (ExprHole
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/ExprHole.hs" 10 13 10 14
+                                          , srcInfoPoints = []
+                                          }))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ExprHole.hs.prettyparser.golden b/tests/examples/ExprHole.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExprHole.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ExprHole.hs.prettyprinter.golden b/tests/examples/ExprHole.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ExprHole.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+foo = _
+foo = _ x
+foo = _
+foo x = baz
+  where foo _ = _
diff --git a/tests/examples/ExtraEndBrace.hs.parser.golden b/tests/examples/ExtraEndBrace.hs.parser.golden
--- a/tests/examples/ExtraEndBrace.hs.parser.golden
+++ b/tests/examples/ExtraEndBrace.hs.parser.golden
@@ -1,1 +1,2 @@
-ParseFailed (SrcLoc "tests/examples/ExtraEndBrace.hs" 3 20) "Unexpected }"
+ParseFailed
+  (SrcLoc "tests/examples/ExtraEndBrace.hs" 3 20) "Unexpected }"
diff --git a/tests/examples/ExtraPrettyParentheses.hs.parser.golden b/tests/examples/ExtraPrettyParentheses.hs.parser.golden
--- a/tests/examples/ExtraPrettyParentheses.hs.parser.golden
+++ b/tests/examples/ExtraPrettyParentheses.hs.parser.golden
@@ -1,1 +1,480 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 10 1, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 10 1 10 1,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 10 1 10 1]}) Nothing [] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 17, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 10 1 11]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 9, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 7, srcInfoPoints = []}) "Q")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 8 1 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 8 1 9, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 17, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 13, srcInfoPoints = []}) "Q") [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 14 1 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 14 1 15, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 16 1 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 16 1 17, srcInfoPoints = []}) "a")])] Nothing,FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 19, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 19, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 2, srcInfoPoints = []}) "x")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 3 5 4, srcInfoPoints = []}) "*") [PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 8, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 7 5 8, srcInfoPoints = []}) 1 "1")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 9 5 19, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 9 5 10]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17, srcInfoPoints = []}) "negate"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19, srcInfoPoints = []}) "x"))))) Nothing],FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 27, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 27, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 5, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 5, srcInfoPoints = []}) "Just")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 6 8 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 6 8 7, srcInfoPoints = []}) "x")]) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 8 8 10, srcInfoPoints = []}) "<>") [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18, srcInfoPoints = []}) "Nothing")) []] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 19 8 27, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 19 8 20]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 27, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25, srcInfoPoints = []}) "Just"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27, srcInfoPoints = []}) "x"))))) Nothing],FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 19, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 3 9 14, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 3 9 4,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 13 9 14]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 13, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 7, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 6 9 7, srcInfoPoints = []}) 1 "1")) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 8 9 11, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 8 9 9,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 9 9 10,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 10 9 11]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 9 9 10, srcInfoPoints = []}) "Q")) (PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 12 9 13, srcInfoPoints = []})))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 15 9 19, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 15 9 16]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19, srcInfoPoints = [SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18,SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19]}))))) Nothing]],[Comment False (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 3 1 3 78) " In this example, the pretty-printer should insert extra parentheses around",Comment False (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 4 1 4 33) " the negative literal pattern.",Comment False (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 7 1 7 78) " In these examples, the pretty-printer should not insert extra parentheses."])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 10 1 10 1
+            , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 10 1 10 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 10 1 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 1 1 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 9
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 6 1 7
+                     , srcInfoPoints = []
+                     }
+                   "Q"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 8 1 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 8 1 9
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 12 1 13
+                      , srcInfoPoints = []
+                      }
+                    "Q")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 14 1 15
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 14 1 15
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 16 1 17
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 1 16 1 17
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 19
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 19
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 1 5 2
+                      , srcInfoPoints = []
+                      }
+                    "x"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 3 5 4
+                   , srcInfoPoints = []
+                   }
+                 "*")
+              [ PLit
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 8
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6 ]
+                    }
+                  (Negative
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 5 5 6 ]
+                       })
+                  (Int
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 7 5 8
+                       , srcInfoPoints = []
+                       }
+                     1
+                     "1")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 9 5 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 9 5 10 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 19
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 11 5 17
+                               , srcInfoPoints = []
+                               }
+                             "negate")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 5 18 5 19
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 27
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 27
+                , srcInfoPoints = []
+                }
+              (PApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 7
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 5
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 1 8 5
+                         , srcInfoPoints = []
+                         }
+                       "Just"))
+                 [ PVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 6 8 7
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 6 8 7
+                          , srcInfoPoints = []
+                          }
+                        "x")
+                 ])
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 8 8 10
+                   , srcInfoPoints = []
+                   }
+                 "<>")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 11 8 18
+                          , srcInfoPoints = []
+                          }
+                        "Nothing"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 19 8 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 19 8 20 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 27
+                      , srcInfoPoints = []
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 21 8 25
+                               , srcInfoPoints = []
+                               }
+                             "Just")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 8 26 8 27
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 1 9 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 3 9 14
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 3 9 4
+                        , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 13 9 14
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 13
+                       , srcInfoPoints = []
+                       }
+                     (PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 7
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5 ]
+                          }
+                        (Negative
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 4 9 5 ]
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 6 9 7
+                             , srcInfoPoints = []
+                             }
+                           1
+                           "1"))
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 8 9 11
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 8 9 9
+                              , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 9 9 10
+                              , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 10 9 11
+                              ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 9 9 10
+                             , srcInfoPoints = []
+                             }
+                           "Q"))
+                     (PWildCard
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 12 9 13
+                          , srcInfoPoints = []
+                          }))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 15 9 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 15 9 16 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18
+                          , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18
+                             , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 19
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 17 9 18
+                                , SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 9 18 9 19
+                                ]
+                            }))))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 3 1 3 78)
+        " In this example, the pretty-printer should insert extra parentheses around"
+    , Comment
+        False
+        (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 4 1 4 33)
+        " the negative literal pattern."
+    , Comment
+        False
+        (SrcSpan "tests/examples/ExtraPrettyParentheses.hs" 7 1 7 78)
+        " In these examples, the pretty-printer should not insert extra parentheses."
+    ]
+  )
diff --git a/tests/examples/ExtraPrettyParentheses.hs.prettyparser.golden b/tests/examples/ExtraPrettyParentheses.hs.prettyparser.golden
--- a/tests/examples/ExtraPrettyParentheses.hs.prettyparser.golden
+++ b/tests/examples/ExtraPrettyParentheses.hs.prettyparser.golden
@@ -2,9 +2,9 @@
 
 AST 1:
 
-Module (SrcLoc "" -1 -1) (ModuleName "Main") [] Nothing (Just [EVar NoNamespace (UnQual (Ident "main"))]) [] [DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Q") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "Q") [TyVar (Ident "a"),TyVar (Ident "a")])] [],FunBind [Match (SrcLoc "" -1 -1) (Symbol "*") [PVar (Ident "x"),PLit Negative (Int 1)] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "negate"))) (Var (UnQual (Ident "x"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Symbol "<>") [PApp (UnQual (Ident "Just")) [PVar (Ident "x")],PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "x"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "f") [PParen (PInfixApp (PLit Negative (Int 1)) (UnQual (Ident "Q")) PWildCard)] Nothing (UnGuardedRhs (Con (Special UnitCon))) (BDecls [])]]
+Module () Nothing [] [] [DataDecl () (DataType ()) Nothing (DHApp () (DHead () (Ident () "Q")) (UnkindedVar () (Ident () "a"))) [QualConDecl () Nothing Nothing (ConDecl () (Ident () "Q") [TyVar () (Ident () "a"),TyVar () (Ident () "a")])] [],FunBind () [InfixMatch () (PVar () (Ident () "x")) (Symbol () "*") [PLit () (Negative ()) (Int () 1 "1")] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "negate"))) (Var () (UnQual () (Ident () "x"))))) Nothing],FunBind () [InfixMatch () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "x")]) (Symbol () "<>") [PApp () (UnQual () (Ident () "Nothing")) []] (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "x"))))) Nothing],FunBind () [Match () (Ident () "f") [PParen () (PInfixApp () (PLit () (Negative ()) (Int () 1 "1")) (UnQual () (Ident () "Q")) (PWildCard ()))] (UnGuardedRhs () (Con () (Special () (UnitCon ())))) Nothing]]
 
 AST 2:
 
-Module (SrcLoc "" -1 -1) (ModuleName "Main") [] Nothing (Just [EVar NoNamespace (UnQual (Ident "main"))]) [] [DataDecl (SrcLoc "" -1 -1) DataType [] (Ident "Q") [UnkindedVar (Ident "a")] [QualConDecl (SrcLoc "" -1 -1) [] [] (ConDecl (Ident "Q") [TyVar (Ident "a"),TyVar (Ident "a")])] [],FunBind [Match (SrcLoc "" -1 -1) (Symbol "*") [PVar (Ident "x"),PParen (PLit Negative (Int 1))] Nothing (UnGuardedRhs (App (Var (UnQual (Ident "negate"))) (Var (UnQual (Ident "x"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Symbol "<>") [PApp (UnQual (Ident "Just")) [PVar (Ident "x")],PApp (UnQual (Ident "Nothing")) []] Nothing (UnGuardedRhs (App (Con (UnQual (Ident "Just"))) (Var (UnQual (Ident "x"))))) (BDecls [])],FunBind [Match (SrcLoc "" -1 -1) (Ident "f") [PParen (PInfixApp (PLit Negative (Int 1)) (UnQual (Ident "Q")) PWildCard)] Nothing (UnGuardedRhs (Con (Special UnitCon))) (BDecls [])]]
+Module () Nothing [] [] [DataDecl () (DataType ()) Nothing (DHApp () (DHead () (Ident () "Q")) (UnkindedVar () (Ident () "a"))) [QualConDecl () Nothing Nothing (ConDecl () (Ident () "Q") [TyVar () (Ident () "a"),TyVar () (Ident () "a")])] [],FunBind () [InfixMatch () (PVar () (Ident () "x")) (Symbol () "*") [PParen () (PLit () (Negative ()) (Int () 1 "1"))] (UnGuardedRhs () (App () (Var () (UnQual () (Ident () "negate"))) (Var () (UnQual () (Ident () "x"))))) Nothing],FunBind () [InfixMatch () (PApp () (UnQual () (Ident () "Just")) [PVar () (Ident () "x")]) (Symbol () "<>") [PApp () (UnQual () (Ident () "Nothing")) []] (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "Just"))) (Var () (UnQual () (Ident () "x"))))) Nothing],FunBind () [Match () (Ident () "f") [PParen () (PInfixApp () (PLit () (Negative ()) (Int () 1 "1")) (UnQual () (Ident () "Q")) (PWildCard ()))] (UnGuardedRhs () (Con () (Special () (UnitCon ())))) Nothing]]
 
diff --git a/tests/examples/ExtraPrettyParentheses.hs.prettyprinter.golden b/tests/examples/ExtraPrettyParentheses.hs.prettyprinter.golden
--- a/tests/examples/ExtraPrettyParentheses.hs.prettyprinter.golden
+++ b/tests/examples/ExtraPrettyParentheses.hs.prettyprinter.golden
@@ -1,5 +1,3 @@
-module Main (main) where
- 
 data Q a = Q a a
 x * (-1) = negate x
 Just x <> Nothing = Just x
diff --git a/tests/examples/FFIExtensions.hs.parser.golden b/tests/examples/FFIExtensions.hs.parser.golden
--- a/tests/examples/FFIExtensions.hs.parser.golden
+++ b/tests/examples/FFIExtensions.hs.parser.golden
@@ -1,1 +1,234 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 1,SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 1,SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 1,SrcSpan "tests/examples/FFIExtensions.hs" 4 1 4 1,SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 1,SrcSpan "tests/examples/FFIExtensions.hs" 8 1 8 1,SrcSpan "tests/examples/FFIExtensions.hs" 8 1 8 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 7,SrcSpan "tests/examples/FFIExtensions.hs" 2 22 2 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 2 8 2 21, srcInfoPoints = []}) "FFIExtensions") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 69, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 13,SrcSpan "tests/examples/FFIExtensions.hs" 1 38 1 39,SrcSpan "tests/examples/FFIExtensions.hs" 1 56 1 57,SrcSpan "tests/examples/FFIExtensions.hs" 1 66 1 69]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 14 1 38, srcInfoPoints = []}) "ForeignFunctionInterface",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 40 1 56, srcInfoPoints = []}) "InterruptibleFFI",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 58 1 65, srcInfoPoints = []}) "CApiFFI"]] [] [ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 1 5 38, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 4 1 4 8,SrcSpan "tests/examples/FFIExtensions.hs" 4 9 4 15,SrcSpan "tests/examples/FFIExtensions.hs" 5 4 5 11,SrcSpan "tests/examples/FFIExtensions.hs" 5 18 5 20]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 16 4 21, srcInfoPoints = []})) (Just (PlayInterruptible (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 22 4 35, srcInfoPoints = []}))) (Just "sleep") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 12 5 17, srcInfoPoints = []}) "sleep") (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 38, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 5 27 5 29]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26, srcInfoPoints = []}) "CUint"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 38, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38, srcInfoPoints = []}) "CUint"))))),ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 54, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 8,SrcSpan "tests/examples/FFIExtensions.hs" 7 9 7 15,SrcSpan "tests/examples/FFIExtensions.hs" 7 21 7 33,SrcSpan "tests/examples/FFIExtensions.hs" 7 36 7 38]}) (CApi (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 16 7 20, srcInfoPoints = []})) Nothing (Just "header.h f") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 34 7 35, srcInfoPoints = []}) "f") (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 54, srcInfoPoints = [SrcSpan "tests/examples/FFIExtensions.hs" 7 44 7 46]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43, srcInfoPoints = []}) "CInt"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 54, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54, srcInfoPoints = []}) "CInt")))))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 8 1 8 1
+            , SrcSpan "tests/examples/FFIExtensions.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/FFIExtensions.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/FFIExtensions.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "FFIExtensions")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 69
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FFIExtensions.hs" 1 1 1 13
+                , SrcSpan "tests/examples/FFIExtensions.hs" 1 38 1 39
+                , SrcSpan "tests/examples/FFIExtensions.hs" 1 56 1 57
+                , SrcSpan "tests/examples/FFIExtensions.hs" 1 66 1 69
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 14 1 38
+                , srcInfoPoints = []
+                }
+              "ForeignFunctionInterface"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 40 1 56
+                , srcInfoPoints = []
+                }
+              "InterruptibleFFI"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 1 58 1 65
+                , srcInfoPoints = []
+                }
+              "CApiFFI"
+          ]
+      ]
+      []
+      [ ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 1 5 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FFIExtensions.hs" 4 1 4 8
+                , SrcSpan "tests/examples/FFIExtensions.hs" 4 9 4 15
+                , SrcSpan "tests/examples/FFIExtensions.hs" 5 4 5 11
+                , SrcSpan "tests/examples/FFIExtensions.hs" 5 18 5 20
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 16 4 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayInterruptible
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 4 22 4 35
+                  , srcInfoPoints = []
+                  }))
+          (Just "sleep")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 12 5 17
+               , srcInfoPoints = []
+               }
+             "sleep")
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 38
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/FFIExtensions.hs" 5 27 5 29 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 21 5 26
+                        , srcInfoPoints = []
+                        }
+                      "CUint")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 38
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 30 5 32
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 5 33 5 38
+                           , srcInfoPoints = []
+                           }
+                         "CUint")))))
+      , ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 54
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FFIExtensions.hs" 7 1 7 8
+                , SrcSpan "tests/examples/FFIExtensions.hs" 7 9 7 15
+                , SrcSpan "tests/examples/FFIExtensions.hs" 7 21 7 33
+                , SrcSpan "tests/examples/FFIExtensions.hs" 7 36 7 38
+                ]
+            }
+          (CApi
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 16 7 20
+               , srcInfoPoints = []
+               })
+          Nothing
+          (Just "header.h f")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 34 7 35
+               , srcInfoPoints = []
+               }
+             "f")
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 54
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/FFIExtensions.hs" 7 44 7 46 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 39 7 43
+                        , srcInfoPoints = []
+                        }
+                      "CInt")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 54
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 47 7 49
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FFIExtensions.hs" 7 50 7 54
+                           , srcInfoPoints = []
+                           }
+                         "CInt")))))
+      ]
+  , []
+  )
diff --git a/tests/examples/FFIExtensions.hs.prettyprinter.golden b/tests/examples/FFIExtensions.hs.prettyprinter.golden
--- a/tests/examples/FFIExtensions.hs.prettyprinter.golden
+++ b/tests/examples/FFIExtensions.hs.prettyprinter.golden
@@ -1,8 +1,8 @@
 {-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI, CApiFFI
   #-}
 module FFIExtensions where
- 
+
 foreign import ccall interruptible "sleep" sleep ::
                CUint -> IO CUint
- 
-foreign import capi safe "header.h f" f :: CInt -> IO CInt
+
+foreign import capi "header.h f" f :: CInt -> IO CInt
diff --git a/tests/examples/FFIInterruptible.hs.parser.golden b/tests/examples/FFIInterruptible.hs.parser.golden
--- a/tests/examples/FFIInterruptible.hs.parser.golden
+++ b/tests/examples/FFIInterruptible.hs.parser.golden
@@ -1,1 +1,83 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 1,SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1,SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1,SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1,SrcSpan "tests/examples/FFIInterruptible.hs" 4 1 4 1,SrcSpan "tests/examples/FFIInterruptible.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 34, srcInfoPoints = [SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 13,SrcSpan "tests/examples/FFIInterruptible.hs" 1 31 1 34]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 1 14 1 30, srcInfoPoints = []}) "InterruptibleFFI"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 4, srcInfoPoints = []}) "foo")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 5 2 20, srcInfoPoints = [SrcSpan "tests/examples/FFIInterruptible.hs" 2 5 2 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20, srcInfoPoints = []}) "interruptible")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FFIInterruptible.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FFIInterruptible.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FFIInterruptible.hs" 1 1 1 13
+                , SrcSpan "tests/examples/FFIInterruptible.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/FFIInterruptible.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "InterruptibleFFI"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/FFIInterruptible.hs" 2 1 2 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/FFIInterruptible.hs" 2 5 2 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/FFIInterruptible.hs" 2 5 2 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/FFIInterruptible.hs" 2 7 2 20
+                        , srcInfoPoints = []
+                        }
+                      "interruptible"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/FFIInterruptible.hs.prettyprinter.golden b/tests/examples/FFIInterruptible.hs.prettyprinter.golden
--- a/tests/examples/FFIInterruptible.hs.prettyprinter.golden
+++ b/tests/examples/FFIInterruptible.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE InterruptibleFFI #-}
-module Main (main) where
 foo = interruptible
diff --git a/tests/examples/FamilyKindSig.hs.parser.golden b/tests/examples/FamilyKindSig.hs.parser.golden
--- a/tests/examples/FamilyKindSig.hs.parser.golden
+++ b/tests/examples/FamilyKindSig.hs.parser.golden
@@ -1,1 +1,107 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 1,SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 1,SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 1,SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 1,SrcSpan "tests/examples/FamilyKindSig.hs" 5 1 5 1,SrcSpan "tests/examples/FamilyKindSig.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 7,SrcSpan "tests/examples/FamilyKindSig.hs" 2 22 2 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 2 8 2 21, srcInfoPoints = []}) "FamilyKindSig") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 13,SrcSpan "tests/examples/FamilyKindSig.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies"]] [] [TypeFamDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 38, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 5,SrcSpan "tests/examples/FamilyKindSig.hs" 4 6 4 12]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 38, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 24, srcInfoPoints = []}) "WithKindSig")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 25 4 38, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 4 25 4 26,SrcSpan "tests/examples/FamilyKindSig.hs" 4 28 4 30,SrcSpan "tests/examples/FamilyKindSig.hs" 4 37 4 38]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 26 4 27, srcInfoPoints = []}) "a") (KindFn (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 37, srcInfoPoints = [SrcSpan "tests/examples/FamilyKindSig.hs" 4 33 4 35]}) (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 32, srcInfoPoints = []})) (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 36 4 37, srcInfoPoints = []}))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FamilyKindSig.hs" 5 1 5 1
+            , SrcSpan "tests/examples/FamilyKindSig.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/FamilyKindSig.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/FamilyKindSig.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "FamilyKindSig")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FamilyKindSig.hs" 1 1 1 13
+                , SrcSpan "tests/examples/FamilyKindSig.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FamilyKindSig.hs" 4 1 4 5
+                , SrcSpan "tests/examples/FamilyKindSig.hs" 4 6 4 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 38
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 13 4 24
+                     , srcInfoPoints = []
+                     }
+                   "WithKindSig"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 25 4 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/FamilyKindSig.hs" 4 25 4 26
+                      , SrcSpan "tests/examples/FamilyKindSig.hs" 4 28 4 30
+                      , SrcSpan "tests/examples/FamilyKindSig.hs" 4 37 4 38
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 26 4 27
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/FamilyKindSig.hs" 4 33 4 35 ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 32
+                        , srcInfoPoints = []
+                        })
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 36 4 37
+                        , srcInfoPoints = []
+                        }))))
+          Nothing
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/FamilyKindSig.hs.prettyprinter.golden b/tests/examples/FamilyKindSig.hs.prettyprinter.golden
--- a/tests/examples/FamilyKindSig.hs.prettyprinter.golden
+++ b/tests/examples/FamilyKindSig.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 {-# LANGUAGE TypeFamilies #-}
 module FamilyKindSig where
- 
+
 type family WithKindSig (a :: * -> *)
diff --git a/tests/examples/FamilyVarid.hs.parser.golden b/tests/examples/FamilyVarid.hs.parser.golden
--- a/tests/examples/FamilyVarid.hs.parser.golden
+++ b/tests/examples/FamilyVarid.hs.parser.golden
@@ -1,1 +1,113 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 1,SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 1,SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 1,SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 1,SrcSpan "tests/examples/FamilyVarid.hs" 5 1 5 1,SrcSpan "tests/examples/FamilyVarid.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 7,SrcSpan "tests/examples/FamilyVarid.hs" 2 20 2 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 2 8 2 19, srcInfoPoints = []}) "FamilyVarid") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 13,SrcSpan "tests/examples/FamilyVarid.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 28, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 2, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 3 4 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 3 4 9, srcInfoPoints = []}) "family"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 10 4 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 10 4 16, srcInfoPoints = []}) "forall")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 17 4 28, srcInfoPoints = [SrcSpan "tests/examples/FamilyVarid.hs" 4 17 4 18]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28, srcInfoPoints = []}) "undefined")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FamilyVarid.hs" 5 1 5 1
+            , SrcSpan "tests/examples/FamilyVarid.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/FamilyVarid.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/FamilyVarid.hs" 2 20 2 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 2 8 2 19
+                 , srcInfoPoints = []
+                 }
+               "FamilyVarid")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FamilyVarid.hs" 1 1 1 13
+                , SrcSpan "tests/examples/FamilyVarid.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 28
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 28
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 3 4 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 3 4 9
+                       , srcInfoPoints = []
+                       }
+                     "family")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 10 4 16
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 10 4 16
+                       , srcInfoPoints = []
+                       }
+                     "forall")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 17 4 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/FamilyVarid.hs" 4 17 4 18 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/FamilyVarid.hs" 4 19 4 28
+                            , srcInfoPoints = []
+                            }
+                          "undefined"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/Fixity2.hs b/tests/examples/Fixity2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity2.hs
@@ -0,0 +1,3 @@
+foo = pure 1 <^> pure 2 <^> pure (+) where
+  (<^>) = flip (<*>)
+  infixr 4 <^>
diff --git a/tests/examples/Fixity2.hs.exactprinter.golden b/tests/examples/Fixity2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Fixity2.hs.parser.golden b/tests/examples/Fixity2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity2.hs.parser.golden
@@ -0,0 +1,297 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Fixity2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Fixity2.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 1 3 15
+            , srcInfoPoints = [ SrcSpan "tests/examples/Fixity2.hs" 1 38 1 43 ]
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 1 1 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 1 1 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 5 1 37
+               , srcInfoPoints = [ SrcSpan "tests/examples/Fixity2.hs" 1 5 1 6 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 7 1 37
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 7 1 13
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 7 1 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 7 1 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 7 1 11
+                              , srcInfoPoints = []
+                              }
+                            "pure")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 12 1 13
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 12 1 13
+                           , srcInfoPoints = []
+                           }
+                         1
+                         "1")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 14 1 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 14 1 17
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 14 1 17
+                           , srcInfoPoints = []
+                           }
+                         "<^>")))
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 18 1 37
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 18 1 24
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 18 1 22
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 18 1 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 18 1 22
+                                 , srcInfoPoints = []
+                                 }
+                               "pure")))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 23 1 24
+                           , srcInfoPoints = []
+                           }
+                         (Int
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 23 1 24
+                              , srcInfoPoints = []
+                              }
+                            2
+                            "2")))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 25 1 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 25 1 28
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 25 1 28
+                              , srcInfoPoints = []
+                              }
+                            "<^>")))
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 29 1 37
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 29 1 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 29 1 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 29 1 33
+                                 , srcInfoPoints = []
+                                 }
+                               "pure")))
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 34 1 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Fixity2.hs" 1 34 1 35
+                               , SrcSpan "tests/examples/Fixity2.hs" 1 35 1 36
+                               , SrcSpan "tests/examples/Fixity2.hs" 1 36 1 37
+                               ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 34 1 37
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Fixity2.hs" 1 34 1 35
+                                  , SrcSpan "tests/examples/Fixity2.hs" 1 35 1 36
+                                  , SrcSpan "tests/examples/Fixity2.hs" 1 36 1 37
+                                  ]
+                              }
+                            (Symbol
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 1 35 1 36
+                                 , srcInfoPoints = []
+                                 }
+                               "+")))))))
+          (Just
+             (BDecls
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 3 3 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Fixity2.hs" 2 3 2 3
+                      , SrcSpan "tests/examples/Fixity2.hs" 3 3 3 3
+                      , SrcSpan "tests/examples/Fixity2.hs" 4 1 4 0
+                      ]
+                  }
+                [ PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 3 2 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 3 2 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Fixity2.hs" 2 3 2 4
+                             , SrcSpan "tests/examples/Fixity2.hs" 2 4 2 7
+                             , SrcSpan "tests/examples/Fixity2.hs" 2 7 2 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 4 2 7
+                            , srcInfoPoints = []
+                            }
+                          "<^>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 9 2 21
+                         , srcInfoPoints = [ SrcSpan "tests/examples/Fixity2.hs" 2 9 2 10 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 11 2 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 11 2 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 11 2 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 11 2 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "flip")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 16 2 21
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Fixity2.hs" 2 16 2 17
+                                   , SrcSpan "tests/examples/Fixity2.hs" 2 17 2 20
+                                   , SrcSpan "tests/examples/Fixity2.hs" 2 20 2 21
+                                   ]
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 16 2 21
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Fixity2.hs" 2 16 2 17
+                                      , SrcSpan "tests/examples/Fixity2.hs" 2 17 2 20
+                                      , SrcSpan "tests/examples/Fixity2.hs" 2 20 2 21
+                                      ]
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 2 17 2 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "<*>")))))
+                    Nothing
+                , InfixDecl
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 3 3 3 15
+                      , srcInfoPoints = [ SrcSpan "tests/examples/Fixity2.hs" 3 10 3 11 ]
+                      }
+                    (AssocRight
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 3 3 3 9
+                         , srcInfoPoints = []
+                         })
+                    (Just 4)
+                    [ VarOp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 3 12 3 15
+                          , srcInfoPoints = []
+                          }
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Fixity2.hs" 3 12 3 15
+                             , srcInfoPoints = []
+                             }
+                           "<^>")
+                    ]
+                ]))
+      ]
+  , []
+  )
diff --git a/tests/examples/Fixity2.hs.prettyparser.golden b/tests/examples/Fixity2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Fixity2.hs.prettyprinter.golden b/tests/examples/Fixity2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity2.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+foo = pure 1 <^> pure 2 <^> pure (+)
+  where (<^>) = flip (<*>)
+        
+        infixr 4 <^>
diff --git a/tests/examples/Fixity3.hs b/tests/examples/Fixity3.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity3.hs
@@ -0,0 +1,5 @@
+class Foo f where
+  (<^>) :: Applicative f => f a -> f (a -> b) -> f b
+  infixr 4 <^>
+
+foo = pure 1 <^> pure 2 <^> pure (+)
diff --git a/tests/examples/Fixity3.hs.exactprinter.golden b/tests/examples/Fixity3.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity3.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Fixity3.hs.parser.golden b/tests/examples/Fixity3.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity3.hs.parser.golden
@@ -0,0 +1,466 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Fixity3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Fixity3.hs" 5 1 5 1
+            , SrcSpan "tests/examples/Fixity3.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Fixity3.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 1 3 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Fixity3.hs" 1 1 1 6
+                , SrcSpan "tests/examples/Fixity3.hs" 1 13 1 18
+                , SrcSpan "tests/examples/Fixity3.hs" 2 3 2 3
+                , SrcSpan "tests/examples/Fixity3.hs" 3 3 3 3
+                , SrcSpan "tests/examples/Fixity3.hs" 5 1 5 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 7 1 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 7 1 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 7 1 10
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 11 1 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 1 11 1 12
+                     , srcInfoPoints = []
+                     }
+                   "f")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 3 2 53
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 9 2 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 3 2 53
+                      , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 9 2 11 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 3 2 8
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Fixity3.hs" 2 3 2 4
+                              , SrcSpan "tests/examples/Fixity3.hs" 2 4 2 7
+                              , SrcSpan "tests/examples/Fixity3.hs" 2 7 2 8
+                              ]
+                          }
+                        "<^>"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 53
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28
+                               , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]
+                                     }
+                                   (TyCon
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Fixity3.hs" 2 12 2 23
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Fixity3.hs" 2 12 2 23
+                                              , srcInfoPoints = []
+                                              }
+                                            "Applicative")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 24 2 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Fixity3.hs" 2 24 2 25
+                                           , srcInfoPoints = []
+                                           }
+                                         "f"))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 29 2 53
+                            , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 33 2 35 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 29 2 32
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 29 2 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 29 2 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "f"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 31 2 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 31 2 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 36 2 53
+                               , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 47 2 49 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 36 2 46
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 36 2 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 36 2 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 38 2 46
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Fixity3.hs" 2 38 2 39
+                                         , SrcSpan "tests/examples/Fixity3.hs" 2 45 2 46
+                                         ]
+                                     }
+                                   (TyFun
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 39 2 45
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/Fixity3.hs" 2 41 2 43 ]
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Fixity3.hs" 2 39 2 40
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Fixity3.hs" 2 39 2 40
+                                              , srcInfoPoints = []
+                                              }
+                                            "a"))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Fixity3.hs" 2 44 2 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Fixity3.hs" 2 44 2 45
+                                              , srcInfoPoints = []
+                                              }
+                                            "b")))))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 50 2 53
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 50 2 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 50 2 51
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 52 2 53
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Fixity3.hs" 2 52 2 53
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 3 3 3 15
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 3 10 3 11 ]
+                   }
+                 (InfixDecl
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 3 3 3 15
+                      , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 3 10 3 11 ]
+                      }
+                    (AssocRight
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 3 3 3 9
+                         , srcInfoPoints = []
+                         })
+                    (Just 4)
+                    [ VarOp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 3 12 3 15
+                          , srcInfoPoints = []
+                          }
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 3 12 3 15
+                             , srcInfoPoints = []
+                             }
+                           "<^>")
+                    ])
+             ])
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 1 5 37
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 1 5 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 1 5 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 5 5 37
+               , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 5 5 5 6 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 7 5 37
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 7 5 13
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 7 5 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 7 5 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 7 5 11
+                              , srcInfoPoints = []
+                              }
+                            "pure")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 12 5 13
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 12 5 13
+                           , srcInfoPoints = []
+                           }
+                         1
+                         "1")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 14 5 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 14 5 17
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 14 5 17
+                           , srcInfoPoints = []
+                           }
+                         "<^>")))
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 18 5 37
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 18 5 24
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 18 5 22
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 18 5 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 18 5 22
+                                 , srcInfoPoints = []
+                                 }
+                               "pure")))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 23 5 24
+                           , srcInfoPoints = []
+                           }
+                         (Int
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 23 5 24
+                              , srcInfoPoints = []
+                              }
+                            2
+                            "2")))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 25 5 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 25 5 28
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 25 5 28
+                              , srcInfoPoints = []
+                              }
+                            "<^>")))
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 29 5 37
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 29 5 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 29 5 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 29 5 33
+                                 , srcInfoPoints = []
+                                 }
+                               "pure")))
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 34 5 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Fixity3.hs" 5 34 5 35
+                               , SrcSpan "tests/examples/Fixity3.hs" 5 35 5 36
+                               , SrcSpan "tests/examples/Fixity3.hs" 5 36 5 37
+                               ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 34 5 37
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Fixity3.hs" 5 34 5 35
+                                  , SrcSpan "tests/examples/Fixity3.hs" 5 35 5 36
+                                  , SrcSpan "tests/examples/Fixity3.hs" 5 36 5 37
+                                  ]
+                              }
+                            (Symbol
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 5 35 5 36
+                                 , srcInfoPoints = []
+                                 }
+                               "+")))))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/Fixity3.hs.prettyparser.golden b/tests/examples/Fixity3.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity3.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Fixity3.hs.prettyprinter.golden b/tests/examples/Fixity3.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Fixity3.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+class Foo f where
+        (<^>) :: Applicative f => f a -> f (a -> b) -> f b
+        
+        infixr 4 <^>
+foo = pure 1 <^> pure 2 <^> pure (+)
diff --git a/tests/examples/FixityTests.hs.parser.golden b/tests/examples/FixityTests.hs.parser.golden
--- a/tests/examples/FixityTests.hs.parser.golden
+++ b/tests/examples/FixityTests.hs.parser.golden
@@ -1,1 +1,343 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1,SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1,SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1,SrcSpan "tests/examples/FixityTests.hs" 4 1 4 1,SrcSpan "tests/examples/FixityTests.hs" 4 1 4 1]}) Nothing [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 3 35, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 1 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 1 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 6 3 35, srcInfoPoints = [SrcSpan "tests/examples/FixityTests.hs" 1 6 1 7]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 3 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13, srcInfoPoints = []}) "forM_"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24, srcInfoPoints = []}) "cmdReports")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26, srcInfoPoints = []}) "$"))) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 27 3 35, srcInfoPoints = [SrcSpan "tests/examples/FixityTests.hs" 1 27 1 28,SrcSpan "tests/examples/FixityTests.hs" 1 30 1 32]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 28 1 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 28 1 29, srcInfoPoints = []}) "x")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 33 3 35, srcInfoPoints = [SrcSpan "tests/examples/FixityTests.hs" 1 33 1 35,SrcSpan "tests/examples/FixityTests.hs" 2 16 2 16,SrcSpan "tests/examples/FixityTests.hs" 3 16 3 16,SrcSpan "tests/examples/FixityTests.hs" 4 1 4 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 62, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 62, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24, srcInfoPoints = []}) "putStrLn"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26, srcInfoPoints = []}) "$"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 27 2 62, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 27 2 47, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 27 2 47, srcInfoPoints = []}) "Writing report to " "Writing report to ")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50, srcInfoPoints = []}) "++"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 51 2 62, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55, srcInfoPoints = []}) "++"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 56 2 62, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 56 2 62, srcInfoPoints = []}) " ..." " ..."))))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 35, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 29, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27, srcInfoPoints = []}) "writeReport"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29, srcInfoPoints = []}) "x")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35, srcInfoPoints = []}) "ideas"))))])))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FixityTests.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FixityTests.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FixityTests.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 3 35
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 1 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 1 1 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 6 3 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/FixityTests.hs" 1 6 1 7 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 3 35
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 24
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 8 1 13
+                              , srcInfoPoints = []
+                              }
+                            "forM_")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 14 1 24
+                              , srcInfoPoints = []
+                              }
+                            "cmdReports"))))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 25 1 26
+                           , srcInfoPoints = []
+                           }
+                         "$")))
+                (Lambda
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 27 3 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/FixityTests.hs" 1 27 1 28
+                         , SrcSpan "tests/examples/FixityTests.hs" 1 30 1 32
+                         ]
+                     }
+                   [ PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 28 1 29
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 28 1 29
+                            , srcInfoPoints = []
+                            }
+                          "x")
+                   ]
+                   (Do
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 1 33 3 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/FixityTests.hs" 1 33 1 35
+                            , SrcSpan "tests/examples/FixityTests.hs" 2 16 2 16
+                            , SrcSpan "tests/examples/FixityTests.hs" 3 16 3 16
+                            , SrcSpan "tests/examples/FixityTests.hs" 4 1 4 0
+                            ]
+                        }
+                      [ Qualifier
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 62
+                            , srcInfoPoints = []
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 62
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 16 2 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "putStrLn")))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 25 2 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "$")))
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 2 27 2 62
+                                  , srcInfoPoints = []
+                                  }
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 2 27 2 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (String
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 27 2 47
+                                        , srcInfoPoints = []
+                                        }
+                                      "Writing report to "
+                                      "Writing report to "))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 2 48 2 50
+                                           , srcInfoPoints = []
+                                           }
+                                         "++")))
+                                (InfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 2 51 2 62
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/FixityTests.hs" 2 51 2 52
+                                              , srcInfoPoints = []
+                                              }
+                                            "x")))
+                                   (QVarOp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55
+                                           , srcInfoPoints = []
+                                           }
+                                         (Symbol
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/FixityTests.hs" 2 53 2 55
+                                              , srcInfoPoints = []
+                                              }
+                                            "++")))
+                                   (Lit
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 2 56 2 62
+                                        , srcInfoPoints = []
+                                        }
+                                      (String
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 2 56 2 62
+                                           , srcInfoPoints = []
+                                           }
+                                         " ..."
+                                         " ...")))))
+                      , Qualifier
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 35
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 35
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 16 3 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 3 16 3 27
+                                           , srcInfoPoints = []
+                                           }
+                                         "writeReport")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/FixityTests.hs" 3 28 3 29
+                                           , srcInfoPoints = []
+                                           }
+                                         "x"))))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/FixityTests.hs" 3 30 3 35
+                                        , srcInfoPoints = []
+                                        }
+                                      "ideas"))))
+                      ]))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/FixityTests.hs.prettyprinter.golden b/tests/examples/FixityTests.hs.prettyprinter.golden
--- a/tests/examples/FixityTests.hs.prettyprinter.golden
+++ b/tests/examples/FixityTests.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
-module Main (main) where
 main
   = forM_ cmdReports $
       \ x ->
diff --git a/tests/examples/FlexibleContextsWithoutVars.hs b/tests/examples/FlexibleContextsWithoutVars.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/FlexibleContextsWithoutVars.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE FlexibleContexts #-}
+f :: Log.Stack => a -> a
+f = id
diff --git a/tests/examples/FlexibleContextsWithoutVars.hs.exactprinter.golden b/tests/examples/FlexibleContextsWithoutVars.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/FlexibleContextsWithoutVars.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/FlexibleContextsWithoutVars.hs.parser.golden b/tests/examples/FlexibleContextsWithoutVars.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/FlexibleContextsWithoutVars.hs.parser.golden
@@ -0,0 +1,187 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 1 1 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 1 2 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 1 3 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 4 1 4 1
+            , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 1 1 13
+                , SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 1 2 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 3 2 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 1 2 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 25
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18
+                            ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 18
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18
+                               ]
+                           }
+                         (Qual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15
+                              , srcInfoPoints = []
+                              }
+                            (ModuleName
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15
+                                 , srcInfoPoints = []
+                                 }
+                               "Log")
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15
+                                 , srcInfoPoints = []
+                                 }
+                               "Stack"))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 19 2 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 21 2 23
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 19 2 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 19 2 20
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 24 2 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 24 2 25
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 1 3 7
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 1 3 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 1 3 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 3 3 7
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 3 3 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 5 3 7
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 5 3 7
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 3 5 3 7
+                        , srcInfoPoints = []
+                        }
+                      "id"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/FlexibleContextsWithoutVars.hs.prettyparser.golden b/tests/examples/FlexibleContextsWithoutVars.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/FlexibleContextsWithoutVars.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/FlexibleContextsWithoutVars.hs.prettyprinter.golden b/tests/examples/FlexibleContextsWithoutVars.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/FlexibleContextsWithoutVars.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE FlexibleContexts #-}
+
+f :: Log.Stack => a -> a
+f = id
diff --git a/tests/examples/ForallInInstance.hs.parser.golden b/tests/examples/ForallInInstance.hs.parser.golden
--- a/tests/examples/ForallInInstance.hs.parser.golden
+++ b/tests/examples/ForallInInstance.hs.parser.golden
@@ -1,1 +1,195 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 1,SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1,SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1,SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 1,SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1,SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 30, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 7,SrcSpan "tests/examples/ForallInInstance.hs" 2 25 2 30]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 2 8 2 24, srcInfoPoints = []}) "ForallInInstance") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 37, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 13,SrcSpan "tests/examples/ForallInInstance.hs" 1 34 1 37]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 1 14 1 33, srcInfoPoints = []}) "ScopedTypeVariables"]] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 1 5 0, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 9,SrcSpan "tests/examples/ForallInInstance.hs" 4 45 4 50,SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1,SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1,SrcSpan "tests/examples/ForallInInstance.hs" 5 0 5 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 44, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 16,SrcSpan "tests/examples/ForallInInstance.hs" 4 18 4 19]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18, srcInfoPoints = []}) "a")]) (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27, srcInfoPoints = []}) "MyClass")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29, srcInfoPoints = []}) "a")]))) (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 44, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40, srcInfoPoints = []}) "MyClass"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 44, srcInfoPoints = [SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 42,SrcSpan "tests/examples/ForallInInstance.hs" 4 43 4 44]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43, srcInfoPoints = []}) "a"))))) (Just [])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ForallInInstance.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 30
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ForallInInstance.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ForallInInstance.hs" 2 25 2 30
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ForallInInstance.hs" 2 8 2 24
+                 , srcInfoPoints = []
+                 }
+               "ForallInInstance")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ForallInInstance.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ForallInInstance.hs" 1 34 1 37
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ForallInInstance.hs" 1 14 1 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      ]
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ForallInInstance.hs" 4 1 5 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ForallInInstance.hs" 4 1 4 9
+                , SrcSpan "tests/examples/ForallInInstance.hs" 4 45 4 50
+                , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
+                , SrcSpan "tests/examples/ForallInInstance.hs" 5 1 5 1
+                , SrcSpan "tests/examples/ForallInInstance.hs" 5 0 5 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 44
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ForallInInstance.hs" 4 10 4 16
+                   , SrcSpan "tests/examples/ForallInInstance.hs" 4 18 4 19
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ForallInInstance.hs" 4 17 4 18
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27
+                                    , srcInfoPoints = []
+                                    }
+                                  "MyClass")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 44
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForallInInstance.hs" 4 33 4 40
+                           , srcInfoPoints = []
+                           }
+                         "MyClass")))
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 44
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ForallInInstance.hs" 4 41 4 42
+                         , SrcSpan "tests/examples/ForallInInstance.hs" 4 43 4 44
+                         ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForallInInstance.hs" 4 42 4 43
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          (Just [])
+      ]
+  , []
+  )
diff --git a/tests/examples/ForallInInstance.hs.prettyprinter.golden b/tests/examples/ForallInInstance.hs.prettyprinter.golden
--- a/tests/examples/ForallInInstance.hs.prettyprinter.golden
+++ b/tests/examples/ForallInInstance.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 module ForallInInstance where
- 
-instance forall a . MyClass a => MyClass [a]
+
+instance forall a . MyClass a => MyClass [a] where
diff --git a/tests/examples/ForeignImport.hs.parser.golden b/tests/examples/ForeignImport.hs.parser.golden
--- a/tests/examples/ForeignImport.hs.parser.golden
+++ b/tests/examples/ForeignImport.hs.parser.golden
@@ -1,1 +1,212 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1,SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1,SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1,SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1,SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1]}) Nothing [] [] [ForImp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 8,SrcSpan "tests/examples/ForeignImport.hs" 3 9 3 15,SrcSpan "tests/examples/ForeignImport.hs" 3 29 3 42,SrcSpan "tests/examples/ForeignImport.hs" 4 14 4 16]}) (CCall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 16 3 21, srcInfoPoints = []})) (Just (PlayRisky (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 22 3 28, srcInfoPoints = []}))) (Just "getProgArgv") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 2 4 13, srcInfoPoints = []}) "getProgArgv") (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 26 4 28]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 25, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25, srcInfoPoints = []}) "CInt")))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 47 4 49]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 46, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32, srcInfoPoints = []}) "Ptr"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 46, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 34,SrcSpan "tests/examples/ForeignImport.hs" 4 45 4 46]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 45, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37, srcInfoPoints = []}) "Ptr"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45, srcInfoPoints = []}) "CString")))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 55, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54,SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54,SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55, srcInfoPoints = [SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54,SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55]})))))))],[Comment True (SrcSpan "tests/examples/ForeignImport.hs" 1 1 2 67) " If compiled without ForeignFunctionInterface (part of Haskell2010),\n   it complains not about FFI but about missing TemplateHaskell "])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ForeignImport.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ ForImp
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 1 4 55
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ForeignImport.hs" 3 1 3 8
+                , SrcSpan "tests/examples/ForeignImport.hs" 3 9 3 15
+                , SrcSpan "tests/examples/ForeignImport.hs" 3 29 3 42
+                , SrcSpan "tests/examples/ForeignImport.hs" 4 14 4 16
+                ]
+            }
+          (CCall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 16 3 21
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 3 22 3 28
+                  , srcInfoPoints = []
+                  }))
+          (Just "getProgArgv")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 2 4 13
+               , srcInfoPoints = []
+               }
+             "getProgArgv")
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 55
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ForeignImport.hs" 4 26 4 28 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 25
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 17 4 20
+                           , srcInfoPoints = []
+                           }
+                         "Ptr")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 21 4 25
+                           , srcInfoPoints = []
+                           }
+                         "CInt"))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 55
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ForeignImport.hs" 4 47 4 49 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 46
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 29 4 32
+                              , srcInfoPoints = []
+                              }
+                            "Ptr")))
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 46
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ForeignImport.hs" 4 33 4 34
+                            , SrcSpan "tests/examples/ForeignImport.hs" 4 45 4 46
+                            ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 45
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ForeignImport.hs" 4 34 4 37
+                                    , srcInfoPoints = []
+                                    }
+                                  "Ptr")))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ForeignImport.hs" 4 38 4 45
+                                    , srcInfoPoints = []
+                                    }
+                                  "CString"))))))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 55
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 50 4 52
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
+                            , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
+                               , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 55
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ForeignImport.hs" 4 53 4 54
+                                  , SrcSpan "tests/examples/ForeignImport.hs" 4 54 4 55
+                                  ]
+                              }))))))
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/ForeignImport.hs" 1 1 2 67)
+        " If compiled without ForeignFunctionInterface (part of Haskell2010),\n   it complains not about FFI but about missing TemplateHaskell "
+    ]
+  )
diff --git a/tests/examples/ForeignImport.hs.prettyprinter.golden b/tests/examples/ForeignImport.hs.prettyprinter.golden
--- a/tests/examples/ForeignImport.hs.prettyprinter.golden
+++ b/tests/examples/ForeignImport.hs.prettyprinter.golden
@@ -1,4 +1,2 @@
-module Main (main) where
- 
 foreign import ccall unsafe "getProgArgv" getProgArgv ::
                Ptr CInt -> Ptr (Ptr CString) -> IO ()
diff --git a/tests/examples/ForeignImportJavascript.hs b/tests/examples/ForeignImportJavascript.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ForeignImportJavascript.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE JavascriptFFI #-}
+
+foreign import javascript unsafe "somethingUseful_ = $1"
+    js_set_somethingUseful :: JSFun a -> IO ()
diff --git a/tests/examples/ForeignImportJavascript.hs.exactprinter.golden b/tests/examples/ForeignImportJavascript.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ForeignImportJavascript.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ForeignImportJavascript.hs.parser.golden b/tests/examples/ForeignImportJavascript.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ForeignImportJavascript.hs.parser.golden
@@ -0,0 +1,166 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ForeignImportJavascript.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "JavascriptFFI"
+          ]
+      ]
+      []
+      [ ForImp
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 1 4 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 1 3 8
+                , SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 9 3 15
+                , SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 34 3 57
+                , SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 28 4 30
+                ]
+            }
+          (JavaScript
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 16 3 26
+               , srcInfoPoints = []
+               })
+          (Just
+             (PlayRisky
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ForeignImportJavascript.hs" 3 27 3 33
+                  , srcInfoPoints = []
+                  }))
+          (Just "somethingUseful_ = $1")
+          (Ident
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 5 4 27
+               , srcInfoPoints = []
+               }
+             "js_set_somethingUseful")
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 31 4 47
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 39 4 41 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 31 4 38
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 31 4 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 31 4 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 31 4 36
+                           , srcInfoPoints = []
+                           }
+                         "JSFun")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 37 4 38
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 37 4 38
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 42 4 47
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 42 4 44
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 42 4 44
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 42 4 44
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 47
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 46
+                         , SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 46 4 47
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 47
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 46
+                            , SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 46 4 47
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 47
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 45 4 46
+                               , SrcSpan "tests/examples/ForeignImportJavascript.hs" 4 46 4 47
+                               ]
+                           })))))
+      ]
+  , []
+  )
diff --git a/tests/examples/ForeignImportJavascript.hs.prettyparser.golden b/tests/examples/ForeignImportJavascript.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ForeignImportJavascript.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ForeignImportJavascript.hs.prettyprinter.golden b/tests/examples/ForeignImportJavascript.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ForeignImportJavascript.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE JavascriptFFI #-}
+
+foreign import javascript unsafe "somethingUseful_ = $1"
+               js_set_somethingUseful :: JSFun a -> IO ()
diff --git a/tests/examples/GADTRecord.hs.parser.golden b/tests/examples/GADTRecord.hs.parser.golden
--- a/tests/examples/GADTRecord.hs.parser.golden
+++ b/tests/examples/GADTRecord.hs.parser.golden
@@ -1,1 +1,128 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 1,SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1,SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1,SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1,SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 1,SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 13,SrcSpan "tests/examples/GADTRecord.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 14 1 19, srcInfoPoints = []}) "GADTs"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 1 5 0, srcInfoPoints = [SrcSpan "tests/examples/GADTRecord.hs" 3 8 3 13,SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 3,SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 0]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 6 3 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 6 3 7, srcInfoPoints = []}) "T")) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 29, srcInfoPoints = [SrcSpan "tests/examples/GADTRecord.hs" 4 5 4 7,SrcSpan "tests/examples/GADTRecord.hs" 4 8 4 9,SrcSpan "tests/examples/GADTRecord.hs" 4 23 4 24,SrcSpan "tests/examples/GADTRecord.hs" 4 25 4 27]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 4, srcInfoPoints = []}) "T") (Just [FieldDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 10 4 22, srcInfoPoints = [SrcSpan "tests/examples/GADTRecord.hs" 4 16 4 18]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 10 4 15, srcInfoPoints = []}) "field"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22, srcInfoPoints = []}) "Int")))]) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29, srcInfoPoints = []}) "T")))] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 1
+            , SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GADTRecord.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GADTRecord.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 1 5 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GADTRecord.hs" 3 8 3 13
+                , SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 3
+                , SrcSpan "tests/examples/GADTRecord.hs" 5 1 5 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 6 3 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                "T"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 29
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GADTRecord.hs" 4 5 4 7
+                    , SrcSpan "tests/examples/GADTRecord.hs" 4 8 4 9
+                    , SrcSpan "tests/examples/GADTRecord.hs" 4 23 4 24
+                    , SrcSpan "tests/examples/GADTRecord.hs" 4 25 4 27
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 3 4 4
+                   , srcInfoPoints = []
+                   }
+                 "T")
+              Nothing
+              Nothing
+              (Just
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 10 4 22
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/GADTRecord.hs" 4 16 4 18 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 10 4 15
+                           , srcInfoPoints = []
+                           }
+                         "field"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 19 4 22
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 ])
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GADTRecord.hs" 4 28 4 29
+                         , srcInfoPoints = []
+                         }
+                       "T")))
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/GADTRecord.hs.prettyprinter.golden b/tests/examples/GADTRecord.hs.prettyprinter.golden
--- a/tests/examples/GADTRecord.hs.prettyprinter.golden
+++ b/tests/examples/GADTRecord.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 data T where
         T :: {field :: Int} -> T
diff --git a/tests/examples/GADTRecord2.hs b/tests/examples/GADTRecord2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/GADTRecord2.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE GADTs #-}
+
+data T where
+  T :: () => { field :: Int } -> T
diff --git a/tests/examples/GADTRecord2.hs.exactprinter.golden b/tests/examples/GADTRecord2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/GADTRecord2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/GADTRecord2.hs.parser.golden b/tests/examples/GADTRecord2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/GADTRecord2.hs.parser.golden
@@ -0,0 +1,137 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GADTRecord2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GADTRecord2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GADTRecord2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/GADTRecord2.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GADTRecord2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GADTRecord2.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 3 1 5 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GADTRecord2.hs" 3 8 3 13
+                , SrcSpan "tests/examples/GADTRecord2.hs" 4 3 4 3
+                , SrcSpan "tests/examples/GADTRecord2.hs" 5 1 5 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 3 6 3 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                "T"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 3 4 35
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GADTRecord2.hs" 4 5 4 7
+                    , SrcSpan "tests/examples/GADTRecord2.hs" 4 14 4 15
+                    , SrcSpan "tests/examples/GADTRecord2.hs" 4 29 4 30
+                    , SrcSpan "tests/examples/GADTRecord2.hs" 4 31 4 33
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 3 4 4
+                   , srcInfoPoints = []
+                   }
+                 "T")
+              Nothing
+              (Just
+                 (CxEmpty
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 8 4 13
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/GADTRecord2.hs" 4 8 4 9
+                          , SrcSpan "tests/examples/GADTRecord2.hs" 4 9 4 10
+                          , SrcSpan "tests/examples/GADTRecord2.hs" 4 11 4 13
+                          ]
+                      }))
+              (Just
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 16 4 28
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/GADTRecord2.hs" 4 22 4 24 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 16 4 21
+                           , srcInfoPoints = []
+                           }
+                         "field"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 25 4 28
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 25 4 28
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 25 4 28
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 ])
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 34 4 35
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 34 4 35
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GADTRecord2.hs" 4 34 4 35
+                         , srcInfoPoints = []
+                         }
+                       "T")))
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/GADTRecord2.hs.prettyparser.golden b/tests/examples/GADTRecord2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/GADTRecord2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/GADTRecord2.hs.prettyprinter.golden b/tests/examples/GADTRecord2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/GADTRecord2.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE GADTs #-}
+
+data T where
+        T :: () => {field :: Int} -> T
diff --git a/tests/examples/GadtDeriving.hs.parser.golden b/tests/examples/GadtDeriving.hs.parser.golden
--- a/tests/examples/GadtDeriving.hs.parser.golden
+++ b/tests/examples/GadtDeriving.hs.parser.golden
@@ -1,1 +1,199 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 1,SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GadtDeriving.hs" 6 1 6 1,SrcSpan "tests/examples/GadtDeriving.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 13,SrcSpan "tests/examples/GadtDeriving.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 14 1 19, srcInfoPoints = []}) "GADTs"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 1 5 31, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 3 10 3 15,SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 5,SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 5,SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 5]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 6 3 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 6 3 9, srcInfoPoints = []}) "Foo")) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 22, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 4 9 4 11]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 8, srcInfoPoints = []}) "Foo") Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 22, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 4 16 4 18]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22, srcInfoPoints = []}) "Foo"))))] (Just (Deriving (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 31, srcInfoPoints = [SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 13,SrcSpan "tests/examples/GadtDeriving.hs" 5 14 5 15,SrcSpan "tests/examples/GadtDeriving.hs" 5 17 5 18,SrcSpan "tests/examples/GadtDeriving.hs" 5 21 5 22,SrcSpan "tests/examples/GadtDeriving.hs" 5 30 5 31]}) [IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17, srcInfoPoints = []}) "Eq"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21, srcInfoPoints = []}) "Ord"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30, srcInfoPoints = []}) "Typeable")))]))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtDeriving.hs" 6 1 6 1
+            , SrcSpan "tests/examples/GadtDeriving.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtDeriving.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GadtDeriving.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 1 5 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtDeriving.hs" 3 10 3 15
+                , SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 5
+                , SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 5
+                , SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 5
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 6 3 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GadtDeriving.hs" 4 9 4 11 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 5 4 8
+                   , srcInfoPoints = []
+                   }
+                 "Foo")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/GadtDeriving.hs" 4 16 4 18 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 15
+                            , srcInfoPoints = []
+                            }
+                          "Int")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 19 4 22
+                            , srcInfoPoints = []
+                            }
+                          "Foo"))))
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 31
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GadtDeriving.hs" 5 5 5 13
+                    , SrcSpan "tests/examples/GadtDeriving.hs" 5 14 5 15
+                    , SrcSpan "tests/examples/GadtDeriving.hs" 5 17 5 18
+                    , SrcSpan "tests/examples/GadtDeriving.hs" 5 21 5 22
+                    , SrcSpan "tests/examples/GadtDeriving.hs" 5 30 5 31
+                    ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 15 5 17
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 18 5 21
+                             , srcInfoPoints = []
+                             }
+                           "Ord")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 5 22 5 30
+                             , srcInfoPoints = []
+                             }
+                           "Typeable")))
+              ]
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/GadtDeriving.hs.prettyprinter.golden b/tests/examples/GadtDeriving.hs.prettyprinter.golden
--- a/tests/examples/GadtDeriving.hs.prettyprinter.golden
+++ b/tests/examples/GadtDeriving.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 data Foo where
         Foo :: Int -> Foo
     deriving (Eq, Ord, Typeable)
diff --git a/tests/examples/GadtRecordFields.hs.parser.golden b/tests/examples/GadtRecordFields.hs.parser.golden
--- a/tests/examples/GadtRecordFields.hs.parser.golden
+++ b/tests/examples/GadtRecordFields.hs.parser.golden
@@ -1,1 +1,217 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 1,SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1,SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1,SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1,SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 1,SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 13,SrcSpan "tests/examples/GadtRecordFields.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 1 14 1 19, srcInfoPoints = []}) "GADTs"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 6 0, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 3 9 3 14,SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 3,SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 3,SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 0]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 3 6 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 3 6 3 8, srcInfoPoints = []}) "Ty")) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 50, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 4 8 4 10,SrcSpan "tests/examples/GadtRecordFields.hs" 4 11 4 12,SrcSpan "tests/examples/GadtRecordFields.hs" 4 43 4 44,SrcSpan "tests/examples/GadtRecordFields.hs" 4 45 4 47,SrcSpan "tests/examples/GadtRecordFields.hs" 4 26 4 27]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 7, srcInfoPoints = []}) "TCon") (Just [FieldDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 13 4 26, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 4 20 4 22]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 13 4 19, srcInfoPoints = []}) "field1"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26, srcInfoPoints = []}) "Int"))),FieldDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 28 4 42, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 4 35 4 37]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 28 4 34, srcInfoPoints = []}) "field2"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42, srcInfoPoints = []}) "Bool")))]) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50, srcInfoPoints = []}) "Ty"))),GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 14, srcInfoPoints = [SrcSpan "tests/examples/GadtRecordFields.hs" 5 9 5 11]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 8, srcInfoPoints = []}) "TCon2") Nothing (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14, srcInfoPoints = []}) "Ty")))] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 1
+            , SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtRecordFields.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GadtRecordFields.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/GadtRecordFields.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 6 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtRecordFields.hs" 3 9 3 14
+                , SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 3
+                , SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 3
+                , SrcSpan "tests/examples/GadtRecordFields.hs" 6 1 6 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/GadtRecordFields.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/GadtRecordFields.hs" 3 6 3 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/GadtRecordFields.hs" 3 6 3 8
+                  , srcInfoPoints = []
+                  }
+                "Ty"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 50
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GadtRecordFields.hs" 4 8 4 10
+                    , SrcSpan "tests/examples/GadtRecordFields.hs" 4 11 4 12
+                    , SrcSpan "tests/examples/GadtRecordFields.hs" 4 43 4 44
+                    , SrcSpan "tests/examples/GadtRecordFields.hs" 4 45 4 47
+                    , SrcSpan "tests/examples/GadtRecordFields.hs" 4 26 4 27
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/GadtRecordFields.hs" 4 3 4 7
+                   , srcInfoPoints = []
+                   }
+                 "TCon")
+              Nothing
+              Nothing
+              (Just
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/GadtRecordFields.hs" 4 13 4 26
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/GadtRecordFields.hs" 4 20 4 22 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/GadtRecordFields.hs" 4 13 4 19
+                           , srcInfoPoints = []
+                           }
+                         "field1"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/GadtRecordFields.hs" 4 23 4 26
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 , FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/GadtRecordFields.hs" 4 28 4 42
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/GadtRecordFields.hs" 4 35 4 37 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/GadtRecordFields.hs" 4 28 4 34
+                           , srcInfoPoints = []
+                           }
+                         "field2"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/GadtRecordFields.hs" 4 38 4 42
+                                , srcInfoPoints = []
+                                }
+                              "Bool")))
+                 ])
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/GadtRecordFields.hs" 4 48 4 50
+                         , srcInfoPoints = []
+                         }
+                       "Ty")))
+          , GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 14
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GadtRecordFields.hs" 5 9 5 11 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/GadtRecordFields.hs" 5 3 5 8
+                   , srcInfoPoints = []
+                   }
+                 "TCon2")
+              Nothing
+              Nothing
+              Nothing
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/GadtRecordFields.hs" 5 12 5 14
+                         , srcInfoPoints = []
+                         }
+                       "Ty")))
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/GadtRecordFields.hs.prettyprinter.golden b/tests/examples/GadtRecordFields.hs.prettyprinter.golden
--- a/tests/examples/GadtRecordFields.hs.prettyprinter.golden
+++ b/tests/examples/GadtRecordFields.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 data Ty where
         TCon :: {field1 :: Int, field2 :: Bool} -> Ty
         TCon2 :: Ty
diff --git a/tests/examples/GadtStrictness.hs.parser.golden b/tests/examples/GadtStrictness.hs.parser.golden
--- a/tests/examples/GadtStrictness.hs.parser.golden
+++ b/tests/examples/GadtStrictness.hs.parser.golden
@@ -1,1 +1,135 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 1,SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1,SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1,SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1,SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 1,SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 13,SrcSpan "tests/examples/GadtStrictness.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 1 14 1 19, srcInfoPoints = []}) "GADTs"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 1 5 0, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 3 8 3 13,SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 3,SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 0]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 6 3 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 6 3 7, srcInfoPoints = []}) "X")) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 17, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 4 5 4 7]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 4, srcInfoPoints = []}) "X") Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 17, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 4 13 4 15]}) (TyBang (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 12, srcInfoPoints = []}) (BangedTy (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 9, srcInfoPoints = [SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 9]})) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12, srcInfoPoints = []}) "Int")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17, srcInfoPoints = []}) "X"))))] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 1
+            , SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtStrictness.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GadtStrictness.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/GadtStrictness.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 1 5 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GadtStrictness.hs" 3 8 3 13
+                , SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 3
+                , SrcSpan "tests/examples/GadtStrictness.hs" 5 1 5 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 6 3 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                "X"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GadtStrictness.hs" 4 5 4 7 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 3 4 4
+                   , srcInfoPoints = []
+                   }
+                 "X")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/GadtStrictness.hs" 4 13 4 15 ]
+                   }
+                 (TyBang
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 12
+                      , srcInfoPoints = []
+                      }
+                    (BangedTy
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 9
+                         , srcInfoPoints = []
+                         })
+                    (NoUnpackPragma
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                         , srcInfoPoints = []
+                         })
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 9 4 12
+                               , srcInfoPoints = []
+                               }
+                             "Int"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/GadtStrictness.hs" 4 16 4 17
+                            , srcInfoPoints = []
+                            }
+                          "X"))))
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/GadtStrictness.hs.prettyprinter.golden b/tests/examples/GadtStrictness.hs.prettyprinter.golden
--- a/tests/examples/GadtStrictness.hs.prettyprinter.golden
+++ b/tests/examples/GadtStrictness.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 data X where
         X :: !Int -> X
diff --git a/tests/examples/GenericTree.hs.parser.golden b/tests/examples/GenericTree.hs.parser.golden
--- a/tests/examples/GenericTree.hs.parser.golden
+++ b/tests/examples/GenericTree.hs.parser.golden
@@ -1,1 +1,479 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 1 1 1 1,SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1,SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1,SrcSpan "tests/examples/GenericTree.hs" 4 1 4 1,SrcSpan "tests/examples/GenericTree.hs" 6 1 6 1,SrcSpan "tests/examples/GenericTree.hs" 7 1 7 1,SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1,SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 2 1 2 7,SrcSpan "tests/examples/GenericTree.hs" 2 20 2 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 8 2 19, srcInfoPoints = []}) "GenericTree") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 1 28, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 1 1 1 13,SrcSpan "tests/examples/GenericTree.hs" 1 25 1 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 14 1 24, srcInfoPoints = []}) "RankNTypes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 8 4 21, srcInfoPoints = []}) "Data.Typeable", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 83, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 8 6 10]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 7, srcInfoPoints = []}) "dynRep"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 83, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12,SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23,SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26]}) (ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12,SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23,SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20, srcInfoPoints = []}) "Typeable")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22, srcInfoPoints = []}) "a")])))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 83, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 29 6 31]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28, srcInfoPoints = []}) "a")) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 32 6 83, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 32 6 33,SrcSpan "tests/examples/GenericTree.hs" 6 40 6 41,SrcSpan "tests/examples/GenericTree.hs" 6 82 6 83]}) Boxed [TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40, srcInfoPoints = []}) "TypeRep")),TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 42 6 82, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 42 6 48,SrcSpan "tests/examples/GenericTree.hs" 6 50 6 51]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50, srcInfoPoints = []}) "b")]) (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53,SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64,SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67]}) (ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53,SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64,SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61, srcInfoPoints = []}) "Typeable")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63, srcInfoPoints = []}) "b")])))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 82, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 70 6 72]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69, srcInfoPoints = []}) "b")) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 73 6 82, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 6 73 6 74,SrcSpan "tests/examples/GenericTree.hs" 6 81 6 82]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 81, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79, srcInfoPoints = []}) "Maybe"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81, srcInfoPoints = []}) "b")))))]))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 7, srcInfoPoints = []}) "dynRep") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9, srcInfoPoints = []}) "a")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 10 7 36, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 7 10 7 11]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 12 7 36, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 7 12 7 13,SrcSpan "tests/examples/GenericTree.hs" 7 21 7 22,SrcSpan "tests/examples/GenericTree.hs" 7 35 7 36]}) Boxed [App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 21, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19, srcInfoPoints = []}) "typeOf"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21, srcInfoPoints = []}) "a"))),Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 23 7 35, srcInfoPoints = [SrcSpan "tests/examples/GenericTree.hs" 7 23 7 24,SrcSpan "tests/examples/GenericTree.hs" 7 26 7 28]}) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 24 7 25, srcInfoPoints = []})] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33, srcInfoPoints = []}) "cast"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35, srcInfoPoints = []}) "a"))))])) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 1
+            , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1
+            , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1
+            , SrcSpan "tests/examples/GenericTree.hs" 4 1 4 1
+            , SrcSpan "tests/examples/GenericTree.hs" 6 1 6 1
+            , SrcSpan "tests/examples/GenericTree.hs" 7 1 7 1
+            , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1
+            , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 1 2 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/GenericTree.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/GenericTree.hs" 2 20 2 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 8 2 19
+                 , srcInfoPoints = []
+                 }
+               "GenericTree")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 13
+                , SrcSpan "tests/examples/GenericTree.hs" 1 25 1 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 1 4 21
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GenericTree.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 8 4 21
+                  , srcInfoPoints = []
+                  }
+                "Data.Typeable"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 83
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GenericTree.hs" 6 8 6 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 7
+                , srcInfoPoints = []
+                }
+              "dynRep"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 83
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12
+                         , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23
+                         , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12
+                            , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23
+                            , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20
+                                       , srcInfoPoints = []
+                                       }
+                                     "Typeable")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 83
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/GenericTree.hs" 6 29 6 31 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 32 6 83
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/GenericTree.hs" 6 32 6 33
+                         , SrcSpan "tests/examples/GenericTree.hs" 6 40 6 41
+                         , SrcSpan "tests/examples/GenericTree.hs" 6 82 6 83
+                         ]
+                     }
+                   Boxed
+                   [ TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40
+                               , srcInfoPoints = []
+                               }
+                             "TypeRep"))
+                   , TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 42 6 82
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/GenericTree.hs" 6 42 6 48
+                             , SrcSpan "tests/examples/GenericTree.hs" 6 50 6 51
+                             ]
+                         }
+                       (Just
+                          [ UnkindedVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")
+                          ])
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53
+                                   , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64
+                                   , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67
+                                   ]
+                               }
+                             (ParenA
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53
+                                      , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64
+                                      , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67
+                                      ]
+                                  }
+                                (TypeA
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/GenericTree.hs" 6 53 6 61
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Typeable")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63
+                                              , srcInfoPoints = []
+                                              }
+                                            "b")))))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 82
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/GenericTree.hs" 6 70 6 72 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 73 6 82
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/GenericTree.hs" 6 73 6 74
+                                   , SrcSpan "tests/examples/GenericTree.hs" 6 81 6 82
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 81
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79
+                                           , srcInfoPoints = []
+                                           }
+                                         "Maybe")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))))
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 7
+                   , srcInfoPoints = []
+                   }
+                 "dynRep")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 10 7 36
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/GenericTree.hs" 7 10 7 11 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 12 7 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/GenericTree.hs" 7 12 7 13
+                          , SrcSpan "tests/examples/GenericTree.hs" 7 21 7 22
+                          , SrcSpan "tests/examples/GenericTree.hs" 7 35 7 36
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 21
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19
+                                   , srcInfoPoints = []
+                                   }
+                                 "typeOf")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                    , Lambda
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 23 7 35
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/GenericTree.hs" 7 23 7 24
+                              , SrcSpan "tests/examples/GenericTree.hs" 7 26 7 28
+                              ]
+                          }
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 24 7 25
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 35
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33
+                                      , srcInfoPoints = []
+                                      }
+                                    "cast")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35
+                                      , srcInfoPoints = []
+                                      }
+                                    "a"))))
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/GenericTree.hs.prettyprinter.golden b/tests/examples/GenericTree.hs.prettyprinter.golden
--- a/tests/examples/GenericTree.hs.prettyprinter.golden
+++ b/tests/examples/GenericTree.hs.prettyprinter.golden
@@ -1,7 +1,7 @@
 {-# LANGUAGE RankNTypes #-}
 module GenericTree where
 import Data.Typeable
- 
+
 dynRep ::
          (Typeable a) =>
          a -> (TypeRep, forall b . (Typeable b) => b -> (Maybe b))
diff --git a/tests/examples/GhcDeriving.hs.parser.golden b/tests/examples/GhcDeriving.hs.parser.golden
--- a/tests/examples/GhcDeriving.hs.parser.golden
+++ b/tests/examples/GhcDeriving.hs.parser.golden
@@ -1,1 +1,271 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1,SrcSpan "tests/examples/GhcDeriving.hs" 5 1 5 1,SrcSpan "tests/examples/GhcDeriving.hs" 5 1 5 1]}) Nothing [] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 4 45, srcInfoPoints = [SrcSpan "tests/examples/GhcDeriving.hs" 3 25 3 26]}) (NewType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 8, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 24, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 22, srcInfoPoints = []}) "CodeGenModule")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 23 3 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 23 3 24, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 53, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 30, srcInfoPoints = []}) "CGM") [TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 31 3 53, srcInfoPoints = [SrcSpan "tests/examples/GhcDeriving.hs" 3 31 3 32,SrcSpan "tests/examples/GhcDeriving.hs" 3 52 3 53]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 52, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 50, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 47, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38, srcInfoPoints = []}) "StateT"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47, srcInfoPoints = []}) "CGMState")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50, srcInfoPoints = []}) "IO")))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 51 3 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 51 3 52, srcInfoPoints = []}) "a")))])] (Just (Deriving (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 4 4 45, srcInfoPoints = [SrcSpan "tests/examples/GhcDeriving.hs" 4 4 4 12,SrcSpan "tests/examples/GhcDeriving.hs" 4 13 4 14,SrcSpan "tests/examples/GhcDeriving.hs" 4 19 4 20,SrcSpan "tests/examples/GhcDeriving.hs" 4 35 4 36,SrcSpan "tests/examples/GhcDeriving.hs" 4 44 4 45]}) [IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19, srcInfoPoints = []}) "Monad"))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 35, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 35, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31, srcInfoPoints = []}) "MonadState"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 32 4 35, srcInfoPoints = [SrcSpan "tests/examples/GhcDeriving.hs" 4 32 4 33,SrcSpan "tests/examples/GhcDeriving.hs" 4 34 4 35]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 33 4 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 33 4 34, srcInfoPoints = []}) "s")))),IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44, srcInfoPoints = []}) "MonadIO")))]))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 1
+            , SrcSpan "tests/examples/GhcDeriving.hs" 5 1 5 1
+            , SrcSpan "tests/examples/GhcDeriving.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 4 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/GhcDeriving.hs" 3 25 3 26 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 1 3 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 9 3 22
+                     , srcInfoPoints = []
+                     }
+                   "CodeGenModule"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 23 3 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 23 3 24
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 53
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 53
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 27 3 30
+                      , srcInfoPoints = []
+                      }
+                    "CGM")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 31 3 53
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/GhcDeriving.hs" 3 31 3 32
+                           , SrcSpan "tests/examples/GhcDeriving.hs" 3 52 3 53
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 52
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 50
+                             , srcInfoPoints = []
+                             }
+                           (TyApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 47
+                                , srcInfoPoints = []
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/GhcDeriving.hs" 3 32 3 38
+                                         , srcInfoPoints = []
+                                         }
+                                       "StateT")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/GhcDeriving.hs" 3 39 3 47
+                                         , srcInfoPoints = []
+                                         }
+                                       "CGMState"))))
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/GhcDeriving.hs" 3 48 3 50
+                                      , srcInfoPoints = []
+                                      }
+                                    "IO"))))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 51 3 52
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 3 51 3 52
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 4 4 45
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/GhcDeriving.hs" 4 4 4 12
+                    , SrcSpan "tests/examples/GhcDeriving.hs" 4 13 4 14
+                    , SrcSpan "tests/examples/GhcDeriving.hs" 4 19 4 20
+                    , SrcSpan "tests/examples/GhcDeriving.hs" 4 35 4 36
+                    , SrcSpan "tests/examples/GhcDeriving.hs" 4 44 4 45
+                    ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 14 4 19
+                             , srcInfoPoints = []
+                             }
+                           "Monad")))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 35
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHApp
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 35
+                       , srcInfoPoints = []
+                       }
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 21 4 31
+                                , srcInfoPoints = []
+                                }
+                              "MonadState")))
+                     (TyList
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 32 4 35
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/GhcDeriving.hs" 4 32 4 33
+                              , SrcSpan "tests/examples/GhcDeriving.hs" 4 34 4 35
+                              ]
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 33 4 34
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 33 4 34
+                                , srcInfoPoints = []
+                                }
+                              "s"))))
+              , IRule
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/GhcDeriving.hs" 4 37 4 44
+                             , srcInfoPoints = []
+                             }
+                           "MonadIO")))
+              ]
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/GhcDeriving.hs.prettyprinter.golden b/tests/examples/GhcDeriving.hs.prettyprinter.golden
--- a/tests/examples/GhcDeriving.hs.prettyprinter.golden
+++ b/tests/examples/GhcDeriving.hs.prettyprinter.golden
@@ -1,4 +1,2 @@
-module Main (main) where
- 
 newtype CodeGenModule a = CGM (StateT CGMState IO a)
-                        deriving (Monad, MonadState [s], MonadIO)
+                            deriving (Monad, MonadState [s], MonadIO)
diff --git a/tests/examples/GroupKeyword.hs.parser.golden b/tests/examples/GroupKeyword.hs.parser.golden
--- a/tests/examples/GroupKeyword.hs.parser.golden
+++ b/tests/examples/GroupKeyword.hs.parser.golden
@@ -1,1 +1,210 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 1,SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 1,SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 1,SrcSpan "tests/examples/GroupKeyword.hs" 5 1 5 1,SrcSpan "tests/examples/GroupKeyword.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 26, srcInfoPoints = [SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 7,SrcSpan "tests/examples/GroupKeyword.hs" 2 21 2 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 8 2 20, srcInfoPoints = []}) "GroupKeyword") Nothing Nothing)) [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 37, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 2, srcInfoPoints = []}) "a")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 3 4 37, srcInfoPoints = [SrcSpan "tests/examples/GroupKeyword.hs" 4 3 4 4]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 37, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 13, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8, srcInfoPoints = []}) "map"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13, srcInfoPoints = []}) "head")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15, srcInfoPoints = []}) "$"))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21, srcInfoPoints = []}) "group"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 37, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28, srcInfoPoints = []}) "sort"))) (EnumFromTo (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 29 4 37, srcInfoPoints = [SrcSpan "tests/examples/GroupKeyword.hs" 4 29 4 30,SrcSpan "tests/examples/GroupKeyword.hs" 4 31 4 33,SrcSpan "tests/examples/GroupKeyword.hs" 4 36 4 37]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 30 4 31, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 30 4 31, srcInfoPoints = []}) 1 "1")) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 33 4 36, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 33 4 36, srcInfoPoints = []}) 100 "100"))))))) Nothing],[Comment False (SrcSpan "tests/examples/GroupKeyword.hs" 1 1 1 38) " {-# LANGUAGE TransformListComp #-}"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 1
+            , SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 1
+            , SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 1
+            , SrcSpan "tests/examples/GroupKeyword.hs" 5 1 5 1
+            , SrcSpan "tests/examples/GroupKeyword.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/GroupKeyword.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/GroupKeyword.hs" 2 21 2 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 2 8 2 20
+                 , srcInfoPoints = []
+                 }
+               "GroupKeyword")
+            Nothing
+            Nothing))
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 37
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 1 4 2
+                  , srcInfoPoints = []
+                  }
+                "a"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 3 4 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/GroupKeyword.hs" 4 3 4 4 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 37
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 13
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 5 4 8
+                              , srcInfoPoints = []
+                              }
+                            "map")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 9 4 13
+                              , srcInfoPoints = []
+                              }
+                            "head"))))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 14 4 15
+                           , srcInfoPoints = []
+                           }
+                         "$")))
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 37
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 16 4 21
+                              , srcInfoPoints = []
+                              }
+                            "group")))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 22 4 23
+                              , srcInfoPoints = []
+                              }
+                            "$")))
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 37
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 24 4 28
+                                 , srcInfoPoints = []
+                                 }
+                               "sort")))
+                      (EnumFromTo
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 29 4 37
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/GroupKeyword.hs" 4 29 4 30
+                               , SrcSpan "tests/examples/GroupKeyword.hs" 4 31 4 33
+                               , SrcSpan "tests/examples/GroupKeyword.hs" 4 36 4 37
+                               ]
+                           }
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 30 4 31
+                              , srcInfoPoints = []
+                              }
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 30 4 31
+                                 , srcInfoPoints = []
+                                 }
+                               1
+                               "1"))
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 33 4 36
+                              , srcInfoPoints = []
+                              }
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/GroupKeyword.hs" 4 33 4 36
+                                 , srcInfoPoints = []
+                                 }
+                               100
+                               "100")))))))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/GroupKeyword.hs" 1 1 1 38)
+        " {-# LANGUAGE TransformListComp #-}"
+    ]
+  )
diff --git a/tests/examples/HaddockComments.hs b/tests/examples/HaddockComments.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/HaddockComments.hs
@@ -0,0 +1,56 @@
+{-|
+Module      : W
+Description : Short description
+Copyright   : (c) Some Guy, 2013
+                  Someone Else, 2014
+License     : GPL-3
+Maintainer  : sample@email.com
+Stability   : experimental
+Portability : POSIX
+
+Here is a longer description of this module, containing some
+commentary with @some markup@.
+-}
+module HaddockComments where
+
+-- | Function1 comment
+fun1
+   :: Int      -- ^ The 'Int' argument
+   -> Float    -- ^ The 'Float' argument
+   -> IO ()    -- ^ The return value
+fun1 = undefined
+
+
+-- not a haddock comment
+fun2 = undefined
+
+fun3 :: Int -> Int
+-- ^ Function3 comment
+fun3 = undefined
+
+{-|
+  The 'square' function squares an integer.
+  It takes one argument, of type 'Int'.
+-}
+square :: Int -> Int
+square x = x * x -- beware!
+
+class C a where
+   -- | This is the documentation for the 'f' method
+   f :: a -> Int
+   -- | This is the documentation for the 'g' method
+   g :: Int -> a
+
+-- | Data type comment
+-- With a second line
+data MyData =
+  -- | Constructor1 comment
+  Cons1
+    { cons1Field1 :: Int -- ^ Constructor 1 field 1 comment
+                         -- spanning two lines
+      -- | Constructor 1 field 2 comment
+    , cons1Field2 :: Int
+    , cons1Field3 :: String -- Not a haddock comment
+    }
+  | Cons2 -- ^ Constructor 2 comment
+      Int -- ^ Last
diff --git a/tests/examples/HaddockComments.hs.exactprinter.golden b/tests/examples/HaddockComments.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HaddockComments.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/HaddockComments.hs.parser.golden b/tests/examples/HaddockComments.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HaddockComments.hs.parser.golden
@@ -0,0 +1,983 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/HaddockComments.hs" 14 1 57 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/HaddockComments.hs" 14 1 14 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 14 1 14 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 17 1 17 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 21 1 21 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 25 1 25 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 27 1 27 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 29 1 29 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 35 1 35 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 36 1 36 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 38 1 38 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 46 1 46 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 57 1 57 1
+            , SrcSpan "tests/examples/HaddockComments.hs" 57 1 57 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/HaddockComments.hs" 14 1 14 29
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/HaddockComments.hs" 14 1 14 7
+                  , SrcSpan "tests/examples/HaddockComments.hs" 14 24 14 29
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/HaddockComments.hs" 14 8 14 23
+                 , srcInfoPoints = []
+                 }
+               "HaddockComments")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 17 1 20 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaddockComments.hs" 18 4 18 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 17 1 17 5
+                , srcInfoPoints = []
+                }
+              "fun1"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 18 7 20 12
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 19 4 19 6 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 18 7 18 10
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 18 7 18 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 18 7 18 10
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 19 7 20 12
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/HaddockComments.hs" 20 4 20 6 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 19 7 19 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 19 7 19 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 19 7 19 12
+                           , srcInfoPoints = []
+                           }
+                         "Float")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 20 7 20 12
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 20 7 20 9
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 20 7 20 9
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/HaddockComments.hs" 20 7 20 9
+                              , srcInfoPoints = []
+                              }
+                            "IO")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 11
+                            , SrcSpan "tests/examples/HaddockComments.hs" 20 11 20 12
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 12
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 11
+                               , SrcSpan "tests/examples/HaddockComments.hs" 20 11 20 12
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 12
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/HaddockComments.hs" 20 10 20 11
+                                  , SrcSpan "tests/examples/HaddockComments.hs" 20 11 20 12
+                                  ]
+                              }))))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 21 1 21 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 21 1 21 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 21 1 21 5
+                  , srcInfoPoints = []
+                  }
+                "fun1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 21 6 21 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 21 6 21 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 21 8 21 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 21 8 21 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 21 8 21 17
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 25 1 25 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 25 1 25 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 25 1 25 5
+                  , srcInfoPoints = []
+                  }
+                "fun2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 25 6 25 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 25 6 25 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 25 8 25 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 25 8 25 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 25 8 25 17
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 27 1 27 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaddockComments.hs" 27 6 27 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 27 1 27 5
+                , srcInfoPoints = []
+                }
+              "fun3"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 27 9 27 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 27 13 27 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 27 9 27 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 27 9 27 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 27 9 27 12
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 27 16 27 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 27 16 27 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 27 16 27 19
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 29 1 29 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 29 1 29 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 29 1 29 5
+                  , srcInfoPoints = []
+                  }
+                "fun3"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 29 6 29 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 29 6 29 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 29 8 29 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 29 8 29 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 29 8 29 17
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 35 1 35 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaddockComments.hs" 35 8 35 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 35 1 35 7
+                , srcInfoPoints = []
+                }
+              "square"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 35 11 35 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaddockComments.hs" 35 15 35 17 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 35 11 35 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 35 11 35 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 35 11 35 14
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 35 18 35 21
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 35 18 35 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/HaddockComments.hs" 35 18 35 21
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 36 1 36 17
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 36 1 36 17
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 36 1 36 7
+                   , srcInfoPoints = []
+                   }
+                 "square")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/HaddockComments.hs" 36 8 36 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/HaddockComments.hs" 36 8 36 9
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 36 10 36 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HaddockComments.hs" 36 10 36 11 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaddockComments.hs" 36 12 36 17
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaddockComments.hs" 36 12 36 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 36 12 36 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 36 12 36 13
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaddockComments.hs" 36 14 36 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 36 14 36 15
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 36 14 36 15
+                               , srcInfoPoints = []
+                               }
+                             "*")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaddockComments.hs" 36 16 36 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 36 16 36 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 36 16 36 17
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 38 1 42 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaddockComments.hs" 38 1 38 6
+                , SrcSpan "tests/examples/HaddockComments.hs" 38 11 38 16
+                , SrcSpan "tests/examples/HaddockComments.hs" 40 4 40 4
+                , SrcSpan "tests/examples/HaddockComments.hs" 42 4 42 4
+                , SrcSpan "tests/examples/HaddockComments.hs" 46 1 46 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 38 7 38 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 38 7 38 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 38 7 38 8
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 38 9 38 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/HaddockComments.hs" 38 9 38 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 40 4 40 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HaddockComments.hs" 40 6 40 8 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaddockComments.hs" 40 4 40 17
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HaddockComments.hs" 40 6 40 8 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 40 4 40 5
+                          , srcInfoPoints = []
+                          }
+                        "f"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaddockComments.hs" 40 9 40 17
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/HaddockComments.hs" 40 11 40 13 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 40 9 40 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 40 9 40 10
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 40 14 40 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 40 14 40 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaddockComments.hs" 40 14 40 17
+                                  , srcInfoPoints = []
+                                  }
+                                "Int")))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 42 4 42 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HaddockComments.hs" 42 6 42 8 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaddockComments.hs" 42 4 42 17
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HaddockComments.hs" 42 6 42 8 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 42 4 42 5
+                          , srcInfoPoints = []
+                          }
+                        "g"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaddockComments.hs" 42 9 42 17
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/HaddockComments.hs" 42 13 42 15 ]
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 42 9 42 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 42 9 42 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaddockComments.hs" 42 9 42 12
+                                  , srcInfoPoints = []
+                                  }
+                                "Int")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaddockComments.hs" 42 16 42 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaddockComments.hs" 42 16 42 17
+                               , srcInfoPoints = []
+                               }
+                             "a"))))
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaddockComments.hs" 46 1 56 10
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaddockComments.hs" 46 13 46 14
+                , SrcSpan "tests/examples/HaddockComments.hs" 55 3 55 4
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 46 1 46 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaddockComments.hs" 46 6 46 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaddockComments.hs" 46 6 46 12
+                  , srcInfoPoints = []
+                  }
+                "MyData"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 48 3 54 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HaddockComments.hs" 49 5 49 6
+                    , SrcSpan "tests/examples/HaddockComments.hs" 52 5 52 6
+                    , SrcSpan "tests/examples/HaddockComments.hs" 53 5 53 6
+                    , SrcSpan "tests/examples/HaddockComments.hs" 54 5 54 6
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 48 3 54 6
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HaddockComments.hs" 49 5 49 6
+                       , SrcSpan "tests/examples/HaddockComments.hs" 52 5 52 6
+                       , SrcSpan "tests/examples/HaddockComments.hs" 53 5 53 6
+                       , SrcSpan "tests/examples/HaddockComments.hs" 54 5 54 6
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaddockComments.hs" 48 3 48 8
+                      , srcInfoPoints = []
+                      }
+                    "Cons1")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/HaddockComments.hs" 49 7 49 25
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/HaddockComments.hs" 49 19 49 21 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 49 7 49 18
+                           , srcInfoPoints = []
+                           }
+                         "cons1Field1"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 49 22 49 25
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaddockComments.hs" 49 22 49 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaddockComments.hs" 49 22 49 25
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 , FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/HaddockComments.hs" 52 7 52 25
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/HaddockComments.hs" 52 19 52 21 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 52 7 52 18
+                           , srcInfoPoints = []
+                           }
+                         "cons1Field2"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 52 22 52 25
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaddockComments.hs" 52 22 52 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaddockComments.hs" 52 22 52 25
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 , FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/HaddockComments.hs" 53 7 53 28
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/HaddockComments.hs" 53 19 53 21 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/HaddockComments.hs" 53 7 53 18
+                           , srcInfoPoints = []
+                           }
+                         "cons1Field3"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 53 22 53 28
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaddockComments.hs" 53 22 53 28
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaddockComments.hs" 53 22 53 28
+                                , srcInfoPoints = []
+                                }
+                              "String")))
+                 ])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/HaddockComments.hs" 55 5 56 10
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/HaddockComments.hs" 55 5 56 10
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaddockComments.hs" 55 5 55 10
+                      , srcInfoPoints = []
+                      }
+                    "Cons2")
+                 [ TyCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/HaddockComments.hs" 56 7 56 10
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HaddockComments.hs" 56 7 56 10
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaddockComments.hs" 56 7 56 10
+                             , srcInfoPoints = []
+                             }
+                           "Int"))
+                 ])
+          ]
+          []
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/HaddockComments.hs" 1 1 13 3)
+        "|\nModule      : W\nDescription : Short description\nCopyright   : (c) Some Guy, 2013\n                  Someone Else, 2014\nLicense     : GPL-3\nMaintainer  : sample@email.com\nStability   : experimental\nPortability : POSIX\n\nHere is a longer description of this module, containing some\ncommentary with @some markup@.\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 16 1 16 23)
+        " | Function1 comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 18 16 18 39)
+        " ^ The 'Int' argument"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 19 16 19 41)
+        " ^ The 'Float' argument"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 20 16 20 37)
+        " ^ The return value"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 24 1 24 25)
+        " not a haddock comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 28 1 28 23)
+        " ^ Function3 comment"
+    , Comment
+        True
+        (SrcSpan "tests/examples/HaddockComments.hs" 31 1 34 3)
+        "|\n  The 'square' function squares an integer.\n  It takes one argument, of type 'Int'.\n"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 36 18 36 28)
+        " beware!"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 39 4 39 53)
+        " | This is the documentation for the 'f' method"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 41 4 41 53)
+        " | This is the documentation for the 'g' method"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 44 1 44 23)
+        " | Data type comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 45 1 45 22)
+        " With a second line"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 47 3 47 28)
+        " | Constructor1 comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 49 26 49 60)
+        " ^ Constructor 1 field 1 comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 50 26 50 47)
+        " spanning two lines"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 51 7 51 41)
+        " | Constructor 1 field 2 comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 53 29 53 53)
+        " Not a haddock comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 55 11 55 37)
+        " ^ Constructor 2 comment"
+    , Comment
+        False
+        (SrcSpan "tests/examples/HaddockComments.hs" 56 11 56 20)
+        " ^ Last"
+    ]
+  )
diff --git a/tests/examples/HaddockComments.hs.prettyparser.golden b/tests/examples/HaddockComments.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HaddockComments.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/HaddockComments.hs.prettyprinter.golden b/tests/examples/HaddockComments.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HaddockComments.hs.prettyprinter.golden
@@ -0,0 +1,20 @@
+module HaddockComments where
+
+fun1 :: Int -> Float -> IO ()
+fun1 = undefined
+fun2 = undefined
+
+fun3 :: Int -> Int
+fun3 = undefined
+
+square :: Int -> Int
+square x = x * x
+
+class C a where
+        f :: a -> Int
+        
+        g :: Int -> a
+
+data MyData = Cons1{cons1Field1 :: Int, cons1Field2 :: Int,
+                    cons1Field3 :: String}
+            | Cons2 Int
diff --git a/tests/examples/HappyDoAction.hs.parser.golden b/tests/examples/HappyDoAction.hs.parser.golden
--- a/tests/examples/HappyDoAction.hs.parser.golden
+++ b/tests/examples/HappyDoAction.hs.parser.golden
@@ -1,1 +1,2443 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 1 31 1, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 1,SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 1,SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 1,SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 1,SrcSpan "tests/examples/HappyDoAction.hs" 6 1 6 1,SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 1,SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 7,SrcSpan "tests/examples/HappyDoAction.hs" 2 22 2 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 2 8 2 21, srcInfoPoints = []}) "HappyDoAction") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 27, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 13,SrcSpan "tests/examples/HappyDoAction.hs" 1 24 1 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 14 1 23, srcInfoPoints = []}) "MagicHash"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 12, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 4 5 4 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 4, srcInfoPoints = []}) "foo"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12, srcInfoPoints = []}) "Int#"))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 30 67, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 9]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 30 67, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 9]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 6 14, srcInfoPoints = []}) "happyDoAction") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 15 6 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 15 6 16, srcInfoPoints = []}) "i"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 17 6 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 17 6 19, srcInfoPoints = []}) "tk"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 20 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 20 6 22, srcInfoPoints = []}) "st")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 7 5 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 7 5 7 6]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 10 7 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 10 7 10 11,SrcSpan "tests/examples/HappyDoAction.hs" 10 19 10 21,SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 9,SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 9,SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 9,SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 9,SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 0]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18, srcInfoPoints = []}) "action"))) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 11 9 12 39, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11, srcInfoPoints = []}) (Signless (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11, srcInfoPoints = []})) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11, srcInfoPoints = []}) 0 "0")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 11 19 12 39, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 11 19 11 21]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 39, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 36, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 31, srcInfoPoints = []}) "happyFail"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 32 12 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 32 12 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 32 12 33, srcInfoPoints = []}) "i")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 34 12 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 34 12 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 34 12 36, srcInfoPoints = []}) "tk")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39, srcInfoPoints = []}) "st"))))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 13 9 14 41, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 12, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10]})) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 13 10 13 12, srcInfoPoints = []}) 1 "1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 13 19 14 41, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 13 19 13 21]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 41, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 38, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 33, srcInfoPoints = []}) "happyAccept"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 34 14 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 34 14 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 34 14 35, srcInfoPoints = []}) "i")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 36 14 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 36 14 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 36 14 38, srcInfoPoints = []}) "tk")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41, srcInfoPoints = []}) "st"))))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 9 18 76, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 22 18 27]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 10, srcInfoPoints = []}) "n")) (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 11 17 53, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 11 15 12,SrcSpan "tests/examples/HappyDoAction.hs" 15 33 15 35]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 11 17 53, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 11 15 12,SrcSpan "tests/examples/HappyDoAction.hs" 15 33 15 35]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 32, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 14,SrcSpan "tests/examples/HappyDoAction.hs" 15 31 15 32]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 32, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 14,SrcSpan "tests/examples/HappyDoAction.hs" 15 31 15 32]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 14 15 31, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 14 15 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 14 15 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 14 15 15, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 16 15 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 16 15 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 16 15 18, srcInfoPoints = []}) "<#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 19 15 31, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 19 15 20,SrcSpan "tests/examples/HappyDoAction.hs" 15 30 15 31]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 20 15 30, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 15 23 15 25]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 20 15 22, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 20 15 22, srcInfoPoints = []}) 0 "0")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 26 15 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 26 15 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 15 26 15 30, srcInfoPoints = []}) "Int#")))))))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 53, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 47, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 45, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 23,SrcSpan "tests/examples/HappyDoAction.hs" 17 44 17 45]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 23 17 44, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 23 17 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 23 17 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 23 17 37, srcInfoPoints = []}) "happyReduceArr"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 38 17 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 38 17 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 38 17 39, srcInfoPoints = []}) "!"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 40 17 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 40 17 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 40 17 44, srcInfoPoints = []}) "rule"))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 46 17 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 46 17 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 46 17 47, srcInfoPoints = []}) "i")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 48 17 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 48 17 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 48 17 50, srcInfoPoints = []}) "tk")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 51 17 53, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 51 17 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 17 51 17 53, srcInfoPoints = []}) "st"))))]) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 76, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 28,SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 76, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 32, srcInfoPoints = []}) "rule")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 33 18 76, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 33 18 34]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 35 18 76, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 35 18 36,SrcSpan "tests/examples/HappyDoAction.hs" 18 75 18 76]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 36 18 75, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 36 18 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 36 18 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 36 18 38, srcInfoPoints = []}) "I#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 39 18 75, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 39 18 40,SrcSpan "tests/examples/HappyDoAction.hs" 18 74 18 75]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 40 18 74, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 40 18 41,SrcSpan "tests/examples/HappyDoAction.hs" 18 73 18 74]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 41 18 73, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 41 18 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 41 18 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 41 18 51, srcInfoPoints = []}) "negateInt#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 52 18 73, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 52 18 53,SrcSpan "tests/examples/HappyDoAction.hs" 18 72 18 73]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 53 18 72, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 53 18 54,SrcSpan "tests/examples/HappyDoAction.hs" 18 71 18 72]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 54 18 71, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 54 18 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 54 18 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 54 18 55, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 56 18 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 56 18 58, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 56 18 58, srcInfoPoints = []}) "+#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 59 18 71, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 59 18 60,SrcSpan "tests/examples/HappyDoAction.hs" 18 70 18 71]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 60 18 70, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 18 63 18 65]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 60 18 62, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 60 18 62, srcInfoPoints = []}) 1 "1")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 66 18 70, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 66 18 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 18 66 18 70, srcInfoPoints = []}) "Int#")))))))))))))) Nothing])),Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 19 9 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 22 23 27]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 10, srcInfoPoints = []}) "n")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 19 19 22 50, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 19 19 19 21]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 47, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 44, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 42, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 32, srcInfoPoints = []}) "happyShift"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 33 22 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 33 22 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 33 22 42, srcInfoPoints = []}) "new_state")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 43 22 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 43 22 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 43 22 44, srcInfoPoints = []}) "i")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 45 22 47, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 45 22 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 45 22 47, srcInfoPoints = []}) "tk")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50, srcInfoPoints = []}) "st"))))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 28,SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 59, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 37, srcInfoPoints = []}) "new_state")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 38 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 38 23 39]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 40 23 59, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 40 23 41,SrcSpan "tests/examples/HappyDoAction.hs" 23 58 23 59]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 41 23 58, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 41 23 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 41 23 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 41 23 42, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 43 23 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 43 23 45, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 43 23 45, srcInfoPoints = []}) "-#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 46 23 58, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 46 23 47,SrcSpan "tests/examples/HappyDoAction.hs" 23 57 23 58]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 47 23 57, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 23 50 23 52]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 47 23 49, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 47 23 49, srcInfoPoints = []}) 1 "1")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 53 23 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 53 23 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 23 53 23 57, srcInfoPoints = []}) "Int#")))))))) Nothing]))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 10 30 67, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 10,SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 10,SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 10,SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 10,SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 55, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 13, srcInfoPoints = []}) "off")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 17 24 55, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 24 17 24 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 55, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 52, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 36, srcInfoPoints = []}) "indexShortOffAddr"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 37 24 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 37 24 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 37 24 52, srcInfoPoints = []}) "happyActOffsets")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55, srcInfoPoints = []}) "st"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 29, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 15, srcInfoPoints = []}) "off_i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 17 25 29, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 25 17 25 18]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 19 25 29, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 25 19 25 20,SrcSpan "tests/examples/HappyDoAction.hs" 25 28 25 29]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 23, srcInfoPoints = []}) "off"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 24 25 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 24 25 26, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 24 25 26, srcInfoPoints = []}) "+#"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 27 25 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 27 25 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 25 27 25 28, srcInfoPoints = []}) "i")))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 10 28 30, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 15, srcInfoPoints = []}) "check")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 17 28 30, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 26 17 26 18]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 19 28 30, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 26 19 26 21,SrcSpan "tests/examples/HappyDoAction.hs" 27 20 27 24,SrcSpan "tests/examples/HappyDoAction.hs" 28 20 28 24]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 22 26 46, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 26 22 26 23,SrcSpan "tests/examples/HappyDoAction.hs" 26 45 26 46]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 45, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 28, srcInfoPoints = []}) "off_i"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 29 26 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 29 26 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 29 26 32, srcInfoPoints = []}) ">=#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 33 26 45, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 26 33 26 34,SrcSpan "tests/examples/HappyDoAction.hs" 26 44 26 45]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 34 26 44, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 26 37 26 39]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 34 26 36, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 34 26 36, srcInfoPoints = []}) 0 "0")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 40 26 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 40 26 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 26 40 26 44, srcInfoPoints = []}) "Int#"))))))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 25 27 68, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 27 25 27 26,SrcSpan "tests/examples/HappyDoAction.hs" 27 67 27 68]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 67, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 60, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 54, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 43, srcInfoPoints = []}) "indexShortOffAddr"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 44 27 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 44 27 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 44 27 54, srcInfoPoints = []}) "happyCheck")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 55 27 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 55 27 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 55 27 60, srcInfoPoints = []}) "off_i")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 61 27 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 61 27 64, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 61 27 64, srcInfoPoints = []}) "==#"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 66 27 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 66 27 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 27 66 27 67, srcInfoPoints = []}) "i"))))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30, srcInfoPoints = []}) "False"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 10 30 67, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 16, srcInfoPoints = []}) "action")) (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 17 30 67, srcInfoPoints = []}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 17 29 65, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 29 17 29 18,SrcSpan "tests/examples/HappyDoAction.hs" 29 29 29 30]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24, srcInfoPoints = []}) "check")))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 65, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 59, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 48, srcInfoPoints = []}) "indexShortOffAddr"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 49 29 59, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 49 29 59, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 49 29 59, srcInfoPoints = []}) "happyTable")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 60 29 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 60 29 65, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 29 60 29 65, srcInfoPoints = []}) "off_i")))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 17 30 67, srcInfoPoints = [SrcSpan "tests/examples/HappyDoAction.hs" 30 17 30 18,SrcSpan "tests/examples/HappyDoAction.hs" 30 29 30 30]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28, srcInfoPoints = []}) "otherwise")))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 67, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 64, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 48, srcInfoPoints = []}) "indexShortOffAddr"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 49 30 64, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 49 30 64, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 49 30 64, srcInfoPoints = []}) "happyDefActions")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 65 30 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 65 30 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 30 65 30 67, srcInfoPoints = []}) "st"))))]) Nothing]))]],[Comment True (SrcSpan "tests/examples/HappyDoAction.hs" 7 7 7 20) " nothing ",Comment True (SrcSpan "tests/examples/HappyDoAction.hs" 11 22 11 35) " nothing ",Comment True (SrcSpan "tests/examples/HappyDoAction.hs" 13 22 13 35) " nothing ",Comment True (SrcSpan "tests/examples/HappyDoAction.hs" 15 36 15 49) " nothing ",Comment True (SrcSpan "tests/examples/HappyDoAction.hs" 19 22 19 35) " nothing "])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 1 31 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 6 1 6 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 1
+            , SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/HappyDoAction.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/HappyDoAction.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "HappyDoAction")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HappyDoAction.hs" 1 1 1 13
+                , SrcSpan "tests/examples/HappyDoAction.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HappyDoAction.hs" 4 5 4 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 1 4 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 4 8 4 12
+                     , srcInfoPoints = []
+                     }
+                   "Int#")))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 30 67
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 9 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 30 67
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 9 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 1 6 14
+                   , srcInfoPoints = []
+                   }
+                 "happyDoAction")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 15 6 16
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 15 6 16
+                       , srcInfoPoints = []
+                       }
+                     "i")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 17 6 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 17 6 19
+                       , srcInfoPoints = []
+                       }
+                     "tk")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 20 6 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 6 20 6 22
+                       , srcInfoPoints = []
+                       }
+                     "st")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HappyDoAction.hs" 7 5 23 59
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HappyDoAction.hs" 7 5 7 6 ]
+                   }
+                 (Case
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HappyDoAction.hs" 10 7 23 59
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HappyDoAction.hs" 10 7 10 11
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 10 19 10 21
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 9
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 9
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 9
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 9
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 0
+                          ]
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HappyDoAction.hs" 10 12 10 18
+                               , srcInfoPoints = []
+                               }
+                             "action")))
+                    [ Alt
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 11 9 12 39
+                          , srcInfoPoints = []
+                          }
+                        (PLit
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11
+                             , srcInfoPoints = []
+                             }
+                           (Signless
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11
+                                , srcInfoPoints = []
+                                })
+                           (PrimInt
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 11 9 11 11
+                                , srcInfoPoints = []
+                                }
+                              0
+                              "0"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 11 19 12 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 11 19 11 21 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 39
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 33
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 12 22 12 31
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 12 22 12 31
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 12 22 12 31
+                                               , srcInfoPoints = []
+                                               }
+                                             "happyFail")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 12 32 12 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 12 32 12 33
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 12 32 12 33
+                                               , srcInfoPoints = []
+                                               }
+                                             "i"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 12 34 12 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 12 34 12 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 12 34 12 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "tk"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 12 37 12 39
+                                         , srcInfoPoints = []
+                                         }
+                                       "st")))))
+                        Nothing
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 13 9 14 41
+                          , srcInfoPoints = []
+                          }
+                        (PLit
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 12
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10 ]
+                             }
+                           (Negative
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HappyDoAction.hs" 13 9 13 10 ]
+                                })
+                           (PrimInt
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 13 10 13 12
+                                , srcInfoPoints = []
+                                }
+                              1
+                              "1"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 13 19 14 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 13 19 13 21 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 41
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 38
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 14 22 14 33
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 14 22 14 33
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 14 22 14 33
+                                               , srcInfoPoints = []
+                                               }
+                                             "happyAccept")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 14 34 14 35
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 14 34 14 35
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 14 34 14 35
+                                               , srcInfoPoints = []
+                                               }
+                                             "i"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 14 36 14 38
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 14 36 14 38
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 14 36 14 38
+                                            , srcInfoPoints = []
+                                            }
+                                          "tk"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 14 39 14 41
+                                         , srcInfoPoints = []
+                                         }
+                                       "st")))))
+                        Nothing
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 15 9 18 76
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/HappyDoAction.hs" 18 22 18 27 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 10
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 15 9 15 10
+                                , srcInfoPoints = []
+                                }
+                              "n"))
+                        (GuardedRhss
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 15 11 17 53
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 15 11 15 12
+                                 , SrcSpan "tests/examples/HappyDoAction.hs" 15 33 15 35
+                                 ]
+                             }
+                           [ GuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/HappyDoAction.hs" 15 11 17 53
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/HappyDoAction.hs" 15 11 15 12
+                                     , SrcSpan "tests/examples/HappyDoAction.hs" 15 33 15 35
+                                     ]
+                                 }
+                               [ Qualifier
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 32
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 14
+                                         , SrcSpan "tests/examples/HappyDoAction.hs" 15 31 15 32
+                                         ]
+                                     }
+                                   (Paren
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 32
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/HappyDoAction.hs" 15 13 15 14
+                                            , SrcSpan "tests/examples/HappyDoAction.hs" 15 31 15 32
+                                            ]
+                                        }
+                                      (InfixApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/HappyDoAction.hs" 15 14 15 31
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 15 14 15 15
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/HappyDoAction.hs" 15 14 15 15
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HappyDoAction.hs"
+                                                          15
+                                                          14
+                                                          15
+                                                          15
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "n")))
+                                         (QVarOp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 15 16 15 18
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/HappyDoAction.hs" 15 16 15 18
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Symbol
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HappyDoAction.hs"
+                                                          15
+                                                          16
+                                                          15
+                                                          18
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "<#")))
+                                         (Paren
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 15 19 15 31
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 15 19 15 20
+                                                  , SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 15 30 15 31
+                                                  ]
+                                              }
+                                            (ExpTypeSig
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/HappyDoAction.hs" 15 20 15 30
+                                                 , srcInfoPoints =
+                                                     [ SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         15
+                                                         23
+                                                         15
+                                                         25
+                                                     ]
+                                                 }
+                                               (Lit
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HappyDoAction.hs"
+                                                          15
+                                                          20
+                                                          15
+                                                          22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (PrimInt
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/HappyDoAction.hs"
+                                                             15
+                                                             20
+                                                             15
+                                                             22
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     0
+                                                     "0"))
+                                               (TyCon
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HappyDoAction.hs"
+                                                          15
+                                                          26
+                                                          15
+                                                          30
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/HappyDoAction.hs"
+                                                             15
+                                                             26
+                                                             15
+                                                             30
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/HappyDoAction.hs"
+                                                                15
+                                                                26
+                                                                15
+                                                                30
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "Int#")))))))
+                               ]
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 53
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 50
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 17 22 17 47
+                                          , srcInfoPoints = []
+                                          }
+                                        (Paren
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 17 22 17 45
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 17 22 17 23
+                                                 , SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 17 44 17 45
+                                                 ]
+                                             }
+                                           (InfixApp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 17 23 17 44
+                                                , srcInfoPoints = []
+                                                }
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         17
+                                                         23
+                                                         17
+                                                         37
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            17
+                                                            23
+                                                            17
+                                                            37
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               17
+                                                               23
+                                                               17
+                                                               37
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "happyReduceArr")))
+                                              (QVarOp
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         17
+                                                         38
+                                                         17
+                                                         39
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            17
+                                                            38
+                                                            17
+                                                            39
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Symbol
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               17
+                                                               38
+                                                               17
+                                                               39
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "!")))
+                                              (Var
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         17
+                                                         40
+                                                         17
+                                                         44
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (UnQual
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            17
+                                                            40
+                                                            17
+                                                            44
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Ident
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               17
+                                                               40
+                                                               17
+                                                               44
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "rule")))))
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 17 46 17 47
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 17 46 17 47
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         17
+                                                         46
+                                                         17
+                                                         47
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "i"))))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 17 48 17 50
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 17 48 17 50
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 17 48 17 50
+                                                , srcInfoPoints = []
+                                                }
+                                              "tk"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 17 51 17 53
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 17 51 17 53
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 17 51 17 53
+                                             , srcInfoPoints = []
+                                             }
+                                           "st"))))
+                           ])
+                        (Just
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 76
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 28
+                                    , SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 0
+                                    ]
+                                }
+                              [ PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 76
+                                    , srcInfoPoints = []
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 32
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 18 28 18 32
+                                          , srcInfoPoints = []
+                                          }
+                                        "rule"))
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 18 33 18 76
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/HappyDoAction.hs" 18 33 18 34 ]
+                                       }
+                                     (Paren
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 18 35 18 76
+                                          , srcInfoPoints =
+                                              [ SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 18 35 18 36
+                                              , SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 18 75 18 76
+                                              ]
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 18 36 18 75
+                                             , srcInfoPoints = []
+                                             }
+                                           (Con
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 18 36 18 38
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         18
+                                                         36
+                                                         18
+                                                         38
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            18
+                                                            36
+                                                            18
+                                                            38
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "I#")))
+                                           (Paren
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 18 39 18 75
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        18
+                                                        39
+                                                        18
+                                                        40
+                                                    , SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        18
+                                                        74
+                                                        18
+                                                        75
+                                                    ]
+                                                }
+                                              (Paren
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         18
+                                                         40
+                                                         18
+                                                         74
+                                                   , srcInfoPoints =
+                                                       [ SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           18
+                                                           40
+                                                           18
+                                                           41
+                                                       , SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           18
+                                                           73
+                                                           18
+                                                           74
+                                                       ]
+                                                   }
+                                                 (App
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            18
+                                                            41
+                                                            18
+                                                            73
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (Var
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               18
+                                                               41
+                                                               18
+                                                               51
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (UnQual
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/HappyDoAction.hs"
+                                                                  18
+                                                                  41
+                                                                  18
+                                                                  51
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/HappyDoAction.hs"
+                                                                     18
+                                                                     41
+                                                                     18
+                                                                     51
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "negateInt#")))
+                                                    (Paren
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               18
+                                                               52
+                                                               18
+                                                               73
+                                                         , srcInfoPoints =
+                                                             [ SrcSpan
+                                                                 "tests/examples/HappyDoAction.hs"
+                                                                 18
+                                                                 52
+                                                                 18
+                                                                 53
+                                                             , SrcSpan
+                                                                 "tests/examples/HappyDoAction.hs"
+                                                                 18
+                                                                 72
+                                                                 18
+                                                                 73
+                                                             ]
+                                                         }
+                                                       (Paren
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/HappyDoAction.hs"
+                                                                  18
+                                                                  53
+                                                                  18
+                                                                  72
+                                                            , srcInfoPoints =
+                                                                [ SrcSpan
+                                                                    "tests/examples/HappyDoAction.hs"
+                                                                    18
+                                                                    53
+                                                                    18
+                                                                    54
+                                                                , SrcSpan
+                                                                    "tests/examples/HappyDoAction.hs"
+                                                                    18
+                                                                    71
+                                                                    18
+                                                                    72
+                                                                ]
+                                                            }
+                                                          (InfixApp
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/HappyDoAction.hs"
+                                                                     18
+                                                                     54
+                                                                     18
+                                                                     71
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             (Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/HappyDoAction.hs"
+                                                                        18
+                                                                        54
+                                                                        18
+                                                                        55
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/HappyDoAction.hs"
+                                                                           18
+                                                                           54
+                                                                           18
+                                                                           55
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/HappyDoAction.hs"
+                                                                              18
+                                                                              54
+                                                                              18
+                                                                              55
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "n")))
+                                                             (QVarOp
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/HappyDoAction.hs"
+                                                                        18
+                                                                        56
+                                                                        18
+                                                                        58
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/HappyDoAction.hs"
+                                                                           18
+                                                                           56
+                                                                           18
+                                                                           58
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Symbol
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/HappyDoAction.hs"
+                                                                              18
+                                                                              56
+                                                                              18
+                                                                              58
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "+#")))
+                                                             (Paren
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/HappyDoAction.hs"
+                                                                        18
+                                                                        59
+                                                                        18
+                                                                        71
+                                                                  , srcInfoPoints =
+                                                                      [ SrcSpan
+                                                                          "tests/examples/HappyDoAction.hs"
+                                                                          18
+                                                                          59
+                                                                          18
+                                                                          60
+                                                                      , SrcSpan
+                                                                          "tests/examples/HappyDoAction.hs"
+                                                                          18
+                                                                          70
+                                                                          18
+                                                                          71
+                                                                      ]
+                                                                  }
+                                                                (ExpTypeSig
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/HappyDoAction.hs"
+                                                                           18
+                                                                           60
+                                                                           18
+                                                                           70
+                                                                     , srcInfoPoints =
+                                                                         [ SrcSpan
+                                                                             "tests/examples/HappyDoAction.hs"
+                                                                             18
+                                                                             63
+                                                                             18
+                                                                             65
+                                                                         ]
+                                                                     }
+                                                                   (Lit
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/HappyDoAction.hs"
+                                                                              18
+                                                                              60
+                                                                              18
+                                                                              62
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (PrimInt
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/HappyDoAction.hs"
+                                                                                 18
+                                                                                 60
+                                                                                 18
+                                                                                 62
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         1
+                                                                         "1"))
+                                                                   (TyCon
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/HappyDoAction.hs"
+                                                                              18
+                                                                              66
+                                                                              18
+                                                                              70
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      (UnQual
+                                                                         SrcSpanInfo
+                                                                           { srcInfoSpan =
+                                                                               SrcSpan
+                                                                                 "tests/examples/HappyDoAction.hs"
+                                                                                 18
+                                                                                 66
+                                                                                 18
+                                                                                 70
+                                                                           , srcInfoPoints = []
+                                                                           }
+                                                                         (Ident
+                                                                            SrcSpanInfo
+                                                                              { srcInfoSpan =
+                                                                                  SrcSpan
+                                                                                    "tests/examples/HappyDoAction.hs"
+                                                                                    18
+                                                                                    66
+                                                                                    18
+                                                                                    70
+                                                                              , srcInfoPoints = []
+                                                                              }
+                                                                            "Int#"))))))))))))))
+                                  Nothing
+                              ]))
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 19 9 23 59
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/HappyDoAction.hs" 23 22 23 27 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 10
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 19 9 19 10
+                                , srcInfoPoints = []
+                                }
+                              "n"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 19 19 22 50
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 19 19 19 21 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 50
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 47
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 44
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 22 22 22 42
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 22 22 22 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 22 22 22 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        22
+                                                        22
+                                                        22
+                                                        32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "happyShift")))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 22 33 22 42
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 22 33 22 42
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        22
+                                                        33
+                                                        22
+                                                        42
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "new_state"))))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 22 43 22 44
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 22 43 22 44
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 22 43 22 44
+                                               , srcInfoPoints = []
+                                               }
+                                             "i"))))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 22 45 22 47
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 22 45 22 47
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 22 45 22 47
+                                            , srcInfoPoints = []
+                                            }
+                                          "tk"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 22 48 22 50
+                                         , srcInfoPoints = []
+                                         }
+                                       "st")))))
+                        (Just
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 59
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 28
+                                    , SrcSpan "tests/examples/HappyDoAction.hs" 24 4 24 0
+                                    ]
+                                }
+                              [ PatBind
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 59
+                                    , srcInfoPoints = []
+                                    }
+                                  (PVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 37
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 23 28 23 37
+                                          , srcInfoPoints = []
+                                          }
+                                        "new_state"))
+                                  (UnGuardedRhs
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 23 38 23 59
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/HappyDoAction.hs" 23 38 23 39 ]
+                                       }
+                                     (Paren
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 23 40 23 59
+                                          , srcInfoPoints =
+                                              [ SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 23 40 23 41
+                                              , SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 23 58 23 59
+                                              ]
+                                          }
+                                        (InfixApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 23 41 23 58
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 23 41 23 42
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         23
+                                                         41
+                                                         23
+                                                         42
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            23
+                                                            41
+                                                            23
+                                                            42
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "n")))
+                                           (QVarOp
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 23 43 23 45
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         23
+                                                         43
+                                                         23
+                                                         45
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Symbol
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            23
+                                                            43
+                                                            23
+                                                            45
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "-#")))
+                                           (Paren
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 23 46 23 58
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        23
+                                                        46
+                                                        23
+                                                        47
+                                                    , SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        23
+                                                        57
+                                                        23
+                                                        58
+                                                    ]
+                                                }
+                                              (ExpTypeSig
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/HappyDoAction.hs"
+                                                         23
+                                                         47
+                                                         23
+                                                         57
+                                                   , srcInfoPoints =
+                                                       [ SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           23
+                                                           50
+                                                           23
+                                                           52
+                                                       ]
+                                                   }
+                                                 (Lit
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            23
+                                                            47
+                                                            23
+                                                            49
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (PrimInt
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               23
+                                                               47
+                                                               23
+                                                               49
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       1
+                                                       "1"))
+                                                 (TyCon
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/HappyDoAction.hs"
+                                                            23
+                                                            53
+                                                            23
+                                                            57
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/HappyDoAction.hs"
+                                                               23
+                                                               53
+                                                               23
+                                                               57
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/HappyDoAction.hs"
+                                                                  23
+                                                                  53
+                                                                  23
+                                                                  57
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "Int#"))))))))
+                                  Nothing
+                              ]))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HappyDoAction.hs" 24 10 30 67
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 10
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 10
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 10
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 10
+                          , SrcSpan "tests/examples/HappyDoAction.hs" 31 1 31 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 55
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 13
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 24 10 24 13
+                                , srcInfoPoints = []
+                                }
+                              "off"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 24 17 24 55
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 24 17 24 18 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 55
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 52
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 24 19 24 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 24 19 24 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "indexShortOffAddr")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 24 37 24 52
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 24 37 24 52
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 24 37 24 52
+                                            , srcInfoPoints = []
+                                            }
+                                          "happyActOffsets"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 24 53 24 55
+                                         , srcInfoPoints = []
+                                         }
+                                       "st")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 29
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 15
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 25 10 25 15
+                                , srcInfoPoints = []
+                                }
+                              "off_i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 25 17 25 29
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 25 17 25 18 ]
+                             }
+                           (Paren
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 25 19 25 29
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HappyDoAction.hs" 25 19 25 20
+                                    , SrcSpan "tests/examples/HappyDoAction.hs" 25 28 25 29
+                                    ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 25 20 25 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 25 20 25 23
+                                            , srcInfoPoints = []
+                                            }
+                                          "off")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 25 24 25 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 25 24 25 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 25 24 25 26
+                                            , srcInfoPoints = []
+                                            }
+                                          "+#")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 25 27 25 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 25 27 25 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 25 27 25 28
+                                            , srcInfoPoints = []
+                                            }
+                                          "i"))))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 26 10 28 30
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 15
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 26 10 26 15
+                                , srcInfoPoints = []
+                                }
+                              "check"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 26 17 28 30
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HappyDoAction.hs" 26 17 26 18 ]
+                             }
+                           (If
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 26 19 28 30
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HappyDoAction.hs" 26 19 26 21
+                                    , SrcSpan "tests/examples/HappyDoAction.hs" 27 20 27 24
+                                    , SrcSpan "tests/examples/HappyDoAction.hs" 28 20 28 24
+                                    ]
+                                }
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 26 22 26 46
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/HappyDoAction.hs" 26 22 26 23
+                                       , SrcSpan "tests/examples/HappyDoAction.hs" 26 45 26 46
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 45
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 26 23 26 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 26 23 26 28
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 26 23 26 28
+                                               , srcInfoPoints = []
+                                               }
+                                             "off_i")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 26 29 26 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 26 29 26 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 26 29 26 32
+                                               , srcInfoPoints = []
+                                               }
+                                             ">=#")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 26 33 26 45
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/HappyDoAction.hs" 26 33 26 34
+                                             , SrcSpan "tests/examples/HappyDoAction.hs" 26 44 26 45
+                                             ]
+                                         }
+                                       (ExpTypeSig
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 26 34 26 44
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 26 37 26 39
+                                                ]
+                                            }
+                                          (Lit
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 26 34 26 36
+                                               , srcInfoPoints = []
+                                               }
+                                             (PrimInt
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        26
+                                                        34
+                                                        26
+                                                        36
+                                                  , srcInfoPoints = []
+                                                  }
+                                                0
+                                                "0"))
+                                          (TyCon
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 26 40 26 44
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        26
+                                                        40
+                                                        26
+                                                        44
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           26
+                                                           40
+                                                           26
+                                                           44
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "Int#")))))))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 27 25 27 68
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/HappyDoAction.hs" 27 25 27 26
+                                       , SrcSpan "tests/examples/HappyDoAction.hs" 27 67 27 68
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 67
+                                      , srcInfoPoints = []
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 27 26 27 60
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 27 26 27 54
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 27 26 27 43
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        27
+                                                        26
+                                                        27
+                                                        43
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           27
+                                                           26
+                                                           27
+                                                           43
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "indexShortOffAddr")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 27 44 27 54
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        27
+                                                        44
+                                                        27
+                                                        54
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/HappyDoAction.hs"
+                                                           27
+                                                           44
+                                                           27
+                                                           54
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "happyCheck"))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 27 55 27 60
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 27 55 27 60
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/HappyDoAction.hs"
+                                                        27
+                                                        55
+                                                        27
+                                                        60
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "off_i"))))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 27 61 27 64
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 27 61 27 64
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 27 61 27 64
+                                               , srcInfoPoints = []
+                                               }
+                                             "==#")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 27 66 27 67
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HappyDoAction.hs" 27 66 27 67
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HappyDoAction.hs" 27 66 27 67
+                                               , srcInfoPoints = []
+                                               }
+                                             "i")))))
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HappyDoAction.hs" 28 25 28 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "False")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/HappyDoAction.hs" 29 10 30 67
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HappyDoAction.hs" 29 10 29 16
+                                , srcInfoPoints = []
+                                }
+                              "action"))
+                        (GuardedRhss
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HappyDoAction.hs" 29 17 30 67
+                             , srcInfoPoints = []
+                             }
+                           [ GuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/HappyDoAction.hs" 29 17 29 65
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/HappyDoAction.hs" 29 17 29 18
+                                     , SrcSpan "tests/examples/HappyDoAction.hs" 29 29 29 30
+                                     ]
+                                 }
+                               [ Qualifier
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/HappyDoAction.hs" 29 19 29 24
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 29 19 29 24
+                                              , srcInfoPoints = []
+                                              }
+                                            "check")))
+                               ]
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 65
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 59
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 29 31 29 48
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 29 31 29 48
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 29 31 29 48
+                                                , srcInfoPoints = []
+                                                }
+                                              "indexShortOffAddr")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 29 49 29 59
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 29 49 29 59
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 29 49 29 59
+                                                , srcInfoPoints = []
+                                                }
+                                              "happyTable"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 29 60 29 65
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 29 60 29 65
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 29 60 29 65
+                                             , srcInfoPoints = []
+                                             }
+                                           "off_i"))))
+                           , GuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/HappyDoAction.hs" 30 17 30 67
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/HappyDoAction.hs" 30 17 30 18
+                                     , SrcSpan "tests/examples/HappyDoAction.hs" 30 29 30 30
+                                     ]
+                                 }
+                               [ Qualifier
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/HappyDoAction.hs" 30 19 30 28
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HappyDoAction.hs" 30 19 30 28
+                                              , srcInfoPoints = []
+                                              }
+                                            "otherwise")))
+                               ]
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 67
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 64
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 30 31 30 48
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 30 31 30 48
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 30 31 30 48
+                                                , srcInfoPoints = []
+                                                }
+                                              "indexShortOffAddr")))
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 30 49 30 64
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 30 49 30 64
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HappyDoAction.hs" 30 49 30 64
+                                                , srcInfoPoints = []
+                                                }
+                                              "happyDefActions"))))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HappyDoAction.hs" 30 65 30 67
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HappyDoAction.hs" 30 65 30 67
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HappyDoAction.hs" 30 65 30 67
+                                             , srcInfoPoints = []
+                                             }
+                                           "st"))))
+                           ])
+                        Nothing
+                    ]))
+          ]
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/HappyDoAction.hs" 7 7 7 20)
+        " nothing "
+    , Comment
+        True
+        (SrcSpan "tests/examples/HappyDoAction.hs" 11 22 11 35)
+        " nothing "
+    , Comment
+        True
+        (SrcSpan "tests/examples/HappyDoAction.hs" 13 22 13 35)
+        " nothing "
+    , Comment
+        True
+        (SrcSpan "tests/examples/HappyDoAction.hs" 15 36 15 49)
+        " nothing "
+    , Comment
+        True
+        (SrcSpan "tests/examples/HappyDoAction.hs" 19 22 19 35)
+        " nothing "
+    ]
+  )
diff --git a/tests/examples/HappyDoAction.hs.prettyprinter.golden b/tests/examples/HappyDoAction.hs.prettyprinter.golden
--- a/tests/examples/HappyDoAction.hs.prettyprinter.golden
+++ b/tests/examples/HappyDoAction.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 {-# LANGUAGE MagicHash #-}
 module HappyDoAction where
- 
+
 foo :: Int#
 happyDoAction i tk st
   = case action of
diff --git a/tests/examples/HashOperator.hs b/tests/examples/HashOperator.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/HashOperator.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE OverloadedLabels #-}
+
+(#.) :: Int -> Int -> Int
+x #. y = x + y
+
+infixr 9 #.
diff --git a/tests/examples/HashOperator.hs.exactprinter.golden b/tests/examples/HashOperator.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HashOperator.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/HashOperator.hs.parser.golden b/tests/examples/HashOperator.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HashOperator.hs.parser.golden
@@ -0,0 +1,237 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/HashOperator.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HashOperator.hs" 3 1 3 1
+            , SrcSpan "tests/examples/HashOperator.hs" 3 1 3 1
+            , SrcSpan "tests/examples/HashOperator.hs" 3 1 3 1
+            , SrcSpan "tests/examples/HashOperator.hs" 4 1 4 1
+            , SrcSpan "tests/examples/HashOperator.hs" 6 1 6 1
+            , SrcSpan "tests/examples/HashOperator.hs" 7 1 7 1
+            , SrcSpan "tests/examples/HashOperator.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HashOperator.hs" 1 1 1 13
+                , SrcSpan "tests/examples/HashOperator.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "OverloadedLabels"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 1 3 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HashOperator.hs" 3 6 3 8 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 1 3 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HashOperator.hs" 3 1 3 2
+                    , SrcSpan "tests/examples/HashOperator.hs" 3 2 3 4
+                    , SrcSpan "tests/examples/HashOperator.hs" 3 4 3 5
+                    ]
+                }
+              "#."
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 9 3 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HashOperator.hs" 3 13 3 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 9 3 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 9 3 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 9 3 12
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 16 3 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/HashOperator.hs" 3 20 3 22 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 16 3 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 16 3 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 16 3 19
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 23 3 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 23 3 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 3 23 3 26
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 1 4 15
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 1 4 15
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 1 4 2
+                      , srcInfoPoints = []
+                      }
+                    "x"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 3 4 5
+                   , srcInfoPoints = []
+                   }
+                 "#.")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 6 4 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 6 4 7
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 8 4 15
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HashOperator.hs" 4 8 4 9 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 10 4 15
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 10 4 11
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 10 4 11
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 10 4 11
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 12 4 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 12 4 13
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 12 4 13
+                               , srcInfoPoints = []
+                               }
+                             "+")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 14 4 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 14 4 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 4 14 4 15
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 6 1 6 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HashOperator.hs" 6 8 6 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 6 1 6 7
+               , srcInfoPoints = []
+               })
+          (Just 9)
+          [ VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 6 10 6 12
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HashOperator.hs" 6 10 6 12
+                   , srcInfoPoints = []
+                   }
+                 "#.")
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/HashOperator.hs.prettyparser.golden b/tests/examples/HashOperator.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HashOperator.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/HashOperator.hs.prettyprinter.golden b/tests/examples/HashOperator.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/HashOperator.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE OverloadedLabels #-}
+
+( #. ) :: Int -> Int -> Int
+x #. y = x + y
+
+infixr 9 #.
diff --git a/tests/examples/HaskellParser.hs.parser.golden b/tests/examples/HaskellParser.hs.parser.golden
--- a/tests/examples/HaskellParser.hs.parser.golden
+++ b/tests/examples/HaskellParser.hs.parser.golden
@@ -1,1 +1,809 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 1 17 1, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1,SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1,SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1,SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 1,SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 1,SrcSpan "tests/examples/HaskellParser.hs" 5 1 5 1,SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 1,SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 1,SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 1]}) Nothing [] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 59, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 7,SrcSpan "tests/examples/HaskellParser.hs" 1 8 1 17,SrcSpan "tests/examples/HaskellParser.hs" 1 50 1 52]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 18 1 49, srcInfoPoints = []}) "Language.Haskell.Exts.Annotated", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 53 1 59, srcInfoPoints = []}) "Parser"), importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 63, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 7,SrcSpan "tests/examples/HaskellParser.hs" 2 8 2 17,SrcSpan "tests/examples/HaskellParser.hs" 2 57 2 59]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 18 2 56, srcInfoPoints = []}) "Language.Haskell.Exts.Annotated.Syntax", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 60 2 63, srcInfoPoints = []}) "Syn"), importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 56, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 7,SrcSpan "tests/examples/HaskellParser.hs" 3 8 3 17,SrcSpan "tests/examples/HaskellParser.hs" 3 50 3 52]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 18 3 49, srcInfoPoints = []}) "Language.Haskell.Exts.Extension", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 53 3 56, srcInfoPoints = []}) "Ext"), importSpecs = Nothing}] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 12 44, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 6 5 6 10]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 12 44, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 6 5 6 10]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 5 6, srcInfoPoints = []}) "parse") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 7 5 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 7 5 23, srcInfoPoints = []}) "originalFileName"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 24 5 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 24 5 29, srcInfoPoints = []}) "input")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 30 5 74, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 5 30 5 31]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 74, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 68, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58, srcInfoPoints = []}) "Parser") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58, srcInfoPoints = []}) "parseModuleWithMode"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68, srcInfoPoints = []}) "parseMode")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74, srcInfoPoints = []}) "input"))))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 12 44, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 7,SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 7,SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 0]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 36, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 7 17 7 19]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 16, srcInfoPoints = []}) "parseMode"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36, srcInfoPoints = []}) "Parser") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36, srcInfoPoints = []}) "ParseMode"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 12 44, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 16, srcInfoPoints = []}) "parseMode")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 17 12 44, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 8 17 8 18]}) (RecUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 19 12 44, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 8 43 8 44,SrcSpan "tests/examples/HaskellParser.hs" 9 43 9 44,SrcSpan "tests/examples/HaskellParser.hs" 12 43 12 44]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42, srcInfoPoints = []}) "Parser") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42, srcInfoPoints = []}) "defaultParseMode"))) [FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 84, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 8 66 8 67]}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65, srcInfoPoints = []}) "Parser") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65, srcInfoPoints = []}) "parseFilename")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84, srcInfoPoints = []}) "originalFileName"))),FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 9 45 11 67, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 9 63 9 64]}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62, srcInfoPoints = []}) "Parser") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62, srcInfoPoints = []}) "extensions")) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 47 11 67, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 47 10 62, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 47 10 62, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 47 10 62, srcInfoPoints = []}) "Ext") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 47 10 62, srcInfoPoints = []}) "glasgowExts"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 63 10 65, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 63 10 65, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 10 63 10 65, srcInfoPoints = []}) "++"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 11 47 11 67, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 11 47 11 48,SrcSpan "tests/examples/HaskellParser.hs" 11 66 11 67]}) [Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 11 48 11 66, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 11 48 11 66, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 11 48 11 66, srcInfoPoints = []}) "Ext") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 11 48 11 66, srcInfoPoints = []}) "ExplicitForall"))]))])) Nothing]))],PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 1 16 25, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 6 16 25, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 13 6 13 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 5 16 25, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 14 5 14 7,SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 8,SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 8,SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 8,SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 30, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 14 10 14 12]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 9, srcInfoPoints = []}) "s")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21, srcInfoPoints = []}) "readFile"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 22 14 30, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 22 14 30, srcInfoPoints = []}) "Bug.hs" "Bug.hs"))),LetStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 32, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 11]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 32, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 12,SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 32, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 13, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 14 15 32, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 15 14 15 15]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 21, srcInfoPoints = []}) "parse"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 22 15 30, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 22 15 30, srcInfoPoints = []}) "Bug.hs" "Bug.hs"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 31 15 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 31 15 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 15 31 15 32, srcInfoPoints = []}) "s"))))) Nothing]),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 25, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 25, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16, srcInfoPoints = []}) "putStrLn"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 17 16 25, srcInfoPoints = [SrcSpan "tests/examples/HaskellParser.hs" 16 17 16 18,SrcSpan "tests/examples/HaskellParser.hs" 16 24 16 25]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22, srcInfoPoints = []}) "show"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24, srcInfoPoints = []}) "x"))))))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 1 17 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 5 1 5 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 1
+            , SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 1
+            ]
+        }
+      Nothing
+      []
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 59
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HaskellParser.hs" 1 1 1 7
+                    , SrcSpan "tests/examples/HaskellParser.hs" 1 8 1 17
+                    , SrcSpan "tests/examples/HaskellParser.hs" 1 50 1 52
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 18 1 49
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.Exts.Annotated"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 1 53 1 59
+                     , srcInfoPoints = []
+                     }
+                   "Parser")
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 63
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HaskellParser.hs" 2 1 2 7
+                    , SrcSpan "tests/examples/HaskellParser.hs" 2 8 2 17
+                    , SrcSpan "tests/examples/HaskellParser.hs" 2 57 2 59
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 18 2 56
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.Exts.Annotated.Syntax"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 2 60 2 63
+                     , srcInfoPoints = []
+                     }
+                   "Syn")
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 56
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HaskellParser.hs" 3 1 3 7
+                    , SrcSpan "tests/examples/HaskellParser.hs" 3 8 3 17
+                    , SrcSpan "tests/examples/HaskellParser.hs" 3 50 3 52
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 18 3 49
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.Exts.Extension"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 3 53 3 56
+                     , srcInfoPoints = []
+                     }
+                   "Ext")
+          , importSpecs = Nothing
+          }
+      ]
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 12 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/HaskellParser.hs" 6 5 6 10 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 12 44
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HaskellParser.hs" 6 5 6 10 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 1 5 6
+                   , srcInfoPoints = []
+                   }
+                 "parse")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 7 5 23
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 7 5 23
+                       , srcInfoPoints = []
+                       }
+                     "originalFileName")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 24 5 29
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 24 5 29
+                       , srcInfoPoints = []
+                       }
+                     "input")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 30 5 74
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/HaskellParser.hs" 5 30 5 31 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 74
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 68
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58
+                            , srcInfoPoints = []
+                            }
+                          (Qual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58
+                               , srcInfoPoints = []
+                               }
+                             (ModuleName
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58
+                                  , srcInfoPoints = []
+                                  }
+                                "Parser")
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 5 32 5 58
+                                  , srcInfoPoints = []
+                                  }
+                                "parseModuleWithMode")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 5 59 5 68
+                                  , srcInfoPoints = []
+                                  }
+                                "parseMode"))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 5 69 5 74
+                               , srcInfoPoints = []
+                               }
+                             "input")))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 12 44
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 7
+                          , SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 7
+                          , SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 36
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/HaskellParser.hs" 7 17 7 19 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 7 7 16
+                              , srcInfoPoints = []
+                              }
+                            "parseMode"
+                        ]
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36
+                             , srcInfoPoints = []
+                             }
+                           (Qual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36
+                                , srcInfoPoints = []
+                                }
+                              (ModuleName
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36
+                                   , srcInfoPoints = []
+                                   }
+                                 "Parser")
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HaskellParser.hs" 7 20 7 36
+                                   , srcInfoPoints = []
+                                   }
+                                 "ParseMode")))
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 12 44
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 8 7 8 16
+                                , srcInfoPoints = []
+                                }
+                              "parseMode"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaskellParser.hs" 8 17 12 44
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/HaskellParser.hs" 8 17 8 18 ]
+                             }
+                           (RecUpdate
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaskellParser.hs" 8 19 12 44
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HaskellParser.hs" 8 43 8 44
+                                    , SrcSpan "tests/examples/HaskellParser.hs" 9 43 9 44
+                                    , SrcSpan "tests/examples/HaskellParser.hs" 12 43 12 44
+                                    ]
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42
+                                   , srcInfoPoints = []
+                                   }
+                                 (Qual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42
+                                      , srcInfoPoints = []
+                                      }
+                                    (ModuleName
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42
+                                         , srcInfoPoints = []
+                                         }
+                                       "Parser")
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HaskellParser.hs" 8 19 8 42
+                                         , srcInfoPoints = []
+                                         }
+                                       "defaultParseMode")))
+                              [ FieldUpdate
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 84
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/HaskellParser.hs" 8 66 8 67 ]
+                                    }
+                                  (Qual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65
+                                       , srcInfoPoints = []
+                                       }
+                                     (ModuleName
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65
+                                          , srcInfoPoints = []
+                                          }
+                                        "Parser")
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 8 45 8 65
+                                          , srcInfoPoints = []
+                                          }
+                                        "parseFilename"))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/HaskellParser.hs" 8 68 8 84
+                                             , srcInfoPoints = []
+                                             }
+                                           "originalFileName")))
+                              , FieldUpdate
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/HaskellParser.hs" 9 45 11 67
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/HaskellParser.hs" 9 63 9 64 ]
+                                    }
+                                  (Qual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62
+                                       , srcInfoPoints = []
+                                       }
+                                     (ModuleName
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62
+                                          , srcInfoPoints = []
+                                          }
+                                        "Parser")
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 9 45 9 62
+                                          , srcInfoPoints = []
+                                          }
+                                        "extensions"))
+                                  (InfixApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/HaskellParser.hs" 10 47 11 67
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 10 47 10 62
+                                          , srcInfoPoints = []
+                                          }
+                                        (Qual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HaskellParser.hs" 10 47 10 62
+                                             , srcInfoPoints = []
+                                             }
+                                           (ModuleName
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HaskellParser.hs" 10 47 10 62
+                                                , srcInfoPoints = []
+                                                }
+                                              "Ext")
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HaskellParser.hs" 10 47 10 62
+                                                , srcInfoPoints = []
+                                                }
+                                              "glasgowExts")))
+                                     (QVarOp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 10 63 10 65
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/HaskellParser.hs" 10 63 10 65
+                                             , srcInfoPoints = []
+                                             }
+                                           (Symbol
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/HaskellParser.hs" 10 63 10 65
+                                                , srcInfoPoints = []
+                                                }
+                                              "++")))
+                                     (List
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/HaskellParser.hs" 11 47 11 67
+                                          , srcInfoPoints =
+                                              [ SrcSpan
+                                                  "tests/examples/HaskellParser.hs" 11 47 11 48
+                                              , SrcSpan
+                                                  "tests/examples/HaskellParser.hs" 11 66 11 67
+                                              ]
+                                          }
+                                        [ Con
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/HaskellParser.hs" 11 48 11 66
+                                              , srcInfoPoints = []
+                                              }
+                                            (Qual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/HaskellParser.hs" 11 48 11 66
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (ModuleName
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HaskellParser.hs"
+                                                          11
+                                                          48
+                                                          11
+                                                          66
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "Ext")
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/HaskellParser.hs"
+                                                          11
+                                                          48
+                                                          11
+                                                          66
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "ExplicitForall"))
+                                        ]))
+                              ]))
+                        Nothing
+                    ]))
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/HaskellParser.hs" 13 1 16 25
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 13 1 13 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/HaskellParser.hs" 13 6 16 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/HaskellParser.hs" 13 6 13 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/HaskellParser.hs" 14 5 16 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/HaskellParser.hs" 14 5 14 7
+                      , SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 8
+                      , SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 8
+                      , SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 8
+                      , SrcSpan "tests/examples/HaskellParser.hs" 17 1 17 0
+                      ]
+                  }
+                [ Generator
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 30
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HaskellParser.hs" 14 10 14 12 ]
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/HaskellParser.hs" 14 8 14 9
+                            , srcInfoPoints = []
+                            }
+                          "s"))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 30
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 14 13 14 21
+                                  , srcInfoPoints = []
+                                  }
+                                "readFile")))
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaskellParser.hs" 14 22 14 30
+                            , srcInfoPoints = []
+                            }
+                          (String
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaskellParser.hs" 14 22 14 30
+                               , srcInfoPoints = []
+                               }
+                             "Bug.hs"
+                             "Bug.hs")))
+                , LetStmt
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 32
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/HaskellParser.hs" 15 8 15 11 ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 32
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 12
+                             , SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 32
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 13
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HaskellParser.hs" 15 12 15 13
+                                   , srcInfoPoints = []
+                                   }
+                                 "x"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/HaskellParser.hs" 15 14 15 32
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/HaskellParser.hs" 15 14 15 15 ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HaskellParser.hs" 15 16 15 21
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HaskellParser.hs" 15 16 15 21
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/HaskellParser.hs" 15 16 15 21
+                                               , srcInfoPoints = []
+                                               }
+                                             "parse")))
+                                    (Lit
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HaskellParser.hs" 15 22 15 30
+                                         , srcInfoPoints = []
+                                         }
+                                       (String
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HaskellParser.hs" 15 22 15 30
+                                            , srcInfoPoints = []
+                                            }
+                                          "Bug.hs"
+                                          "Bug.hs")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/HaskellParser.hs" 15 31 15 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/HaskellParser.hs" 15 31 15 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/HaskellParser.hs" 15 31 15 32
+                                            , srcInfoPoints = []
+                                            }
+                                          "s")))))
+                           Nothing
+                       ])
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 25
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 25
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 16 8 16 16
+                                  , srcInfoPoints = []
+                                  }
+                                "putStrLn")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/HaskellParser.hs" 16 17 16 25
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/HaskellParser.hs" 16 17 16 18
+                                , SrcSpan "tests/examples/HaskellParser.hs" 16 24 16 25
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 24
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/HaskellParser.hs" 16 18 16 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "show")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/HaskellParser.hs" 16 23 16 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "x"))))))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/HaskellParser.hs.prettyprinter.golden b/tests/examples/HaskellParser.hs.prettyprinter.golden
--- a/tests/examples/HaskellParser.hs.prettyprinter.golden
+++ b/tests/examples/HaskellParser.hs.prettyprinter.golden
@@ -1,11 +1,9 @@
-module Main (main) where
 import qualified Language.Haskell.Exts.Annotated as Parser
 import qualified Language.Haskell.Exts.Annotated.Syntax as Syn
 import qualified Language.Haskell.Exts.Extension as Ext
 parse originalFileName input
   = Parser.parseModuleWithMode parseMode input
-  where  
-        parseMode :: Parser.ParseMode
+  where parseMode :: Parser.ParseMode
         parseMode
           = Parser.defaultParseMode{Parser.parseFilename = originalFileName,
                                     Parser.extensions = Ext.glasgowExts ++ [Ext.ExplicitForall]}
diff --git a/tests/examples/HexPrec.hs.parser.golden b/tests/examples/HexPrec.hs.parser.golden
--- a/tests/examples/HexPrec.hs.parser.golden
+++ b/tests/examples/HexPrec.hs.parser.golden
@@ -1,1 +1,191 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 1 1 1 1,SrcSpan "tests/examples/HexPrec.hs" 1 1 1 1,SrcSpan "tests/examples/HexPrec.hs" 3 1 3 1,SrcSpan "tests/examples/HexPrec.hs" 4 1 4 1,SrcSpan "tests/examples/HexPrec.hs" 6 1 6 1,SrcSpan "tests/examples/HexPrec.hs" 7 1 7 1,SrcSpan "tests/examples/HexPrec.hs" 7 1 7 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 1 1 21, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 1 1 1 7,SrcSpan "tests/examples/HexPrec.hs" 1 16 1 21]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 8 1 15, srcInfoPoints = []}) "HexPrec") Nothing Nothing)) [] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 1 3 26, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 3 6 3 8]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 1 3 5, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 3 1 3 2,SrcSpan "tests/examples/HexPrec.hs" 3 2 3 4,SrcSpan "tests/examples/HexPrec.hs" 3 4 3 5]}) "%%"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 26, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 3 13 3 15]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12, srcInfoPoints = []}) "Int"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 26, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 3 20 3 22]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26, srcInfoPoints = []}) "Int"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 11, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 2, srcInfoPoints = []}) "a")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 3 4 5, srcInfoPoints = []}) "%%") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 6 4 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 6 4 7, srcInfoPoints = []}) "b")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 8 4 11, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 4 8 4 9]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 10 4 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 10 4 11, srcInfoPoints = []}) 0 "0"))) Nothing],InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 1 6 15, srcInfoPoints = [SrcSpan "tests/examples/HexPrec.hs" 6 8 6 12]}) (AssocLeft (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 1 6 7, srcInfoPoints = []})) (Just 2) [VarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 13 6 15, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 13 6 15, srcInfoPoints = []}) "%%")]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/HexPrec.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HexPrec.hs" 1 1 1 1
+            , SrcSpan "tests/examples/HexPrec.hs" 3 1 3 1
+            , SrcSpan "tests/examples/HexPrec.hs" 4 1 4 1
+            , SrcSpan "tests/examples/HexPrec.hs" 6 1 6 1
+            , SrcSpan "tests/examples/HexPrec.hs" 7 1 7 1
+            , SrcSpan "tests/examples/HexPrec.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 1 1 21
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/HexPrec.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/HexPrec.hs" 1 16 1 21
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 1 8 1 15
+                 , srcInfoPoints = []
+                 }
+               "HexPrec")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 1 3 26
+            , srcInfoPoints = [ SrcSpan "tests/examples/HexPrec.hs" 3 6 3 8 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 1 3 5
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/HexPrec.hs" 3 1 3 2
+                    , SrcSpan "tests/examples/HexPrec.hs" 3 2 3 4
+                    , SrcSpan "tests/examples/HexPrec.hs" 3 4 3 5
+                    ]
+                }
+              "%%"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 26
+               , srcInfoPoints = [ SrcSpan "tests/examples/HexPrec.hs" 3 13 3 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 9 3 12
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 26
+                  , srcInfoPoints = [ SrcSpan "tests/examples/HexPrec.hs" 3 20 3 22 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 16 3 19
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 3 23 3 26
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 11
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 11
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 1 4 2
+                      , srcInfoPoints = []
+                      }
+                    "a"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 3 4 5
+                   , srcInfoPoints = []
+                   }
+                 "%%")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 6 4 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 6 4 7
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 8 4 11
+                   , srcInfoPoints = [ SrcSpan "tests/examples/HexPrec.hs" 4 8 4 9 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 10 4 11
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 4 10 4 11
+                         , srcInfoPoints = []
+                         }
+                       0
+                       "0")))
+              Nothing
+          ]
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 1 6 15
+            , srcInfoPoints = [ SrcSpan "tests/examples/HexPrec.hs" 6 8 6 12 ]
+            }
+          (AssocLeft
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 1 6 7
+               , srcInfoPoints = []
+               })
+          (Just 2)
+          [ VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 13 6 15
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/HexPrec.hs" 6 13 6 15
+                   , srcInfoPoints = []
+                   }
+                 "%%")
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/HexPrec.hs.prettyprinter.golden b/tests/examples/HexPrec.hs.prettyprinter.golden
--- a/tests/examples/HexPrec.hs.prettyprinter.golden
+++ b/tests/examples/HexPrec.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 module HexPrec where
- 
+
 (%%) :: Int -> Int -> Int
 a %% b = 0
- 
+
 infixl 2 %%
diff --git a/tests/examples/IfThenElseLayout.hs.parser.golden b/tests/examples/IfThenElseLayout.hs.parser.golden
--- a/tests/examples/IfThenElseLayout.hs.parser.golden
+++ b/tests/examples/IfThenElseLayout.hs.parser.golden
@@ -1,1 +1,866 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 13 1, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 5 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 1,SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 30, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 7,SrcSpan "tests/examples/IfThenElseLayout.hs" 2 25 2 30]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 2 8 2 24, srcInfoPoints = []}) "IfThenElseLayout") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 13,SrcSpan "tests/examples/IfThenElseLayout.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 1 14 1 29, srcInfoPoints = []}) "DoAndIfThenElse"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 41, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 4 21 4 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 20, srcInfoPoints = []}) "askCardsForExchange"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 41, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 4 29 4 31]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28, srcInfoPoints = []}) "Hand"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 41, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34, srcInfoPoints = []}) "IO"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 35 4 41, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 4 35 4 36,SrcSpan "tests/examples/IfThenElseLayout.hs" 4 40 4 41]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40, srcInfoPoints = []}) "Card")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 11 61, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 11 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 5 20, srcInfoPoints = []}) "askCardsForExchange") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 21 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 21 5 22, srcInfoPoints = []}) "h")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 23 11 61, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 5 23 5 24]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 5 25 11 61, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 5 25 5 27,SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 26,SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 26,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 26,SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 80, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 80, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34, srcInfoPoints = []}) "putStrLn"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 35 6 80, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 6 35 6 80, srcInfoPoints = []}) "Wich card do you want to exchange? (Max. 3)" "Wich card do you want to exchange? (Max. 3)"))),Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 45, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 7 35 7 37]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 34, srcInfoPoints = []}) "response")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45, srcInfoPoints = []}) "getLine"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 11 61, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 28,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 90 8 94,SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 26,SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 30]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 11 61, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 28,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 90 8 94,SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 26,SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 30]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 89, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 60, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 56, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 35, srcInfoPoints = []}) "length"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 36 8 56, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 8 36 8 37,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 55 8 56]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 37 8 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 37 8 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 37 8 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 37 8 46, srcInfoPoints = []}) "readCards"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 47 8 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 47 8 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 47 8 55, srcInfoPoints = []}) "response")))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 57 8 58, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 57 8 58, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 57 8 58, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 59 8 60, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 59 8 60, srcInfoPoints = []}) 3 "3"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63, srcInfoPoints = []}) "||"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 89, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 67, srcInfoPoints = []}) "not"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 68 8 89, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 8 68 8 69,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 88 8 89]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 88, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 86, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 72, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 72, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 72, srcInfoPoints = []}) "all"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 73 8 86, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 8 73 8 74,SrcSpan "tests/examples/IfThenElseLayout.hs" 8 85 8 86]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 74 8 85, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 74 8 83, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 74 8 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 74 8 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 74 8 78, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 79 8 83, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 79 8 83, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 79 8 83, srcInfoPoints = []}) "elem")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 84 8 85, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 84 8 85, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 84 8 85, srcInfoPoints = []}) "h")))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 87 8 88, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 87 8 88, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 8 87 8 88, srcInfoPoints = []}) "h"))))))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53, srcInfoPoints = []}) "askCardsForExchange"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55, srcInfoPoints = []}) "h")))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 61, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 40, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 41 11 61, srcInfoPoints = [SrcSpan "tests/examples/IfThenElseLayout.hs" 11 41 11 42,SrcSpan "tests/examples/IfThenElseLayout.hs" 11 60 11 61]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 42 11 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 42 11 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 42 11 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 42 11 51, srcInfoPoints = []}) "readCards"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 52 11 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 52 11 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IfThenElseLayout.hs" 11 52 11 60, srcInfoPoints = []}) "response")))))))])) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 13 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 5 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 1
+            , SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 30
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/IfThenElseLayout.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/IfThenElseLayout.hs" 2 25 2 30
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/IfThenElseLayout.hs" 2 8 2 24
+                 , srcInfoPoints = []
+                 }
+               "IfThenElseLayout")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IfThenElseLayout.hs" 1 1 1 13
+                , SrcSpan "tests/examples/IfThenElseLayout.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IfThenElseLayout.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "DoAndIfThenElse"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IfThenElseLayout.hs" 4 21 4 23 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IfThenElseLayout.hs" 4 1 4 20
+                , srcInfoPoints = []
+                }
+              "askCardsForExchange"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 41
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/IfThenElseLayout.hs" 4 29 4 31 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IfThenElseLayout.hs" 4 24 4 28
+                        , srcInfoPoints = []
+                        }
+                      "Hand")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 41
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IfThenElseLayout.hs" 4 32 4 34
+                           , srcInfoPoints = []
+                           }
+                         "IO")))
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IfThenElseLayout.hs" 4 35 4 41
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/IfThenElseLayout.hs" 4 35 4 36
+                         , SrcSpan "tests/examples/IfThenElseLayout.hs" 4 40 4 41
+                         ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/IfThenElseLayout.hs" 4 36 4 40
+                              , srcInfoPoints = []
+                              }
+                            "Card"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 11 61
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 11 61
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/IfThenElseLayout.hs" 5 1 5 20
+                   , srcInfoPoints = []
+                   }
+                 "askCardsForExchange")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/IfThenElseLayout.hs" 5 21 5 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/IfThenElseLayout.hs" 5 21 5 22
+                       , srcInfoPoints = []
+                       }
+                     "h")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/IfThenElseLayout.hs" 5 23 11 61
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/IfThenElseLayout.hs" 5 23 5 24 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/IfThenElseLayout.hs" 5 25 11 61
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/IfThenElseLayout.hs" 5 25 5 27
+                          , SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 26
+                          , SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 26
+                          , SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 26
+                          , SrcSpan "tests/examples/IfThenElseLayout.hs" 13 1 13 0
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 80
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 80
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 6 26 6 34
+                                      , srcInfoPoints = []
+                                      }
+                                    "putStrLn")))
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 6 35 6 80
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 6 35 6 80
+                                   , srcInfoPoints = []
+                                   }
+                                 "Wich card do you want to exchange? (Max. 3)"
+                                 "Wich card do you want to exchange? (Max. 3)")))
+                    , Generator
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 45
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/IfThenElseLayout.hs" 7 35 7 37 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 34
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 7 26 7 34
+                                , srcInfoPoints = []
+                                }
+                              "response"))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 7 38 7 45
+                                   , srcInfoPoints = []
+                                   }
+                                 "getLine")))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 11 61
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 28
+                              , SrcSpan "tests/examples/IfThenElseLayout.hs" 8 90 8 94
+                              , SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 26
+                              , SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 30
+                              ]
+                          }
+                        (If
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 11 61
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/IfThenElseLayout.hs" 8 26 8 28
+                                 , SrcSpan "tests/examples/IfThenElseLayout.hs" 8 90 8 94
+                                 , SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 26
+                                 , SrcSpan "tests/examples/IfThenElseLayout.hs" 10 26 10 30
+                                 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 89
+                                , srcInfoPoints = []
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 60
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 56
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 29 8 35
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 29 8 35
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 29 8 35
+                                               , srcInfoPoints = []
+                                               }
+                                             "length")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 36 8 56
+                                         , srcInfoPoints =
+                                             [ SrcSpan
+                                                 "tests/examples/IfThenElseLayout.hs" 8 36 8 37
+                                             , SrcSpan
+                                                 "tests/examples/IfThenElseLayout.hs" 8 55 8 56
+                                             ]
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 37 8 55
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 37 8 46
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/IfThenElseLayout.hs"
+                                                        8
+                                                        37
+                                                        8
+                                                        46
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/IfThenElseLayout.hs"
+                                                           8
+                                                           37
+                                                           8
+                                                           46
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "readCards")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 47 8 55
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/IfThenElseLayout.hs"
+                                                        8
+                                                        47
+                                                        8
+                                                        55
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/IfThenElseLayout.hs"
+                                                           8
+                                                           47
+                                                           8
+                                                           55
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "response"))))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 57 8 58
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 57 8 58
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 57 8 58
+                                            , srcInfoPoints = []
+                                            }
+                                          ">")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 59 8 60
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 59 8 60
+                                         , srcInfoPoints = []
+                                         }
+                                       3
+                                       "3")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 61 8 63
+                                         , srcInfoPoints = []
+                                         }
+                                       "||")))
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 89
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 67
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 64 8 67
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 64 8 67
+                                            , srcInfoPoints = []
+                                            }
+                                          "not")))
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 8 68 8 89
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/IfThenElseLayout.hs" 8 68 8 69
+                                          , SrcSpan "tests/examples/IfThenElseLayout.hs" 8 88 8 89
+                                          ]
+                                      }
+                                    (App
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 8 69 8 88
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 69 8 86
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 69 8 72
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/IfThenElseLayout.hs"
+                                                        8
+                                                        69
+                                                        8
+                                                        72
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/IfThenElseLayout.hs"
+                                                           8
+                                                           69
+                                                           8
+                                                           72
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "all")))
+                                          (Paren
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 73 8 86
+                                               , srcInfoPoints =
+                                                   [ SrcSpan
+                                                       "tests/examples/IfThenElseLayout.hs"
+                                                       8
+                                                       73
+                                                       8
+                                                       74
+                                                   , SrcSpan
+                                                       "tests/examples/IfThenElseLayout.hs"
+                                                       8
+                                                       85
+                                                       8
+                                                       86
+                                                   ]
+                                               }
+                                             (App
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/IfThenElseLayout.hs"
+                                                        8
+                                                        74
+                                                        8
+                                                        85
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (App
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/IfThenElseLayout.hs"
+                                                           8
+                                                           74
+                                                           8
+                                                           83
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/IfThenElseLayout.hs"
+                                                              8
+                                                              74
+                                                              8
+                                                              78
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/IfThenElseLayout.hs"
+                                                                 8
+                                                                 74
+                                                                 8
+                                                                 78
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/IfThenElseLayout.hs"
+                                                                    8
+                                                                    74
+                                                                    8
+                                                                    78
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "flip")))
+                                                   (Var
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/IfThenElseLayout.hs"
+                                                              8
+                                                              79
+                                                              8
+                                                              83
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (UnQual
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/IfThenElseLayout.hs"
+                                                                 8
+                                                                 79
+                                                                 8
+                                                                 83
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Ident
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/IfThenElseLayout.hs"
+                                                                    8
+                                                                    79
+                                                                    8
+                                                                    83
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            "elem"))))
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/IfThenElseLayout.hs"
+                                                           8
+                                                           84
+                                                           8
+                                                           85
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/IfThenElseLayout.hs"
+                                                              8
+                                                              84
+                                                              8
+                                                              85
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/IfThenElseLayout.hs"
+                                                                 8
+                                                                 84
+                                                                 8
+                                                                 85
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "h"))))))
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 8 87 8 88
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs" 8 87 8 88
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/IfThenElseLayout.hs"
+                                                        8
+                                                        87
+                                                        8
+                                                        88
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "h")))))))
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 55
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 9 34 9 53
+                                         , srcInfoPoints = []
+                                         }
+                                       "askCardsForExchange")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/IfThenElseLayout.hs" 9 54 9 55
+                                         , srcInfoPoints = []
+                                         }
+                                       "h"))))
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 61
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 11 34 11 40
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/IfThenElseLayout.hs" 11 34 11 40
+                                         , srcInfoPoints = []
+                                         }
+                                       "return")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IfThenElseLayout.hs" 11 41 11 61
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/IfThenElseLayout.hs" 11 41 11 42
+                                       , SrcSpan "tests/examples/IfThenElseLayout.hs" 11 60 11 61
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/IfThenElseLayout.hs" 11 42 11 60
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/IfThenElseLayout.hs" 11 42 11 51
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 11 42 11 51
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs"
+                                                     11
+                                                     42
+                                                     11
+                                                     51
+                                               , srcInfoPoints = []
+                                               }
+                                             "readCards")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/IfThenElseLayout.hs" 11 52 11 60
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/IfThenElseLayout.hs" 11 52 11 60
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/IfThenElseLayout.hs"
+                                                     11
+                                                     52
+                                                     11
+                                                     60
+                                               , srcInfoPoints = []
+                                               }
+                                             "response")))))))
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/IfThenElseLayout.hs.prettyprinter.golden b/tests/examples/IfThenElseLayout.hs.prettyprinter.golden
--- a/tests/examples/IfThenElseLayout.hs.prettyprinter.golden
+++ b/tests/examples/IfThenElseLayout.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 {-# LANGUAGE DoAndIfThenElse #-}
 module IfThenElseLayout where
- 
+
 askCardsForExchange :: Hand -> IO [Card]
 askCardsForExchange h
   = do putStrLn "Wich card do you want to exchange? (Max. 3)"
diff --git a/tests/examples/IllDataTypeDecl.hs.parser.golden b/tests/examples/IllDataTypeDecl.hs.parser.golden
--- a/tests/examples/IllDataTypeDecl.hs.parser.golden
+++ b/tests/examples/IllDataTypeDecl.hs.parser.golden
@@ -1,1 +1,162 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 1,SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 1,SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 1,SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 1,SrcSpan "tests/examples/IllDataTypeDecl.hs" 5 1 5 1,SrcSpan "tests/examples/IllDataTypeDecl.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 29, srcInfoPoints = [SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 7,SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 24 2 29]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 8 2 23, srcInfoPoints = []}) "IllDataTypeDecl") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 13,SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 14 1 27, srcInfoPoints = []}) "TypeOperators"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 18 4 19]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 17, srcInfoPoints = []}) (DHParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 15, srcInfoPoints = [SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 7,SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 14 4 15]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 14, srcInfoPoints = []}) (DHInfix (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 14, srcInfoPoints = []}) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 8, srcInfoPoints = []}) "f")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 9 4 12, srcInfoPoints = []}) ":+:")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 13 4 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 13 4 14, srcInfoPoints = []}) "g")))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 16 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 16 4 17, srcInfoPoints = []}) "p"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21, srcInfoPoints = []}) "L") [])] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 1
+            , SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 1
+            , SrcSpan "tests/examples/IllDataTypeDecl.hs" 5 1 5 1
+            , SrcSpan "tests/examples/IllDataTypeDecl.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 29
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 24 2 29
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/IllDataTypeDecl.hs" 2 8 2 23
+                 , srcInfoPoints = []
+                 }
+               "IllDataTypeDecl")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 1 1 13
+                , SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IllDataTypeDecl.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 18 4 19 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 1 4 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 17
+               , srcInfoPoints = []
+               }
+             (DHParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 6 4 7
+                      , SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 14 4 15
+                      ]
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 14
+                     , srcInfoPoints = []
+                     }
+                   (DHInfix
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 14
+                        , srcInfoPoints = []
+                        }
+                      (UnkindedVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 8
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 7 4 8
+                              , srcInfoPoints = []
+                              }
+                            "f"))
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 9 4 12
+                           , srcInfoPoints = []
+                           }
+                         ":+:"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 13 4 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 13 4 14
+                           , srcInfoPoints = []
+                           }
+                         "g"))))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 16 4 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 16 4 17
+                     , srcInfoPoints = []
+                     }
+                   "p")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/IllDataTypeDecl.hs" 4 20 4 21
+                      , srcInfoPoints = []
+                      }
+                    "L")
+                 [])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/IllDataTypeDecl.hs.prettyprinter.golden b/tests/examples/IllDataTypeDecl.hs.prettyprinter.golden
--- a/tests/examples/IllDataTypeDecl.hs.prettyprinter.golden
+++ b/tests/examples/IllDataTypeDecl.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 {-# LANGUAGE TypeOperators #-}
 module IllDataTypeDecl where
- 
-data (:+:) f g p = L
+
+data (f :+: g) p = L
diff --git a/tests/examples/ImplicitWhereBlocks.hs.parser.golden b/tests/examples/ImplicitWhereBlocks.hs.parser.golden
--- a/tests/examples/ImplicitWhereBlocks.hs.parser.golden
+++ b/tests/examples/ImplicitWhereBlocks.hs.parser.golden
@@ -1,1 +1,201 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 1,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 7 1 7 1,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 7 1 7 1]}) Nothing [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 2 21, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 9 1 14]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 4, srcInfoPoints = []}) "foo")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 5 1 8, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 5 1 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8, srcInfoPoints = []}) "x")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 2 21, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 15,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 15,SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 16, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 17 1 20, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 17 1 18]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 19 1 20, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 19 1 20, srcInfoPoints = []}) 1 "1"))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 21, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 16, srcInfoPoints = []}) "z")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 17 2 21, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 17 2 18]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 19 2 21, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 19 2 21, srcInfoPoints = []}) 19 "19"))) Nothing])),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 6, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 2, srcInfoPoints = []}) "y")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 3 5 6, srcInfoPoints = [SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 3 5 4]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 5 5 6, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 5 5 6, srcInfoPoints = []}) 2 "2"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 7 1 7 1
+            , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 2 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 9 1 14 ]
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 1 1 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 5 1 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 5 1 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 7 1 8
+                        , srcInfoPoints = []
+                        }
+                      "x"))))
+          (Just
+             (BDecls
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 2 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 15
+                      , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 15
+                      , SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 0
+                      ]
+                  }
+                [ PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 15 1 16
+                            , srcInfoPoints = []
+                            }
+                          "x"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 17 1 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 17 1 18 ]
+                         }
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 19 1 20
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 1 19 1 20
+                               , srcInfoPoints = []
+                               }
+                             1
+                             "1")))
+                    Nothing
+                , PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 15 2 16
+                            , srcInfoPoints = []
+                            }
+                          "z"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 17 2 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 17 2 18 ]
+                         }
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 19 2 21
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 2 19 2 21
+                               , srcInfoPoints = []
+                               }
+                             19
+                             "19")))
+                    Nothing
+                ]))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 6
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 1 5 2
+                  , srcInfoPoints = []
+                  }
+                "y"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 3 5 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 3 5 4 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 5 5 6
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ImplicitWhereBlocks.hs" 5 5 5 6
+                     , srcInfoPoints = []
+                     }
+                   2
+                   "2")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/ImplicitWhereBlocks.hs.prettyprinter.golden b/tests/examples/ImplicitWhereBlocks.hs.prettyprinter.golden
--- a/tests/examples/ImplicitWhereBlocks.hs.prettyprinter.golden
+++ b/tests/examples/ImplicitWhereBlocks.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
-module Main (main) where
 foo = x
   where x = 1
         z = 19
diff --git a/tests/examples/ImportQualifiedPost.hs b/tests/examples/ImportQualifiedPost.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ImportQualifiedPost.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+module ImportQualifiedPost where
+
+import Data.List qualified as L
diff --git a/tests/examples/ImportQualifiedPost.hs.exactprinter.golden b/tests/examples/ImportQualifiedPost.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ImportQualifiedPost.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ImportQualifiedPost.hs.parser.golden b/tests/examples/ImportQualifiedPost.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ImportQualifiedPost.hs.parser.golden
@@ -0,0 +1,89 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ImportQualifiedPost.hs" 5 1 5 1
+            , SrcSpan "tests/examples/ImportQualifiedPost.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 1 2 33
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 28 2 33
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/ImportQualifiedPost.hs" 2 8 2 27
+                 , srcInfoPoints = []
+                 }
+               "ImportQualifiedPost")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 1 1 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 34 1 37
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ImportQualifiedPost.hs" 1 14 1 33
+                , srcInfoPoints = []
+                }
+              "ImportQualifiedPost"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 1 4 32
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 1 4 7
+                    , SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 18 4 27
+                    , SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 28 4 30
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 8 4 17
+                  , srcInfoPoints = []
+                  }
+                "Data.List"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ImportQualifiedPost.hs" 4 31 4 32
+                     , srcInfoPoints = []
+                     }
+                   "L")
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/ImportQualifiedPost.hs.prettyparser.golden b/tests/examples/ImportQualifiedPost.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ImportQualifiedPost.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ImportQualifiedPost.hs.prettyprinter.golden b/tests/examples/ImportQualifiedPost.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ImportQualifiedPost.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+module ImportQualifiedPost where
+import qualified Data.List as L
diff --git a/tests/examples/IndentedModule1.hs b/tests/examples/IndentedModule1.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule1.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE NamedFieldPuns #-}
+ module Main where
+main = putStr "foo"
diff --git a/tests/examples/IndentedModule1.hs.exactprinter.golden b/tests/examples/IndentedModule1.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule1.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/IndentedModule1.hs.parser.golden b/tests/examples/IndentedModule1.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule1.hs.parser.golden
@@ -0,0 +1,117 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/IndentedModule1.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/IndentedModule1.hs" 1 1 1 1
+            , SrcSpan "tests/examples/IndentedModule1.hs" 2 2 2 2
+            , SrcSpan "tests/examples/IndentedModule1.hs" 3 1 3 1
+            , SrcSpan "tests/examples/IndentedModule1.hs" 4 1 4 1
+            , SrcSpan "tests/examples/IndentedModule1.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/IndentedModule1.hs" 2 2 2 19
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/IndentedModule1.hs" 2 2 2 8
+                  , SrcSpan "tests/examples/IndentedModule1.hs" 2 14 2 19
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/IndentedModule1.hs" 2 9 2 13
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IndentedModule1.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IndentedModule1.hs" 1 1 1 13
+                , SrcSpan "tests/examples/IndentedModule1.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IndentedModule1.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "NamedFieldPuns"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IndentedModule1.hs" 3 1 3 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/IndentedModule1.hs" 3 1 3 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/IndentedModule1.hs" 3 1 3 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/IndentedModule1.hs" 3 6 3 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/IndentedModule1.hs" 3 6 3 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IndentedModule1.hs" 3 8 3 20
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IndentedModule1.hs" 3 8 3 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IndentedModule1.hs" 3 8 3 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IndentedModule1.hs" 3 8 3 14
+                           , srcInfoPoints = []
+                           }
+                         "putStr")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IndentedModule1.hs" 3 15 3 20
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IndentedModule1.hs" 3 15 3 20
+                        , srcInfoPoints = []
+                        }
+                      "foo"
+                      "foo"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/IndentedModule1.hs.prettyparser.golden b/tests/examples/IndentedModule1.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule1.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/IndentedModule1.hs.prettyprinter.golden b/tests/examples/IndentedModule1.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule1.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE NamedFieldPuns #-}
+module Main where
+main = putStr "foo"
diff --git a/tests/examples/IndentedModule2.hs b/tests/examples/IndentedModule2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule2.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE NamedFieldPuns #-}
+{- -} module Main where
+main = putStr "foo"
diff --git a/tests/examples/IndentedModule2.hs.exactprinter.golden b/tests/examples/IndentedModule2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/IndentedModule2.hs.parser.golden b/tests/examples/IndentedModule2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule2.hs.parser.golden
@@ -0,0 +1,119 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/IndentedModule2.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/IndentedModule2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/IndentedModule2.hs" 2 7 2 7
+            , SrcSpan "tests/examples/IndentedModule2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/IndentedModule2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/IndentedModule2.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/IndentedModule2.hs" 2 7 2 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/IndentedModule2.hs" 2 7 2 13
+                  , SrcSpan "tests/examples/IndentedModule2.hs" 2 19 2 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/IndentedModule2.hs" 2 14 2 18
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IndentedModule2.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IndentedModule2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/IndentedModule2.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/IndentedModule2.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "NamedFieldPuns"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/IndentedModule2.hs" 3 1 3 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/IndentedModule2.hs" 3 1 3 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/IndentedModule2.hs" 3 1 3 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/IndentedModule2.hs" 3 6 3 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/IndentedModule2.hs" 3 6 3 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/IndentedModule2.hs" 3 8 3 20
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IndentedModule2.hs" 3 8 3 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IndentedModule2.hs" 3 8 3 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/IndentedModule2.hs" 3 8 3 14
+                           , srcInfoPoints = []
+                           }
+                         "putStr")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/IndentedModule2.hs" 3 15 3 20
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/IndentedModule2.hs" 3 15 3 20
+                        , srcInfoPoints = []
+                        }
+                      "foo"
+                      "foo"))))
+          Nothing
+      ]
+  , [ Comment
+        True (SrcSpan "tests/examples/IndentedModule2.hs" 2 1 2 6) " "
+    ]
+  )
diff --git a/tests/examples/IndentedModule2.hs.prettyparser.golden b/tests/examples/IndentedModule2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/IndentedModule2.hs.prettyprinter.golden b/tests/examples/IndentedModule2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/IndentedModule2.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE NamedFieldPuns #-}
+module Main where
+main = putStr "foo"
diff --git a/tests/examples/IndentedTopLevelWhere.hs.parser.golden b/tests/examples/IndentedTopLevelWhere.hs.parser.golden
--- a/tests/examples/IndentedTopLevelWhere.hs.parser.golden
+++ b/tests/examples/IndentedTopLevelWhere.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/IndentedTopLevelWhere.hs" 8 1) "Parse error: virtual }"
+ParseFailed
+  (SrcLoc "tests/examples/IndentedTopLevelWhere.hs" 8 1)
+  "Parse error: virtual }"
diff --git a/tests/examples/IndentedWhere.hs.parser.golden b/tests/examples/IndentedWhere.hs.parser.golden
--- a/tests/examples/IndentedWhere.hs.parser.golden
+++ b/tests/examples/IndentedWhere.hs.parser.golden
@@ -1,1 +1,148 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1,SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1,SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1,SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 1,SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 1]}) Nothing [] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 4 14, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 3 3 3 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 4 14, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 3 3 3 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 2, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 3 2 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 3 2 4, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 5 2 8, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 2 5 2 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8, srcInfoPoints = []}) "g")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 4 14, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 9,SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 9,SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 0]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 17, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 3 11 3 13]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 10, srcInfoPoints = []}) "g"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17, srcInfoPoints = []}) "Int"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 10, srcInfoPoints = []}) "g")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 11 4 14, srcInfoPoints = [SrcSpan "tests/examples/IndentedWhere.hs" 4 11 4 12]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 13 4 14, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 13 4 14, srcInfoPoints = []}) 0 "0"))) Nothing]))]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 1
+            , SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 1
+            , SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 4 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/IndentedWhere.hs" 3 3 3 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 4 14
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/IndentedWhere.hs" 3 3 3 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 1 2 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 3 2 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 3 2 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 5 2 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/IndentedWhere.hs" 2 5 2 6 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 2 7 2 8
+                            , srcInfoPoints = []
+                            }
+                          "g"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 4 14
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 9
+                          , SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 9
+                          , SrcSpan "tests/examples/IndentedWhere.hs" 5 1 5 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 17
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/IndentedWhere.hs" 3 11 3 13 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 9 3 10
+                              , srcInfoPoints = []
+                              }
+                            "g"
+                        ]
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IndentedWhere.hs" 3 14 3 17
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int")))
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 14
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 10
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 9 4 10
+                                , srcInfoPoints = []
+                                }
+                              "g"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 11 4 14
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/IndentedWhere.hs" 4 11 4 12 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/IndentedWhere.hs" 4 13 4 14
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/IndentedWhere.hs" 4 13 4 14
+                                   , srcInfoPoints = []
+                                   }
+                                 0
+                                 "0")))
+                        Nothing
+                    ]))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/IndentedWhere.hs.prettyprinter.golden b/tests/examples/IndentedWhere.hs.prettyprinter.golden
--- a/tests/examples/IndentedWhere.hs.prettyprinter.golden
+++ b/tests/examples/IndentedWhere.hs.prettyprinter.golden
@@ -1,5 +1,3 @@
-module Main (main) where
 f x = g
-  where  
-        g :: Int
+  where g :: Int
         g = 0
diff --git a/tests/examples/IndentedWhereBlock.hs b/tests/examples/IndentedWhereBlock.hs
--- a/tests/examples/IndentedWhereBlock.hs
+++ b/tests/examples/IndentedWhereBlock.hs
@@ -3,5 +3,5 @@
  countryLookUp :: String -> Graph -> Maybe Int
  countryLookUp country graph = indexOf country graph where
 
- indexOf :: String -> Graph -> Maybe Int	
+ indexOf :: String -> Graph -> Maybe Int
  indexOf _ Empty = Nothing
diff --git a/tests/examples/IndentedWhereBlock.hs.parser.golden b/tests/examples/IndentedWhereBlock.hs.parser.golden
--- a/tests/examples/IndentedWhereBlock.hs.parser.golden
+++ b/tests/examples/IndentedWhereBlock.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/IndentedWhereBlock.hs" 8 1) "Parse error: virtual }"
+ParseFailed
+  (SrcLoc "tests/examples/IndentedWhereBlock.hs" 8 1)
+  "Parse error: virtual }"
diff --git a/tests/examples/InfixApp.hs.parser.golden b/tests/examples/InfixApp.hs.parser.golden
--- a/tests/examples/InfixApp.hs.parser.golden
+++ b/tests/examples/InfixApp.hs.parser.golden
@@ -1,1 +1,94 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1,SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1,SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1,SrcSpan "tests/examples/InfixApp.hs" 3 1 3 1,SrcSpan "tests/examples/InfixApp.hs" 3 1 3 1]}) Nothing [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 9, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 2, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 3 1 9, srcInfoPoints = [SrcSpan "tests/examples/InfixApp.hs" 1 3 1 4]}) (NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 5 1 9, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 9, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7, srcInfoPoints = []}) "w"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8, srcInfoPoints = []}) "/"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 8 1 9, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 8 1 9, srcInfoPoints = []}) 2 "2"))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixApp.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixApp.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InfixApp.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 9
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 1 1 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 3 1 9
+               , srcInfoPoints = [ SrcSpan "tests/examples/InfixApp.hs" 1 3 1 4 ]
+               }
+             (NegApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 5 1 9
+                  , srcInfoPoints = []
+                  }
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 9
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 6 1 7
+                              , srcInfoPoints = []
+                              }
+                            "w")))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 7 1 8
+                              , srcInfoPoints = []
+                              }
+                            "/")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 8 1 9
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixApp.hs" 1 8 1 9
+                           , srcInfoPoints = []
+                           }
+                         2
+                         "2")))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/InfixApp.hs.prettyprinter.golden b/tests/examples/InfixApp.hs.prettyprinter.golden
--- a/tests/examples/InfixApp.hs.prettyprinter.golden
+++ b/tests/examples/InfixApp.hs.prettyprinter.golden
@@ -1,2 +1,1 @@
-module Main (main) where
 f = -w / 2
diff --git a/tests/examples/InfixBang.hs b/tests/examples/InfixBang.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixBang.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE BangPatterns #-}
+
+(!) arr i = arr i
diff --git a/tests/examples/InfixBang.hs.exactprinter.golden b/tests/examples/InfixBang.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixBang.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixBang.hs.parser.golden b/tests/examples/InfixBang.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixBang.hs.parser.golden
@@ -0,0 +1,122 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InfixBang.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixBang.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InfixBang.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InfixBang.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InfixBang.hs" 4 1 4 1
+            , SrcSpan "tests/examples/InfixBang.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixBang.hs" 1 1 1 13
+                , SrcSpan "tests/examples/InfixBang.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "BangPatterns"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 1 3 18
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 1 3 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixBang.hs" 3 1 3 2
+                    , SrcSpan "tests/examples/InfixBang.hs" 3 2 3 3
+                    , SrcSpan "tests/examples/InfixBang.hs" 3 3 3 4
+                    ]
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 2 3 3
+                   , srcInfoPoints = []
+                   }
+                 "!")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 5 3 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 5 3 8
+                       , srcInfoPoints = []
+                       }
+                     "arr")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 9 3 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 9 3 10
+                       , srcInfoPoints = []
+                       }
+                     "i")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 11 3 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InfixBang.hs" 3 11 3 12 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 13 3 18
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 13 3 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 13 3 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 13 3 16
+                               , srcInfoPoints = []
+                               }
+                             "arr")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 17 3 18
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 17 3 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixBang.hs" 3 17 3 18
+                               , srcInfoPoints = []
+                               }
+                             "i")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/InfixBang.hs.prettyparser.golden b/tests/examples/InfixBang.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixBang.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixBang.hs.prettyprinter.golden b/tests/examples/InfixBang.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixBang.hs.prettyprinter.golden
@@ -0,0 +1,2 @@
+{-# LANGUAGE BangPatterns #-}
+(!) arr i = arr i
diff --git a/tests/examples/InfixFunBind.hs b/tests/examples/InfixFunBind.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixFunBind.hs
@@ -0,0 +1,1 @@
+left `first` _ = left
diff --git a/tests/examples/InfixFunBind.hs.exactprinter.golden b/tests/examples/InfixFunBind.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixFunBind.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixFunBind.hs.parser.golden b/tests/examples/InfixFunBind.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixFunBind.hs.parser.golden
@@ -0,0 +1,79 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixFunBind.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InfixFunBind.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 22
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 22
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 5
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 1 1 5
+                      , srcInfoPoints = []
+                      }
+                    "left"))
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 7 1 12
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InfixFunBind.hs" 1 6 1 7
+                       , SrcSpan "tests/examples/InfixFunBind.hs" 1 7 1 12
+                       , SrcSpan "tests/examples/InfixFunBind.hs" 1 12 1 13
+                       ]
+                   }
+                 "first")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 14 1 15
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 16 1 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InfixFunBind.hs" 1 16 1 17 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 18 1 22
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 18 1 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixFunBind.hs" 1 18 1 22
+                            , srcInfoPoints = []
+                            }
+                          "left"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/InfixFunBind.hs.prettyparser.golden b/tests/examples/InfixFunBind.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixFunBind.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixFunBind.hs.prettyprinter.golden b/tests/examples/InfixFunBind.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixFunBind.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+left `first` _ = left
diff --git a/tests/examples/InfixParser.hs.parser.golden b/tests/examples/InfixParser.hs.parser.golden
--- a/tests/examples/InfixParser.hs.parser.golden
+++ b/tests/examples/InfixParser.hs.parser.golden
@@ -1,1 +1,490 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 1 1 1 1,SrcSpan "tests/examples/InfixParser.hs" 1 1 1 1,SrcSpan "tests/examples/InfixParser.hs" 3 1 3 1,SrcSpan "tests/examples/InfixParser.hs" 5 1 5 1,SrcSpan "tests/examples/InfixParser.hs" 6 1 6 1,SrcSpan "tests/examples/InfixParser.hs" 7 1 7 1,SrcSpan "tests/examples/InfixParser.hs" 7 1 7 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 1 1 25, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 1 1 1 7,SrcSpan "tests/examples/InfixParser.hs" 1 20 1 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 8 1 19, srcInfoPoints = []}) "InfixParser") Nothing Nothing)) [] [] [TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 1 3 35, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 1 3 5,SrcSpan "tests/examples/InfixParser.hs" 3 16 3 17]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 15, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 11, srcInfoPoints = []}) "Parse")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 12 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 12 3 13, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 14 3 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 14 3 15, srcInfoPoints = []}) "b"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 18 3 35, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 22 3 24]}) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 18 3 21, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 18 3 19,SrcSpan "tests/examples/InfixParser.hs" 3 20 3 21]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 19 3 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 19 3 20, srcInfoPoints = []}) "a"))) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 25 3 35, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 25 3 26,SrcSpan "tests/examples/InfixParser.hs" 3 34 3 35]}) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 26 3 34, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 26 3 27,SrcSpan "tests/examples/InfixParser.hs" 3 28 3 29,SrcSpan "tests/examples/InfixParser.hs" 3 33 3 34]}) Boxed [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 27 3 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 27 3 28, srcInfoPoints = []}) "b"),TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 30 3 33, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 3 30 3 31,SrcSpan "tests/examples/InfixParser.hs" 3 32 3 33]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 31 3 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 31 3 32, srcInfoPoints = []}) "a"))]))),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 1 5 45, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 5 7 5 9]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 1 5 6, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 5 1 5 2,SrcSpan "tests/examples/InfixParser.hs" 5 2 5 5,SrcSpan "tests/examples/InfixParser.hs" 5 5 5 6]}) "<|>"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 45, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 5 20 5 22]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 19, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 17, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15, srcInfoPoints = []}) "Parse"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 16 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 16 5 17, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 18 5 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 18 5 19, srcInfoPoints = []}) "b"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 45, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 5 33 5 35]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 32, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 30, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28, srcInfoPoints = []}) "Parse"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 29 5 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 29 5 30, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 31 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 31 5 32, srcInfoPoints = []}) "b"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 45, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 43, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41, srcInfoPoints = []}) "Parse"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 42 5 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 42 5 43, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 44 5 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 44 5 45, srcInfoPoints = []}) "b"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 1 6 29, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 1 6 29, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 6 1 6 2,SrcSpan "tests/examples/InfixParser.hs" 6 11 6 12]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 2 6 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 2 6 4, srcInfoPoints = []}) "p1")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 5 6 8, srcInfoPoints = []}) "<|>") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 9 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 9 6 11, srcInfoPoints = []}) "p2"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 13 6 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 13 6 14, srcInfoPoints = []}) "i")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 15 6 29, srcInfoPoints = [SrcSpan "tests/examples/InfixParser.hs" 6 15 6 16]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 29, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 21, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19, srcInfoPoints = []}) "p1"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21, srcInfoPoints = []}) "i")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24, srcInfoPoints = []}) "++"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 29, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27, srcInfoPoints = []}) "p2"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29, srcInfoPoints = []}) "i")))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InfixParser.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixParser.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixParser.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InfixParser.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InfixParser.hs" 6 1 6 1
+            , SrcSpan "tests/examples/InfixParser.hs" 7 1 7 1
+            , SrcSpan "tests/examples/InfixParser.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 1 1 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/InfixParser.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/InfixParser.hs" 1 20 1 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 1 8 1 19
+                 , srcInfoPoints = []
+                 }
+               "InfixParser")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 1 3 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixParser.hs" 3 1 3 5
+                , SrcSpan "tests/examples/InfixParser.hs" 3 16 3 17
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 15
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 13
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 6 3 11
+                        , srcInfoPoints = []
+                        }
+                      "Parse"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 12 3 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 12 3 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 14 3 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 14 3 15
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 18 3 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InfixParser.hs" 3 22 3 24 ]
+               }
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 18 3 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixParser.hs" 3 18 3 19
+                      , SrcSpan "tests/examples/InfixParser.hs" 3 20 3 21
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 19 3 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 19 3 20
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 25 3 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixParser.hs" 3 25 3 26
+                      , SrcSpan "tests/examples/InfixParser.hs" 3 34 3 35
+                      ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 26 3 34
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InfixParser.hs" 3 26 3 27
+                         , SrcSpan "tests/examples/InfixParser.hs" 3 28 3 29
+                         , SrcSpan "tests/examples/InfixParser.hs" 3 33 3 34
+                         ]
+                     }
+                   Boxed
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 27 3 28
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 27 3 28
+                            , srcInfoPoints = []
+                            }
+                          "b")
+                   , TyList
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 30 3 33
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixParser.hs" 3 30 3 31
+                             , SrcSpan "tests/examples/InfixParser.hs" 3 32 3 33
+                             ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 31 3 32
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 3 31 3 32
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                   ])))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 1 5 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixParser.hs" 5 7 5 9 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 1 5 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixParser.hs" 5 1 5 2
+                    , SrcSpan "tests/examples/InfixParser.hs" 5 2 5 5
+                    , SrcSpan "tests/examples/InfixParser.hs" 5 5 5 6
+                    ]
+                }
+              "<|>"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 45
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InfixParser.hs" 5 20 5 22 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 19
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 17
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 10 5 15
+                              , srcInfoPoints = []
+                              }
+                            "Parse")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 16 5 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 16 5 17
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 18 5 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 18 5 19
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixParser.hs" 5 33 5 35 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 32
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 30
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 23 5 28
+                                 , srcInfoPoints = []
+                                 }
+                               "Parse")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 29 5 30
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 29 5 30
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 31 5 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 31 5 32
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 45
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 43
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 36 5 41
+                                 , srcInfoPoints = []
+                                 }
+                               "Parse")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 42 5 43
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 42 5 43
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 44 5 45
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 5 44 5 45
+                           , srcInfoPoints = []
+                           }
+                         "b")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 1 6 29
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 1 6 29
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixParser.hs" 6 1 6 2
+                    , SrcSpan "tests/examples/InfixParser.hs" 6 11 6 12
+                    ]
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 2 6 4
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 2 6 4
+                      , srcInfoPoints = []
+                      }
+                    "p1"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 5 6 8
+                   , srcInfoPoints = []
+                   }
+                 "<|>")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 9 6 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 9 6 11
+                       , srcInfoPoints = []
+                       }
+                     "p2")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 13 6 14
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 13 6 14
+                       , srcInfoPoints = []
+                       }
+                     "i")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 15 6 29
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InfixParser.hs" 6 15 6 16 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 29
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 21
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 17 6 19
+                                  , srcInfoPoints = []
+                                  }
+                                "p1")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 20 6 21
+                                  , srcInfoPoints = []
+                                  }
+                                "i"))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 22 6 24
+                               , srcInfoPoints = []
+                               }
+                             "++")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 29
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 25 6 27
+                                  , srcInfoPoints = []
+                                  }
+                                "p2")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InfixParser.hs" 6 28 6 29
+                                  , srcInfoPoints = []
+                                  }
+                                "i"))))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/InfixParser.hs.prettyprinter.golden b/tests/examples/InfixParser.hs.prettyprinter.golden
--- a/tests/examples/InfixParser.hs.prettyprinter.golden
+++ b/tests/examples/InfixParser.hs.prettyprinter.golden
@@ -1,6 +1,6 @@
 module InfixParser where
- 
+
 type Parse a b = [a] -> [(b, [a])]
- 
+
 (<|>) :: Parse a b -> Parse a b -> Parse a b
 (p1 <|> p2) i = p1 i ++ p2 i
diff --git a/tests/examples/InfixTypeMinus.hs b/tests/examples/InfixTypeMinus.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixTypeMinus.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE DataKinds, KindSignatures, TypeOperators, GADTs #-}
+module Foo where
+
+-- Test cases
+data Vec (n :: Nat) where { VCons :: (m ~ (n-1)) => Double -> Vec m -> Vec n }
+data Vec (n :: Nat) where { VCons :: ((n-1) ~ m) => Double -> Vec m -> Vec n }
+data Vec (n :: Nat) where { VCons :: ((m+1) ~ n) => Double -> Vec m -> Vec n }
+data Vec (n :: Nat) where { VCons :: (n ~ (m+1)) => Double -> Vec m -> Vec n }
diff --git a/tests/examples/InfixTypeMinus.hs.exactprinter.golden b/tests/examples/InfixTypeMinus.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixTypeMinus.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixTypeMinus.hs.parser.golden b/tests/examples/InfixTypeMinus.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixTypeMinus.hs.parser.golden
@@ -0,0 +1,1346 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InfixTypeMinus.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 1 6 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 1 7 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 1 8 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 9 1 9 1
+            , SrcSpan "tests/examples/InfixTypeMinus.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 2 1 2 17
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/InfixTypeMinus.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/InfixTypeMinus.hs" 2 12 2 17
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 2 8 2 11
+                 , srcInfoPoints = []
+                 }
+               "Foo")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 1 1 1 65
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 1 1 1 13
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 1 23 1 24
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 1 39 1 40
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 1 54 1 55
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 1 62 1 65
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 1 25 1 39
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 1 41 1 54
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 1 56 1 61
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 5 1 5 79
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 21 5 26
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 27 5 28
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 78 5 79
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 5 6 5 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 5 6 5 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 5 6 5 9
+                     , srcInfoPoints = []
+                     }
+                   "Vec"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 10 5 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 10 5 11
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 13 5 15
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 19 5 20
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 11 5 12
+                     , srcInfoPoints = []
+                     }
+                   "n")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 16 5 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 16 5 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InfixTypeMinus.hs" 5 16 5 19
+                           , srcInfoPoints = []
+                           }
+                         "Nat")))))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 5 29 5 77
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 35 5 37 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 5 29 5 34
+                   , srcInfoPoints = []
+                   }
+                 "VCons")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 5 38 5 77
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 5 38 5 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 38 5 39
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 48 5 49
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 50 5 52
+                             ]
+                         }
+                       (ParenA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 5 38 5 52
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 38 5 39
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 48 5 49
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 50 5 52
+                                ]
+                            }
+                          (TypeA
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 48
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 41 5 42 ]
+                               }
+                             (TyEquals
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 48
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 41 5 42 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "m"))
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 43 5 48
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 43 5 44
+                                         , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 47 5 48
+                                         ]
+                                     }
+                                   (TyInfix
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 44 5 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 5 44 5 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 5 44 5 45
+                                              , srcInfoPoints = []
+                                              }
+                                            "n"))
+                                      (UnpromotedName
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 5 45 5 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 5 45 5 46
+                                              , srcInfoPoints = []
+                                              }
+                                            (Symbol
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InfixTypeMinus.hs" 5 45 5 46
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "-")))
+                                      (TyPromoted
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 5 46 5 47
+                                           , srcInfoPoints = []
+                                           }
+                                         (PromotedInteger
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 5 46 5 47
+                                              , srcInfoPoints = []
+                                              }
+                                            1
+                                            "1")))))))))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InfixTypeMinus.hs" 5 53 5 77
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 60 5 62 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 5 53 5 59
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 5 53 5 59
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 53 5 59
+                               , srcInfoPoints = []
+                               }
+                             "Double")))
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 5 63 5 77
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 69 5 71 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 5 63 5 68
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 63 5 66
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 63 5 66
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 63 5 66
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 67 5 68
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 67 5 68
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 5 72 5 77
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 72 5 75
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 72 5 75
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 72 5 75
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 5 76 5 77
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 76 5 77
+                                  , srcInfoPoints = []
+                                  }
+                                "n"))))))
+          ]
+          []
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 6 1 6 79
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 21 6 26
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 27 6 28
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 78 6 79
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 6 1 6 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 6 6 6 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 6 6 6 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 6 6 6 9
+                     , srcInfoPoints = []
+                     }
+                   "Vec"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 10 6 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 10 6 11
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 13 6 15
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 19 6 20
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 11 6 12
+                     , srcInfoPoints = []
+                     }
+                   "n")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 16 6 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 16 6 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InfixTypeMinus.hs" 6 16 6 19
+                           , srcInfoPoints = []
+                           }
+                         "Nat")))))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 6 29 6 77
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 35 6 37 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 6 29 6 34
+                   , srcInfoPoints = []
+                   }
+                 "VCons")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 6 38 6 77
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 6 38 6 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 38 6 39
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 48 6 49
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 50 6 52
+                             ]
+                         }
+                       (ParenA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 6 38 6 52
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 38 6 39
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 48 6 49
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 50 6 52
+                                ]
+                            }
+                          (TypeA
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 48
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 45 6 46 ]
+                               }
+                             (TyEquals
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 48
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 45 6 46 ]
+                                  }
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 44
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 40
+                                         , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 43 6 44
+                                         ]
+                                     }
+                                   (TyInfix
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 40 6 43
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 6 40 6 41
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 6 40 6 41
+                                              , srcInfoPoints = []
+                                              }
+                                            "n"))
+                                      (UnpromotedName
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 6 41 6 42
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 6 41 6 42
+                                              , srcInfoPoints = []
+                                              }
+                                            (Symbol
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InfixTypeMinus.hs" 6 41 6 42
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "-")))
+                                      (TyPromoted
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 6 42 6 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (PromotedInteger
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 6 42 6 43
+                                              , srcInfoPoints = []
+                                              }
+                                            1
+                                            "1"))))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 47 6 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 47 6 48
+                                        , srcInfoPoints = []
+                                        }
+                                      "m")))))))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InfixTypeMinus.hs" 6 53 6 77
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 60 6 62 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 6 53 6 59
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 6 53 6 59
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 53 6 59
+                               , srcInfoPoints = []
+                               }
+                             "Double")))
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 6 63 6 77
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 69 6 71 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 6 63 6 68
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 63 6 66
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 63 6 66
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 63 6 66
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 67 6 68
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 67 6 68
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 6 72 6 77
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 72 6 75
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 72 6 75
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 72 6 75
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 6 76 6 77
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 76 6 77
+                                  , srcInfoPoints = []
+                                  }
+                                "n"))))))
+          ]
+          []
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 7 1 7 79
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 21 7 26
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 27 7 28
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 78 7 79
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 7 1 7 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 7 6 7 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 7 6 7 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 7 6 7 9
+                     , srcInfoPoints = []
+                     }
+                   "Vec"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 10 7 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 10 7 11
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 13 7 15
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 19 7 20
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 11 7 12
+                     , srcInfoPoints = []
+                     }
+                   "n")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 16 7 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 16 7 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InfixTypeMinus.hs" 7 16 7 19
+                           , srcInfoPoints = []
+                           }
+                         "Nat")))))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 7 29 7 77
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 35 7 37 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 7 29 7 34
+                   , srcInfoPoints = []
+                   }
+                 "VCons")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 7 38 7 77
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 7 38 7 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 38 7 39
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 48 7 49
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 50 7 52
+                             ]
+                         }
+                       (ParenA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 7 38 7 52
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 38 7 39
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 48 7 49
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 50 7 52
+                                ]
+                            }
+                          (TypeA
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 48
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 45 7 46 ]
+                               }
+                             (TyEquals
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 48
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 45 7 46 ]
+                                  }
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 44
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 40
+                                         , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 43 7 44
+                                         ]
+                                     }
+                                   (TyInfix
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 40 7 43
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 7 40 7 41
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 7 40 7 41
+                                              , srcInfoPoints = []
+                                              }
+                                            "m"))
+                                      (UnpromotedName
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 7 41 7 42
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 7 41 7 42
+                                              , srcInfoPoints = []
+                                              }
+                                            (Symbol
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InfixTypeMinus.hs" 7 41 7 42
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "+")))
+                                      (TyPromoted
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 7 42 7 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (PromotedInteger
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 7 42 7 43
+                                              , srcInfoPoints = []
+                                              }
+                                            1
+                                            "1"))))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 47 7 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 47 7 48
+                                        , srcInfoPoints = []
+                                        }
+                                      "n")))))))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InfixTypeMinus.hs" 7 53 7 77
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 60 7 62 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 7 53 7 59
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 7 53 7 59
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 53 7 59
+                               , srcInfoPoints = []
+                               }
+                             "Double")))
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 7 63 7 77
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 69 7 71 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 7 63 7 68
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 63 7 66
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 63 7 66
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 63 7 66
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 67 7 68
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 67 7 68
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 7 72 7 77
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 72 7 75
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 72 7 75
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 72 7 75
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 7 76 7 77
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 76 7 77
+                                  , srcInfoPoints = []
+                                  }
+                                "n"))))))
+          ]
+          []
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 8 1 8 79
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 21 8 26
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 27 8 28
+                , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 78 8 79
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 8 1 8 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 8 6 8 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 8 6 8 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InfixTypeMinus.hs" 8 6 8 9
+                     , srcInfoPoints = []
+                     }
+                   "Vec"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 10 8 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 10 8 11
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 13 8 15
+                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 19 8 20
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 11 8 12
+                     , srcInfoPoints = []
+                     }
+                   "n")
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 16 8 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 16 8 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InfixTypeMinus.hs" 8 16 8 19
+                           , srcInfoPoints = []
+                           }
+                         "Nat")))))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InfixTypeMinus.hs" 8 29 8 77
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 35 8 37 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 8 29 8 34
+                   , srcInfoPoints = []
+                   }
+                 "VCons")
+              Nothing
+              Nothing
+              Nothing
+              (TyForall
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InfixTypeMinus.hs" 8 38 8 77
+                   , srcInfoPoints = []
+                   }
+                 Nothing
+                 (Just
+                    (CxSingle
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 8 38 8 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 38 8 39
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 48 8 49
+                             , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 50 8 52
+                             ]
+                         }
+                       (ParenA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 8 38 8 52
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 38 8 39
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 48 8 49
+                                , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 50 8 52
+                                ]
+                            }
+                          (TypeA
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 48
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 41 8 42 ]
+                               }
+                             (TyEquals
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 48
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 41 8 42 ]
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 40
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 40
+                                        , srcInfoPoints = []
+                                        }
+                                      "n"))
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 43 8 48
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 43 8 44
+                                         , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 47 8 48
+                                         ]
+                                     }
+                                   (TyInfix
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 44 8 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 8 44 8 45
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 8 44 8 45
+                                              , srcInfoPoints = []
+                                              }
+                                            "m"))
+                                      (UnpromotedName
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 8 45 8 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 8 45 8 46
+                                              , srcInfoPoints = []
+                                              }
+                                            (Symbol
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InfixTypeMinus.hs" 8 45 8 46
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "+")))
+                                      (TyPromoted
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InfixTypeMinus.hs" 8 46 8 47
+                                           , srcInfoPoints = []
+                                           }
+                                         (PromotedInteger
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InfixTypeMinus.hs" 8 46 8 47
+                                              , srcInfoPoints = []
+                                              }
+                                            1
+                                            "1")))))))))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InfixTypeMinus.hs" 8 53 8 77
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 60 8 62 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 8 53 8 59
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 8 53 8 59
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 53 8 59
+                               , srcInfoPoints = []
+                               }
+                             "Double")))
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InfixTypeMinus.hs" 8 63 8 77
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 69 8 71 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 8 63 8 68
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 63 8 66
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 63 8 66
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 63 8 66
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 67 8 68
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 67 8 68
+                                  , srcInfoPoints = []
+                                  }
+                                "m")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InfixTypeMinus.hs" 8 72 8 77
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 72 8 75
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 72 8 75
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 72 8 75
+                                     , srcInfoPoints = []
+                                     }
+                                   "Vec")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InfixTypeMinus.hs" 8 76 8 77
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 76 8 77
+                                  , srcInfoPoints = []
+                                  }
+                                "n"))))))
+          ]
+          []
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/InfixTypeMinus.hs" 4 1 4 14)
+        " Test cases"
+    ]
+  )
diff --git a/tests/examples/InfixTypeMinus.hs.prettyparser.golden b/tests/examples/InfixTypeMinus.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixTypeMinus.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InfixTypeMinus.hs.prettyprinter.golden b/tests/examples/InfixTypeMinus.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InfixTypeMinus.hs.prettyprinter.golden
@@ -0,0 +1,14 @@
+{-# LANGUAGE DataKinds, KindSignatures, TypeOperators, GADTs #-}
+module Foo where
+
+data Vec (n :: Nat) where
+        VCons :: (m ~ (n - 1)) => Double -> Vec m -> Vec n
+
+data Vec (n :: Nat) where
+        VCons :: ((n - 1) ~ m) => Double -> Vec m -> Vec n
+
+data Vec (n :: Nat) where
+        VCons :: ((m + 1) ~ n) => Double -> Vec m -> Vec n
+
+data Vec (n :: Nat) where
+        VCons :: (n ~ (m + 1)) => Double -> Vec m -> Vec n
diff --git a/tests/examples/InjectiveTypeFamilies.hs b/tests/examples/InjectiveTypeFamilies.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/InjectiveTypeFamilies.hs
@@ -0,0 +1,255 @@
+{-# LANGUAGE DataKinds                 #-}
+{-# LANGUAGE MultiParamTypeClasses     #-}
+{-# LANGUAGE PolyKinds                 #-}
+{-# LANGUAGE TypeFamilyDependencies     #-}
+{-# LANGUAGE TypeFamilies     #-}
+{-# LANGUAGE UndecidableInstances      #-}
+{-# LANGUAGE ScopedTypeVariables       #-}
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module T6018 where
+
+import T6018a -- defines G, identical to F
+
+type family F a b c = (result :: k) | result -> a b c
+type instance F Int  Char Bool = Bool
+type instance F Char Bool Int  = Int
+type instance F Bool Int  Char = Char
+
+
+type instance G Bool Int  Char = Char
+
+type family I (a :: k) b (c :: k) = r | r -> a b
+type instance I Int  Char Bool = Bool
+type instance I Int  Char Int  = Bool
+type instance I Bool Int  Int  = Int
+
+-- this is injective - a type variable introduced in the LHS is not mentioned on
+-- RHS but we don't claim injectivity in that argument.
+type family J a (b :: k) = r | r -> a
+type instance J Int b = Char
+
+type MaybeSyn a = Maybe a
+newtype MaybeNew a = MaybeNew (Maybe a)
+
+-- make sure we look through type synonyms...
+type family K a = r | r -> a
+type instance K a = MaybeSyn a
+
+-- .. but not newtypes
+type family M a = r | r -> a
+type instance M (Maybe a)    = MaybeSyn a
+type instance M (MaybeNew a) = MaybeNew a
+
+-- Closed type families
+
+-- these are simple conversions from open type families. They should behave the
+-- same
+type family FClosed a b c = result | result -> a b c where
+    FClosed Int  Char Bool = Bool
+    FClosed Char Bool Int  = Int
+    FClosed Bool Int  Char = Char
+
+type family IClosed (a :: *) (b :: *) (c :: *) = r | r -> a b where
+    IClosed Int  Char Bool = Bool
+    IClosed Int  Char Int  = Bool
+    IClosed Bool Int  Int  = Int
+
+type family JClosed a (b :: k) = r | r -> a where
+    JClosed Int b = Char
+
+type family KClosed a = r | r -> a where
+    KClosed a = MaybeSyn a
+
+-- Here the last equation might return both Int and Char but we have to
+-- recognize that it is not possible due to equation overlap
+type family Bak a = r | r -> a where
+     Bak Int  = Char
+     Bak Char = Int
+     Bak a    = a
+
+-- This is similar, except that the last equation contains concrete type.  Since
+-- it is overlapped it should be dropped with a warning
+type family Foo a = r | r -> a where
+    Foo Int  = Bool
+    Foo Bool = Int
+    Foo Bool = Bool
+
+-- this one was tricky in the early implementation of injectivity.  Now it is
+-- identical to the above but we still keep it as a regression test.
+type family Bar a = r | r -> a where
+    Bar Int  = Bool
+    Bar Bool = Int
+    Bar Bool = Char
+
+-- Now let's use declared type families. All the below definitions should work
+
+-- No ambiguity for any of the arguments - all are injective
+f :: F a b c -> F a b c
+f x = x
+
+-- From 1st instance of F: a ~ Int, b ~ Char, c ~ Bool
+fapp :: Bool
+fapp = f True
+
+-- now the closed variant of F
+fc :: FClosed a b c -> FClosed a b c
+fc x = x
+
+fcapp :: Bool
+fcapp = fc True
+
+-- The last argument is not injective so it must be instantiated
+i :: I a b Int -> I a b Int
+i x = x
+
+-- From 1st instance of I: a ~ Int, b ~ Char
+iapp :: Bool
+iapp = i True
+
+-- again, closed variant of I
+ic :: IClosed a b Int -> IClosed a b Int
+ic x = x
+
+icapp :: Bool
+icapp = ic True
+
+-- Now we have to test weird closed type families:
+bak :: Bak a -> Bak a
+bak x = x
+
+bakapp1 :: Char
+bakapp1 = bak 'c'
+
+bakapp2 :: Double
+bakapp2 = bak 1.0
+
+bakapp3 :: ()
+bakapp3 = bak ()
+
+foo :: Foo a -> Foo a
+foo x = x
+
+fooapp1 :: Bool
+fooapp1 = foo True
+
+bar :: Bar a -> Bar a
+bar x = x
+
+barapp1 :: Bool
+barapp1 = bar True
+
+barapp2 :: Int
+barapp2 = bar 1
+
+-- Declarations below test more liberal RHSs of injectivity annotations:
+-- permiting variables to appear in different order than the one in which they
+-- were declared.
+type family H a b = r | r -> b a
+type family Hc a b = r | r -> b a where
+  Hc a b = a b
+class Hcl a b where
+  type Ht a b = r | r -> b a
+
+-- repeated tyvars in the RHS of injectivity annotation: no warnings or errors
+-- (consistent with behaviour for functional dependencies)
+type family Jx a b = r | r -> a a
+type family Jcx a b = r | r -> a a where
+  Jcx a b = a b
+class Jcl a b where
+  type Jt a b = r | r -> a a
+
+type family Kx a b = r | r -> a b b
+type family Kcx a b = r | r -> a b b where
+  Kcx a b = a b
+class Kcl a b where
+  type Kt a b = r | r -> a b b
+
+-- Declaring kind injectivity. Here we only claim that knowing the RHS
+-- determines the LHS kind but not the type.
+type family L (a :: k1) = (r :: k2) | r -> k1 where
+    L 'True  = Int
+    L 'False = Int
+    L Maybe  = 3
+    L IO     = 3
+
+data KProxy (a :: *) = KProxy
+type family KP (kproxy :: KProxy k) = r | r -> k
+type instance KP ('KProxy :: KProxy Bool) = Int
+type instance KP ('KProxy :: KProxy *)    = Char
+
+kproxy_id :: KP ('KProxy :: KProxy k) -> KP ('KProxy :: KProxy k)
+kproxy_id x = x
+
+kproxy_id_use = kproxy_id 'a'
+
+-- Now test some awkward cases from The Injectivity Paper.  All should be
+-- accepted.
+type family Gx a
+type family Hx a
+type family Gi a = r | r -> a
+type instance Gi Int = Char
+type family Hi a = r | r -> a
+
+type family F2 a = r | r -> a
+type instance F2 [a]       = [Gi a]
+type instance F2 (Maybe a) = Hi a -> Int
+
+type family F4 a = r | r -> a
+type instance F4 [a]       = (Gx a, a,   a,    a)
+type instance F4 (Maybe a) = (Hx a, a, Int, Bool)
+
+type family G2 a b = r | r -> a b
+type instance G2 a    Bool = (a, a)
+type instance G2 Bool b    = (b, Bool)
+
+type family G6 a = r | r -> a
+type instance G6 [a]  = [Gi a]
+type instance G6 Bool = Int
+
+g6_id :: G6 a -> G6 a
+g6_id x = x
+
+g6_use :: [Char]
+g6_use = g6_id "foo"
+
+-- A sole exception to "bare variables in the RHS" rule
+type family Id (a :: k) = (result :: k) | result -> a
+type instance Id a = a
+
+-- This makes sure that over-saturated type family applications at the top-level
+-- are accepted.
+type family IdProxy (a :: k) b = r | r -> a
+type instance IdProxy a b = (Id a) b
+
+-- make sure we look through type synonyms properly
+type IdSyn a = Id a
+type family IdProxySyn (a :: k) b = r | r -> a
+type instance IdProxySyn a b = (IdSyn a) b
+
+-- this has bare variable in the RHS but all LHS varaiables are also bare so it
+-- should be accepted
+type family Fa (a :: k) (b :: k) = (r :: k2) | r -> k
+type instance Fa a b = a
+
+-- Taken from #9587. This exposed a bug in the solver.
+type family Arr (repr :: * -> *) (a :: *) (b :: *) = (r :: *) | r -> repr a b
+
+class ESymantics repr where
+    int :: Int  -> repr Int
+    add :: repr Int  -> repr Int -> repr Int
+
+    lam :: (repr a -> repr b) -> repr (Arr repr a b)
+    app :: repr (Arr repr a b) -> repr a -> repr b
+
+te4 = let c3 = lam (\f -> lam (\x -> f `app` (f `app` (f `app` x))))
+      in (c3 `app` (lam (\x -> x `add` int 14))) `app` (int 0)
+
+-- This used to fail during development
+class Manifold' a where
+    type Base  a = r | r -> a
+    project :: a -> Base a
+    unproject :: Base a -> a
+
+id' :: forall a. ( Manifold' a ) => Base a -> Base a
+id' = project . unproject
diff --git a/tests/examples/InjectiveTypeFamilies.hs.exactprinter.golden b/tests/examples/InjectiveTypeFamilies.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InjectiveTypeFamilies.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InjectiveTypeFamilies.hs.parser.golden b/tests/examples/InjectiveTypeFamilies.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InjectiveTypeFamilies.hs.parser.golden
@@ -0,0 +1,15848 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 1 256 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 4 1 4 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 6 1 6 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 7 1 7 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 8 1 8 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 1 10 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 1 10 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 12 1 12 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 1 14 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 1 15 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 1 16 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 1 17 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 1 20 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 1 22 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 1 23 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 1 24 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 1 25 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 1 29 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 1 30 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 1 32 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 1 33 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 1 36 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 1 37 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 1 40 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 1 41 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 1 42 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 1 48 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 1 53 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 1 58 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 1 61 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 1 66 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 1 73 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 1 80 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 1 88 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 1 89 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 1 92 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 1 93 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 1 96 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 1 97 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 1 99 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 1 100 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 1 103 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 1 104 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 1 107 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 1 108 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 1 111 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 1 112 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 1 114 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 1 115 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 1 118 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 1 119 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 1 121 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 1 122 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 1 124 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 1 125 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 1 127 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 1 128 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 1 130 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 1 131 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 1 133 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 1 134 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 1 136 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 1 137 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 1 139 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 1 140 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 1 142 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 1 143 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 1 148 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 1 149 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 1 151 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 1 156 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 1 157 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 1 159 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 1 162 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 1 163 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 1 165 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 1 170 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 1 176 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 1 177 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 1 178 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 1 179 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 1 181 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 1 182 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 1 184 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 1 188 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 1 189 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 1 190 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 1 191 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 1 192 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 1 194 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 1 195 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 1 196 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 1 198 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 1 199 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 1 200 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 1 202 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 1 203 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 1 204 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 1 206 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 1 207 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 1 208 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 1 210 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 1 211 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 1 213 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 1 214 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 1 217 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 1 218 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 1 222 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 1 223 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 1 226 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 1 227 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 1 228 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 1 232 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 1 233 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 1 236 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 1 238 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 1 245 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 1 249 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 1 254 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 1 255 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 256 1 256 1
+            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 256 1 256 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 1 10 19
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 1 10 7
+                  , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 14 10 19
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 10 8 10 13
+                 , srcInfoPoints = []
+                 }
+               "T6018")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 1 1 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 1 1 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 40 1 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 2 1 2 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 2 1 2 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 2 40 2 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 2 14 2 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 3 1 3 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 3 1 3 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 3 40 3 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 3 14 3 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 4 1 4 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 4 1 4 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 4 41 4 44
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 4 14 4 36
+                , srcInfoPoints = []
+                }
+              "TypeFamilyDependencies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 5 1 5 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 5 1 5 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 5 31 5 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 5 14 5 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 6 1 6 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 6 1 6 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 6 40 6 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 6 14 6 34
+                , srcInfoPoints = []
+                }
+              "UndecidableInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 7 1 7 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 7 1 7 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 7 40 7 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 7 14 7 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 8 1 8 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 8 1 8 13
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 8 40 8 43
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 8 14 8 39
+                , srcInfoPoints = []
+                }
+              "NoMonomorphismRestriction"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 12 1 12 14
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 12 1 12 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 12 8 12 14
+                  , srcInfoPoints = []
+                  }
+                "T6018a"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 1 14 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 1 14 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 6 14 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 13 14 20
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 13 14 18
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 13 14 16
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 13 14 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 13 14 14
+                           , srcInfoPoints = []
+                           }
+                         "F"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 15 14 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 15 14 16
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 17 14 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 17 14 18
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 19 14 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 19 14 20
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 21 14 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 21 14 22 ]
+                  }
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 23 14 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 23 14 24
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 31 14 33
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 35 14 36
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 24 14 30
+                        , srcInfoPoints = []
+                        }
+                      "result")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 34 14 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 34 14 35
+                           , srcInfoPoints = []
+                           }
+                         "k")))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 37 14 50
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 37 14 38
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 46 14 48
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 39 14 45
+                     , srcInfoPoints = []
+                     }
+                   "result")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 49 14 50
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 51 14 52
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 53 14 54
+                      , srcInfoPoints = []
+                      }
+                    "c"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 1 15 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 1 15 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 6 15 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 32 15 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 31
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 26
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 20
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 15 15 16
+                              , srcInfoPoints = []
+                              }
+                            "F")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 17 15 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 17 15 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 17 15 20
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 22 15 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 22 15 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 22 15 26
+                           , srcInfoPoints = []
+                           }
+                         "Char"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 27 15 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 27 15 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 27 15 31
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 34 15 38
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 34 15 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 15 34 15 38
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 1 16 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 1 16 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 6 16 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 32 16 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 30
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 26
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 21
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 15 16 16
+                              , srcInfoPoints = []
+                              }
+                            "F")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 17 16 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 17 16 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 17 16 21
+                              , srcInfoPoints = []
+                              }
+                            "Char"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 22 16 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 22 16 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 22 16 26
+                           , srcInfoPoints = []
+                           }
+                         "Bool"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 27 16 30
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 27 16 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 27 16 30
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 34 16 37
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 34 16 37
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 16 34 16 37
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 1 17 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 1 17 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 6 17 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 32 17 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 31
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 25
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 21
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 15 17 16
+                              , srcInfoPoints = []
+                              }
+                            "F")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 17 17 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 17 17 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 17 17 21
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 22 17 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 22 17 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 22 17 25
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 27 17 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 27 17 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 27 17 31
+                        , srcInfoPoints = []
+                        }
+                      "Char"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 34 17 38
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 34 17 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 17 34 17 38
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 1 20 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 1 20 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 6 20 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 32 20 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 31
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 25
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 21
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 15 20 16
+                              , srcInfoPoints = []
+                              }
+                            "G")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 17 20 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 17 20 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 17 20 21
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 22 20 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 22 20 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 22 20 25
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 27 20 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 27 20 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 27 20 31
+                        , srcInfoPoints = []
+                        }
+                      "Char"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 34 20 38
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 34 20 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 20 34 20 38
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 1 22 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 1 22 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 6 22 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 13 22 34
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 13 22 25
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 13 22 23
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 13 22 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 13 22 14
+                           , srcInfoPoints = []
+                           }
+                         "I"))
+                   (KindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 15 22 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 15 22 16
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 18 22 20
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 22 22 23
+                            ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 16 22 17
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 21 22 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 21 22 22
+                              , srcInfoPoints = []
+                              }
+                            "k"))))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 24 22 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 24 22 25
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 26 22 34
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 26 22 27
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 29 22 31
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 33 22 34
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 27 22 28
+                     , srcInfoPoints = []
+                     }
+                   "c")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 32 22 33
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 32 22 33
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 35 22 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 35 22 36 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 37 22 38
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 37 22 38
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 39 22 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 39 22 40
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 43 22 45
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 41 22 42
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 46 22 47
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 48 22 49
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 1 23 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 1 23 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 6 23 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 32 23 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 31
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 26
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 20
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 15 23 16
+                              , srcInfoPoints = []
+                              }
+                            "I")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 17 23 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 17 23 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 17 23 20
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 22 23 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 22 23 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 22 23 26
+                           , srcInfoPoints = []
+                           }
+                         "Char"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 27 23 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 27 23 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 27 23 31
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 34 23 38
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 34 23 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 23 34 23 38
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 1 24 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 1 24 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 6 24 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 32 24 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 30
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 26
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 20
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 15 24 16
+                              , srcInfoPoints = []
+                              }
+                            "I")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 17 24 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 17 24 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 17 24 20
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 22 24 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 22 24 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 22 24 26
+                           , srcInfoPoints = []
+                           }
+                         "Char"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 27 24 30
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 27 24 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 27 24 30
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 34 24 38
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 34 24 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 24 34 24 38
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 1 25 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 1 25 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 6 25 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 32 25 33
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 30
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 25
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 21
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 16
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 15 25 16
+                              , srcInfoPoints = []
+                              }
+                            "I")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 17 25 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 17 25 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 17 25 21
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 22 25 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 22 25 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 22 25 25
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 27 25 30
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 27 25 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 27 25 30
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 34 25 37
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 34 25 37
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 25 34 25 37
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 1 29 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 1 29 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 6 29 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 13 29 25
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 13 29 16
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 13 29 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 13 29 14
+                        , srcInfoPoints = []
+                        }
+                      "J"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 15 29 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 15 29 16
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 17 29 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 17 29 18
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 20 29 22
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 24 29 25
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 18 29 19
+                     , srcInfoPoints = []
+                     }
+                   "b")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 23 29 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 23 29 24
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 26 29 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 26 29 27 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 28 29 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 28 29 29
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 30 29 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 30 29 31
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 34 29 36
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 32 29 33
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 37 29 38
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 1 30 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 1 30 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 6 30 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 23 30 24
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 15 30 22
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 15 30 20
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 15 30 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 15 30 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 15 30 16
+                           , srcInfoPoints = []
+                           }
+                         "J")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 17 30 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 17 30 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 17 30 20
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 21 30 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 21 30 22
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 25 30 29
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 25 30 29
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 30 25 30 29
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 1 32 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 1 32 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 17 32 18
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 6 32 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 6 32 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 6 32 14
+                     , srcInfoPoints = []
+                     }
+                   "MaybeSyn"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 15 32 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 15 32 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 19 32 26
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 19 32 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 19 32 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 19 32 24
+                        , srcInfoPoints = []
+                        }
+                      "Maybe")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 25 32 26
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 32 25 32 26
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 1 33 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 20 33 21 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 1 33 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 9 33 19
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 9 33 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 9 33 17
+                     , srcInfoPoints = []
+                     }
+                   "MaybeNew"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 18 33 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 18 33 19
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 22 33 40
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 22 33 40
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 22 33 30
+                      , srcInfoPoints = []
+                      }
+                    "MaybeNew")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 31 33 40
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 31 33 32
+                           , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 39 33 40
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 32 33 39
+                          , srcInfoPoints = []
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 32 33 37
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 32 33 37
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 32 33 37
+                                   , srcInfoPoints = []
+                                   }
+                                 "Maybe")))
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 38 33 39
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 33 38 33 39
+                                , srcInfoPoints = []
+                                }
+                              "a")))
+                 ])
+          ]
+          []
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 1 36 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 1 36 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 6 36 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 13 36 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 13 36 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 13 36 14
+                     , srcInfoPoints = []
+                     }
+                   "K"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 15 36 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 15 36 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 17 36 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 17 36 18 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 19 36 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 19 36 20
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 21 36 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 21 36 22
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 25 36 27
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 23 36 24
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 36 28 36 29
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 1 37 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 1 37 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 6 37 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 19 37 20
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 15 37 18
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 15 37 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 15 37 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 15 37 16
+                        , srcInfoPoints = []
+                        }
+                      "K")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 17 37 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 17 37 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 21 37 31
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 21 37 29
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 21 37 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 21 37 29
+                        , srcInfoPoints = []
+                        }
+                      "MaybeSyn")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 30 37 31
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 37 30 37 31
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 1 40 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 1 40 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 6 40 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 13 40 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 13 40 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 13 40 14
+                     , srcInfoPoints = []
+                     }
+                   "M"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 15 40 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 15 40 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 17 40 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 17 40 18 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 19 40 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 19 40 20
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 21 40 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 21 40 22
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 25 40 27
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 23 40 24
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 40 28 40 29
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 1 41 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 1 41 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 6 41 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 30 41 31
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 15 41 26
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 15 41 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 15 41 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 15 41 16
+                        , srcInfoPoints = []
+                        }
+                      "M")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 17 41 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 17 41 18
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 25 41 26
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 18 41 25
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 18 41 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 18 41 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 18 41 23
+                              , srcInfoPoints = []
+                              }
+                            "Maybe")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 24 41 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 24 41 25
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 32 41 42
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 32 41 40
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 32 41 40
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 32 41 40
+                        , srcInfoPoints = []
+                        }
+                      "MaybeSyn")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 41 41 42
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 41 41 41 42
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 1 42 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 1 42 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 6 42 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 30 42 31
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 15 42 29
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 15 42 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 15 42 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 15 42 16
+                        , srcInfoPoints = []
+                        }
+                      "M")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 17 42 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 17 42 18
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 28 42 29
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 18 42 28
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 18 42 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 18 42 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 18 42 26
+                              , srcInfoPoints = []
+                              }
+                            "MaybeNew")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 27 42 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 27 42 28
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 32 42 42
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 32 42 40
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 32 42 40
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 32 42 40
+                        , srcInfoPoints = []
+                        }
+                      "MaybeNew")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 41 42 42
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 42 41 42 42
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 1 48 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 1 48 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 6 48 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 54 48 59
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 13 48 26
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 13 48 24
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 13 48 22
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 13 48 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 13 48 20
+                           , srcInfoPoints = []
+                           }
+                         "FClosed"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 21 48 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 21 48 22
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 23 48 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 23 48 24
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 25 48 26
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 25 48 26
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 27 48 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 27 48 28 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 29 48 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 29 48 35
+                        , srcInfoPoints = []
+                        }
+                      "result"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 36 48 49
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 36 48 37
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 45 48 47
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 38 48 44
+                     , srcInfoPoints = []
+                     }
+                   "result")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 48 48 49
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 50 48 51
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 48 52 48 53
+                      , srcInfoPoints = []
+                      }
+                    "c"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 28 49 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 27
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 22
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 16
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 5 49 12
+                                  , srcInfoPoints = []
+                                  }
+                                "FClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 13 49 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 13 49 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 13 49 16
+                                  , srcInfoPoints = []
+                                  }
+                                "Int"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 18 49 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 18 49 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 18 49 22
+                               , srcInfoPoints = []
+                               }
+                             "Char"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 23 49 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 23 49 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 23 49 27
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 30 49 34
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 30 49 34
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 49 30 49 34
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 33
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 28 50 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 26
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 22
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 17
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 5 50 12
+                                  , srcInfoPoints = []
+                                  }
+                                "FClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 13 50 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 13 50 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 13 50 17
+                                  , srcInfoPoints = []
+                                  }
+                                "Char"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 18 50 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 18 50 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 18 50 22
+                               , srcInfoPoints = []
+                               }
+                             "Bool"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 23 50 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 23 50 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 23 50 26
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 30 50 33
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 30 50 33
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 50 30 50 33
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 28 51 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 27
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 21
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 17
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 5 51 12
+                                  , srcInfoPoints = []
+                                  }
+                                "FClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 13 51 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 13 51 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 13 51 17
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 18 51 21
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 18 51 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 18 51 21
+                               , srcInfoPoints = []
+                               }
+                             "Int"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 23 51 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 23 51 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 23 51 27
+                            , srcInfoPoints = []
+                            }
+                          "Char"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 30 51 34
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 30 51 34
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 51 30 51 34
+                         , srcInfoPoints = []
+                         }
+                       "Char")))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 1 53 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 1 53 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 6 53 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 63 53 68
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 13 53 47
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 13 53 38
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 13 53 29
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 13 53 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 13 53 20
+                           , srcInfoPoints = []
+                           }
+                         "IClosed"))
+                   (KindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 21 53 29
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 21 53 22
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 24 53 26
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 28 53 29
+                            ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 22 53 23
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 27 53 28
+                           , srcInfoPoints = []
+                           })))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 30 53 38
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 30 53 31
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 33 53 35
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 37 53 38
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 31 53 32
+                        , srcInfoPoints = []
+                        }
+                      "b")
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 36 53 37
+                        , srcInfoPoints = []
+                        })))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 39 53 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 39 53 40
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 42 53 44
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 46 53 47
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 40 53 41
+                     , srcInfoPoints = []
+                     }
+                   "c")
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 45 53 46
+                     , srcInfoPoints = []
+                     })))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 48 53 51
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 48 53 49 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 50 53 51
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 50 53 51
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 52 53 60
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 52 53 53
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 56 53 58
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 54 53 55
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 59 53 60
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 61 53 62
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 28 54 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 27
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 22
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 16
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 5 54 12
+                                  , srcInfoPoints = []
+                                  }
+                                "IClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 13 54 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 13 54 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 13 54 16
+                                  , srcInfoPoints = []
+                                  }
+                                "Int"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 18 54 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 18 54 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 18 54 22
+                               , srcInfoPoints = []
+                               }
+                             "Char"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 23 54 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 23 54 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 23 54 27
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 30 54 34
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 30 54 34
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 54 30 54 34
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 28 55 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 26
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 22
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 16
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 5 55 12
+                                  , srcInfoPoints = []
+                                  }
+                                "IClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 13 55 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 13 55 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 13 55 16
+                                  , srcInfoPoints = []
+                                  }
+                                "Int"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 18 55 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 18 55 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 18 55 22
+                               , srcInfoPoints = []
+                               }
+                             "Char"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 23 55 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 23 55 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 23 55 26
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 30 55 34
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 30 55 34
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 55 30 55 34
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 33
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 28 56 29 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 26
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 21
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 17
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 5 56 12
+                                  , srcInfoPoints = []
+                                  }
+                                "IClosed")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 13 56 17
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 13 56 17
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 13 56 17
+                                  , srcInfoPoints = []
+                                  }
+                                "Bool"))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 18 56 21
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 18 56 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 18 56 21
+                               , srcInfoPoints = []
+                               }
+                             "Int"))))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 23 56 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 23 56 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 23 56 26
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 30 56 33
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 30 56 33
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 56 30 56 33
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 1 58 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 1 58 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 6 58 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 45 58 50
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 13 58 31
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 13 58 22
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 13 58 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 13 58 20
+                        , srcInfoPoints = []
+                        }
+                      "JClosed"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 21 58 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 21 58 22
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 23 58 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 23 58 24
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 26 58 28
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 30 58 31
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 24 58 25
+                     , srcInfoPoints = []
+                     }
+                   "b")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 29 58 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 29 58 30
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 32 58 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 32 58 33 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 34 58 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 34 58 35
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 36 58 44
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 36 58 37
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 40 58 42
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 38 58 39
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 43 58 44
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 19 59 20 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 18
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 16
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 5 59 12
+                               , srcInfoPoints = []
+                               }
+                             "JClosed")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 13 59 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 13 59 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 13 59 16
+                               , srcInfoPoints = []
+                               }
+                             "Int"))))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 17 59 18
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 17 59 18
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 21 59 25
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 21 59 25
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 59 21 59 25
+                         , srcInfoPoints = []
+                         }
+                       "Char")))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 1 61 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 1 61 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 6 61 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 36 61 41
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 13 61 22
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 13 61 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 13 61 20
+                     , srcInfoPoints = []
+                     }
+                   "KClosed"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 21 61 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 21 61 22
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 23 61 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 23 61 24 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 25 61 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 25 61 26
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 27 61 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 27 61 28
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 31 61 33
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 29 61 30
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 61 34 61 35
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 5 62 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 15 62 16 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 5 62 14
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 5 62 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 5 62 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 5 62 12
+                            , srcInfoPoints = []
+                            }
+                          "KClosed")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 13 62 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 13 62 14
+                         , srcInfoPoints = []
+                         }
+                       "a")))
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 17 62 27
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 17 62 25
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 17 62 25
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 17 62 25
+                            , srcInfoPoints = []
+                            }
+                          "MaybeSyn")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 26 62 27
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 62 26 62 27
+                         , srcInfoPoints = []
+                         }
+                       "a")))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 1 66 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 1 66 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 6 66 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 32 66 37
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 13 66 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 13 66 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 13 66 16
+                     , srcInfoPoints = []
+                     }
+                   "Bak"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 17 66 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 17 66 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 19 66 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 19 66 20 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 21 66 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 21 66 22
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 23 66 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 23 66 24
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 27 66 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 25 66 26
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 66 30 66 31
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 6 67 21
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 15 67 16 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 6 67 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 6 67 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 6 67 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 6 67 9
+                            , srcInfoPoints = []
+                            }
+                          "Bak")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 10 67 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 10 67 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 10 67 13
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 17 67 21
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 17 67 21
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 67 17 67 21
+                         , srcInfoPoints = []
+                         }
+                       "Char")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 6 68 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 15 68 16 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 6 68 14
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 6 68 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 6 68 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 6 68 9
+                            , srcInfoPoints = []
+                            }
+                          "Bak")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 10 68 14
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 10 68 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 10 68 14
+                            , srcInfoPoints = []
+                            }
+                          "Char"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 17 68 20
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 17 68 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 68 17 68 20
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 6 69 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 15 69 16 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 6 69 11
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 6 69 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 6 69 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 6 69 9
+                            , srcInfoPoints = []
+                            }
+                          "Bak")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 10 69 11
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 10 69 11
+                         , srcInfoPoints = []
+                         }
+                       "a")))
+              (TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 17 69 18
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 69 17 69 18
+                      , srcInfoPoints = []
+                      }
+                    "a"))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 1 73 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 1 73 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 6 73 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 32 73 37
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 13 73 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 13 73 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 13 73 16
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 17 73 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 17 73 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 19 73 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 19 73 20 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 21 73 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 21 73 22
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 23 73 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 23 73 24
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 27 73 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 25 73 26
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 73 30 73 31
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 5 74 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 14 74 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 5 74 12
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 5 74 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 5 74 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 5 74 8
+                            , srcInfoPoints = []
+                            }
+                          "Foo")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 9 74 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 9 74 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 9 74 12
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 16 74 20
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 16 74 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 74 16 74 20
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 5 75 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 14 75 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 5 75 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 5 75 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 5 75 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 5 75 8
+                            , srcInfoPoints = []
+                            }
+                          "Foo")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 9 75 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 9 75 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 9 75 13
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 16 75 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 16 75 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 75 16 75 19
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 5 76 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 14 76 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 5 76 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 5 76 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 5 76 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 5 76 8
+                            , srcInfoPoints = []
+                            }
+                          "Foo")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 9 76 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 9 76 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 9 76 13
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 16 76 20
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 16 76 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 76 16 76 20
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          ]
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 1 80 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 1 80 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 6 80 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 32 80 37
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 13 80 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 13 80 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 13 80 16
+                     , srcInfoPoints = []
+                     }
+                   "Bar"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 17 80 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 17 80 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 19 80 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 19 80 20 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 21 80 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 21 80 22
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 23 80 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 23 80 24
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 27 80 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 25 80 26
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 80 30 80 31
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 5 81 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 14 81 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 5 81 12
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 5 81 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 5 81 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 5 81 8
+                            , srcInfoPoints = []
+                            }
+                          "Bar")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 9 81 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 9 81 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 9 81 12
+                            , srcInfoPoints = []
+                            }
+                          "Int"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 16 81 20
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 16 81 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 81 16 81 20
+                         , srcInfoPoints = []
+                         }
+                       "Bool")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 5 82 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 14 82 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 5 82 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 5 82 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 5 82 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 5 82 8
+                            , srcInfoPoints = []
+                            }
+                          "Bar")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 9 82 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 9 82 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 9 82 13
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 16 82 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 16 82 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 82 16 82 19
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 5 83 20
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 14 83 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 5 83 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 5 83 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 5 83 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 5 83 8
+                            , srcInfoPoints = []
+                            }
+                          "Bar")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 9 83 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 9 83 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 9 83 13
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 16 83 20
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 16 83 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 83 16 83 20
+                         , srcInfoPoints = []
+                         }
+                       "Char")))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 1 88 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 3 88 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 1 88 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 14 88 16 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 13
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 11
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 9
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 7
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 7
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 6 88 7
+                                 , srcInfoPoints = []
+                                 }
+                               "F")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 8 88 9
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 8 88 9
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 10 88 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 10 88 11
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 12 88 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 12 88 13
+                        , srcInfoPoints = []
+                        }
+                      "c")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 24
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 22
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 20
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 18
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 18
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 17 88 18
+                                 , srcInfoPoints = []
+                                 }
+                               "F")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 19 88 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 19 88 20
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 21 88 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 21 88 22
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 23 88 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 88 23 88 24
+                        , srcInfoPoints = []
+                        }
+                      "c"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 1 89 8
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 1 89 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 1 89 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 3 89 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 3 89 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 5 89 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 5 89 6 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 7 89 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 7 89 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 89 7 89 8
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 1 92 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 6 92 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 1 92 5
+                , srcInfoPoints = []
+                }
+              "fapp"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 9 92 13
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 9 92 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 92 9 92 13
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 1 93 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 1 93 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 1 93 5
+                  , srcInfoPoints = []
+                  }
+                "fapp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 6 93 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 6 93 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 8 93 14
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 8 93 9
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 8 93 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 8 93 9
+                           , srcInfoPoints = []
+                           }
+                         "f")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 10 93 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 10 93 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 93 10 93 14
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 1 96 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 4 96 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 1 96 3
+                , srcInfoPoints = []
+                }
+              "fc"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 37
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 21 96 23 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 20
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 18
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 16
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 14
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 14
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 7 96 14
+                                 , srcInfoPoints = []
+                                 }
+                               "FClosed")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 15 96 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 15 96 16
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 17 96 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 17 96 18
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 19 96 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 19 96 20
+                        , srcInfoPoints = []
+                        }
+                      "c")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 37
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 35
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 33
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 31
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 31
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 24 96 31
+                                 , srcInfoPoints = []
+                                 }
+                               "FClosed")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 32 96 33
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 32 96 33
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 34 96 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 34 96 35
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 36 96 37
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 96 36 96 37
+                        , srcInfoPoints = []
+                        }
+                      "c"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 1 97 9
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 1 97 9
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 1 97 3
+                   , srcInfoPoints = []
+                   }
+                 "fc")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 4 97 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 4 97 5
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 6 97 9
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 6 97 7 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 8 97 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 8 97 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 97 8 97 9
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 1 99 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 7 99 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 1 99 6
+                , srcInfoPoints = []
+                }
+              "fcapp"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 10 99 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 10 99 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 99 10 99 14
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 1 100 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 1 100 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 1 100 6
+                  , srcInfoPoints = []
+                  }
+                "fcapp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 7 100 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 7 100 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 9 100 16
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 9 100 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 9 100 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 9 100 11
+                           , srcInfoPoints = []
+                           }
+                         "fc")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 12 100 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 12 100 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 100 12 100 16
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 1 103 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 3 103 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 1 103 2
+                , srcInfoPoints = []
+                }
+              "i"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 28
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 16 103 18 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 15
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 11
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 9
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 7
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 7
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 6 103 7
+                                 , srcInfoPoints = []
+                                 }
+                               "I")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 8 103 9
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 8 103 9
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 10 103 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 10 103 11
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 12 103 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 12 103 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 12 103 15
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 28
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 24
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 22
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 20
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 19 103 20
+                                 , srcInfoPoints = []
+                                 }
+                               "I")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 21 103 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 21 103 22
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 23 103 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 23 103 24
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 25 103 28
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 25 103 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 103 25 103 28
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 1 104 8
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 1 104 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 1 104 2
+                   , srcInfoPoints = []
+                   }
+                 "i")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 3 104 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 3 104 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 5 104 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 5 104 6 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 7 104 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 7 104 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 104 7 104 8
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 1 107 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 6 107 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 1 107 5
+                , srcInfoPoints = []
+                }
+              "iapp"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 9 107 13
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 9 107 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 107 9 107 13
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 1 108 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 1 108 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 1 108 5
+                  , srcInfoPoints = []
+                  }
+                "iapp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 6 108 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 6 108 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 8 108 14
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 8 108 9
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 8 108 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 8 108 9
+                           , srcInfoPoints = []
+                           }
+                         "i")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 10 108 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 10 108 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 108 10 108 14
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 1 111 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 4 111 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 1 111 3
+                , srcInfoPoints = []
+                }
+              "ic"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 41
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 23 111 25 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 22
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 18
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 16
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 14
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 14
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 7 111 14
+                                 , srcInfoPoints = []
+                                 }
+                               "IClosed")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 15 111 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 15 111 16
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 17 111 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 17 111 18
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 19 111 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 19 111 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 19 111 22
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 41
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 37
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 35
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 26 111 33
+                                 , srcInfoPoints = []
+                                 }
+                               "IClosed")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 34 111 35
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 34 111 35
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 36 111 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 36 111 37
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 38 111 41
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 38 111 41
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 111 38 111 41
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 1 112 9
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 1 112 9
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 1 112 3
+                   , srcInfoPoints = []
+                   }
+                 "ic")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 4 112 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 4 112 5
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 6 112 9
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 6 112 7 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 8 112 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 8 112 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 112 8 112 9
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 1 114 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 7 114 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 1 114 6
+                , srcInfoPoints = []
+                }
+              "icapp"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 10 114 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 10 114 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 114 10 114 14
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 1 115 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 1 115 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 1 115 6
+                  , srcInfoPoints = []
+                  }
+                "icapp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 7 115 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 7 115 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 9 115 16
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 9 115 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 9 115 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 9 115 11
+                           , srcInfoPoints = []
+                           }
+                         "ic")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 12 115 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 12 115 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 115 12 115 16
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 1 118 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 5 118 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 1 118 4
+                , srcInfoPoints = []
+                }
+              "bak"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 8 118 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 14 118 16 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 8 118 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 8 118 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 8 118 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 8 118 11
+                           , srcInfoPoints = []
+                           }
+                         "Bak")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 12 118 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 12 118 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 17 118 22
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 17 118 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 17 118 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 17 118 20
+                           , srcInfoPoints = []
+                           }
+                         "Bak")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 21 118 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 118 21 118 22
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 1 119 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 1 119 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 1 119 4
+                   , srcInfoPoints = []
+                   }
+                 "bak")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 5 119 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 5 119 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 7 119 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 7 119 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 9 119 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 9 119 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 119 9 119 10
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 1 121 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 9 121 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 1 121 8
+                , srcInfoPoints = []
+                }
+              "bakapp1"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 12 121 16
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 12 121 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 121 12 121 16
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 1 122 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 1 122 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 1 122 8
+                  , srcInfoPoints = []
+                  }
+                "bakapp1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 9 122 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 9 122 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 11 122 18
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 11 122 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 11 122 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 11 122 14
+                           , srcInfoPoints = []
+                           }
+                         "bak")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 15 122 18
+                     , srcInfoPoints = []
+                     }
+                   (Char
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 122 15 122 18
+                        , srcInfoPoints = []
+                        }
+                      'c'
+                      "c"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 1 124 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 9 124 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 1 124 8
+                , srcInfoPoints = []
+                }
+              "bakapp2"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 12 124 18
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 12 124 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 124 12 124 18
+                     , srcInfoPoints = []
+                     }
+                   "Double")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 1 125 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 1 125 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 1 125 8
+                  , srcInfoPoints = []
+                  }
+                "bakapp2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 9 125 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 9 125 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 11 125 18
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 11 125 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 11 125 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 11 125 14
+                           , srcInfoPoints = []
+                           }
+                         "bak")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 15 125 18
+                     , srcInfoPoints = []
+                     }
+                   (Frac
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 125 15 125 18
+                        , srcInfoPoints = []
+                        }
+                      (1 % 1)
+                      "1.0"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 1 127 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 9 127 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 1 127 8
+                , srcInfoPoints = []
+                }
+              "bakapp3"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 13
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 13 127 14
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 13
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 13 127 14
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 12 127 13
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 127 13 127 14
+                         ]
+                     })))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 1 128 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 1 128 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 1 128 8
+                  , srcInfoPoints = []
+                  }
+                "bakapp3"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 9 128 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 9 128 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 11 128 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 11 128 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 11 128 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 11 128 14
+                           , srcInfoPoints = []
+                           }
+                         "bak")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 16
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 16 128 17
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 16
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 16 128 17
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 17
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 15 128 16
+                               , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 128 16 128 17
+                               ]
+                           })))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 1 130 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 5 130 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 1 130 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 8 130 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 14 130 16 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 8 130 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 8 130 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 8 130 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 8 130 11
+                           , srcInfoPoints = []
+                           }
+                         "Foo")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 12 130 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 12 130 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 17 130 22
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 17 130 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 17 130 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 17 130 20
+                           , srcInfoPoints = []
+                           }
+                         "Foo")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 21 130 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 130 21 130 22
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 1 131 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 1 131 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 1 131 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 5 131 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 5 131 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 7 131 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 7 131 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 9 131 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 9 131 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 131 9 131 10
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 1 133 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 9 133 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 1 133 8
+                , srcInfoPoints = []
+                }
+              "fooapp1"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 12 133 16
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 12 133 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 133 12 133 16
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 1 134 19
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 1 134 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 1 134 8
+                  , srcInfoPoints = []
+                  }
+                "fooapp1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 9 134 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 9 134 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 11 134 19
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 11 134 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 11 134 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 11 134 14
+                           , srcInfoPoints = []
+                           }
+                         "foo")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 15 134 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 15 134 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 134 15 134 19
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 1 136 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 5 136 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 1 136 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 8 136 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 14 136 16 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 8 136 13
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 8 136 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 8 136 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 8 136 11
+                           , srcInfoPoints = []
+                           }
+                         "Bar")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 12 136 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 12 136 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 17 136 22
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 17 136 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 17 136 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 17 136 20
+                           , srcInfoPoints = []
+                           }
+                         "Bar")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 21 136 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 136 21 136 22
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 1 137 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 1 137 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 1 137 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 5 137 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 5 137 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 7 137 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 7 137 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 9 137 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 9 137 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 137 9 137 10
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 1 139 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 9 139 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 1 139 8
+                , srcInfoPoints = []
+                }
+              "barapp1"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 12 139 16
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 12 139 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 139 12 139 16
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 1 140 19
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 1 140 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 1 140 8
+                  , srcInfoPoints = []
+                  }
+                "barapp1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 9 140 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 9 140 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 11 140 19
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 11 140 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 11 140 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 11 140 14
+                           , srcInfoPoints = []
+                           }
+                         "bar")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 15 140 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 15 140 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 140 15 140 19
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 1 142 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 9 142 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 1 142 8
+                , srcInfoPoints = []
+                }
+              "barapp2"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 12 142 15
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 12 142 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 142 12 142 15
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 1 143 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 1 143 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 1 143 8
+                  , srcInfoPoints = []
+                  }
+                "barapp2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 9 143 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 9 143 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 11 143 16
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 11 143 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 11 143 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 11 143 14
+                           , srcInfoPoints = []
+                           }
+                         "bar")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 15 143 16
+                     , srcInfoPoints = []
+                     }
+                   (Int
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 143 15 143 16
+                        , srcInfoPoints = []
+                        }
+                      1
+                      "1"))))
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 1 148 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 1 148 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 6 148 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 13 148 18
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 13 148 16
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 13 148 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 13 148 14
+                        , srcInfoPoints = []
+                        }
+                      "H"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 15 148 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 15 148 16
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 17 148 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 17 148 18
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 19 148 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 19 148 20 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 21 148 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 21 148 22
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 23 148 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 23 148 24
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 27 148 29
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 25 148 26
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 30 148 31
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 148 32 148 33
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 1 149 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 1 149 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 6 149 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 35 149 40
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 13 149 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 13 149 17
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 13 149 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 13 149 15
+                        , srcInfoPoints = []
+                        }
+                      "Hc"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 16 149 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 16 149 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 18 149 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 18 149 19
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 20 149 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 20 149 21 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 22 149 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 22 149 23
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 24 149 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 24 149 25
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 28 149 30
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 26 149 27
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 31 149 32
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 149 33 149 34
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 15
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 10 150 11 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 9
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 7
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 5
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 5
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 3 150 5
+                               , srcInfoPoints = []
+                               }
+                             "Hc")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 6 150 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 6 150 7
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 8 150 9
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 8 150 9
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 12 150 15
+                   , srcInfoPoints = []
+                   }
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 12 150 13
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 12 150 13
+                         , srcInfoPoints = []
+                         }
+                       "a"))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 14 150 15
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 150 14 150 15
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 1 152 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 1 151 6
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 15 151 20
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 3 152 3
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 1 156 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 7 151 14
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 7 151 12
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 7 151 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 7 151 10
+                        , srcInfoPoints = []
+                        }
+                      "Hcl"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 11 151 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 11 151 12
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 13 151 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 151 13 151 14
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 3 152 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 3 152 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 8 152 14
+                      , srcInfoPoints = []
+                      }
+                    (DHApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 8 152 12
+                         , srcInfoPoints = []
+                         }
+                       (DHead
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 8 152 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 8 152 10
+                               , srcInfoPoints = []
+                               }
+                             "Ht"))
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 11 152 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 11 152 12
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 13 152 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 13 152 14
+                            , srcInfoPoints = []
+                            }
+                          "b")))
+                 (Just
+                    (TyVarSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 15 152 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 15 152 16 ]
+                         }
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 17 152 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 17 152 18
+                               , srcInfoPoints = []
+                               }
+                             "r"))))
+                 (Just
+                    (InjectivityInfo
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 19 152 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 19 152 20
+                             , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 23 152 25
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 21 152 22
+                            , srcInfoPoints = []
+                            }
+                          "r")
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 26 152 27
+                             , srcInfoPoints = []
+                             }
+                           "b"
+                       , Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 152 28 152 29
+                             , srcInfoPoints = []
+                             }
+                           "a"
+                       ]))
+             ])
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 1 156 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 1 156 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 6 156 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 13 156 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 13 156 17
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 13 156 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 13 156 15
+                        , srcInfoPoints = []
+                        }
+                      "Jx"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 16 156 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 16 156 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 18 156 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 18 156 19
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 20 156 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 20 156 21 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 22 156 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 22 156 23
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 24 156 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 24 156 25
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 28 156 30
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 26 156 27
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 31 156 32
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 156 33 156 34
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 1 157 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 1 157 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 6 157 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 36 157 41
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 13 157 20
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 13 157 18
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 13 157 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 13 157 16
+                        , srcInfoPoints = []
+                        }
+                      "Jcx"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 17 157 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 17 157 18
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 19 157 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 19 157 20
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 21 157 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 21 157 22 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 23 157 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 23 157 24
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 25 157 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 25 157 26
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 29 157 31
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 27 157 28
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 32 157 33
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 157 34 157 35
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 11 158 12 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 10
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 8
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 6
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 6
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 3 158 6
+                               , srcInfoPoints = []
+                               }
+                             "Jcx")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 7 158 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 7 158 8
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 9 158 10
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 9 158 10
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 13 158 16
+                   , srcInfoPoints = []
+                   }
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 13 158 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 13 158 14
+                         , srcInfoPoints = []
+                         }
+                       "a"))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 15 158 16
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 158 15 158 16
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 1 160 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 1 159 6
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 15 159 20
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 3 160 3
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 1 162 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 7 159 14
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 7 159 12
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 7 159 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 7 159 10
+                        , srcInfoPoints = []
+                        }
+                      "Jcl"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 11 159 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 11 159 12
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 13 159 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 159 13 159 14
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 3 160 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 3 160 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 8 160 14
+                      , srcInfoPoints = []
+                      }
+                    (DHApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 8 160 12
+                         , srcInfoPoints = []
+                         }
+                       (DHead
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 8 160 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 8 160 10
+                               , srcInfoPoints = []
+                               }
+                             "Jt"))
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 11 160 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 11 160 12
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 13 160 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 13 160 14
+                            , srcInfoPoints = []
+                            }
+                          "b")))
+                 (Just
+                    (TyVarSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 15 160 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 15 160 16 ]
+                         }
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 17 160 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 17 160 18
+                               , srcInfoPoints = []
+                               }
+                             "r"))))
+                 (Just
+                    (InjectivityInfo
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 19 160 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 19 160 20
+                             , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 23 160 25
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 21 160 22
+                            , srcInfoPoints = []
+                            }
+                          "r")
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 26 160 27
+                             , srcInfoPoints = []
+                             }
+                           "a"
+                       , Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 160 28 160 29
+                             , srcInfoPoints = []
+                             }
+                           "a"
+                       ]))
+             ])
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 1 162 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 1 162 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 6 162 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 13 162 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 13 162 17
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 13 162 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 13 162 15
+                        , srcInfoPoints = []
+                        }
+                      "Kx"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 16 162 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 16 162 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 18 162 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 18 162 19
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 20 162 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 20 162 21 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 22 162 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 22 162 23
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 24 162 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 24 162 25
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 28 162 30
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 26 162 27
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 31 162 32
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 33 162 34
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 162 35 162 36
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 1 163 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 1 163 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 6 163 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 38 163 43
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 13 163 20
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 13 163 18
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 13 163 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 13 163 16
+                        , srcInfoPoints = []
+                        }
+                      "Kcx"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 17 163 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 17 163 18
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 19 163 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 19 163 20
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 21 163 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 21 163 22 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 23 163 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 23 163 24
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 25 163 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 25 163 26
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 29 163 31
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 27 163 28
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 32 163 33
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 34 163 35
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 163 36 163 37
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 11 164 12 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 10
+                   , srcInfoPoints = []
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 8
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 6
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 6
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 3 164 6
+                               , srcInfoPoints = []
+                               }
+                             "Kcx")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 7 164 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 7 164 8
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 9 164 10
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 9 164 10
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 13 164 16
+                   , srcInfoPoints = []
+                   }
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 13 164 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 13 164 14
+                         , srcInfoPoints = []
+                         }
+                       "a"))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 15 164 16
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 164 15 164 16
+                         , srcInfoPoints = []
+                         }
+                       "b")))
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 1 166 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 1 165 6
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 15 165 20
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 3 166 3
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 1 170 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 7 165 14
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 7 165 12
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 7 165 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 7 165 10
+                        , srcInfoPoints = []
+                        }
+                      "Kcl"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 11 165 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 11 165 12
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 13 165 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 165 13 165 14
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 3 166 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 3 166 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 8 166 14
+                      , srcInfoPoints = []
+                      }
+                    (DHApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 8 166 12
+                         , srcInfoPoints = []
+                         }
+                       (DHead
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 8 166 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 8 166 10
+                               , srcInfoPoints = []
+                               }
+                             "Kt"))
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 11 166 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 11 166 12
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 13 166 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 13 166 14
+                            , srcInfoPoints = []
+                            }
+                          "b")))
+                 (Just
+                    (TyVarSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 15 166 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 15 166 16 ]
+                         }
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 17 166 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 17 166 18
+                               , srcInfoPoints = []
+                               }
+                             "r"))))
+                 (Just
+                    (InjectivityInfo
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 19 166 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 19 166 20
+                             , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 23 166 25
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 21 166 22
+                            , srcInfoPoints = []
+                            }
+                          "r")
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 26 166 27
+                             , srcInfoPoints = []
+                             }
+                           "a"
+                       , Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 28 166 29
+                             , srcInfoPoints = []
+                             }
+                           "b"
+                       , Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 166 30 166 31
+                             , srcInfoPoints = []
+                             }
+                           "b"
+                       ]))
+             ])
+      , ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 1 170 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 1 170 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 6 170 12
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 47 170 52
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 13 170 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 13 170 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 13 170 14
+                     , srcInfoPoints = []
+                     }
+                   "L"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 15 170 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 15 170 16
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 18 170 20
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 23 170 24
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 16 170 17
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 21 170 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 21 170 23
+                        , srcInfoPoints = []
+                        }
+                      "k1"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 25 170 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 25 170 26 ]
+                  }
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 27 170 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 27 170 28
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 30 170 32
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 35 170 36
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 28 170 29
+                        , srcInfoPoints = []
+                        }
+                      "r")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 33 170 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 33 170 35
+                           , srcInfoPoints = []
+                           }
+                         "k2")))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 37 170 46
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 37 170 38
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 41 170 43
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 39 170 40
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 44 170 46
+                      , srcInfoPoints = []
+                      }
+                    "k1"
+                ]))
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 5 171 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 14 171 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 5 171 12
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 5 171 6
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 5 171 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 5 171 6
+                            , srcInfoPoints = []
+                            }
+                          "L")))
+                 (TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 7 171 12
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 7 171 8 ]
+                      }
+                    (PromotedCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 7 171 12
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 7 171 8 ]
+                         }
+                       True
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 8 171 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 8 171 12
+                               , srcInfoPoints = []
+                               }
+                             "True")))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 16 171 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 16 171 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 171 16 171 19
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 5 172 19
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 14 172 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 5 172 13
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 5 172 6
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 5 172 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 5 172 6
+                            , srcInfoPoints = []
+                            }
+                          "L")))
+                 (TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 7 172 13
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 7 172 8 ]
+                      }
+                    (PromotedCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 7 172 13
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 7 172 8 ]
+                         }
+                       True
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 8 172 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 8 172 13
+                               , srcInfoPoints = []
+                               }
+                             "False")))))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 16 172 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 16 172 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 172 16 172 19
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 5 173 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 14 173 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 5 173 12
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 5 173 6
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 5 173 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 5 173 6
+                            , srcInfoPoints = []
+                            }
+                          "L")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 7 173 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 7 173 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 7 173 12
+                            , srcInfoPoints = []
+                            }
+                          "Maybe"))))
+              (TyPromoted
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 16 173 17
+                   , srcInfoPoints = []
+                   }
+                 (PromotedInteger
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 173 16 173 17
+                      , srcInfoPoints = []
+                      }
+                    3
+                    "3"))
+          , TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 5 174 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 14 174 15 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 5 174 9
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 5 174 6
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 5 174 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 5 174 6
+                            , srcInfoPoints = []
+                            }
+                          "L")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 7 174 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 7 174 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 7 174 9
+                            , srcInfoPoints = []
+                            }
+                          "IO"))))
+              (TyPromoted
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 16 174 17
+                   , srcInfoPoints = []
+                   }
+                 (PromotedInteger
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 174 16 174 17
+                      , srcInfoPoints = []
+                      }
+                    3
+                    "3"))
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 1 176 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 22 176 23 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 1 176 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 6 176 21
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 6 176 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 6 176 12
+                     , srcInfoPoints = []
+                     }
+                   "KProxy"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 13 176 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 13 176 14
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 16 176 18
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 20 176 21
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 14 176 15
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 19 176 20
+                     , srcInfoPoints = []
+                     })))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 24 176 30
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 24 176 30
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 24 176 30
+                      , srcInfoPoints = []
+                      }
+                    "KProxy")
+                 [])
+          ]
+          []
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 1 177 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 1 177 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 6 177 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 13 177 36
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 13 177 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 13 177 15
+                     , srcInfoPoints = []
+                     }
+                   "KP"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 16 177 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 16 177 17
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 24 177 26
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 35 177 36
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 17 177 23
+                     , srcInfoPoints = []
+                     }
+                   "kproxy")
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 35
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 33
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 33
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 33
+                              , srcInfoPoints = []
+                              }
+                            "KProxy")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 34 177 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 34 177 35
+                           , srcInfoPoints = []
+                           }
+                         "k")))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 37 177 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 37 177 38 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 39 177 40
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 39 177 40
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 41 177 49
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 41 177 42
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 45 177 47
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 43 177 44
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 48 177 49
+                      , srcInfoPoints = []
+                      }
+                    "k"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 1 178 48
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 1 178 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 6 178 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 43 178 44
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 15 178 42
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 15 178 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 15 178 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 15 178 17
+                        , srcInfoPoints = []
+                        }
+                      "KP")))
+             (TyKind
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 18 178 42
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 18 178 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 27 178 29
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 41 178 42
+                      ]
+                  }
+                (TyPromoted
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 19 178 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 19 178 20 ]
+                     }
+                   (PromotedCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 19 178 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 19 178 20 ]
+                        }
+                      True
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 20 178 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 20 178 26
+                              , srcInfoPoints = []
+                              }
+                            "KProxy"))))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 41
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 36
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 36
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 36
+                              , srcInfoPoints = []
+                              }
+                            "KProxy")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 37 178 41
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 37 178 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 37 178 41
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 45 178 48
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 45 178 48
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 45 178 48
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 1 179 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 1 179 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 6 179 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 43 179 44
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 15 179 39
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 15 179 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 15 179 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 15 179 17
+                        , srcInfoPoints = []
+                        }
+                      "KP")))
+             (TyKind
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 18 179 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 18 179 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 27 179 29
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 38 179 39
+                      ]
+                  }
+                (TyPromoted
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 19 179 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 19 179 20 ]
+                     }
+                   (PromotedCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 19 179 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 19 179 20 ]
+                        }
+                      True
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 20 179 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 20 179 26
+                              , srcInfoPoints = []
+                              }
+                            "KProxy"))))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 38
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 36
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 36
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 36
+                              , srcInfoPoints = []
+                              }
+                            "KProxy")))
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 37 179 38
+                        , srcInfoPoints = []
+                        }))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 45 179 49
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 45 179 49
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 45 179 49
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 1 181 66
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 11 181 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 1 181 10
+                , srcInfoPoints = []
+                }
+              "kproxy_id"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 14 181 66
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 39 181 41 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 14 181 38
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 14 181 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 14 181 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 14 181 16
+                           , srcInfoPoints = []
+                           }
+                         "KP")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 17 181 38
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 17 181 18
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 26 181 28
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 37 181 38
+                         ]
+                     }
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 18 181 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 18 181 19 ]
+                        }
+                      (PromotedCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 18 181 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 18 181 19 ]
+                           }
+                         True
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 19 181 25
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 19 181 25
+                                 , srcInfoPoints = []
+                                 }
+                               "KProxy"))))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 37
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 35
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 35
+                                 , srcInfoPoints = []
+                                 }
+                               "KProxy")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 36 181 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 36 181 37
+                              , srcInfoPoints = []
+                              }
+                            "k")))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 42 181 66
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 42 181 44
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 42 181 44
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 42 181 44
+                           , srcInfoPoints = []
+                           }
+                         "KP")))
+                (TyKind
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 45 181 66
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 45 181 46
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 54 181 56
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 65 181 66
+                         ]
+                     }
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 46 181 53
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 46 181 47 ]
+                        }
+                      (PromotedCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 46 181 53
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 46 181 47 ]
+                           }
+                         True
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 47 181 53
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 47 181 53
+                                 , srcInfoPoints = []
+                                 }
+                               "KProxy"))))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 65
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 63
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 63
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 63
+                                 , srcInfoPoints = []
+                                 }
+                               "KProxy")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 64 181 65
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 64 181 65
+                              , srcInfoPoints = []
+                              }
+                            "k"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 1 182 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 1 182 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 1 182 10
+                   , srcInfoPoints = []
+                   }
+                 "kproxy_id")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 11 182 12
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 11 182 12
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 13 182 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 13 182 14 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 15 182 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 15 182 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 182 15 182 16
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 1 184 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 1 184 14
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 1 184 14
+                  , srcInfoPoints = []
+                  }
+                "kproxy_id_use"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 15 184 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 15 184 16 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 17 184 30
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 17 184 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 17 184 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 17 184 26
+                           , srcInfoPoints = []
+                           }
+                         "kproxy_id")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 27 184 30
+                     , srcInfoPoints = []
+                     }
+                   (Char
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 184 27 184 30
+                        , srcInfoPoints = []
+                        }
+                      'a'
+                      "a"))))
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 1 188 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 1 188 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 6 188 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 13 188 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 13 188 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 13 188 15
+                     , srcInfoPoints = []
+                     }
+                   "Gx"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 16 188 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 188 16 188 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          Nothing
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 1 189 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 1 189 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 6 189 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 13 189 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 13 189 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 13 189 15
+                     , srcInfoPoints = []
+                     }
+                   "Hx"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 16 189 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 189 16 189 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          Nothing
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 1 190 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 1 190 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 6 190 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 13 190 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 13 190 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 13 190 15
+                     , srcInfoPoints = []
+                     }
+                   "Gi"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 16 190 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 16 190 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 18 190 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 18 190 19 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 20 190 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 20 190 21
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 22 190 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 22 190 23
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 26 190 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 24 190 25
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 190 29 190 30
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 1 191 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 1 191 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 6 191 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 22 191 23
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 15 191 21
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 15 191 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 15 191 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 15 191 17
+                        , srcInfoPoints = []
+                        }
+                      "Gi")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 18 191 21
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 18 191 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 18 191 21
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 24 191 28
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 24 191 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 191 24 191 28
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 1 192 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 1 192 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 6 192 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 13 192 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 13 192 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 13 192 15
+                     , srcInfoPoints = []
+                     }
+                   "Hi"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 16 192 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 16 192 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 18 192 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 18 192 19 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 20 192 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 20 192 21
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 22 192 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 22 192 23
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 26 192 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 24 192 25
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 192 29 192 30
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 1 194 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 1 194 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 6 194 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 13 194 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 13 194 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 13 194 15
+                     , srcInfoPoints = []
+                     }
+                   "F2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 16 194 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 16 194 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 18 194 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 18 194 19 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 20 194 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 20 194 21
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 22 194 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 22 194 23
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 26 194 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 24 194 25
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 194 29 194 30
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 1 195 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 1 195 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 6 195 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 28 195 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 15 195 21
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 15 195 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 15 195 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 15 195 17
+                        , srcInfoPoints = []
+                        }
+                      "F2")))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 18 195 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 18 195 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 20 195 21
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 19 195 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 19 195 20
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (TyList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 30 195 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 30 195 31
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 35 195 36
+                   ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 31 195 35
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 31 195 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 31 195 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 31 195 33
+                           , srcInfoPoints = []
+                           }
+                         "Gi")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 34 195 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 195 34 195 35
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 1 196 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 1 196 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 6 196 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 28 196 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 15 196 27
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 15 196 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 15 196 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 15 196 17
+                        , srcInfoPoints = []
+                        }
+                      "F2")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 18 196 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 18 196 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 26 196 27
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 19 196 26
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 19 196 24
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 19 196 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 19 196 24
+                              , srcInfoPoints = []
+                              }
+                            "Maybe")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 25 196 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 25 196 26
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 30 196 41
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 35 196 37 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 30 196 34
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 30 196 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 30 196 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 30 196 32
+                           , srcInfoPoints = []
+                           }
+                         "Hi")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 33 196 34
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 33 196 34
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 38 196 41
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 38 196 41
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 196 38 196 41
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 1 198 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 1 198 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 6 198 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 13 198 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 13 198 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 13 198 15
+                     , srcInfoPoints = []
+                     }
+                   "F4"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 16 198 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 16 198 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 18 198 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 18 198 19 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 20 198 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 20 198 21
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 22 198 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 22 198 23
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 26 198 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 24 198 25
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 198 29 198 30
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 1 199 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 1 199 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 6 199 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 28 199 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 15 199 21
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 15 199 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 15 199 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 15 199 17
+                        , srcInfoPoints = []
+                        }
+                      "F4")))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 18 199 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 18 199 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 20 199 21
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 19 199 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 19 199 20
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (TyTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 30 199 50
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 30 199 31
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 35 199 36
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 38 199 39
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 43 199 44
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 49 199 50
+                   ]
+               }
+             Boxed
+             [ TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 31 199 35
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 31 199 33
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 31 199 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 31 199 33
+                            , srcInfoPoints = []
+                            }
+                          "Gx")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 34 199 35
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 34 199 35
+                         , srcInfoPoints = []
+                         }
+                       "a"))
+             , TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 37 199 38
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 37 199 38
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 42 199 43
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 42 199 43
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 48 199 49
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 199 48 199 49
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 1 200 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 1 200 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 6 200 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 28 200 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 15 200 27
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 15 200 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 15 200 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 15 200 17
+                        , srcInfoPoints = []
+                        }
+                      "F4")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 18 200 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 18 200 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 26 200 27
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 19 200 26
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 19 200 24
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 19 200 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 19 200 24
+                              , srcInfoPoints = []
+                              }
+                            "Maybe")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 25 200 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 25 200 26
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+          (TyTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 30 200 50
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 30 200 31
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 35 200 36
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 38 200 39
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 43 200 44
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 49 200 50
+                   ]
+               }
+             Boxed
+             [ TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 31 200 35
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 31 200 33
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 31 200 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 31 200 33
+                            , srcInfoPoints = []
+                            }
+                          "Hx")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 34 200 35
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 34 200 35
+                         , srcInfoPoints = []
+                         }
+                       "a"))
+             , TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 37 200 38
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 37 200 38
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 40 200 43
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 40 200 43
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 40 200 43
+                         , srcInfoPoints = []
+                         }
+                       "Int"))
+             , TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 45 200 49
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 45 200 49
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 200 45 200 49
+                         , srcInfoPoints = []
+                         }
+                       "Bool"))
+             ])
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 1 202 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 1 202 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 6 202 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 13 202 19
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 13 202 17
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 13 202 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 13 202 15
+                        , srcInfoPoints = []
+                        }
+                      "G2"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 16 202 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 16 202 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 18 202 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 18 202 19
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 20 202 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 20 202 21 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 22 202 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 22 202 23
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 24 202 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 24 202 25
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 28 202 30
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 26 202 27
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 31 202 32
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 202 33 202 34
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 1 203 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 1 203 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 6 203 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 28 203 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 15 203 27
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 15 203 19
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 15 203 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 15 203 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 15 203 17
+                           , srcInfoPoints = []
+                           }
+                         "G2")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 18 203 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 18 203 19
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 23 203 27
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 23 203 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 23 203 27
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+          (TyTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 30 203 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 30 203 31
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 32 203 33
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 35 203 36
+                   ]
+               }
+             Boxed
+             [ TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 31 203 32
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 31 203 32
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 34 203 35
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 203 34 203 35
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 1 204 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 1 204 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 6 204 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 28 204 29
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 15 204 24
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 15 204 22
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 15 204 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 15 204 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 15 204 17
+                           , srcInfoPoints = []
+                           }
+                         "G2")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 18 204 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 18 204 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 18 204 22
+                           , srcInfoPoints = []
+                           }
+                         "Bool"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 23 204 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 23 204 24
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 30 204 39
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 30 204 31
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 32 204 33
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 38 204 39
+                   ]
+               }
+             Boxed
+             [ TyVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 31 204 32
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 31 204 32
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             , TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 34 204 38
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 34 204 38
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 204 34 204 38
+                         , srcInfoPoints = []
+                         }
+                       "Bool"))
+             ])
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 1 206 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 1 206 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 6 206 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 13 206 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 13 206 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 13 206 15
+                     , srcInfoPoints = []
+                     }
+                   "G6"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 16 206 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 16 206 17
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 18 206 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 18 206 19 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 20 206 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 20 206 21
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 22 206 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 22 206 23
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 26 206 28
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 24 206 25
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 206 29 206 30
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 1 207 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 1 207 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 6 207 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 23 207 24
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 15 207 21
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 15 207 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 15 207 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 15 207 17
+                        , srcInfoPoints = []
+                        }
+                      "G6")))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 18 207 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 18 207 19
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 20 207 21
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 19 207 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 19 207 20
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (TyList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 25 207 31
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 25 207 26
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 30 207 31
+                   ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 26 207 30
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 26 207 28
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 26 207 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 26 207 28
+                           , srcInfoPoints = []
+                           }
+                         "Gi")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 29 207 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 207 29 207 30
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 1 208 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 1 208 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 6 208 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 23 208 24
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 15 208 22
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 15 208 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 15 208 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 15 208 17
+                        , srcInfoPoints = []
+                        }
+                      "G6")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 18 208 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 18 208 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 18 208 22
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 25 208 28
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 25 208 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 208 25 208 28
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 1 210 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 7 210 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 1 210 6
+                , srcInfoPoints = []
+                }
+              "g6_id"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 10 210 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 15 210 17 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 10 210 14
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 10 210 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 10 210 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 10 210 12
+                           , srcInfoPoints = []
+                           }
+                         "G6")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 13 210 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 13 210 14
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 18 210 22
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 18 210 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 18 210 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 18 210 20
+                           , srcInfoPoints = []
+                           }
+                         "G6")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 21 210 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 210 21 210 22
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 1 211 12
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 1 211 12
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 1 211 6
+                   , srcInfoPoints = []
+                   }
+                 "g6_id")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 7 211 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 7 211 8
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 9 211 12
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 9 211 10 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 11 211 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 11 211 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 211 11 211 12
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 1 213 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 8 213 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 1 213 7
+                , srcInfoPoints = []
+                }
+              "g6_use"
+          ]
+          (TyList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 11 213 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 11 213 12
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 16 213 17
+                   ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 12 213 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 12 213 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 213 12 213 16
+                        , srcInfoPoints = []
+                        }
+                      "Char"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 1 214 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 1 214 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 1 214 7
+                  , srcInfoPoints = []
+                  }
+                "g6_use"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 8 214 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 8 214 9 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 10 214 21
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 10 214 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 10 214 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 10 214 15
+                           , srcInfoPoints = []
+                           }
+                         "g6_id")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 16 214 21
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 214 16 214 21
+                        , srcInfoPoints = []
+                        }
+                      "foo"
+                      "foo"))))
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 1 217 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 1 217 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 6 217 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 13 217 24
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 13 217 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 13 217 15
+                     , srcInfoPoints = []
+                     }
+                   "Id"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 16 217 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 16 217 17
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 19 217 21
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 23 217 24
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 17 217 18
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 22 217 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 22 217 23
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 25 217 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 25 217 26 ]
+                  }
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 27 217 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 27 217 28
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 35 217 37
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 39 217 40
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 28 217 34
+                        , srcInfoPoints = []
+                        }
+                      "result")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 38 217 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 38 217 39
+                           , srcInfoPoints = []
+                           }
+                         "k")))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 41 217 54
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 41 217 42
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 50 217 52
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 43 217 49
+                     , srcInfoPoints = []
+                     }
+                   "result")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 53 217 54
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 1 218 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 1 218 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 6 218 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 20 218 21
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 15 218 19
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 15 218 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 15 218 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 15 218 17
+                        , srcInfoPoints = []
+                        }
+                      "Id")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 18 218 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 18 218 19
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (TyVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 22 218 23
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 218 22 218 23
+                  , srcInfoPoints = []
+                  }
+                "a"))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 1 222 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 1 222 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 6 222 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 13 222 31
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 13 222 29
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 13 222 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 13 222 20
+                        , srcInfoPoints = []
+                        }
+                      "IdProxy"))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 21 222 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 21 222 22
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 24 222 26
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 28 222 29
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 22 222 23
+                        , srcInfoPoints = []
+                        }
+                      "a")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 27 222 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 27 222 28
+                           , srcInfoPoints = []
+                           }
+                         "k"))))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 30 222 31
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 30 222 31
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 32 222 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 32 222 33 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 34 222 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 34 222 35
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 36 222 44
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 36 222 37
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 40 222 42
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 38 222 39
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 43 222 44
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 1 223 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 1 223 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 6 223 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 27 223 28
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 15 223 26
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 15 223 24
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 15 223 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 15 223 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 15 223 22
+                           , srcInfoPoints = []
+                           }
+                         "IdProxy")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 23 223 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 23 223 24
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 25 223 26
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 25 223 26
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 29 223 37
+               , srcInfoPoints = []
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 29 223 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 29 223 30
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 34 223 35
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 30 223 34
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 30 223 32
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 30 223 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 30 223 32
+                              , srcInfoPoints = []
+                              }
+                            "Id")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 33 223 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 33 223 34
+                           , srcInfoPoints = []
+                           }
+                         "a"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 36 223 37
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 223 36 223 37
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 1 226 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 1 226 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 14 226 15
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 6 226 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 6 226 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 6 226 11
+                     , srcInfoPoints = []
+                     }
+                   "IdSyn"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 12 226 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 12 226 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 16 226 20
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 16 226 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 16 226 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 16 226 18
+                        , srcInfoPoints = []
+                        }
+                      "Id")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 19 226 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 226 19 226 20
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 1 227 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 1 227 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 6 227 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 13 227 34
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 13 227 32
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 13 227 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 13 227 23
+                        , srcInfoPoints = []
+                        }
+                      "IdProxySyn"))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 24 227 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 24 227 25
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 27 227 29
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 31 227 32
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 25 227 26
+                        , srcInfoPoints = []
+                        }
+                      "a")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 30 227 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 30 227 31
+                           , srcInfoPoints = []
+                           }
+                         "k"))))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 33 227 34
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 33 227 34
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 35 227 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 35 227 36 ]
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 37 227 38
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 37 227 38
+                        , srcInfoPoints = []
+                        }
+                      "r"))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 39 227 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 39 227 40
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 43 227 45
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 41 227 42
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 46 227 47
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 1 228 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 1 228 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 6 228 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 30 228 31
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 15 228 29
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 15 228 27
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 15 228 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 15 228 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 15 228 25
+                           , srcInfoPoints = []
+                           }
+                         "IdProxySyn")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 26 228 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 26 228 27
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 28 228 29
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 28 228 29
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 32 228 43
+               , srcInfoPoints = []
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 32 228 41
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 32 228 33
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 40 228 41
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 33 228 40
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 33 228 38
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 33 228 38
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 33 228 38
+                              , srcInfoPoints = []
+                              }
+                            "IdSyn")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 39 228 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 39 228 40
+                           , srcInfoPoints = []
+                           }
+                         "a"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 42 228 43
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 228 42 228 43
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 1 232 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 1 232 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 6 232 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 13 232 33
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 13 232 24
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 13 232 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 13 232 15
+                        , srcInfoPoints = []
+                        }
+                      "Fa"))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 16 232 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 16 232 17
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 19 232 21
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 23 232 24
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 17 232 18
+                        , srcInfoPoints = []
+                        }
+                      "a")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 22 232 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 22 232 23
+                           , srcInfoPoints = []
+                           }
+                         "k"))))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 25 232 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 25 232 26
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 28 232 30
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 32 232 33
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 26 232 27
+                     , srcInfoPoints = []
+                     }
+                   "b")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 31 232 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 31 232 32
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 34 232 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 34 232 35 ]
+                  }
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 36 232 45
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 36 232 37
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 39 232 41
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 44 232 45
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 37 232 38
+                        , srcInfoPoints = []
+                        }
+                      "r")
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 42 232 44
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 42 232 44
+                           , srcInfoPoints = []
+                           }
+                         "k2")))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 46 232 54
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 46 232 47
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 50 232 52
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 48 232 49
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 53 232 54
+                      , srcInfoPoints = []
+                      }
+                    "k"
+                ]))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 1 233 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 1 233 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 6 233 14
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 22 233 23
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 15 233 21
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 15 233 19
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 15 233 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 15 233 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 15 233 17
+                           , srcInfoPoints = []
+                           }
+                         "Fa")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 18 233 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 18 233 19
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 20 233 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 20 233 21
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 24 233 25
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 233 24 233 25
+                  , srcInfoPoints = []
+                  }
+                "a"))
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 1 236 51
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 1 236 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 6 236 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 13 236 51
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 13 236 42
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 13 236 33
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 13 236 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 13 236 16
+                           , srcInfoPoints = []
+                           }
+                         "Arr"))
+                   (KindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 17 236 33
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 17 236 18
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 23 236 25
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 32 236 33
+                            ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 18 236 22
+                           , srcInfoPoints = []
+                           }
+                         "repr")
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 26 236 32
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 28 236 30 ]
+                           }
+                         (TyStar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 26 236 27
+                              , srcInfoPoints = []
+                              })
+                         (TyStar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 31 236 32
+                              , srcInfoPoints = []
+                              }))))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 34 236 42
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 34 236 35
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 37 236 39
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 41 236 42
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 35 236 36
+                        , srcInfoPoints = []
+                        }
+                      "a")
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 40 236 41
+                        , srcInfoPoints = []
+                        })))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 43 236 51
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 43 236 44
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 46 236 48
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 50 236 51
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 44 236 45
+                     , srcInfoPoints = []
+                     }
+                   "b")
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 49 236 50
+                     , srcInfoPoints = []
+                     })))
+          (Just
+             (TyVarSig
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 52 236 62
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 52 236 53 ]
+                  }
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 54 236 62
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 54 236 55
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 57 236 59
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 61 236 62
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 55 236 56
+                        , srcInfoPoints = []
+                        }
+                      "r")
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 60 236 61
+                        , srcInfoPoints = []
+                        }))))
+          (Just
+             (InjectivityInfo
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 63 236 74
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 63 236 64
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 67 236 69
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 65 236 66
+                     , srcInfoPoints = []
+                     }
+                   "r")
+                [ Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 70 236 74
+                      , srcInfoPoints = []
+                      }
+                    "repr"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 75 236 76
+                      , srcInfoPoints = []
+                      }
+                    "a"
+                , Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 77 236 78
+                      , srcInfoPoints = []
+                      }
+                    "b"
+                ]))
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 1 243 51
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 1 238 6
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 23 238 28
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 5 239 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 5 240 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 5 242 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 5 243 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 1 245 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 7 238 22
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 7 238 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 7 238 17
+                     , srcInfoPoints = []
+                     }
+                   "ESymantics"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 18 238 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 238 18 238 22
+                     , srcInfoPoints = []
+                     }
+                   "repr")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 5 239 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 9 239 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 5 239 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 9 239 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 5 239 8
+                          , srcInfoPoints = []
+                          }
+                        "int"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 12 239 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 17 239 19 ]
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 12 239 15
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 12 239 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 239 12 239 15
+                                  , srcInfoPoints = []
+                                  }
+                                "Int")))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 20 239 28
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 20 239 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 239 20 239 24
+                                  , srcInfoPoints = []
+                                  }
+                                "repr"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 239 25 239 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 239 25 239 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 239 25 239 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 5 240 45
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 9 240 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 5 240 45
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 9 240 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 5 240 8
+                          , srcInfoPoints = []
+                          }
+                        "add"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 12 240 45
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 22 240 24 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 12 240 20
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 12 240 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 12 240 16
+                                  , srcInfoPoints = []
+                                  }
+                                "repr"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 17 240 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 17 240 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 240 17 240 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 25 240 45
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 34 240 36 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 25 240 33
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 25 240 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 240 25 240 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "repr"))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 30 240 33
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 240 30 240 33
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              240
+                                              30
+                                              240
+                                              33
+                                        , srcInfoPoints = []
+                                        }
+                                      "Int"))))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 240 37 240 45
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 37 240 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 240 37 240 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "repr"))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 240 42 240 45
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 240 42 240 45
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              240
+                                              42
+                                              240
+                                              45
+                                        , srcInfoPoints = []
+                                        }
+                                      "Int")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 5 242 53
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 9 242 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 5 242 53
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 9 242 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 5 242 8
+                          , srcInfoPoints = []
+                          }
+                        "lam"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 12 242 53
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 31 242 33 ]
+                         }
+                       (TyParen
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 12 242 30
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 12 242 13
+                                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 29 242 30
+                                ]
+                            }
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 13 242 29
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 20 242 22
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 242 13 242 19
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 13 242 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              13
+                                              242
+                                              17
+                                        , srcInfoPoints = []
+                                        }
+                                      "repr"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 18 242 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              18
+                                              242
+                                              19
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 242 23 242 29
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 23 242 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              23
+                                              242
+                                              27
+                                        , srcInfoPoints = []
+                                        }
+                                      "repr"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 28 242 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              28
+                                              242
+                                              29
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 34 242 53
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 34 242 38
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 242 34 242 38
+                                  , srcInfoPoints = []
+                                  }
+                                "repr"))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 39 242 53
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 39 242 40
+                                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 242 52 242 53
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 242 40 242 52
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 40 242 50
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              40
+                                              242
+                                              48
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 242
+                                                 40
+                                                 242
+                                                 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    242
+                                                    40
+                                                    242
+                                                    43
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InjectiveTypeFamilies.hs"
+                                                       242
+                                                       40
+                                                       242
+                                                       43
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Arr")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 242
+                                                 44
+                                                 242
+                                                 48
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    242
+                                                    44
+                                                    242
+                                                    48
+                                              , srcInfoPoints = []
+                                              }
+                                            "repr")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              49
+                                              242
+                                              50
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 242
+                                                 49
+                                                 242
+                                                 50
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 242 51 242 52
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              242
+                                              51
+                                              242
+                                              52
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 5 243 51
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 9 243 11 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 5 243 51
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 9 243 11 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 5 243 8
+                          , srcInfoPoints = []
+                          }
+                        "app"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 12 243 51
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 32 243 34 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 12 243 31
+                            , srcInfoPoints = []
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 12 243 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 12 243 16
+                                  , srcInfoPoints = []
+                                  }
+                                "repr"))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 17 243 31
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 17 243 18
+                                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 30 243 31
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 18 243 30
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 18 243 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              243
+                                              18
+                                              243
+                                              26
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 243
+                                                 18
+                                                 243
+                                                 21
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    243
+                                                    18
+                                                    243
+                                                    21
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InjectiveTypeFamilies.hs"
+                                                       243
+                                                       18
+                                                       243
+                                                       21
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Arr")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 243
+                                                 22
+                                                 243
+                                                 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    243
+                                                    22
+                                                    243
+                                                    26
+                                              , srcInfoPoints = []
+                                              }
+                                            "repr")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              243
+                                              27
+                                              243
+                                              28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 243
+                                                 27
+                                                 243
+                                                 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 29 243 30
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              243
+                                              29
+                                              243
+                                              30
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 35 243 51
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 42 243 44 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 35 243 41
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 35 243 39
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 35 243 39
+                                     , srcInfoPoints = []
+                                     }
+                                   "repr"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 40 243 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 40 243 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 243 45 243 51
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 45 243 49
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 45 243 49
+                                     , srcInfoPoints = []
+                                     }
+                                   "repr"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 243 50 243 51
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 243 50 243 51
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))))))
+             ])
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 1 246 63
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 1 245 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 1 245 4
+                  , srcInfoPoints = []
+                  }
+                "te4"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 5 246 63
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 5 245 6 ]
+               }
+             (Let
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 7 246 63
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 7 245 10
+                      , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 7 246 9
+                      ]
+                  }
+                (BDecls
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 11 245 69
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 11 245 11
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 7 246 0
+                         ]
+                     }
+                   [ PatBind
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 11 245 69
+                         , srcInfoPoints = []
+                         }
+                       (PVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 11 245 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 11 245 13
+                               , srcInfoPoints = []
+                               }
+                             "c3"))
+                       (UnGuardedRhs
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 14 245 69
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 14 245 15 ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 245 16 245 69
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 245 16 245 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 245 16 245 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              245
+                                              16
+                                              245
+                                              19
+                                        , srcInfoPoints = []
+                                        }
+                                      "lam")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 245 20 245 69
+                                  , srcInfoPoints =
+                                      [ SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 245 20 245 21
+                                      , SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 245 68 245 69
+                                      ]
+                                  }
+                                (Lambda
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 245 21 245 68
+                                     , srcInfoPoints =
+                                         [ SrcSpan
+                                             "tests/examples/InjectiveTypeFamilies.hs" 245 21 245 22
+                                         , SrcSpan
+                                             "tests/examples/InjectiveTypeFamilies.hs" 245 24 245 26
+                                         ]
+                                     }
+                                   [ PVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                               245
+                                               22
+                                               245
+                                               23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                  245
+                                                  22
+                                                  245
+                                                  23
+                                            , srcInfoPoints = []
+                                            }
+                                          "f")
+                                   ]
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/InjectiveTypeFamilies.hs"
+                                              245
+                                              27
+                                              245
+                                              68
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 245
+                                                 27
+                                                 245
+                                                 30
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    245
+                                                    27
+                                                    245
+                                                    30
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InjectiveTypeFamilies.hs"
+                                                       245
+                                                       27
+                                                       245
+                                                       30
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "lam")))
+                                      (Paren
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 245
+                                                 31
+                                                 245
+                                                 68
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                   245
+                                                   31
+                                                   245
+                                                   32
+                                               , SrcSpan
+                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                   245
+                                                   67
+                                                   245
+                                                   68
+                                               ]
+                                           }
+                                         (Lambda
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    245
+                                                    32
+                                                    245
+                                                    67
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      245
+                                                      32
+                                                      245
+                                                      33
+                                                  , SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      245
+                                                      35
+                                                      245
+                                                      37
+                                                  ]
+                                              }
+                                            [ PVar
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                        245
+                                                        33
+                                                        245
+                                                        34
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/InjectiveTypeFamilies.hs"
+                                                           245
+                                                           33
+                                                           245
+                                                           34
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "x")
+                                            ]
+                                            (InfixApp
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InjectiveTypeFamilies.hs"
+                                                       245
+                                                       38
+                                                       245
+                                                       67
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Var
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/InjectiveTypeFamilies.hs"
+                                                          245
+                                                          38
+                                                          245
+                                                          39
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/InjectiveTypeFamilies.hs"
+                                                             245
+                                                             38
+                                                             245
+                                                             39
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                                245
+                                                                38
+                                                                245
+                                                                39
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "f")))
+                                               (QVarOp
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/InjectiveTypeFamilies.hs"
+                                                          245
+                                                          40
+                                                          245
+                                                          45
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            245
+                                                            40
+                                                            245
+                                                            41
+                                                        , SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            245
+                                                            41
+                                                            245
+                                                            44
+                                                        , SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            245
+                                                            44
+                                                            245
+                                                            45
+                                                        ]
+                                                    }
+                                                  (UnQual
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/InjectiveTypeFamilies.hs"
+                                                             245
+                                                             40
+                                                             245
+                                                             45
+                                                       , srcInfoPoints =
+                                                           [ SrcSpan
+                                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                                               245
+                                                               40
+                                                               245
+                                                               41
+                                                           , SrcSpan
+                                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                                               245
+                                                               41
+                                                               245
+                                                               44
+                                                           , SrcSpan
+                                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                                               245
+                                                               44
+                                                               245
+                                                               45
+                                                           ]
+                                                       }
+                                                     (Ident
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                                245
+                                                                41
+                                                                245
+                                                                44
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        "app")))
+                                               (Paren
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/InjectiveTypeFamilies.hs"
+                                                          245
+                                                          46
+                                                          245
+                                                          67
+                                                    , srcInfoPoints =
+                                                        [ SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            245
+                                                            46
+                                                            245
+                                                            47
+                                                        , SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            245
+                                                            66
+                                                            245
+                                                            67
+                                                        ]
+                                                    }
+                                                  (InfixApp
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/InjectiveTypeFamilies.hs"
+                                                             245
+                                                             47
+                                                             245
+                                                             66
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     (Var
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                                245
+                                                                47
+                                                                245
+                                                                48
+                                                          , srcInfoPoints = []
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                                   245
+                                                                   47
+                                                                   245
+                                                                   48
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                                      245
+                                                                      47
+                                                                      245
+                                                                      48
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "f")))
+                                                     (QVarOp
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                                245
+                                                                49
+                                                                245
+                                                                54
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                                  245
+                                                                  49
+                                                                  245
+                                                                  50
+                                                              , SrcSpan
+                                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                                  245
+                                                                  50
+                                                                  245
+                                                                  53
+                                                              , SrcSpan
+                                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                                  245
+                                                                  53
+                                                                  245
+                                                                  54
+                                                              ]
+                                                          }
+                                                        (UnQual
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                                   245
+                                                                   49
+                                                                   245
+                                                                   54
+                                                             , srcInfoPoints =
+                                                                 [ SrcSpan
+                                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                                     245
+                                                                     49
+                                                                     245
+                                                                     50
+                                                                 , SrcSpan
+                                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                                     245
+                                                                     50
+                                                                     245
+                                                                     53
+                                                                 , SrcSpan
+                                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                                     245
+                                                                     53
+                                                                     245
+                                                                     54
+                                                                 ]
+                                                             }
+                                                           (Ident
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                                      245
+                                                                      50
+                                                                      245
+                                                                      53
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              "app")))
+                                                     (Paren
+                                                        SrcSpanInfo
+                                                          { srcInfoSpan =
+                                                              SrcSpan
+                                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                                245
+                                                                55
+                                                                245
+                                                                66
+                                                          , srcInfoPoints =
+                                                              [ SrcSpan
+                                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                                  245
+                                                                  55
+                                                                  245
+                                                                  56
+                                                              , SrcSpan
+                                                                  "tests/examples/InjectiveTypeFamilies.hs"
+                                                                  245
+                                                                  65
+                                                                  245
+                                                                  66
+                                                              ]
+                                                          }
+                                                        (InfixApp
+                                                           SrcSpanInfo
+                                                             { srcInfoSpan =
+                                                                 SrcSpan
+                                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                                   245
+                                                                   56
+                                                                   245
+                                                                   65
+                                                             , srcInfoPoints = []
+                                                             }
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                                      245
+                                                                      56
+                                                                      245
+                                                                      57
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                                         245
+                                                                         56
+                                                                         245
+                                                                         57
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                                            245
+                                                                            56
+                                                                            245
+                                                                            57
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "f")))
+                                                           (QVarOp
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                                      245
+                                                                      58
+                                                                      245
+                                                                      63
+                                                                , srcInfoPoints =
+                                                                    [ SrcSpan
+                                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                                        245
+                                                                        58
+                                                                        245
+                                                                        59
+                                                                    , SrcSpan
+                                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                                        245
+                                                                        59
+                                                                        245
+                                                                        62
+                                                                    , SrcSpan
+                                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                                        245
+                                                                        62
+                                                                        245
+                                                                        63
+                                                                    ]
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                                         245
+                                                                         58
+                                                                         245
+                                                                         63
+                                                                   , srcInfoPoints =
+                                                                       [ SrcSpan
+                                                                           "tests/examples/InjectiveTypeFamilies.hs"
+                                                                           245
+                                                                           58
+                                                                           245
+                                                                           59
+                                                                       , SrcSpan
+                                                                           "tests/examples/InjectiveTypeFamilies.hs"
+                                                                           245
+                                                                           59
+                                                                           245
+                                                                           62
+                                                                       , SrcSpan
+                                                                           "tests/examples/InjectiveTypeFamilies.hs"
+                                                                           245
+                                                                           62
+                                                                           245
+                                                                           63
+                                                                       ]
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                                            245
+                                                                            59
+                                                                            245
+                                                                            62
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "app")))
+                                                           (Var
+                                                              SrcSpanInfo
+                                                                { srcInfoSpan =
+                                                                    SrcSpan
+                                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                                      245
+                                                                      64
+                                                                      245
+                                                                      65
+                                                                , srcInfoPoints = []
+                                                                }
+                                                              (UnQual
+                                                                 SrcSpanInfo
+                                                                   { srcInfoSpan =
+                                                                       SrcSpan
+                                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                                         245
+                                                                         64
+                                                                         245
+                                                                         65
+                                                                   , srcInfoPoints = []
+                                                                   }
+                                                                 (Ident
+                                                                    SrcSpanInfo
+                                                                      { srcInfoSpan =
+                                                                          SrcSpan
+                                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                                            245
+                                                                            64
+                                                                            245
+                                                                            65
+                                                                      , srcInfoPoints = []
+                                                                      }
+                                                                    "x")))))))))))))))
+                       Nothing
+                   ])
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 10 246 63
+                     , srcInfoPoints = []
+                     }
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 10 246 49
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 10 246 11
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 48 246 49
+                            ]
+                        }
+                      (InfixApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 11 246 48
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 11 246 13
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 11 246 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 246 11 246 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "c3")))
+                         (QVarOp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 14 246 19
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 14 246 15
+                                  , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 15 246 18
+                                  , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 18 246 19
+                                  ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 14 246 19
+                                 , srcInfoPoints =
+                                     [ SrcSpan
+                                         "tests/examples/InjectiveTypeFamilies.hs" 246 14 246 15
+                                     , SrcSpan
+                                         "tests/examples/InjectiveTypeFamilies.hs" 246 15 246 18
+                                     , SrcSpan
+                                         "tests/examples/InjectiveTypeFamilies.hs" 246 18 246 19
+                                     ]
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 246 15 246 18
+                                    , srcInfoPoints = []
+                                    }
+                                  "app")))
+                         (Paren
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 20 246 48
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 20 246 21
+                                  , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 47 246 48
+                                  ]
+                              }
+                            (App
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 21 246 47
+                                 , srcInfoPoints = []
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 246 21 246 24
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/InjectiveTypeFamilies.hs" 246 21 246 24
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                246
+                                                21
+                                                246
+                                                24
+                                          , srcInfoPoints = []
+                                          }
+                                        "lam")))
+                               (Paren
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 246 25 246 47
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/InjectiveTypeFamilies.hs" 246 25 246 26
+                                        , SrcSpan
+                                            "tests/examples/InjectiveTypeFamilies.hs" 246 46 246 47
+                                        ]
+                                    }
+                                  (Lambda
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/InjectiveTypeFamilies.hs" 246 26 246 46
+                                       , srcInfoPoints =
+                                           [ SrcSpan
+                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                               246
+                                               26
+                                               246
+                                               27
+                                           , SrcSpan
+                                               "tests/examples/InjectiveTypeFamilies.hs"
+                                               246
+                                               29
+                                               246
+                                               31
+                                           ]
+                                       }
+                                     [ PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/InjectiveTypeFamilies.hs"
+                                                 246
+                                                 27
+                                                 246
+                                                 28
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/InjectiveTypeFamilies.hs"
+                                                    246
+                                                    27
+                                                    246
+                                                    28
+                                              , srcInfoPoints = []
+                                              }
+                                            "x")
+                                     ]
+                                     (InfixApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/InjectiveTypeFamilies.hs"
+                                                246
+                                                32
+                                                246
+                                                46
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                   246
+                                                   32
+                                                   246
+                                                   33
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      246
+                                                      32
+                                                      246
+                                                      33
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                         246
+                                                         32
+                                                         246
+                                                         33
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "x")))
+                                        (QVarOp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                   246
+                                                   34
+                                                   246
+                                                   39
+                                             , srcInfoPoints =
+                                                 [ SrcSpan
+                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                     246
+                                                     34
+                                                     246
+                                                     35
+                                                 , SrcSpan
+                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                     246
+                                                     35
+                                                     246
+                                                     38
+                                                 , SrcSpan
+                                                     "tests/examples/InjectiveTypeFamilies.hs"
+                                                     246
+                                                     38
+                                                     246
+                                                     39
+                                                 ]
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      246
+                                                      34
+                                                      246
+                                                      39
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                        246
+                                                        34
+                                                        246
+                                                        35
+                                                    , SrcSpan
+                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                        246
+                                                        35
+                                                        246
+                                                        38
+                                                    , SrcSpan
+                                                        "tests/examples/InjectiveTypeFamilies.hs"
+                                                        246
+                                                        38
+                                                        246
+                                                        39
+                                                    ]
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                         246
+                                                         35
+                                                         246
+                                                         38
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "add")))
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/InjectiveTypeFamilies.hs"
+                                                   246
+                                                   40
+                                                   246
+                                                   46
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      246
+                                                      40
+                                                      246
+                                                      43
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                         246
+                                                         40
+                                                         246
+                                                         43
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/InjectiveTypeFamilies.hs"
+                                                            246
+                                                            40
+                                                            246
+                                                            43
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "int")))
+                                           (Lit
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/InjectiveTypeFamilies.hs"
+                                                      246
+                                                      44
+                                                      246
+                                                      46
+                                                , srcInfoPoints = []
+                                                }
+                                              (Int
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/InjectiveTypeFamilies.hs"
+                                                         246
+                                                         44
+                                                         246
+                                                         46
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 14
+                                                 "14"))))))))))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 50 246 55
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 50 246 51
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 51 246 54
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 54 246 55
+                            ]
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 50 246 55
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 50 246 51
+                               , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 51 246 54
+                               , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 54 246 55
+                               ]
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 51 246 54
+                              , srcInfoPoints = []
+                              }
+                            "app")))
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 56 246 63
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 56 246 57
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 62 246 63
+                            ]
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 57 246 62
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 57 246 60
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 57 246 60
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 246 57 246 60
+                                    , srcInfoPoints = []
+                                    }
+                                  "int")))
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 61 246 62
+                              , srcInfoPoints = []
+                              }
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 246 61 246 62
+                                 , srcInfoPoints = []
+                                 }
+                               0
+                               "0")))))))
+          Nothing
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 1 252 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 1 249 6
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 19 249 24
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 5 250 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 5 251 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 5 252 5
+                , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 1 254 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 7 249 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 7 249 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 7 249 16
+                     , srcInfoPoints = []
+                     }
+                   "Manifold'"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 17 249 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 249 17 249 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 5 250 30
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 5 250 9 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 10 250 17
+                      , srcInfoPoints = []
+                      }
+                    (DHead
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 10 250 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 10 250 14
+                            , srcInfoPoints = []
+                            }
+                          "Base"))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 16 250 17
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 16 250 17
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (Just
+                    (TyVarSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 18 250 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 18 250 19 ]
+                         }
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 20 250 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 20 250 21
+                               , srcInfoPoints = []
+                               }
+                             "r"))))
+                 (Just
+                    (InjectivityInfo
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 22 250 30
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 22 250 23
+                             , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 26 250 28
+                             ]
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 24 250 25
+                            , srcInfoPoints = []
+                            }
+                          "r")
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 250 29 250 30
+                             , srcInfoPoints = []
+                             }
+                           "a"
+                       ]))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 5 251 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 13 251 15 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 5 251 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 13 251 15 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 5 251 12
+                          , srcInfoPoints = []
+                          }
+                        "project"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 16 251 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 18 251 20 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 16 251 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 16 251 17
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 21 251 27
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 21 251 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 251 21 251 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 251 21 251 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "Base")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 251 26 251 27
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 251 26 251 27
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 5 252 29
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 15 252 17 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 5 252 29
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 15 252 17 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 5 252 14
+                          , srcInfoPoints = []
+                          }
+                        "unproject"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 18 252 29
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 25 252 27 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 18 252 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 18 252 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 252 18 252 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/InjectiveTypeFamilies.hs" 252 18 252 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Base")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 23 252 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan
+                                        "tests/examples/InjectiveTypeFamilies.hs" 252 23 252 24
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 28 252 29
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 252 28 252 29
+                               , srcInfoPoints = []
+                               }
+                             "a"))))
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 1 254 53
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 5 254 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 1 254 4
+                , srcInfoPoints = []
+                }
+              "id'"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 8 254 53
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 8 254 14
+                   , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 16 254 17
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 15 254 16
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 15 254 16
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 18 254 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 18 254 19
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 32 254 33
+                         , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 34 254 36
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 18 254 36
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 18 254 19
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 32 254 33
+                            , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 34 254 36
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 29
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 29
+                                       , srcInfoPoints = []
+                                       }
+                                     "Manifold'")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 30 254 31
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan
+                                          "tests/examples/InjectiveTypeFamilies.hs" 254 30 254 31
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 37 254 53
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 44 254 46 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 37 254 43
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 37 254 41
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 37 254 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 37 254 41
+                              , srcInfoPoints = []
+                              }
+                            "Base")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 42 254 43
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 42 254 43
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 47 254 53
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 47 254 51
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 47 254 51
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 47 254 51
+                              , srcInfoPoints = []
+                              }
+                            "Base")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 52 254 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 52 254 53
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 1 255 26
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 1 255 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 1 255 4
+                  , srcInfoPoints = []
+                  }
+                "id'"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 5 255 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 5 255 6 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 7 255 26
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 7 255 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 7 255 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 7 255 14
+                           , srcInfoPoints = []
+                           }
+                         "project")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 15 255 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 15 255 16
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 15 255 16
+                           , srcInfoPoints = []
+                           }
+                         ".")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 17 255 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 17 255 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 255 17 255 26
+                           , srcInfoPoints = []
+                           }
+                         "unproject")))))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 12 15 12 43)
+        " defines G, identical to F"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 27 1 27 81)
+        " this is injective - a type variable introduced in the LHS is not mentioned on"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 28 1 28 56)
+        " RHS but we don't claim injectivity in that argument."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 35 1 35 46)
+        " make sure we look through type synonyms..."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 39 1 39 23)
+        " .. but not newtypes"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 44 1 44 24)
+        " Closed type families"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 46 1 46 80)
+        " these are simple conversions from open type families. They should behave the"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 47 1 47 8)
+        " same"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 64 1 64 72)
+        " Here the last equation might return both Int and Char but we have to"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 65 1 65 61)
+        " recognize that it is not possible due to equation overlap"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 71 1 71 81)
+        " This is similar, except that the last equation contains concrete type.  Since"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 72 1 72 56)
+        " it is overlapped it should be dropped with a warning"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 78 1 78 78)
+        " this one was tricky in the early implementation of injectivity.  Now it is"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 79 1 79 69)
+        " identical to the above but we still keep it as a regression test."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 85 1 85 79)
+        " Now let's use declared type families. All the below definitions should work"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 87 1 87 61)
+        " No ambiguity for any of the arguments - all are injective"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 91 1 91 55)
+        " From 1st instance of F: a ~ Int, b ~ Char, c ~ Bool"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 95 1 95 31)
+        " now the closed variant of F"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 102 1 102 65)
+        " The last argument is not injective so it must be instantiated"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 106 1 106 45)
+        " From 1st instance of I: a ~ Int, b ~ Char"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 110 1 110 30)
+        " again, closed variant of I"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 117 1 117 51)
+        " Now we have to test weird closed type families:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 145 1 145 73)
+        " Declarations below test more liberal RHSs of injectivity annotations:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 146 1 146 79)
+        " permiting variables to appear in different order than the one in which they"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 147 1 147 18)
+        " were declared."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 154 1 154 79)
+        " repeated tyvars in the RHS of injectivity annotation: no warnings or errors"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 155 1 155 59)
+        " (consistent with behaviour for functional dependencies)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 168 1 168 71)
+        " Declaring kind injectivity. Here we only claim that knowing the RHS"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 169 1 169 45)
+        " determines the LHS kind but not the type."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 186 1 186 74)
+        " Now test some awkward cases from The Injectivity Paper.  All should be"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 187 1 187 13)
+        " accepted."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 216 1 216 56)
+        " A sole exception to \"bare variables in the RHS\" rule"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 220 1 220 81)
+        " This makes sure that over-saturated type family applications at the top-level"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 221 1 221 17)
+        " are accepted."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 225 1 225 52)
+        " make sure we look through type synonyms properly"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 230 1 230 80)
+        " this has bare variable in the RHS but all LHS varaiables are also bare so it"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 231 1 231 22)
+        " should be accepted"
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 235 1 235 55)
+        " Taken from #9587. This exposed a bug in the solver."
+    , Comment
+        False
+        (SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 248 1 248 40)
+        " This used to fail during development"
+    ]
+  )
diff --git a/tests/examples/InjectiveTypeFamilies.hs.prettyparser.golden b/tests/examples/InjectiveTypeFamilies.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InjectiveTypeFamilies.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/InjectiveTypeFamilies.hs.prettyprinter.golden b/tests/examples/InjectiveTypeFamilies.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/InjectiveTypeFamilies.hs.prettyprinter.golden
@@ -0,0 +1,253 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE TypeFamilyDependencies #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE NoMonomorphismRestriction #-}
+module T6018 where
+import T6018a
+
+type family F a b c = (result :: k) | result -> a b c
+
+type instance F Int Char Bool = Bool
+
+type instance F Char Bool Int = Int
+
+type instance F Bool Int Char = Char
+
+type instance G Bool Int Char = Char
+
+type family I (a :: k) b (c :: k) = r | r -> a b
+
+type instance I Int Char Bool = Bool
+
+type instance I Int Char Int = Bool
+
+type instance I Bool Int Int = Int
+
+type family J a (b :: k) = r | r -> a
+
+type instance J Int b = Char
+
+type MaybeSyn a = Maybe a
+
+newtype MaybeNew a = MaybeNew (Maybe a)
+
+type family K a = r | r -> a
+
+type instance K a = MaybeSyn a
+
+type family M a = r | r -> a
+
+type instance M (Maybe a) = MaybeSyn a
+
+type instance M (MaybeNew a) = MaybeNew a
+
+type family FClosed a b c = result | result -> a b c where
+        FClosed Int Char Bool = Bool
+        FClosed Char Bool Int = Int
+        FClosed Bool Int Char = Char
+
+type family IClosed (a :: *) (b :: *) (c :: *) = r | r -> a b where
+        IClosed Int Char Bool = Bool
+        IClosed Int Char Int = Bool
+        IClosed Bool Int Int = Int
+
+type family JClosed a (b :: k) = r | r -> a where
+        JClosed Int b = Char
+
+type family KClosed a = r | r -> a where
+        KClosed a = MaybeSyn a
+
+type family Bak a = r | r -> a where
+        Bak Int = Char
+        Bak Char = Int
+        Bak a = a
+
+type family Foo a = r | r -> a where
+        Foo Int = Bool
+        Foo Bool = Int
+        Foo Bool = Bool
+
+type family Bar a = r | r -> a where
+        Bar Int = Bool
+        Bar Bool = Int
+        Bar Bool = Char
+
+f :: F a b c -> F a b c
+f x = x
+
+fapp :: Bool
+fapp = f True
+
+fc :: FClosed a b c -> FClosed a b c
+fc x = x
+
+fcapp :: Bool
+fcapp = fc True
+
+i :: I a b Int -> I a b Int
+i x = x
+
+iapp :: Bool
+iapp = i True
+
+ic :: IClosed a b Int -> IClosed a b Int
+ic x = x
+
+icapp :: Bool
+icapp = ic True
+
+bak :: Bak a -> Bak a
+bak x = x
+
+bakapp1 :: Char
+bakapp1 = bak 'c'
+
+bakapp2 :: Double
+bakapp2 = bak 1.0
+
+bakapp3 :: ()
+bakapp3 = bak ()
+
+foo :: Foo a -> Foo a
+foo x = x
+
+fooapp1 :: Bool
+fooapp1 = foo True
+
+bar :: Bar a -> Bar a
+bar x = x
+
+barapp1 :: Bool
+barapp1 = bar True
+
+barapp2 :: Int
+barapp2 = bar 1
+
+type family H a b = r | r -> b a
+
+type family Hc a b = r | r -> b a where
+        Hc a b = a b
+
+class Hcl a b where
+        type Ht a b = r | r -> b a
+
+type family Jx a b = r | r -> a a
+
+type family Jcx a b = r | r -> a a where
+        Jcx a b = a b
+
+class Jcl a b where
+        type Jt a b = r | r -> a a
+
+type family Kx a b = r | r -> a b b
+
+type family Kcx a b = r | r -> a b b where
+        Kcx a b = a b
+
+class Kcl a b where
+        type Kt a b = r | r -> a b b
+
+type family L (a :: k1) = (r :: k2) | r -> k1 where
+        L 'True = Int
+        L 'False = Int
+        L Maybe = 3
+        L IO = 3
+
+data KProxy (a :: *) = KProxy
+
+type family KP (kproxy :: KProxy k) = r | r -> k
+
+type instance KP ('KProxy :: KProxy Bool) = Int
+
+type instance KP ('KProxy :: KProxy *) = Char
+
+kproxy_id :: KP ('KProxy :: KProxy k) -> KP ('KProxy :: KProxy k)
+kproxy_id x = x
+kproxy_id_use = kproxy_id 'a'
+
+type family Gx a
+
+type family Hx a
+
+type family Gi a = r | r -> a
+
+type instance Gi Int = Char
+
+type family Hi a = r | r -> a
+
+type family F2 a = r | r -> a
+
+type instance F2 [a] = [Gi a]
+
+type instance F2 (Maybe a) = Hi a -> Int
+
+type family F4 a = r | r -> a
+
+type instance F4 [a] = (Gx a, a, a, a)
+
+type instance F4 (Maybe a) = (Hx a, a, Int, Bool)
+
+type family G2 a b = r | r -> a b
+
+type instance G2 a Bool = (a, a)
+
+type instance G2 Bool b = (b, Bool)
+
+type family G6 a = r | r -> a
+
+type instance G6 [a] = [Gi a]
+
+type instance G6 Bool = Int
+
+g6_id :: G6 a -> G6 a
+g6_id x = x
+
+g6_use :: [Char]
+g6_use = g6_id "foo"
+
+type family Id (a :: k) = (result :: k) | result -> a
+
+type instance Id a = a
+
+type family IdProxy (a :: k) b = r | r -> a
+
+type instance IdProxy a b = (Id a) b
+
+type IdSyn a = Id a
+
+type family IdProxySyn (a :: k) b = r | r -> a
+
+type instance IdProxySyn a b = (IdSyn a) b
+
+type family Fa (a :: k) (b :: k) = (r :: k2) | r -> k
+
+type instance Fa a b = a
+
+type family Arr (repr :: * -> *) (a :: *) (b :: *) = (r :: *)
+     | r -> repr a b
+
+class ESymantics repr where
+        int :: Int -> repr Int
+        
+        add :: repr Int -> repr Int -> repr Int
+        
+        lam :: (repr a -> repr b) -> repr (Arr repr a b)
+        
+        app :: repr (Arr repr a b) -> repr a -> repr b
+te4
+  = let c3 = lam (\ f -> lam (\ x -> f `app` (f `app` (f `app` x))))
+      in (c3 `app` (lam (\ x -> x `add` int 14))) `app` (int 0)
+
+class Manifold' a where
+        type Base a = r | r -> a
+        
+        project :: a -> Base a
+        
+        unproject :: Base a -> a
+
+id' :: forall a . (Manifold' a) => Base a -> Base a
+id' = project . unproject
diff --git a/tests/examples/InlineConlike.hs.parser.golden b/tests/examples/InlineConlike.hs.parser.golden
--- a/tests/examples/InlineConlike.hs.parser.golden
+++ b/tests/examples/InlineConlike.hs.parser.golden
@@ -1,1 +1,104 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1,SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1,SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1,SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 1,SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 1,SrcSpan "tests/examples/InlineConlike.hs" 4 1 4 1,SrcSpan "tests/examples/InlineConlike.hs" 4 1 4 1]}) Nothing [] [] [InlineConlikeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 28, srcInfoPoints = [SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 19,SrcSpan "tests/examples/InlineConlike.hs" 1 25 1 28]}) Nothing (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 20 1 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 20 1 24, srcInfoPoints = []}) "size")),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 12, srcInfoPoints = [SrcSpan "tests/examples/InlineConlike.hs" 2 6 2 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 5, srcInfoPoints = []}) "size"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12, srcInfoPoints = []}) "Int"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 10, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 5, srcInfoPoints = []}) "size")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 6 3 10, srcInfoPoints = [SrcSpan "tests/examples/InlineConlike.hs" 3 6 3 7]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 8 3 10, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 8 3 10, srcInfoPoints = []}) 64 "64"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 4 1 4 1
+            , SrcSpan "tests/examples/InlineConlike.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InlineConlikeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InlineConlike.hs" 1 1 1 19
+                , SrcSpan "tests/examples/InlineConlike.hs" 1 25 1 28
+                ]
+            }
+          Nothing
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 20 1 24
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 1 20 1 24
+                  , srcInfoPoints = []
+                  }
+                "size"))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InlineConlike.hs" 2 6 2 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 1 2 5
+                , srcInfoPoints = []
+                }
+              "size"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 2 9 2 12
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 1 3 5
+                  , srcInfoPoints = []
+                  }
+                "size"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 6 3 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/InlineConlike.hs" 3 6 3 7 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 8 3 10
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InlineConlike.hs" 3 8 3 10
+                     , srcInfoPoints = []
+                     }
+                   64
+                   "64")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/InlineConlike.hs.prettyprinter.golden b/tests/examples/InlineConlike.hs.prettyprinter.golden
--- a/tests/examples/InlineConlike.hs.prettyprinter.golden
+++ b/tests/examples/InlineConlike.hs.prettyprinter.golden
@@ -1,6 +1,4 @@
-module Main (main) where
- 
 {-# INLINE CONLIKE size #-}
- 
+
 size :: Int
 size = 64
diff --git a/tests/examples/InstanceSigs.hs.parser.golden b/tests/examples/InstanceSigs.hs.parser.golden
--- a/tests/examples/InstanceSigs.hs.parser.golden
+++ b/tests/examples/InstanceSigs.hs.parser.golden
@@ -1,1 +1,571 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 1 10 1, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 1,SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 1,SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 1,SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1,SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1,SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1,SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 1,SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 37, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 13,SrcSpan "tests/examples/InstanceSigs.hs" 1 34 1 37]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 14 1 33, srcInfoPoints = []}) "ScopedTypeVariables"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 30, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 13,SrcSpan "tests/examples/InstanceSigs.hs" 2 27 2 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 2 14 2 26, srcInfoPoints = []}) "InstanceSigs"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 30, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 13,SrcSpan "tests/examples/InstanceSigs.hs" 3 27 3 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 3 14 3 26, srcInfoPoints = []}) "TypeFamilies"]] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 1 10 0, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 9,SrcSpan "tests/examples/InstanceSigs.hs" 5 34 5 39,SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 3,SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 3,SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 3,SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 33, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 33, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23, srcInfoPoints = []}) "SupportsDelta"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 24 5 33, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 5 24 5 25,SrcSpan "tests/examples/InstanceSigs.hs" 5 32 5 33]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 32, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 30, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 29 5 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 29 5 30, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 31 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 31 5 32, srcInfoPoints = []}) "v")))))) (Just [InsType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 33, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 7,SrcSpan "tests/examples/InstanceSigs.hs" 6 24 6 25]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 23, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13, srcInfoPoints = []}) "Delta"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 14 6 23, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 6 14 6 15,SrcSpan "tests/examples/InstanceSigs.hs" 6 22 6 23]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 22, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 20, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 19 6 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 19 6 20, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 21 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 21 6 22, srcInfoPoints = []}) "v"))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 33, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 31, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 30 6 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 30 6 31, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 32 6 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 32 6 33, srcInfoPoints = []}) "v"))),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 51, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 8 11 8 13]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 51, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 8 11 8 13]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 10, srcInfoPoints = []}) "mkDelta"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 51, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 8 22 8 24]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 21, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 19, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 18 8 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 18 8 19, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 20 8 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 20 8 21, srcInfoPoints = []}) "v"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 51, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 8 33 8 35]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 32, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 30, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 29 8 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 29 8 30, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 31 8 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 31 8 32, srcInfoPoints = []}) "v"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 51, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41, srcInfoPoints = []}) "Delta"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 42 8 51, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 8 42 8 43,SrcSpan "tests/examples/InstanceSigs.hs" 8 50 8 51]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 50, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 48, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 46, srcInfoPoints = []}) "Map"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 47 8 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 47 8 48, srcInfoPoints = []}) "k"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 49 8 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 49 8 50, srcInfoPoints = []}) "v")))))))),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 22, srcInfoPoints = []}) (PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 22, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 10, srcInfoPoints = []}) "mkDelta")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 11 9 22, srcInfoPoints = [SrcSpan "tests/examples/InstanceSigs.hs" 9 11 9 12]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22, srcInfoPoints = []}) "undefined")))) Nothing)])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 1
+            , SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InstanceSigs.hs" 1 1 1 13
+                , SrcSpan "tests/examples/InstanceSigs.hs" 1 34 1 37
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 1 14 1 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InstanceSigs.hs" 2 1 2 13
+                , SrcSpan "tests/examples/InstanceSigs.hs" 2 27 2 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 2 14 2 26
+                , srcInfoPoints = []
+                }
+              "InstanceSigs"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InstanceSigs.hs" 3 1 3 13
+                , SrcSpan "tests/examples/InstanceSigs.hs" 3 27 3 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 3 14 3 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 1 10 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/InstanceSigs.hs" 5 1 5 9
+                , SrcSpan "tests/examples/InstanceSigs.hs" 5 34 5 39
+                , SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 3
+                , SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 3
+                , SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 3
+                , SrcSpan "tests/examples/InstanceSigs.hs" 10 1 10 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 33
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 33
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 10 5 23
+                           , srcInfoPoints = []
+                           }
+                         "SupportsDelta")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 24 5 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/InstanceSigs.hs" 5 24 5 25
+                         , SrcSpan "tests/examples/InstanceSigs.hs" 5 32 5 33
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 32
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 30
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/InstanceSigs.hs" 5 25 5 28
+                                    , srcInfoPoints = []
+                                    }
+                                  "Map")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 29 5 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 29 5 30
+                                 , srcInfoPoints = []
+                                 }
+                               "k")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 31 5 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 5 31 5 32
+                              , srcInfoPoints = []
+                              }
+                            "v"))))))
+          (Just
+             [ InsType
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InstanceSigs.hs" 6 3 6 7
+                       , SrcSpan "tests/examples/InstanceSigs.hs" 6 24 6 25
+                       ]
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 23
+                      , srcInfoPoints = []
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 8 6 13
+                               , srcInfoPoints = []
+                               }
+                             "Delta")))
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 14 6 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InstanceSigs.hs" 6 14 6 15
+                             , SrcSpan "tests/examples/InstanceSigs.hs" 6 22 6 23
+                             ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 22
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 20
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 6 15 6 18
+                                        , srcInfoPoints = []
+                                        }
+                                      "Map")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 19 6 20
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 6 19 6 20
+                                     , srcInfoPoints = []
+                                     }
+                                   "k")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 21 6 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 21 6 22
+                                  , srcInfoPoints = []
+                                  }
+                                "v")))))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 33
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 31
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 26 6 29
+                                  , srcInfoPoints = []
+                                  }
+                                "Map")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 30 6 31
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 30 6 31
+                               , srcInfoPoints = []
+                               }
+                             "k")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 32 6 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 6 32 6 33
+                            , srcInfoPoints = []
+                            }
+                          "v")))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 51
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/InstanceSigs.hs" 8 11 8 13 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 51
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/InstanceSigs.hs" 8 11 8 13 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 3 8 10
+                          , srcInfoPoints = []
+                          }
+                        "mkDelta"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 51
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InstanceSigs.hs" 8 22 8 24 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 21
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 19
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 14 8 17
+                                        , srcInfoPoints = []
+                                        }
+                                      "Map")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 18 8 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 18 8 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "k")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 20 8 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 20 8 21
+                                  , srcInfoPoints = []
+                                  }
+                                "v")))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 51
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/InstanceSigs.hs" 8 33 8 35 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 32
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 30
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InstanceSigs.hs" 8 25 8 28
+                                           , srcInfoPoints = []
+                                           }
+                                         "Map")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 29 8 30
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 29 8 30
+                                        , srcInfoPoints = []
+                                        }
+                                      "k")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 31 8 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 31 8 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "v")))
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 51
+                               , srcInfoPoints = []
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 36 8 41
+                                        , srcInfoPoints = []
+                                        }
+                                      "Delta")))
+                             (TyParen
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 8 42 8 51
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/InstanceSigs.hs" 8 42 8 43
+                                      , SrcSpan "tests/examples/InstanceSigs.hs" 8 50 8 51
+                                      ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 50
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 48
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 46
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/InstanceSigs.hs" 8 43 8 46
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/InstanceSigs.hs" 8 43 8 46
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Map")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InstanceSigs.hs" 8 47 8 48
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/InstanceSigs.hs" 8 47 8 48
+                                              , srcInfoPoints = []
+                                              }
+                                            "k")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/InstanceSigs.hs" 8 49 8 50
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/InstanceSigs.hs" 8 49 8 50
+                                           , srcInfoPoints = []
+                                           }
+                                         "v"))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 22
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 22
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 3 9 10
+                            , srcInfoPoints = []
+                            }
+                          "mkDelta"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 11 9 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/InstanceSigs.hs" 9 11 9 12 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/InstanceSigs.hs" 9 13 9 22
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/InstanceSigs.hs.prettyprinter.golden b/tests/examples/InstanceSigs.hs.prettyprinter.golden
--- a/tests/examples/InstanceSigs.hs.prettyprinter.golden
+++ b/tests/examples/InstanceSigs.hs.prettyprinter.golden
@@ -1,10 +1,9 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE InstanceSigs #-}
 {-# LANGUAGE TypeFamilies #-}
-module Main (main) where
- 
+
 instance SupportsDelta (Map k v) where
         type Delta (Map k v) = Map k v
-         
+        
         mkDelta :: Map k v -> Map k v -> Delta (Map k v)
         mkDelta = undefined
diff --git a/tests/examples/LambdaCase.hs.parser.golden b/tests/examples/LambdaCase.hs.parser.golden
--- a/tests/examples/LambdaCase.hs.parser.golden
+++ b/tests/examples/LambdaCase.hs.parser.golden
@@ -1,1 +1,254 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 1 9 1, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 1,SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 1,SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 1,SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 1,SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 1,SrcSpan "tests/examples/LambdaCase.hs" 9 1 9 1,SrcSpan "tests/examples/LambdaCase.hs" 9 1 9 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 24, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 7,SrcSpan "tests/examples/LambdaCase.hs" 2 19 2 24]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 2 8 2 18, srcInfoPoints = []}) "LambdaCase") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 28, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 13,SrcSpan "tests/examples/LambdaCase.hs" 1 25 1 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 14 1 24, srcInfoPoints = []}) "LambdaCase"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 6 22, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 4, srcInfoPoints = []}) "foo")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 5 6 22, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 4 5 4 6]}) (LCase (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 7 6 22, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 4 7 4 8,SrcSpan "tests/examples/LambdaCase.hs" 4 8 4 12,SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 9,SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 9,SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 0]}) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 22, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16, srcInfoPoints = []}) "Nothing")) []) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 17 5 22, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 5 17 5 19]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22, srcInfoPoints = []}) "e1")))) Nothing,Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 22, srcInfoPoints = []}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 13, srcInfoPoints = []}) "Just")) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 14 6 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 14 6 16, srcInfoPoints = []}) "e2")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 17 6 22, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 6 17 6 19]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22, srcInfoPoints = []}) "e2")))) Nothing])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 30, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 4, srcInfoPoints = []}) "bar")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 5 8 30, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 8 5 8 6]}) (LCase (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 7 8 30, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 8 7 8 8,SrcSpan "tests/examples/LambdaCase.hs" 8 12 8 16,SrcSpan "tests/examples/LambdaCase.hs" 8 17 8 18,SrcSpan "tests/examples/LambdaCase.hs" 8 29 8 30]}) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 19 8 28, srcInfoPoints = []}) (PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 19 8 20, srcInfoPoints = []})) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 21 8 28, srcInfoPoints = [SrcSpan "tests/examples/LambdaCase.hs" 8 21 8 23]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28, srcInfoPoints = []}) "True")))) Nothing])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 9 1 9 1
+            , SrcSpan "tests/examples/LambdaCase.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/LambdaCase.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/LambdaCase.hs" 2 19 2 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 2 8 2 18
+                 , srcInfoPoints = []
+                 }
+               "LambdaCase")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/LambdaCase.hs" 1 1 1 13
+                , SrcSpan "tests/examples/LambdaCase.hs" 1 25 1 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "LambdaCase"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 6 22
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 5 6 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/LambdaCase.hs" 4 5 4 6 ]
+               }
+             (LCase
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 4 7 6 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/LambdaCase.hs" 4 7 4 8
+                      , SrcSpan "tests/examples/LambdaCase.hs" 4 8 4 12
+                      , SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 9
+                      , SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 9
+                      , SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 0
+                      ]
+                  }
+                [ Alt
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 22
+                      , srcInfoPoints = []
+                      }
+                    (PApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 9 5 16
+                               , srcInfoPoints = []
+                               }
+                             "Nothing"))
+                       [])
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 17 5 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/LambdaCase.hs" 5 17 5 19 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 5 20 5 22
+                                  , srcInfoPoints = []
+                                  }
+                                "e1"))))
+                    Nothing
+                , Alt
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 22
+                      , srcInfoPoints = []
+                      }
+                    (PApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 9 6 13
+                               , srcInfoPoints = []
+                               }
+                             "Just"))
+                       [ PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 14 6 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 14 6 16
+                                , srcInfoPoints = []
+                                }
+                              "e2")
+                       ])
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 17 6 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/LambdaCase.hs" 6 17 6 19 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 6 20 6 22
+                                  , srcInfoPoints = []
+                                  }
+                                "e2"))))
+                    Nothing
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 1 8 4
+                  , srcInfoPoints = []
+                  }
+                "bar"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 5 8 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/LambdaCase.hs" 8 5 8 6 ]
+               }
+             (LCase
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 7 8 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/LambdaCase.hs" 8 7 8 8
+                      , SrcSpan "tests/examples/LambdaCase.hs" 8 12 8 16
+                      , SrcSpan "tests/examples/LambdaCase.hs" 8 17 8 18
+                      , SrcSpan "tests/examples/LambdaCase.hs" 8 29 8 30
+                      ]
+                  }
+                [ Alt
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 19 8 28
+                      , srcInfoPoints = []
+                      }
+                    (PWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 19 8 20
+                         , srcInfoPoints = []
+                         })
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 21 8 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/LambdaCase.hs" 8 21 8 23 ]
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/LambdaCase.hs" 8 24 8 28
+                                  , srcInfoPoints = []
+                                  }
+                                "True"))))
+                    Nothing
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/LanguagePragma.hs b/tests/examples/LanguagePragma.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/LanguagePragma.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE
+RecordWildCards
+ #-}
+main = print "hello"
diff --git a/tests/examples/LanguagePragma.hs.exactprinter.golden b/tests/examples/LanguagePragma.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/LanguagePragma.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/LanguagePragma.hs.parser.golden b/tests/examples/LanguagePragma.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/LanguagePragma.hs.parser.golden
@@ -0,0 +1,92 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/LanguagePragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 1
+            , SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 1
+            , SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 1
+            , SrcSpan "tests/examples/LanguagePragma.hs" 5 1 5 1
+            , SrcSpan "tests/examples/LanguagePragma.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 1 1 3 5
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/LanguagePragma.hs" 1 1 1 13
+                , SrcSpan "tests/examples/LanguagePragma.hs" 3 2 3 5
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 2 1 2 16
+                , srcInfoPoints = []
+                }
+              "RecordWildCards"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 1 4 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 6 4 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/LanguagePragma.hs" 4 6 4 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 8 4 21
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 8 4 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 8 4 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/LanguagePragma.hs" 4 8 4 13
+                           , srcInfoPoints = []
+                           }
+                         "print")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/LanguagePragma.hs" 4 14 4 21
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/LanguagePragma.hs" 4 14 4 21
+                        , srcInfoPoints = []
+                        }
+                      "hello"
+                      "hello"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/LanguagePragma.hs.prettyparser.golden b/tests/examples/LanguagePragma.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/LanguagePragma.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/LanguagePragma.hs.prettyprinter.golden b/tests/examples/LanguagePragma.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/LanguagePragma.hs.prettyprinter.golden
@@ -0,0 +1,2 @@
+{-# LANGUAGE RecordWildCards #-}
+main = print "hello"
diff --git a/tests/examples/Lib.hs b/tests/examples/Lib.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Lib.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE UnboxedSums, MagicHash #-}
+
+module Lib (flip, getInt) where
+
+import GHC.Exts
+import Prelude (Int)
+
+{-# NOINLINE flip #-}
+flip :: (# Int | Int# #) -> (# Int# | Int #)
+flip (# i | #) = (# | i #)
+flip (# | i #) = (# i | #)
+
+{-# NOINLINE getInt #-}
+getInt :: (# Int# | Int #) -> Int
+getInt (# i | #) = I# i
+getInt (# | i #) = i
+
diff --git a/tests/examples/Lib.hs.exactprinter.golden b/tests/examples/Lib.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Lib.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Lib.hs.parser.golden b/tests/examples/Lib.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Lib.hs.parser.golden
@@ -0,0 +1,672 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 1 1 18 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Lib.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Lib.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Lib.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Lib.hs" 5 1 5 1
+            , SrcSpan "tests/examples/Lib.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Lib.hs" 8 1 8 1
+            , SrcSpan "tests/examples/Lib.hs" 9 1 9 1
+            , SrcSpan "tests/examples/Lib.hs" 10 1 10 1
+            , SrcSpan "tests/examples/Lib.hs" 11 1 11 1
+            , SrcSpan "tests/examples/Lib.hs" 13 1 13 1
+            , SrcSpan "tests/examples/Lib.hs" 14 1 14 1
+            , SrcSpan "tests/examples/Lib.hs" 15 1 15 1
+            , SrcSpan "tests/examples/Lib.hs" 16 1 16 1
+            , SrcSpan "tests/examples/Lib.hs" 18 1 18 1
+            , SrcSpan "tests/examples/Lib.hs" 18 1 18 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 1 3 32
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Lib.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/Lib.hs" 3 27 3 32
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 8 3 11
+                 , srcInfoPoints = []
+                 }
+               "Lib")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 12 3 26
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Lib.hs" 3 12 3 13
+                        , SrcSpan "tests/examples/Lib.hs" 3 17 3 18
+                        , SrcSpan "tests/examples/Lib.hs" 3 25 3 26
+                        ]
+                    }
+                  [ EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 13 3 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 13 3 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 13 3 17
+                              , srcInfoPoints = []
+                              }
+                            "flip"))
+                  , EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 19 3 25
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 19 3 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 3 19 3 25
+                              , srcInfoPoints = []
+                              }
+                            "getInt"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 1 1 1 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Lib.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Lib.hs" 1 25 1 26
+                , SrcSpan "tests/examples/Lib.hs" 1 37 1 40
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "UnboxedSums"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 1 27 1 36
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 5 1 5 16
+                , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 5 1 5 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 5 8 5 16
+                  , srcInfoPoints = []
+                  }
+                "GHC.Exts"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 1 6 21
+                , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 6 1 6 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 8 6 15
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 16 6 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Lib.hs" 6 16 6 17
+                         , SrcSpan "tests/examples/Lib.hs" 6 20 6 21
+                         ]
+                     }
+                   False
+                   [ IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 17 6 20
+                         , srcInfoPoints = []
+                         }
+                       (NoNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 17 6 20
+                            , srcInfoPoints = []
+                            })
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 6 17 6 20
+                            , srcInfoPoints = []
+                            }
+                          "Int")
+                   ])
+          }
+      ]
+      [ InlineSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 8 1 8 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Lib.hs" 8 1 8 13
+                , SrcSpan "tests/examples/Lib.hs" 8 19 8 22
+                ]
+            }
+          False
+          Nothing
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 8 14 8 18
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 8 14 8 18
+                  , srcInfoPoints = []
+                  }
+                "flip"))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 1 9 45
+            , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 9 6 9 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 1 9 5
+                , srcInfoPoints = []
+                }
+              "flip"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 9 9 45
+               , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 9 26 9 28 ]
+               }
+             (TyUnboxedSum
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 9 9 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Lib.hs" 9 9 9 11
+                      , SrcSpan "tests/examples/Lib.hs" 9 16 9 17
+                      , SrcSpan "tests/examples/Lib.hs" 9 23 9 25
+                      ]
+                  }
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 12 9 15
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 12 9 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 12 9 15
+                            , srcInfoPoints = []
+                            }
+                          "Int"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 18 9 22
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 18 9 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 18 9 22
+                            , srcInfoPoints = []
+                            }
+                          "Int#"))
+                ])
+             (TyUnboxedSum
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 29 9 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Lib.hs" 9 29 9 31
+                      , SrcSpan "tests/examples/Lib.hs" 9 37 9 38
+                      , SrcSpan "tests/examples/Lib.hs" 9 43 9 45
+                      ]
+                  }
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 32 9 36
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 32 9 36
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 32 9 36
+                            , srcInfoPoints = []
+                            }
+                          "Int#"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 39 9 42
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 39 9 42
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 9 39 9 42
+                            , srcInfoPoints = []
+                            }
+                          "Int"))
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 1 11 27
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 1 10 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 1 10 5
+                   , srcInfoPoints = []
+                   }
+                 "flip")
+              [ PUnboxedSum
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 6 10 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Lib.hs" 10 6 10 8
+                        , SrcSpan "tests/examples/Lib.hs" 10 11 10 12
+                        , SrcSpan "tests/examples/Lib.hs" 10 13 10 15
+                        ]
+                    }
+                  0
+                  1
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 9 10 10
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 9 10 10
+                          , srcInfoPoints = []
+                          }
+                        "i"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 16 10 27
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 10 16 10 17 ]
+                   }
+                 (UnboxedSum
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 18 10 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Lib.hs" 10 18 10 20
+                          , SrcSpan "tests/examples/Lib.hs" 10 21 10 22
+                          , SrcSpan "tests/examples/Lib.hs" 10 25 10 27
+                          ]
+                      }
+                    1
+                    0
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 23 10 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 23 10 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 10 23 10 24
+                               , srcInfoPoints = []
+                               }
+                             "i")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 1 11 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 1 11 5
+                   , srcInfoPoints = []
+                   }
+                 "flip")
+              [ PUnboxedSum
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 6 11 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Lib.hs" 11 6 11 8
+                        , SrcSpan "tests/examples/Lib.hs" 11 9 11 10
+                        , SrcSpan "tests/examples/Lib.hs" 11 13 11 15
+                        ]
+                    }
+                  1
+                  0
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 11 11 12
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 11 11 12
+                          , srcInfoPoints = []
+                          }
+                        "i"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 16 11 27
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 11 16 11 17 ]
+                   }
+                 (UnboxedSum
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 18 11 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Lib.hs" 11 18 11 20
+                          , SrcSpan "tests/examples/Lib.hs" 11 23 11 24
+                          , SrcSpan "tests/examples/Lib.hs" 11 25 11 27
+                          ]
+                      }
+                    0
+                    1
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 21 11 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 21 11 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 11 21 11 22
+                               , srcInfoPoints = []
+                               }
+                             "i")))))
+              Nothing
+          ]
+      , InlineSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 13 1 13 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Lib.hs" 13 1 13 13
+                , SrcSpan "tests/examples/Lib.hs" 13 21 13 24
+                ]
+            }
+          False
+          Nothing
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 13 14 13 20
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 13 14 13 20
+                  , srcInfoPoints = []
+                  }
+                "getInt"))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 1 14 34
+            , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 14 8 14 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 1 14 7
+                , srcInfoPoints = []
+                }
+              "getInt"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 11 14 34
+               , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 14 28 14 30 ]
+               }
+             (TyUnboxedSum
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 11 14 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Lib.hs" 14 11 14 13
+                      , SrcSpan "tests/examples/Lib.hs" 14 19 14 20
+                      , SrcSpan "tests/examples/Lib.hs" 14 25 14 27
+                      ]
+                  }
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 14 14 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 14 14 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 14 14 18
+                            , srcInfoPoints = []
+                            }
+                          "Int#"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 21 14 24
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 21 14 24
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 21 14 24
+                            , srcInfoPoints = []
+                            }
+                          "Int"))
+                ])
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 31 14 34
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 31 14 34
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 14 31 14 34
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 1 16 21
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 1 15 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 1 15 7
+                   , srcInfoPoints = []
+                   }
+                 "getInt")
+              [ PUnboxedSum
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 8 15 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Lib.hs" 15 8 15 10
+                        , SrcSpan "tests/examples/Lib.hs" 15 13 15 14
+                        , SrcSpan "tests/examples/Lib.hs" 15 15 15 17
+                        ]
+                    }
+                  0
+                  1
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 11 15 12
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 11 15 12
+                          , srcInfoPoints = []
+                          }
+                        "i"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 18 15 24
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 15 18 15 19 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 20 15 24
+                      , srcInfoPoints = []
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 20 15 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 20 15 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 20 15 22
+                               , srcInfoPoints = []
+                               }
+                             "I#")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 23 15 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 23 15 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 15 23 15 24
+                               , srcInfoPoints = []
+                               }
+                             "i")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 1 16 21
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 1 16 7
+                   , srcInfoPoints = []
+                   }
+                 "getInt")
+              [ PUnboxedSum
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 8 16 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Lib.hs" 16 8 16 10
+                        , SrcSpan "tests/examples/Lib.hs" 16 11 16 12
+                        , SrcSpan "tests/examples/Lib.hs" 16 15 16 17
+                        ]
+                    }
+                  1
+                  0
+                  (PVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 13 16 14
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 13 16 14
+                          , srcInfoPoints = []
+                          }
+                        "i"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 18 16 21
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Lib.hs" 16 18 16 19 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 20 16 21
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 20 16 21
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Lib.hs" 16 20 16 21
+                            , srcInfoPoints = []
+                            }
+                          "i"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/Lib.hs.prettyparser.golden b/tests/examples/Lib.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Lib.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Lib.hs.prettyprinter.golden b/tests/examples/Lib.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Lib.hs.prettyprinter.golden
@@ -0,0 +1,16 @@
+{-# LANGUAGE UnboxedSums, MagicHash #-}
+module Lib (flip, getInt) where
+import GHC.Exts
+import Prelude (Int)
+
+{-# NOINLINE flip #-}
+
+flip :: (# Int | Int# #) -> (# Int# | Int #)
+flip (# i | #) = (# | i #)
+flip (# | i #) = (# i | #)
+
+{-# NOINLINE getInt #-}
+
+getInt :: (# Int# | Int #) -> Int
+getInt (# i | #) = I# i
+getInt (# | i #) = i
diff --git a/tests/examples/LineOptionsPragma.hs.parser.golden b/tests/examples/LineOptionsPragma.hs.parser.golden
--- a/tests/examples/LineOptionsPragma.hs.parser.golden
+++ b/tests/examples/LineOptionsPragma.hs.parser.golden
@@ -1,1 +1,52 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 1,SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 1,SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 1,SrcSpan "tests/examples/LineOptionsPragma.hs" 4 1 4 1,SrcSpan "tests/examples/LineOptionsPragma.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 18, srcInfoPoints = [SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 7,SrcSpan "tests/examples/LineOptionsPragma.hs" 3 13 3 18]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LineOptionsPragma.hs" 3 8 3 12, srcInfoPoints = []}) "Fail") Nothing Nothing)) [OptionsPragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 16, srcInfoPoints = [SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 13,SrcSpan "tests/examples/LineOptionsPragma.hs" 1 13 1 16]}) Nothing " "] [] [],[Comment True (SrcSpan "tests/examples/LineOptionsPragma.hs" 2 1 2 48) "# LINE 49 \"src/Language/C/Parser/Lexer.x\" #"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 1
+            , SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 1
+            , SrcSpan "tests/examples/LineOptionsPragma.hs" 4 1 4 1
+            , SrcSpan "tests/examples/LineOptionsPragma.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/LineOptionsPragma.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/LineOptionsPragma.hs" 3 13 3 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/LineOptionsPragma.hs" 3 8 3 12
+                 , srcInfoPoints = []
+                 }
+               "Fail")
+            Nothing
+            Nothing))
+      [ OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/LineOptionsPragma.hs" 1 1 1 13
+                , SrcSpan "tests/examples/LineOptionsPragma.hs" 1 13 1 16
+                ]
+            }
+          Nothing
+          ""
+      ]
+      []
+      []
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/LineOptionsPragma.hs" 2 1 2 48)
+        "# LINE 49 \"src/Language/C/Parser/Lexer.x\" #"
+    ]
+  )
diff --git a/tests/examples/List2.hs b/tests/examples/List2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/List2.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE TypeFamilyDependencies #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE GADTs #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Type.Family.List
+-- Copyright   :  Copyright (C) 2015 Kyle Carter
+-- License     :  BSD3
+--
+-- Maintainer  :  Kyle Carter <kylcarte@indiana.edu>
+-- Stability   :  experimental
+-- Portability :  RankNTypes
+--
+-- Convenient aliases and type families for working with
+-- type-level lists.
+----------------------------------------------------------------------------
+
+module Type.Family.List where
+
+type Ø    = '[]
+type (:<) = '(:)
+infixr 5 :<
+
diff --git a/tests/examples/List2.hs.exactprinter.golden b/tests/examples/List2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/List2.hs.exactprinter.golden
@@ -0,0 +1,36 @@
+{-# LANGUAGE TypeFamilyDependencies #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE GADTs #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Type.Family.List
+-- Copyright   :  Copyright (C) 2015 Kyle Carter
+-- License     :  BSD3
+--
+-- Maintainer  :  Kyle Carter <kylcarte@indiana.edu>
+-- Stability   :  experimental
+-- Portability :  RankNTypes
+--
+-- Convenient aliases and type families for working with
+-- type-level lists.
+----------------------------------------------------------------------------
+
+module Type.Family.List where
+
+type Ø    = '[]
+type :<   = ':
+infixr 5 :<
+
+
diff --git a/tests/examples/List2.hs.parser.golden b/tests/examples/List2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/List2.hs.parser.golden
@@ -0,0 +1,427 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 1 36 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/List2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/List2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/List2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/List2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/List2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/List2.hs" 6 1 6 1
+            , SrcSpan "tests/examples/List2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/List2.hs" 8 1 8 1
+            , SrcSpan "tests/examples/List2.hs" 9 1 9 1
+            , SrcSpan "tests/examples/List2.hs" 10 1 10 1
+            , SrcSpan "tests/examples/List2.hs" 11 1 11 1
+            , SrcSpan "tests/examples/List2.hs" 12 1 12 1
+            , SrcSpan "tests/examples/List2.hs" 13 1 13 1
+            , SrcSpan "tests/examples/List2.hs" 14 1 14 1
+            , SrcSpan "tests/examples/List2.hs" 15 1 15 1
+            , SrcSpan "tests/examples/List2.hs" 30 1 30 1
+            , SrcSpan "tests/examples/List2.hs" 30 1 30 1
+            , SrcSpan "tests/examples/List2.hs" 32 1 32 1
+            , SrcSpan "tests/examples/List2.hs" 33 1 33 1
+            , SrcSpan "tests/examples/List2.hs" 34 1 34 1
+            , SrcSpan "tests/examples/List2.hs" 36 1 36 1
+            , SrcSpan "tests/examples/List2.hs" 36 1 36 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 30 1 30 30
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/List2.hs" 30 1 30 7
+                  , SrcSpan "tests/examples/List2.hs" 30 25 30 30
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 30 8 30 24
+                 , srcInfoPoints = []
+                 }
+               "Type.Family.List")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 1 1 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/List2.hs" 1 37 1 40
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 1 14 1 36
+                , srcInfoPoints = []
+                }
+              "TypeFamilyDependencies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 2 1 2 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 2 1 2 13
+                , SrcSpan "tests/examples/List2.hs" 2 30 2 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 2 14 2 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 3 1 3 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 3 1 3 13
+                , SrcSpan "tests/examples/List2.hs" 3 30 3 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 3 14 3 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 4 1 4 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 4 1 4 13
+                , SrcSpan "tests/examples/List2.hs" 4 25 4 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 4 14 4 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 5 1 5 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 5 1 5 13
+                , SrcSpan "tests/examples/List2.hs" 5 33 5 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 5 14 5 32
+                , srcInfoPoints = []
+                }
+              "StandaloneDeriving"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 6 1 6 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 6 1 6 13
+                , SrcSpan "tests/examples/List2.hs" 6 32 6 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 6 14 6 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 7 1 7 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 7 1 7 13
+                , SrcSpan "tests/examples/List2.hs" 7 37 7 40
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 7 14 7 36
+                , srcInfoPoints = []
+                }
+              "FunctionalDependencies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 8 1 8 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 8 1 8 13
+                , SrcSpan "tests/examples/List2.hs" 8 35 8 38
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 8 14 8 34
+                , srcInfoPoints = []
+                }
+              "UndecidableInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 9 1 9 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 9 1 9 13
+                , SrcSpan "tests/examples/List2.hs" 9 27 9 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 9 14 9 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 10 1 10 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 10 1 10 13
+                , SrcSpan "tests/examples/List2.hs" 10 25 10 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 10 14 10 24
+                , srcInfoPoints = []
+                }
+              "LambdaCase"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 11 1 11 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 11 1 11 13
+                , SrcSpan "tests/examples/List2.hs" 11 28 11 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 11 14 11 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 12 1 12 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 12 1 12 13
+                , SrcSpan "tests/examples/List2.hs" 12 29 12 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 12 14 12 28
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 13 1 13 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 13 1 13 13
+                , SrcSpan "tests/examples/List2.hs" 13 24 13 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 13 14 13 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 14 1 14 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 14 1 14 13
+                , SrcSpan "tests/examples/List2.hs" 14 24 14 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 14 14 14 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 15 1 15 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 15 1 15 13
+                , SrcSpan "tests/examples/List2.hs" 15 20 15 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 15 14 15 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 1 32 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 32 1 32 5
+                , SrcSpan "tests/examples/List2.hs" 32 11 32 12
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 6 32 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 6 32 7
+                  , srcInfoPoints = []
+                  }
+                "\216"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 13 32 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/List2.hs" 32 13 32 14
+                   , SrcSpan "tests/examples/List2.hs" 32 15 32 16
+                   ]
+               }
+             (PromotedList
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 32 13 32 16
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/List2.hs" 32 13 32 14
+                      , SrcSpan "tests/examples/List2.hs" 32 15 32 16
+                      ]
+                  }
+                True
+                []))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 1 33 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/List2.hs" 33 1 33 5
+                , SrcSpan "tests/examples/List2.hs" 33 11 33 12
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 6 33 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/List2.hs" 33 6 33 7
+                   , SrcSpan "tests/examples/List2.hs" 33 7 33 9
+                   , SrcSpan "tests/examples/List2.hs" 33 9 33 10
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 7 33 9
+                  , srcInfoPoints = []
+                  }
+                ":<"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 13 33 17
+               , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 33 13 33 14 ]
+               }
+             (PromotedCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 13 33 17
+                  , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 33 13 33 14 ]
+                  }
+                True
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 14 33 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/List2.hs" 33 14 33 15
+                         , SrcSpan "tests/examples/List2.hs" 33 15 33 16
+                         , SrcSpan "tests/examples/List2.hs" 33 16 33 17
+                         ]
+                     }
+                   (Cons
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 33 15 33 16
+                        , srcInfoPoints = []
+                        }))))
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 1 34 12
+            , srcInfoPoints = [ SrcSpan "tests/examples/List2.hs" 34 8 34 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 1 34 7
+               , srcInfoPoints = []
+               })
+          (Just 5)
+          [ ConOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 10 34 12
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/List2.hs" 34 10 34 12
+                   , srcInfoPoints = []
+                   }
+                 ":<")
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 16 1 16 78)
+        "---------------------------------------------------------------------------"
+    , Comment False (SrcSpan "tests/examples/List2.hs" 17 1 17 5) " |"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 18 1 18 35)
+        " Module      :  Type.Family.List"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 19 1 19 49)
+        " Copyright   :  Copyright (C) 2015 Kyle Carter"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 20 1 20 23)
+        " License     :  BSD3"
+    , Comment False (SrcSpan "tests/examples/List2.hs" 21 1 21 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 22 1 22 53)
+        " Maintainer  :  Kyle Carter <kylcarte@indiana.edu>"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 23 1 23 31)
+        " Stability   :  experimental"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 24 1 24 29)
+        " Portability :  RankNTypes"
+    , Comment False (SrcSpan "tests/examples/List2.hs" 25 1 25 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 26 1 26 57)
+        " Convenient aliases and type families for working with"
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 27 1 27 21)
+        " type-level lists."
+    , Comment
+        False
+        (SrcSpan "tests/examples/List2.hs" 28 1 28 77)
+        "--------------------------------------------------------------------------"
+    ]
+  )
diff --git a/tests/examples/List2.hs.prettyparser.golden b/tests/examples/List2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/List2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/List2.hs.prettyprinter.golden b/tests/examples/List2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/List2.hs.prettyprinter.golden
@@ -0,0 +1,22 @@
+{-# LANGUAGE TypeFamilyDependencies #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE GADTs #-}
+module Type.Family.List where
+
+type Ø = '[]
+
+type (:<) = '(:)
+
+infixr 5 :<
diff --git a/tests/examples/MagicHashN.hs b/tests/examples/MagicHashN.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashN.hs
@@ -0,0 +1,7 @@
+{-# LANGUAGE MagicHash #-}
+module MagicHashN where
+
+a# = 1
+b## = 2
+c### = 3
+main = print (a#, b##, c###)
diff --git a/tests/examples/MagicHashN.hs.exactprinter.golden b/tests/examples/MagicHashN.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashN.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MagicHashN.hs.parser.golden b/tests/examples/MagicHashN.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashN.hs.parser.golden
@@ -0,0 +1,262 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MagicHashN.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 4 1 4 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 5 1 5 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 6 1 6 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 7 1 7 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 8 1 8 1
+            , SrcSpan "tests/examples/MagicHashN.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 2 1 2 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/MagicHashN.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/MagicHashN.hs" 2 19 2 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 2 8 2 18
+                 , srcInfoPoints = []
+                 }
+               "MagicHashN")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MagicHashN.hs" 1 1 1 13
+                , SrcSpan "tests/examples/MagicHashN.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 1 4 7
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 1 4 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 1 4 3
+                  , srcInfoPoints = []
+                  }
+                "a#"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 4 4 7
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MagicHashN.hs" 4 4 4 5 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 6 4 7
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 4 6 4 7
+                     , srcInfoPoints = []
+                     }
+                   1
+                   "1")))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 1 5 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 1 5 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 1 5 4
+                  , srcInfoPoints = []
+                  }
+                "b##"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 5 5 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MagicHashN.hs" 5 5 5 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 7 5 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 5 7 5 8
+                     , srcInfoPoints = []
+                     }
+                   2
+                   "2")))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 1 6 9
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 1 6 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 1 6 5
+                  , srcInfoPoints = []
+                  }
+                "c###"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 6 6 9
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MagicHashN.hs" 6 6 6 7 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 8 6 9
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 6 8 6 9
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 1 7 29
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 1 7 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 1 7 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 6 7 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MagicHashN.hs" 7 6 7 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 8 7 29
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 8 7 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 8 7 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 8 7 13
+                           , srcInfoPoints = []
+                           }
+                         "print")))
+                (Tuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 14 7 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/MagicHashN.hs" 7 14 7 15
+                         , SrcSpan "tests/examples/MagicHashN.hs" 7 17 7 18
+                         , SrcSpan "tests/examples/MagicHashN.hs" 7 22 7 23
+                         , SrcSpan "tests/examples/MagicHashN.hs" 7 28 7 29
+                         ]
+                     }
+                   Boxed
+                   [ Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 15 7 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 15 7 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 15 7 17
+                               , srcInfoPoints = []
+                               }
+                             "a#"))
+                   , Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 19 7 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 19 7 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 19 7 22
+                               , srcInfoPoints = []
+                               }
+                             "b##"))
+                   , Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 24 7 28
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 24 7 28
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MagicHashN.hs" 7 24 7 28
+                               , srcInfoPoints = []
+                               }
+                             "c###"))
+                   ])))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/MagicHashN.hs.prettyparser.golden b/tests/examples/MagicHashN.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashN.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MagicHashN.hs.prettyprinter.golden b/tests/examples/MagicHashN.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashN.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE MagicHash #-}
+module MagicHashN where
+a# = 1
+b## = 2
+c### = 3
+main = print (a#, b##, c###)
diff --git a/tests/examples/MagicHashUnboxedTuples.hs b/tests/examples/MagicHashUnboxedTuples.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashUnboxedTuples.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE MagicHash, UnboxedTuples #-}
+module MagicHashUnboxedTuples where
+
+f (#x, y #) = (# a#, b #) where
+  a# = a#
+  b = b
diff --git a/tests/examples/MagicHashUnboxedTuples.hs.exactprinter.golden b/tests/examples/MagicHashUnboxedTuples.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashUnboxedTuples.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MagicHashUnboxedTuples.hs.parser.golden b/tests/examples/MagicHashUnboxedTuples.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashUnboxedTuples.hs.parser.golden
@@ -0,0 +1,286 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 1 4 1
+            , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 7 1 7 1
+            , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 1 2 36
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 31 2 36
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 2 8 2 30
+                 , srcInfoPoints = []
+                 }
+               "MagicHashUnboxedTuples")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 1 1 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 1 1 13
+                , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 23 1 24
+                , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 39 1 42
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 1 25 1 38
+                , srcInfoPoints = []
+                }
+              "UnboxedTuples"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 1 6 8
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 27 4 32 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 1 6 8
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 27 4 32 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 3 4 12
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 3 4 5
+                        , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 6 4 7
+                        , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 10 4 12
+                        ]
+                    }
+                  Unboxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 5 4 6
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 5 4 6
+                           , srcInfoPoints = []
+                           }
+                         "x")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 8 4 9
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 8 4 9
+                           , srcInfoPoints = []
+                           }
+                         "y")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 13 4 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 13 4 14 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 15 4 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 15 4 17
+                          , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 20 4 21
+                          , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 24 4 26
+                          ]
+                      }
+                    Unboxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 18 4 20
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 18 4 20
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 18 4 20
+                                , srcInfoPoints = []
+                                }
+                              "a#"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 22 4 23
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 22 4 23
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 4 22 4 23
+                                , srcInfoPoints = []
+                                }
+                              "b"))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 3 6 8
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 3 5 3
+                          , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 3 6 3
+                          , SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 7 1 7 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 3 5 10
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 3 5 5
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 3 5 5
+                                , srcInfoPoints = []
+                                }
+                              "a#"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 6 5 10
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 6 5 7 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 8 5 10
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 5 8 5 10
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/MagicHashUnboxedTuples.hs" 5 8 5 10
+                                      , srcInfoPoints = []
+                                      }
+                                    "a#"))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 3 6 8
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 3 6 4
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 3 6 4
+                                , srcInfoPoints = []
+                                }
+                              "b"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 5 6 8
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 5 6 6 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 7 6 8
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 7 6 8
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MagicHashUnboxedTuples.hs" 6 7 6 8
+                                      , srcInfoPoints = []
+                                      }
+                                    "b"))))
+                        Nothing
+                    ]))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/MagicHashUnboxedTuples.hs.prettyparser.golden b/tests/examples/MagicHashUnboxedTuples.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashUnboxedTuples.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MagicHashUnboxedTuples.hs.prettyprinter.golden b/tests/examples/MagicHashUnboxedTuples.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MagicHashUnboxedTuples.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE MagicHash, UnboxedTuples #-}
+module MagicHashUnboxedTuples where
+f (# x, y #) = (# a#, b #)
+  where a# = a#
+        b = b
diff --git a/tests/examples/MinimalPragma.hs.parser.golden b/tests/examples/MinimalPragma.hs.parser.golden
--- a/tests/examples/MinimalPragma.hs.parser.golden
+++ b/tests/examples/MinimalPragma.hs.parser.golden
@@ -1,1 +1,581 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1,SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1,SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1,SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 1,SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 1]}) Nothing [] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 1 6 33, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 6,SrcSpan "tests/examples/MinimalPragma.hs" 1 12 1 17,SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 6,SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 6,SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 6,SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 6,SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 6,SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 11, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 9, srcInfoPoints = []}) "Eq")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 10 1 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 10 1 11, srcInfoPoints = []}) "a"))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 2 11 2 13]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 2 11 2 13]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 10, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 7,SrcSpan "tests/examples/MinimalPragma.hs" 2 7 2 9,SrcSpan "tests/examples/MinimalPragma.hs" 2 9 2 10]}) "=="] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 2 16 2 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 15, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 2 21 2 23]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 20, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28, srcInfoPoints = []}) "Bool")))))),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 3 11 3 13]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 3 11 3 13]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 10, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 7,SrcSpan "tests/examples/MinimalPragma.hs" 3 7 3 9,SrcSpan "tests/examples/MinimalPragma.hs" 3 9 3 10]}) "/="] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 3 16 3 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 15, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 28, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 3 21 3 23]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 20, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28, srcInfoPoints = []}) "Bool")))))),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 7, srcInfoPoints = []}) "x")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 8 4 10, srcInfoPoints = []}) "==") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 11 4 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 11 4 12, srcInfoPoints = []}) "y")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 13 4 27, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 4 13 4 14]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18, srcInfoPoints = []}) "not"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 19 4 27, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 4 19 4 20,SrcSpan "tests/examples/MinimalPragma.hs" 4 26 4 27]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 21, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 22 4 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 22 4 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 22 4 24, srcInfoPoints = []}) "/="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 25 4 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 25 4 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 25 4 26, srcInfoPoints = []}) "y"))))))) Nothing]),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 7, srcInfoPoints = []}) "x")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 8 5 10, srcInfoPoints = []}) "/=") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 11 5 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 11 5 12, srcInfoPoints = []}) "y")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 13 5 27, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 5 13 5 14]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18, srcInfoPoints = []}) "not"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 19 5 27, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 5 19 5 20,SrcSpan "tests/examples/MinimalPragma.hs" 5 26 5 27]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 21, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 22 5 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 22 5 24, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 22 5 24, srcInfoPoints = []}) "=="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 25 5 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 25 5 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 25 5 26, srcInfoPoints = []}) "y"))))))) Nothing]),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 33, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 17,SrcSpan "tests/examples/MinimalPragma.hs" 6 30 6 33]}) (MinimalPragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 33, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 17,SrcSpan "tests/examples/MinimalPragma.hs" 6 30 6 33]}) (Just (OrFormula (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 29, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 23 6 24]}) [VarFormula (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 22, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 19,SrcSpan "tests/examples/MinimalPragma.hs" 6 19 6 21,SrcSpan "tests/examples/MinimalPragma.hs" 6 21 6 22]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 22, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 19,SrcSpan "tests/examples/MinimalPragma.hs" 6 19 6 21,SrcSpan "tests/examples/MinimalPragma.hs" 6 21 6 22]}) "=="),VarFormula (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 29, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 26,SrcSpan "tests/examples/MinimalPragma.hs" 6 26 6 28,SrcSpan "tests/examples/MinimalPragma.hs" 6 28 6 29]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 29, srcInfoPoints = [SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 26,SrcSpan "tests/examples/MinimalPragma.hs" 6 26 6 28,SrcSpan "tests/examples/MinimalPragma.hs" 6 28 6 29]}) "/=")])))])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 1
+            , SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 1 6 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MinimalPragma.hs" 1 1 1 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 1 12 1 17
+                , SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 6
+                , SrcSpan "tests/examples/MinimalPragma.hs" 8 1 8 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 7 1 9
+                     , srcInfoPoints = []
+                     }
+                   "Eq"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 10 1 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 1 10 1 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/MinimalPragma.hs" 2 11 2 13 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MinimalPragma.hs" 2 11 2 13 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 10
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/MinimalPragma.hs" 2 6 2 7
+                              , SrcSpan "tests/examples/MinimalPragma.hs" 2 7 2 9
+                              , SrcSpan "tests/examples/MinimalPragma.hs" 2 9 2 10
+                              ]
+                          }
+                        "=="
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MinimalPragma.hs" 2 16 2 18 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 14 2 15
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/MinimalPragma.hs" 2 21 2 23 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/MinimalPragma.hs" 2 19 2 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/MinimalPragma.hs" 2 24 2 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/MinimalPragma.hs" 3 11 3 13 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MinimalPragma.hs" 3 11 3 13 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 10
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/MinimalPragma.hs" 3 6 3 7
+                              , SrcSpan "tests/examples/MinimalPragma.hs" 3 7 3 9
+                              , SrcSpan "tests/examples/MinimalPragma.hs" 3 9 3 10
+                              ]
+                          }
+                        "/="
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MinimalPragma.hs" 3 16 3 18 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 14 3 15
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/MinimalPragma.hs" 3 21 3 23 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/MinimalPragma.hs" 3 19 3 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/MinimalPragma.hs" 3 24 3 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 27
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 6 4 7
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 8 4 10
+                             , srcInfoPoints = []
+                             }
+                           "==")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 11 4 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 11 4 12
+                                 , srcInfoPoints = []
+                                 }
+                               "y")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 13 4 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MinimalPragma.hs" 4 13 4 14 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 27
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 4 15 4 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "not")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 4 19 4 27
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MinimalPragma.hs" 4 19 4 20
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 4 26 4 27
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 21
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 4 20 4 21
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 4 20 4 21
+                                               , srcInfoPoints = []
+                                               }
+                                             "x")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 4 22 4 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 4 22 4 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 4 22 4 24
+                                               , srcInfoPoints = []
+                                               }
+                                             "/=")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 4 25 4 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 4 25 4 26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 4 25 4 26
+                                               , srcInfoPoints = []
+                                               }
+                                             "y")))))))
+                        Nothing
+                    ])
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27
+                      , srcInfoPoints = []
+                      }
+                    [ InfixMatch
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 27
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 6 5 7
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                        (Symbol
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 8 5 10
+                             , srcInfoPoints = []
+                             }
+                           "/=")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 11 5 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 11 5 12
+                                 , srcInfoPoints = []
+                                 }
+                               "y")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 13 5 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MinimalPragma.hs" 5 13 5 14 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 27
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 5 15 5 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "not")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 5 19 5 27
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MinimalPragma.hs" 5 19 5 20
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 5 26 5 27
+                                       ]
+                                   }
+                                 (InfixApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 21
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 5 20 5 21
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 5 20 5 21
+                                               , srcInfoPoints = []
+                                               }
+                                             "x")))
+                                    (QVarOp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 5 22 5 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 5 22 5 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Symbol
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 5 22 5 24
+                                               , srcInfoPoints = []
+                                               }
+                                             "==")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/MinimalPragma.hs" 5 25 5 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/MinimalPragma.hs" 5 25 5 26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/MinimalPragma.hs" 5 25 5 26
+                                               , srcInfoPoints = []
+                                               }
+                                             "y")))))))
+                        Nothing
+                    ])
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 17
+                       , SrcSpan "tests/examples/MinimalPragma.hs" 6 30 6 33
+                       ]
+                   }
+                 (MinimalPragma
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 33
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MinimalPragma.hs" 6 6 6 17
+                          , SrcSpan "tests/examples/MinimalPragma.hs" 6 30 6 33
+                          ]
+                      }
+                    (Just
+                       (OrFormula
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 29
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/MinimalPragma.hs" 6 23 6 24 ]
+                            }
+                          [ VarFormula
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 22
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 19
+                                    , SrcSpan "tests/examples/MinimalPragma.hs" 6 19 6 21
+                                    , SrcSpan "tests/examples/MinimalPragma.hs" 6 21 6 22
+                                    ]
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 22
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MinimalPragma.hs" 6 18 6 19
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 6 19 6 21
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 6 21 6 22
+                                       ]
+                                   }
+                                 "==")
+                          , VarFormula
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 29
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 26
+                                    , SrcSpan "tests/examples/MinimalPragma.hs" 6 26 6 28
+                                    , SrcSpan "tests/examples/MinimalPragma.hs" 6 28 6 29
+                                    ]
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 29
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MinimalPragma.hs" 6 25 6 26
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 6 26 6 28
+                                       , SrcSpan "tests/examples/MinimalPragma.hs" 6 28 6 29
+                                       ]
+                                   }
+                                 "/=")
+                          ])))
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/MinimalPragma.hs.prettyprinter.golden b/tests/examples/MinimalPragma.hs.prettyprinter.golden
--- a/tests/examples/MinimalPragma.hs.prettyprinter.golden
+++ b/tests/examples/MinimalPragma.hs.prettyprinter.golden
@@ -1,11 +1,8 @@
-module Main (main) where
- 
 class Eq a where
-         
         (==) :: a -> a -> Bool
-         
+        
         (/=) :: a -> a -> Bool
         x == y = not (x /= y)
         x /= y = not (x == y)
-         
+        
         {-# MINIMAL (==) | (/=) #-}
diff --git a/tests/examples/MultiCtxt.hs.parser.golden b/tests/examples/MultiCtxt.hs.parser.golden
--- a/tests/examples/MultiCtxt.hs.parser.golden
+++ b/tests/examples/MultiCtxt.hs.parser.golden
@@ -1,1 +1,231 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 1,SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 1,SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 1,SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 1,SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 1,SrcSpan "tests/examples/MultiCtxt.hs" 7 1 7 1,SrcSpan "tests/examples/MultiCtxt.hs" 7 1 7 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 23, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 7,SrcSpan "tests/examples/MultiCtxt.hs" 3 18 3 23]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 3 8 3 17, srcInfoPoints = []}) "MultiCtxt") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 28, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 13,SrcSpan "tests/examples/MultiCtxt.hs" 1 25 1 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 14 1 24, srcInfoPoints = []}) "RankNTypes"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 37, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 13 5 15]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 12, srcInfoPoints = []}) "multipleCtx"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 37, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 19 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 19 5 20, srcInfoPoints = []}) "a")]))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 24 5 37, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 24 5 25,SrcSpan "tests/examples/MultiCtxt.hs" 5 36 5 37]}) (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 36, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29, srcInfoPoints = []}) "Show")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 30 5 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 30 5 31, srcInfoPoints = []}) "a")]))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 35 5 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 35 5 36, srcInfoPoints = []}) "a"))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 24, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 12, srcInfoPoints = []}) "multipleCtx")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 13 6 24, srcInfoPoints = [SrcSpan "tests/examples/MultiCtxt.hs" 6 13 6 14]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24, srcInfoPoints = []}) "undefined")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 7 1 7 1
+            , SrcSpan "tests/examples/MultiCtxt.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 23
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/MultiCtxt.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/MultiCtxt.hs" 3 18 3 23
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 3 8 3 17
+                 , srcInfoPoints = []
+                 }
+               "MultiCtxt")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiCtxt.hs" 1 1 1 13
+                , SrcSpan "tests/examples/MultiCtxt.hs" 1 25 1 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiCtxt.hs" 5 13 5 15 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 1 5 12
+                , srcInfoPoints = []
+                }
+              "multipleCtx"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 37
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18
+                                    , srcInfoPoints = []
+                                    }
+                                  "Eq")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 19 5 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 19 5 20
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 24 5 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiCtxt.hs" 5 24 5 25
+                      , SrcSpan "tests/examples/MultiCtxt.hs" 5 36 5 37
+                      ]
+                  }
+                (TyForall
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 36
+                     , srcInfoPoints = []
+                     }
+                   Nothing
+                   (Just
+                      (CxSingle
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]
+                           }
+                         (TypeA
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]
+                              }
+                            (TyApp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]
+                                 }
+                               (TyCon
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29
+                                          , srcInfoPoints = []
+                                          }
+                                        "Show")))
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 30 5 31
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiCtxt.hs" 5 30 5 31
+                                       , srcInfoPoints = []
+                                       }
+                                     "a"))))))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 35 5 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 35 5 36
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 24
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 1 6 12
+                  , srcInfoPoints = []
+                  }
+                "multipleCtx"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 13 6 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiCtxt.hs" 6 13 6 14 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 6 15 6 24
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/MultiCtxt.hs.prettyprinter.golden b/tests/examples/MultiCtxt.hs.prettyprinter.golden
--- a/tests/examples/MultiCtxt.hs.prettyprinter.golden
+++ b/tests/examples/MultiCtxt.hs.prettyprinter.golden
@@ -1,5 +1,5 @@
 {-# LANGUAGE RankNTypes #-}
 module MultiCtxt where
- 
+
 multipleCtx :: Eq a => (Show a => a)
 multipleCtx = undefined
diff --git a/tests/examples/MultiLinePragma.hs b/tests/examples/MultiLinePragma.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiLinePragma.hs
@@ -0,0 +1,14 @@
+{-# OPTIONS_GHC
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a #-}
+main :: IO ()
+main = dat
diff --git a/tests/examples/MultiLinePragma.hs.exactprinter.golden b/tests/examples/MultiLinePragma.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiLinePragma.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MultiLinePragma.hs.parser.golden b/tests/examples/MultiLinePragma.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiLinePragma.hs.parser.golden
@@ -0,0 +1,145 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/MultiLinePragma.hs" 1 1 15 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MultiLinePragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 13 1 13 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 13 1 13 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 13 1 13 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 14 1 14 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 15 1 15 1
+            , SrcSpan "tests/examples/MultiLinePragma.hs" 15 1 15 1
+            ]
+        }
+      Nothing
+      [ OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/MultiLinePragma.hs" 1 1 12 11
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiLinePragma.hs" 1 1 12 8
+                , SrcSpan "tests/examples/MultiLinePragma.hs" 12 8 12 11
+                ]
+            }
+          (Just GHC)
+          "\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a\n    -a "
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/MultiLinePragma.hs" 13 1 13 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiLinePragma.hs" 13 6 13 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/MultiLinePragma.hs" 13 1 13 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/MultiLinePragma.hs" 13 9 13 14
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/MultiLinePragma.hs" 13 9 13 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/MultiLinePragma.hs" 13 9 13 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/MultiLinePragma.hs" 13 9 13 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 13
+                      , SrcSpan "tests/examples/MultiLinePragma.hs" 13 13 13 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 13
+                         , SrcSpan "tests/examples/MultiLinePragma.hs" 13 13 13 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/MultiLinePragma.hs" 13 12 13 13
+                            , SrcSpan "tests/examples/MultiLinePragma.hs" 13 13 13 14
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/MultiLinePragma.hs" 14 1 14 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/MultiLinePragma.hs" 14 1 14 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/MultiLinePragma.hs" 14 1 14 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/MultiLinePragma.hs" 14 6 14 11
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiLinePragma.hs" 14 6 14 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/MultiLinePragma.hs" 14 8 14 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/MultiLinePragma.hs" 14 8 14 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/MultiLinePragma.hs" 14 8 14 11
+                        , srcInfoPoints = []
+                        }
+                      "dat"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/MultiLinePragma.hs.prettyparser.golden b/tests/examples/MultiLinePragma.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiLinePragma.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MultiLinePragma.hs.prettyprinter.golden b/tests/examples/MultiLinePragma.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiLinePragma.hs.prettyprinter.golden
@@ -0,0 +1,15 @@
+{-# OPTIONS_GHC
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a
+    -a #-}
+
+main :: IO ()
+main = dat
diff --git a/tests/examples/MultiParam.hs b/tests/examples/MultiParam.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiParam.hs
@@ -0,0 +1,4 @@
+module MultiParam where
+
+foo :: MonadError e m => e -> m ()
+foo = undefined
diff --git a/tests/examples/MultiParam.hs.exactprinter.golden b/tests/examples/MultiParam.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiParam.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MultiParam.hs.parser.golden b/tests/examples/MultiParam.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiParam.hs.parser.golden
@@ -0,0 +1,215 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MultiParam.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MultiParam.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MultiParam.hs" 3 1 3 1
+            , SrcSpan "tests/examples/MultiParam.hs" 4 1 4 1
+            , SrcSpan "tests/examples/MultiParam.hs" 5 1 5 1
+            , SrcSpan "tests/examples/MultiParam.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 1 1 1 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/MultiParam.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/MultiParam.hs" 1 19 1 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 1 8 1 18
+                 , srcInfoPoints = []
+                 }
+               "MultiParam")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 1 3 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiParam.hs" 3 5 3 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 1 3 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 35
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 18
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiParam.hs" 3 8 3 18
+                                       , srcInfoPoints = []
+                                       }
+                                     "MonadError")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 19 3 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 19 3 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "e")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 21 3 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 21 3 22
+                                 , srcInfoPoints = []
+                                 }
+                               "m"))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 26 3 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiParam.hs" 3 28 3 30 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 26 3 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 26 3 27
+                        , srcInfoPoints = []
+                        }
+                      "e"))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 31 3 35
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 31 3 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 31 3 32
+                           , srcInfoPoints = []
+                           }
+                         "m"))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 33 3 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/MultiParam.hs" 3 33 3 34
+                            , SrcSpan "tests/examples/MultiParam.hs" 3 34 3 35
+                            ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 33 3 35
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/MultiParam.hs" 3 33 3 34
+                               , SrcSpan "tests/examples/MultiParam.hs" 3 34 3 35
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 33 3 35
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/MultiParam.hs" 3 33 3 34
+                                  , SrcSpan "tests/examples/MultiParam.hs" 3 34 3 35
+                                  ]
+                              }))))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 1 4 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 5 4 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiParam.hs" 4 5 4 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 7 4 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 7 4 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 4 7 4 16
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/MultiParam.hs.prettyparser.golden b/tests/examples/MultiParam.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiParam.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/MultiParam.hs.prettyprinter.golden b/tests/examples/MultiParam.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/MultiParam.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+module MultiParam where
+
+foo :: MonadError e m => e -> m ()
+foo = undefined
diff --git a/tests/examples/MultiWayIf.hs.parser.golden b/tests/examples/MultiWayIf.hs.parser.golden
--- a/tests/examples/MultiWayIf.hs.parser.golden
+++ b/tests/examples/MultiWayIf.hs.parser.golden
@@ -1,1 +1,1685 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 1 31 1, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 1,SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 1,SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 1,SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 1,SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 1,SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 1,SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 1,SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 1,SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 1,SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 1,SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 1,SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 1,SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 1,SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 1,SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 1,SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 24, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 7,SrcSpan "tests/examples/MultiWayIf.hs" 2 19 2 24]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 2 8 2 18, srcInfoPoints = []}) "MultiWayIf") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 28, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 13,SrcSpan "tests/examples/MultiWayIf.hs" 1 25 1 28]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 14 1 24, srcInfoPoints = []}) "MultiWayIf"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 6 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 4, srcInfoPoints = []}) "foo")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 5 6 28, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 4 5 4 6]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 7 6 28, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 4 7 4 9,SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 10,SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 10,SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 10,SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 23, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 11,SrcSpan "tests/examples/MultiWayIf.hs" 4 18 4 20]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17, srcInfoPoints = []}) "test1")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23, srcInfoPoints = []}) "e1"))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 31, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 11,SrcSpan "tests/examples/MultiWayIf.hs" 5 26 5 28]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 25, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 25, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17, srcInfoPoints = []}) "test2"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25, srcInfoPoints = []}) "witharg"))))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31, srcInfoPoints = []}) "e2"))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 28, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 11,SrcSpan "tests/examples/MultiWayIf.hs" 6 22 6 24]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21, srcInfoPoints = []}) "otherwise")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28, srcInfoPoints = []}) "def")))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 11 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 4, srcInfoPoints = []}) "bar")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 5 11 11, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 8 5 8 6]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 7 11 11, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 8 7 8 9,SrcSpan "tests/examples/MultiWayIf.hs" 8 10 8 11,SrcSpan "tests/examples/MultiWayIf.hs" 11 10 11 11]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 12 9 43, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 8 12 8 13,SrcSpan "tests/examples/MultiWayIf.hs" 8 20 8 22]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19, srcInfoPoints = []}) "test1")))] (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 23 9 43, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 8 23 8 25,SrcSpan "tests/examples/MultiWayIf.hs" 8 26 8 27,SrcSpan "tests/examples/MultiWayIf.hs" 9 42 9 43]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 28 8 41, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 8 28 8 29,SrcSpan "tests/examples/MultiWayIf.hs" 8 36 8 38]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35, srcInfoPoints = []}) "test2")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41, srcInfoPoints = []}) "e1"))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 28 9 41, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 9 28 9 29,SrcSpan "tests/examples/MultiWayIf.hs" 9 36 9 38]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35, srcInfoPoints = []}) "test3")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41, srcInfoPoints = []}) "e2")))]),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 12 10 25, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 10 12 10 13,SrcSpan "tests/examples/MultiWayIf.hs" 10 20 10 22]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19, srcInfoPoints = []}) "test4")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25, srcInfoPoints = []}) "e3")))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 8, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 4 14 8, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 14 4 14 5]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 6 14 8, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 6 14 8, srcInfoPoints = []}) 10 "10"))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 45, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 3, srcInfoPoints = []}) "x1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 4 15 45, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 15 4 15 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 6 15 45, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 15 6 15 8,SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 9,SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 10,SrcSpan "tests/examples/MultiWayIf.hs" 15 18 15 20]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 17, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14, srcInfoPoints = []}) "<"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 15 15 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 15 15 17, srcInfoPoints = []}) 10 "10")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 21 15 27, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 21 15 27, srcInfoPoints = []}) "< 10" "< 10")),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 28 15 45, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 15 28 15 29,SrcSpan "tests/examples/MultiWayIf.hs" 15 40 15 42]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39, srcInfoPoints = []}) "otherwise")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 43 15 45, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 43 15 45, srcInfoPoints = []}) "" ""))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 17 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 3, srcInfoPoints = []}) "x2")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 4 17 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 16 4 16 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 6 17 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 16 6 16 8,SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 9,SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 9,SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 10,SrcSpan "tests/examples/MultiWayIf.hs" 16 18 16 20]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 17, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14, srcInfoPoints = []}) "<"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 15 16 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 15 16 17, srcInfoPoints = []}) 10 "10")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 21 16 27, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 21 16 27, srcInfoPoints = []}) "< 10" "< 10")),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 10,SrcSpan "tests/examples/MultiWayIf.hs" 17 21 17 23]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20, srcInfoPoints = []}) "otherwise")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 24 17 26, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 24 17 26, srcInfoPoints = []}) "" ""))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 19 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 3, srcInfoPoints = []}) "x3")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 4 19 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 18 4 18 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 6 19 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 18 6 18 8,SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 9,SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 9,SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 10,SrcSpan "tests/examples/MultiWayIf.hs" 18 18 18 20]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 17, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14, srcInfoPoints = []}) "<"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 15 18 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 15 18 17, srcInfoPoints = []}) 10 "10")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 21 18 27, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 21 18 27, srcInfoPoints = []}) "< 10" "< 10")),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 26, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 10,SrcSpan "tests/examples/MultiWayIf.hs" 19 21 19 23]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20, srcInfoPoints = []}) "otherwise")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 24 19 26, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 24 19 26, srcInfoPoints = []}) "" ""))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 24, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 3, srcInfoPoints = []}) "x4")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 4 20 24, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 20 4 20 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 6 20 24, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 20 6 20 8,SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 9,SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 24, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 10,SrcSpan "tests/examples/MultiWayIf.hs" 20 16 20 18]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15, srcInfoPoints = []}) "True")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 19 20 24, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 19 20 24, srcInfoPoints = []}) "yes" "yes"))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 46, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 3, srcInfoPoints = []}) "x5")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 4 21 46, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 4 21 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 6 21 46, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 6 21 8,SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 9,SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 46, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 10,SrcSpan "tests/examples/MultiWayIf.hs" 21 16 21 18]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15, srcInfoPoints = []}) "True")))] (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 19 21 46, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 19 21 21,SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 22,SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 34, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 23,SrcSpan "tests/examples/MultiWayIf.hs" 21 30 21 32]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29, srcInfoPoints = []}) "False")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 33 21 34, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 33 21 34, srcInfoPoints = []}) 1 "1")),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 35 21 46, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 21 35 21 36,SrcSpan "tests/examples/MultiWayIf.hs" 21 42 21 44]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41, srcInfoPoints = []}) "True")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 45 21 46, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 45 21 46, srcInfoPoints = []}) 2 "2"))])])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 25 31, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 3, srcInfoPoints = []}) "x6")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 4 25 31, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 23 4 23 5]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 6 25 31, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 23 6 23 8,SrcSpan "tests/examples/MultiWayIf.hs" 23 9 23 9,SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 9,SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 9 24 39, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 23 9 23 10,SrcSpan "tests/examples/MultiWayIf.hs" 23 18 23 20]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 17, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14, srcInfoPoints = []}) "<"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 15 23 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 15 23 17, srcInfoPoints = []}) 10 "10")))] (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 21 24 39, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 23 21 23 23,SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 24,SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 24,SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 39, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 25,SrcSpan "tests/examples/MultiWayIf.hs" 23 31 23 33]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30, srcInfoPoints = []}) "True")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 34 23 39, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 34 23 39, srcInfoPoints = []}) "yes" "yes")),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 39, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 25,SrcSpan "tests/examples/MultiWayIf.hs" 24 32 24 34]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31, srcInfoPoints = []}) "False")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 35 24 39, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 35 24 39, srcInfoPoints = []}) "no" "no"))]),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 31, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 10,SrcSpan "tests/examples/MultiWayIf.hs" 25 21 25 23]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20, srcInfoPoints = []}) "otherwise")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 24 25 31, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 24 25 31, srcInfoPoints = []}) "maybe" "maybe"))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 22, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 3, srcInfoPoints = []}) "x7")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 4 27 22, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 27 4 27 5]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 6 27 22, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 27 6 27 7,SrcSpan "tests/examples/MultiWayIf.hs" 27 21 27 22]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 7 27 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 27 7 27 9,SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 10,SrcSpan "tests/examples/MultiWayIf.hs" 27 21 27 21]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 11,SrcSpan "tests/examples/MultiWayIf.hs" 27 17 27 19]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16, srcInfoPoints = []}) "True")))] (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 20 27 21, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 20 27 21, srcInfoPoints = []}) 0 "0"))]))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 5, srcInfoPoints = []}) "spam")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 6 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 6 30 7]}) (MultiIf (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 8 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 8 30 10,SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 11,SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 0]}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 12,SrcSpan "tests/examples/MultiWayIf.hs" 30 22 30 24]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 16 30 18]}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14,SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14,SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14,SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15]}))) []) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20,SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20,SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20,SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21]}))))] (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26,SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26,SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27, srcInfoPoints = [SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26,SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27]}))))])) Nothing],[Comment False (SrcSpan "tests/examples/MultiWayIf.hs" 13 1 13 31) " taken from GHC's test suite",Comment False (SrcSpan "tests/examples/MultiWayIf.hs" 29 1 29 13) " issue #98"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 1 31 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 1
+            , SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/MultiWayIf.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/MultiWayIf.hs" 2 19 2 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 2 8 2 18
+                 , srcInfoPoints = []
+                 }
+               "MultiWayIf")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/MultiWayIf.hs" 1 1 1 13
+                , SrcSpan "tests/examples/MultiWayIf.hs" 1 25 1 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "MultiWayIf"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 6 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 1 4 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 5 6 28
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 4 5 4 6 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 7 6 28
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 4 7 4 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 10
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 10
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 10
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 23
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 4 10 4 11
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 4 18 4 20
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 12 4 17
+                                   , srcInfoPoints = []
+                                   }
+                                 "test1")))
+                    ]
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 4 21 4 23
+                               , srcInfoPoints = []
+                               }
+                             "e1")))
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 5 10 5 11
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 5 26 5 28
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 25
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 25
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 5 12 5 17
+                                      , srcInfoPoints = []
+                                      }
+                                    "test2")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 5 18 5 25
+                                      , srcInfoPoints = []
+                                      }
+                                    "witharg"))))
+                    ]
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 5 29 5 31
+                               , srcInfoPoints = []
+                               }
+                             "e2")))
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 6 10 6 11
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 6 22 6 24
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 12 6 21
+                                   , srcInfoPoints = []
+                                   }
+                                 "otherwise")))
+                    ]
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 6 25 6 28
+                               , srcInfoPoints = []
+                               }
+                             "def")))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 11 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 1 8 4
+                  , srcInfoPoints = []
+                  }
+                "bar"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 5 11 11
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 8 5 8 6 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 7 11 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 8 7 8 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 8 10 8 11
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 11 10 11 11
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 12 9 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 8 12 8 13
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 8 20 8 22
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 14 8 19
+                                   , srcInfoPoints = []
+                                   }
+                                 "test1")))
+                    ]
+                    (MultiIf
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 23 9 43
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MultiWayIf.hs" 8 23 8 25
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 8 26 8 27
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 9 42 9 43
+                             ]
+                         }
+                       [ GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 28 8 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 8 28 8 29
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 8 36 8 38
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35
+                                 , srcInfoPoints = []
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 8 30 8 35
+                                          , srcInfoPoints = []
+                                          }
+                                        "test2")))
+                           ]
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 8 39 8 41
+                                      , srcInfoPoints = []
+                                      }
+                                    "e1")))
+                       , GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 28 9 41
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 9 28 9 29
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 9 36 9 38
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35
+                                 , srcInfoPoints = []
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 9 30 9 35
+                                          , srcInfoPoints = []
+                                          }
+                                        "test3")))
+                           ]
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 9 39 9 41
+                                      , srcInfoPoints = []
+                                      }
+                                    "e2")))
+                       ])
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 12 10 25
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 10 12 10 13
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 10 20 10 22
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 10 14 10 19
+                                   , srcInfoPoints = []
+                                   }
+                                 "test4")))
+                    ]
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 10 23 10 25
+                               , srcInfoPoints = []
+                               }
+                             "e3")))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 1 14 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 4 14 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 14 4 14 5 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 6 14 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 14 6 14 8
+                     , srcInfoPoints = []
+                     }
+                   10
+                   "10")))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 45
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 1 15 3
+                  , srcInfoPoints = []
+                  }
+                "x1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 4 15 45
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 15 4 15 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 6 15 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 15 6 15 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 15 9 15 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 15 18 15 20
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 17
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 17
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 15 11 15 12
+                                      , srcInfoPoints = []
+                                      }
+                                    "x")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 15 13 15 14
+                                      , srcInfoPoints = []
+                                      }
+                                    "<")))
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 15 15 17
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 15 15 15 17
+                                   , srcInfoPoints = []
+                                   }
+                                 10
+                                 "10")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 21 15 27
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 21 15 27
+                            , srcInfoPoints = []
+                            }
+                          "< 10"
+                          "< 10"))
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 28 15 45
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 15 28 15 29
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 15 40 15 42
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 15 30 15 39
+                                   , srcInfoPoints = []
+                                   }
+                                 "otherwise")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 43 15 45
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 15 43 15 45
+                            , srcInfoPoints = []
+                            }
+                          ""
+                          ""))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 17 26
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 1 16 3
+                  , srcInfoPoints = []
+                  }
+                "x2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 4 17 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 16 4 16 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 6 17 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 16 6 16 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 16 9 16 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 16 18 16 20
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 17
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 17
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 16 11 16 12
+                                      , srcInfoPoints = []
+                                      }
+                                    "x")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 16 13 16 14
+                                      , srcInfoPoints = []
+                                      }
+                                    "<")))
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 15 16 17
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 16 15 16 17
+                                   , srcInfoPoints = []
+                                   }
+                                 10
+                                 "10")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 21 16 27
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 16 21 16 27
+                            , srcInfoPoints = []
+                            }
+                          "< 10"
+                          "< 10"))
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 17 9 17 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 17 21 17 23
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 17 11 17 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "otherwise")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 24 17 26
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 17 24 17 26
+                            , srcInfoPoints = []
+                            }
+                          ""
+                          ""))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 19 26
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 1 18 3
+                  , srcInfoPoints = []
+                  }
+                "x3"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 4 19 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 18 4 18 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 6 19 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 18 6 18 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 18 9 18 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 18 18 18 20
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 17
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 17
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 18 11 18 12
+                                      , srcInfoPoints = []
+                                      }
+                                    "x")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 18 13 18 14
+                                      , srcInfoPoints = []
+                                      }
+                                    "<")))
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 15 18 17
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 18 15 18 17
+                                   , srcInfoPoints = []
+                                   }
+                                 10
+                                 "10")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 21 18 27
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 18 21 18 27
+                            , srcInfoPoints = []
+                            }
+                          "< 10"
+                          "< 10"))
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 19 9 19 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 19 21 19 23
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 19 11 19 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "otherwise")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 24 19 26
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 19 24 19 26
+                            , srcInfoPoints = []
+                            }
+                          ""
+                          ""))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 24
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 1 20 3
+                  , srcInfoPoints = []
+                  }
+                "x4"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 4 20 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 20 4 20 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 6 20 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 20 6 20 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 20 9 20 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 20 16 20 18
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15
+                          , srcInfoPoints = []
+                          }
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 20 11 20 15
+                                   , srcInfoPoints = []
+                                   }
+                                 "True")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 19 20 24
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 20 19 20 24
+                            , srcInfoPoints = []
+                            }
+                          "yes"
+                          "yes"))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 46
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 1 21 3
+                  , srcInfoPoints = []
+                  }
+                "x5"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 4 21 46
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 21 4 21 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 6 21 46
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 21 6 21 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 46
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 21 9 21 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 21 16 21 18
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15
+                          , srcInfoPoints = []
+                          }
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 21 11 21 15
+                                   , srcInfoPoints = []
+                                   }
+                                 "True")))
+                    ]
+                    (MultiIf
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 19 21 46
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MultiWayIf.hs" 21 19 21 21
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 22
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 0
+                             ]
+                         }
+                       [ GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 21 22 21 23
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 21 30 21 32
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29
+                                 , srcInfoPoints = []
+                                 }
+                               (Con
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 21 24 21 29
+                                          , srcInfoPoints = []
+                                          }
+                                        "False")))
+                           ]
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 33 21 34
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 21 33 21 34
+                                   , srcInfoPoints = []
+                                   }
+                                 1
+                                 "1"))
+                       , GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 35 21 46
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 21 35 21 36
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 21 42 21 44
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41
+                                 , srcInfoPoints = []
+                                 }
+                               (Con
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 21 37 21 41
+                                          , srcInfoPoints = []
+                                          }
+                                        "True")))
+                           ]
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 21 45 21 46
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 21 45 21 46
+                                   , srcInfoPoints = []
+                                   }
+                                 2
+                                 "2"))
+                       ])
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 25 31
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 1 23 3
+                  , srcInfoPoints = []
+                  }
+                "x6"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 4 25 31
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 23 4 23 5 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 6 25 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 23 6 23 8
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 23 9 23 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 9
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 9 24 39
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 23 9 23 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 23 18 23 20
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 17
+                          , srcInfoPoints = []
+                          }
+                        (InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 17
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 23 11 23 12
+                                      , srcInfoPoints = []
+                                      }
+                                    "x")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 23 13 23 14
+                                      , srcInfoPoints = []
+                                      }
+                                    "<")))
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 15 23 17
+                                , srcInfoPoints = []
+                                }
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 23 15 23 17
+                                   , srcInfoPoints = []
+                                   }
+                                 10
+                                 "10")))
+                    ]
+                    (MultiIf
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 21 24 39
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MultiWayIf.hs" 23 21 23 23
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 24
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 24
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 0
+                             ]
+                         }
+                       [ GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 23 24 23 25
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 23 31 23 33
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30
+                                 , srcInfoPoints = []
+                                 }
+                               (Con
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 23 26 23 30
+                                          , srcInfoPoints = []
+                                          }
+                                        "True")))
+                           ]
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 23 34 23 39
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 23 34 23 39
+                                   , srcInfoPoints = []
+                                   }
+                                 "yes"
+                                 "yes"))
+                       , GuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 24 24 24 25
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 24 32 24 34
+                                 ]
+                             }
+                           [ Qualifier
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31
+                                 , srcInfoPoints = []
+                                 }
+                               (Con
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/MultiWayIf.hs" 24 26 24 31
+                                          , srcInfoPoints = []
+                                          }
+                                        "False")))
+                           ]
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 24 35 24 39
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 24 35 24 39
+                                   , srcInfoPoints = []
+                                   }
+                                 "no"
+                                 "no"))
+                       ])
+                , GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 25 9 25 10
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 25 21 25 23
+                          ]
+                      }
+                    [ Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 25 11 25 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "otherwise")))
+                    ]
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 24 25 31
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 25 24 25 31
+                            , srcInfoPoints = []
+                            }
+                          "maybe"
+                          "maybe"))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 22
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 1 27 3
+                  , srcInfoPoints = []
+                  }
+                "x7"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 4 27 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 27 4 27 5 ]
+               }
+             (Paren
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 6 27 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 27 6 27 7
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 27 21 27 22
+                      ]
+                  }
+                (MultiIf
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 7 27 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/MultiWayIf.hs" 27 7 27 9
+                         , SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 10
+                         , SrcSpan "tests/examples/MultiWayIf.hs" 27 21 27 21
+                         ]
+                     }
+                   [ GuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MultiWayIf.hs" 27 10 27 11
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 27 17 27 19
+                             ]
+                         }
+                       [ Qualifier
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16
+                             , srcInfoPoints = []
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/MultiWayIf.hs" 27 12 27 16
+                                      , srcInfoPoints = []
+                                      }
+                                    "True")))
+                       ]
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 20 27 21
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 27 20 27 21
+                               , srcInfoPoints = []
+                               }
+                             0
+                             "0"))
+                   ])))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 1 30 5
+                  , srcInfoPoints = []
+                  }
+                "spam"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 6 30 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/MultiWayIf.hs" 30 6 30 7 ]
+               }
+             (MultiIf
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 8 30 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/MultiWayIf.hs" 30 8 30 10
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 11
+                      , SrcSpan "tests/examples/MultiWayIf.hs" 31 1 31 0
+                      ]
+                  }
+                [ GuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/MultiWayIf.hs" 30 11 30 12
+                          , SrcSpan "tests/examples/MultiWayIf.hs" 30 22 30 24
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 21
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/MultiWayIf.hs" 30 16 30 18 ]
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15
+                                 ]
+                             }
+                           (Special
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14
+                                    , SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15
+                                    ]
+                                }
+                              (UnitCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 15
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MultiWayIf.hs" 30 13 30 14
+                                       , SrcSpan "tests/examples/MultiWayIf.hs" 30 14 30 15
+                                       ]
+                                   }))
+                           [])
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20
+                                 , SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21
+                                 ]
+                             }
+                           (Special
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20
+                                    , SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21
+                                    ]
+                                }
+                              (UnitCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 21
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/MultiWayIf.hs" 30 19 30 20
+                                       , SrcSpan "tests/examples/MultiWayIf.hs" 30 20 30 21
+                                       ]
+                                   })))
+                    ]
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26
+                             , SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27
+                             ]
+                         }
+                       (Special
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26
+                                , SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27
+                                ]
+                            }
+                          (UnitCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/MultiWayIf.hs" 30 25 30 26
+                                   , SrcSpan "tests/examples/MultiWayIf.hs" 30 26 30 27
+                                   ]
+                               })))
+                ]))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/MultiWayIf.hs" 13 1 13 31)
+        " taken from GHC's test suite"
+    , Comment
+        False
+        (SrcSpan "tests/examples/MultiWayIf.hs" 29 1 29 13)
+        " issue #98"
+    ]
+  )
diff --git a/tests/examples/NPlusK.hs.parser.golden b/tests/examples/NPlusK.hs.parser.golden
--- a/tests/examples/NPlusK.hs.parser.golden
+++ b/tests/examples/NPlusK.hs.parser.golden
@@ -1,1 +1,97 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/NPlusK.hs" 1 1 1 1,SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1,SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1,SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1,SrcSpan "tests/examples/NPlusK.hs" 4 1 4 1,SrcSpan "tests/examples/NPlusK.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/NPlusK.hs" 1 1 1 13,SrcSpan "tests/examples/NPlusK.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 14 1 28, srcInfoPoints = []}) "NPlusKPatterns"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 12, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 3 3 8, srcInfoPoints = [SrcSpan "tests/examples/NPlusK.hs" 3 3 3 4,SrcSpan "tests/examples/NPlusK.hs" 3 7 3 8]}) (PNPlusK (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 4 3 7, srcInfoPoints = [SrcSpan "tests/examples/NPlusK.hs" 3 5 3 6,SrcSpan "tests/examples/NPlusK.hs" 3 6 3 7]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 4 3 5, srcInfoPoints = []}) "n") 3)] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 9 3 12, srcInfoPoints = [SrcSpan "tests/examples/NPlusK.hs" 3 9 3 10]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12, srcInfoPoints = []}) "n")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/NPlusK.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1
+            , SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1
+            , SrcSpan "tests/examples/NPlusK.hs" 3 1 3 1
+            , SrcSpan "tests/examples/NPlusK.hs" 4 1 4 1
+            , SrcSpan "tests/examples/NPlusK.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NPlusK.hs" 1 1 1 13
+                , SrcSpan "tests/examples/NPlusK.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "NPlusKPatterns"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 12
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 12
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 1 3 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 3 3 8
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NPlusK.hs" 3 3 3 4
+                        , SrcSpan "tests/examples/NPlusK.hs" 3 7 3 8
+                        ]
+                    }
+                  (PNPlusK
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 4 3 7
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/NPlusK.hs" 3 5 3 6
+                           , SrcSpan "tests/examples/NPlusK.hs" 3 6 3 7
+                           ]
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 4 3 5
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                     3)
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 9 3 12
+                   , srcInfoPoints = [ SrcSpan "tests/examples/NPlusK.hs" 3 9 3 10 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/NPlusK.hs" 3 11 3 12
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/NPlusK.hs.prettyprinter.golden b/tests/examples/NPlusK.hs.prettyprinter.golden
--- a/tests/examples/NPlusK.hs.prettyprinter.golden
+++ b/tests/examples/NPlusK.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE NPlusKPatterns #-}
-module Main (main) where
 f (n + 3) = n
diff --git a/tests/examples/NegPrimWordLiteral.hs.parser.golden b/tests/examples/NegPrimWordLiteral.hs.parser.golden
--- a/tests/examples/NegPrimWordLiteral.hs.parser.golden
+++ b/tests/examples/NegPrimWordLiteral.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/NegPrimWordLiteral.hs" 3 1) "Parse error: negative primitive word literal: - 9223372036854775808##"
+ParseFailed
+  (SrcLoc "tests/examples/NegPrimWordLiteral.hs" 3 1)
+  "Parse error: negative primitive word literal: - 9223372036854775808##"
diff --git a/tests/examples/NegativePatterns.hs.parser.golden b/tests/examples/NegativePatterns.hs.parser.golden
--- a/tests/examples/NegativePatterns.hs.parser.golden
+++ b/tests/examples/NegativePatterns.hs.parser.golden
@@ -1,1 +1,1052 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 1 16 1, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1,SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1,SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1,SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 1,SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 1,SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 1,SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 1,SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 1,SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 1,SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 1,SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 1,SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 1,SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 1,SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 1,SrcSpan "tests/examples/NegativePatterns.hs" 16 1 16 1,SrcSpan "tests/examples/NegativePatterns.hs" 16 1 16 1]}) Nothing [] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 1 4 15, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 2, srcInfoPoints = []}) "f") [PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4, srcInfoPoints = []}) (Signless (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4, srcInfoPoints = []})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4, srcInfoPoints = []}) 1 "1")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 5 1 9, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 1 5 1 6]}) (NegApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 7 1 9, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 1 7 1 8]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 8 1 9, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 1 8 1 9, srcInfoPoints = []}) 1 "1")))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 3 2 7, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 2 3 2 4,SrcSpan "tests/examples/NegativePatterns.hs" 2 6 2 7]}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 6, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 5 2 6, srcInfoPoints = []}) 1 "1"))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 8 2 11, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 2 8 2 9]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 10 2 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 2 10 2 11, srcInfoPoints = []}) 1 "1"))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 3 3 9, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 3 3 3 4,SrcSpan "tests/examples/NegativePatterns.hs" 3 8 3 9]}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 8, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 7 3 8, srcInfoPoints = []}) 2 "2"))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 10 3 13, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 3 10 3 11]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 12 3 13, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 3 12 3 13, srcInfoPoints = []}) 2 "2"))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 3 4 11, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 4 3 4 4,SrcSpan "tests/examples/NegativePatterns.hs" 4 10 4 11]}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 10, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 9 4 10, srcInfoPoints = []}) 3 "3"))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 12 4 15, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 4 12 4 13]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 14 4 15, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 4 14 4 15, srcInfoPoints = []}) 3 "3"))) Nothing],DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 45, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 6 10 6 11,SrcSpan "tests/examples/NegativePatterns.hs" 6 23 6 24,SrcSpan "tests/examples/NegativePatterns.hs" 6 34 6 35]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 9, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 7, srcInfoPoints = []}) "Z")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 8 6 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 8 6 9, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 22, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 18, srcInfoPoints = []}) "Higher") [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 19 6 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 19 6 20, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 21 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 21 6 22, srcInfoPoints = []}) "a")]),QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 33, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 29, srcInfoPoints = []}) "Same") [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 30 6 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 30 6 31, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 32 6 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 32 6 33, srcInfoPoints = []}) "a")]),QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 45, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 41, srcInfoPoints = []}) "Lower") [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 42 6 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 42 6 43, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 44 6 45, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 6 44 6 45, srcInfoPoints = []}) "a")])] Nothing,InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 18, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 8 8 8 9]}) (AssocRight (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 7, srcInfoPoints = []})) (Just 7) [ConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 18, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 11,SrcSpan "tests/examples/NegativePatterns.hs" 8 11 8 17,SrcSpan "tests/examples/NegativePatterns.hs" 8 17 8 18]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 18, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 11,SrcSpan "tests/examples/NegativePatterns.hs" 8 11 8 17,SrcSpan "tests/examples/NegativePatterns.hs" 8 17 8 18]}) "Higher")],InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 16, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 9 8 9 9]}) (AssocRight (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 7, srcInfoPoints = []})) (Just 6) [ConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 16, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 11,SrcSpan "tests/examples/NegativePatterns.hs" 9 11 9 15,SrcSpan "tests/examples/NegativePatterns.hs" 9 15 9 16]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 16, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 11,SrcSpan "tests/examples/NegativePatterns.hs" 9 11 9 15,SrcSpan "tests/examples/NegativePatterns.hs" 9 15 9 16]}) "Same")],InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 10 8 10 9]}) (AssocRight (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 7, srcInfoPoints = []})) (Just 5) [ConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 11,SrcSpan "tests/examples/NegativePatterns.hs" 10 11 10 16,SrcSpan "tests/examples/NegativePatterns.hs" 10 16 10 17]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 11,SrcSpan "tests/examples/NegativePatterns.hs" 10 11 10 16,SrcSpan "tests/examples/NegativePatterns.hs" 10 16 10 17]}) "Lower")],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 12 3 12 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 2, srcInfoPoints = []}) "g"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 12 12 12 14]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 11, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7, srcInfoPoints = []}) "Z"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11, srcInfoPoints = []}) "Int")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16,SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16,SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16,SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17]}))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 1 15 27, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 2, srcInfoPoints = []}) "g") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 3 13 22, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 3 13 4,SrcSpan "tests/examples/NegativePatterns.hs" 13 21 13 22]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 21, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 9, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 8 13 9, srcInfoPoints = []}) 1 "1")) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 10 13 18, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 10 13 11,SrcSpan "tests/examples/NegativePatterns.hs" 13 11 13 17,SrcSpan "tests/examples/NegativePatterns.hs" 13 17 13 18]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 11 13 17, srcInfoPoints = []}) "Higher")) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 20 13 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 20 13 21, srcInfoPoints = []}) "x")))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 23 13 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 23 13 24]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26,SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26,SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26,SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27]}))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 2, srcInfoPoints = []}) "g") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 3 14 22, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 3 14 4,SrcSpan "tests/examples/NegativePatterns.hs" 14 21 14 22]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 21, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 10, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 9 14 10, srcInfoPoints = []}) 2 "2")) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 11 14 17, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 11 14 12,SrcSpan "tests/examples/NegativePatterns.hs" 14 12 14 16,SrcSpan "tests/examples/NegativePatterns.hs" 14 16 14 17]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 12 14 16, srcInfoPoints = []}) "Same")) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 20 14 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 20 14 21, srcInfoPoints = []}) "x")))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 23 14 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 23 14 24]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26,SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26,SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26,SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27]}))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 2, srcInfoPoints = []}) "g") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 3 15 22, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 3 15 4,SrcSpan "tests/examples/NegativePatterns.hs" 15 21 15 22]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 21, srcInfoPoints = []}) (PLit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 11, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6]}) (Negative (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6]})) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 10 15 11, srcInfoPoints = []}) 3 "3")) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 12 15 19, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 12 15 13,SrcSpan "tests/examples/NegativePatterns.hs" 15 13 15 18,SrcSpan "tests/examples/NegativePatterns.hs" 15 18 15 19]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 13 15 18, srcInfoPoints = []}) "Lower")) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 20 15 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 20 15 21, srcInfoPoints = []}) "x")))] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 23 15 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 23 15 24]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26,SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26,SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27, srcInfoPoints = [SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26,SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27]}))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/NegativePatterns.hs" 1 1 16 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 16 1 16 1
+            , SrcSpan "tests/examples/NegativePatterns.hs" 16 1 16 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 1 1 4 15
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 9
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 1 1 1 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PLit
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4
+                    , srcInfoPoints = []
+                    }
+                  (Signless
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4
+                       , srcInfoPoints = []
+                       })
+                  (Int
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 1 3 1 4
+                       , srcInfoPoints = []
+                       }
+                     1
+                     "1")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 1 5 1 9
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 1 5 1 6 ]
+                   }
+                 (NegApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 1 7 1 9
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/NegativePatterns.hs" 1 7 1 8 ]
+                      }
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 1 8 1 9
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/NegativePatterns.hs" 1 8 1 9
+                            , srcInfoPoints = []
+                            }
+                          1
+                          "1"))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 11
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 2 1 2 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 2 3 2 7
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 2 3 2 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 2 6 2 7
+                        ]
+                    }
+                  (PLit
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 6
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5 ]
+                       }
+                     (Negative
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 2 4 2 5 ]
+                          })
+                     (Int
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 2 5 2 6
+                          , srcInfoPoints = []
+                          }
+                        1
+                        "1"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 2 8 2 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 2 8 2 9 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 2 10 2 11
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 2 10 2 11
+                         , srcInfoPoints = []
+                         }
+                       1
+                       "1")))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 13
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 3 1 3 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 3 3 3 9
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 3 3 3 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 3 8 3 9
+                        ]
+                    }
+                  (PLit
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 8
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6 ]
+                       }
+                     (Negative
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 3 5 3 6 ]
+                          })
+                     (Int
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 3 7 3 8
+                          , srcInfoPoints = []
+                          }
+                        2
+                        "2"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 3 10 3 13
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 3 10 3 11 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 3 12 3 13
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 3 12 3 13
+                         , srcInfoPoints = []
+                         }
+                       2
+                       "2")))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 15
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 4 3 4 11
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 4 3 4 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 4 10 4 11
+                        ]
+                    }
+                  (PLit
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 10
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7 ]
+                       }
+                     (Negative
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 4 6 4 7 ]
+                          })
+                     (Int
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 4 9 4 10
+                          , srcInfoPoints = []
+                          }
+                        3
+                        "3"))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 4 12 4 15
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 4 12 4 13 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 4 14 4 15
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 4 14 4 15
+                         , srcInfoPoints = []
+                         }
+                       3
+                       "3")))
+              Nothing
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NegativePatterns.hs" 6 10 6 11
+                , SrcSpan "tests/examples/NegativePatterns.hs" 6 23 6 24
+                , SrcSpan "tests/examples/NegativePatterns.hs" 6 34 6 35
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 6 1 6 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 9
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/NegativePatterns.hs" 6 6 6 7
+                     , srcInfoPoints = []
+                     }
+                   "Z"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/NegativePatterns.hs" 6 8 6 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/NegativePatterns.hs" 6 8 6 9
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 22
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 6 12 6 18
+                      , srcInfoPoints = []
+                      }
+                    "Higher")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 19 6 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 19 6 20
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 21 6 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 21 6 22
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 33
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 33
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 6 25 6 29
+                      , srcInfoPoints = []
+                      }
+                    "Same")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 30 6 31
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 30 6 31
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 32 6 33
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 32 6 33
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 45
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 45
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 6 36 6 41
+                      , srcInfoPoints = []
+                      }
+                    "Lower")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 42 6 43
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 42 6 43
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 6 44 6 45
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 6 44 6 45
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NegativePatterns.hs" 8 8 8 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 8 1 8 7
+               , srcInfoPoints = []
+               })
+          (Just 7)
+          [ ConOp
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 11
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 8 11 8 17
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 8 17 8 18
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 8 10 8 11
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 8 11 8 17
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 8 17 8 18
+                       ]
+                   }
+                 "Higher")
+          ]
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NegativePatterns.hs" 9 8 9 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 9 1 9 7
+               , srcInfoPoints = []
+               })
+          (Just 6)
+          [ ConOp
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 11
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 9 11 9 15
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 9 15 9 16
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 9 10 9 11
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 9 11 9 15
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 9 15 9 16
+                       ]
+                   }
+                 "Same")
+          ]
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NegativePatterns.hs" 10 8 10 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 10 1 10 7
+               , srcInfoPoints = []
+               })
+          (Just 5)
+          [ ConOp
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 17
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 11
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 10 11 10 16
+                    , SrcSpan "tests/examples/NegativePatterns.hs" 10 16 10 17
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 10 10 10 11
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 10 11 10 16
+                       , SrcSpan "tests/examples/NegativePatterns.hs" 10 16 10 17
+                       ]
+                   }
+                 "Lower")
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/NegativePatterns.hs" 12 3 12 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 12 1 12 2
+                , srcInfoPoints = []
+                }
+              "g"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/NegativePatterns.hs" 12 12 12 14 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 11
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/NegativePatterns.hs" 12 6 12 7
+                           , srcInfoPoints = []
+                           }
+                         "Z")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/NegativePatterns.hs" 12 8 12 11
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16
+                      , SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16
+                         , SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/NegativePatterns.hs" 12 15 12 16
+                            , SrcSpan "tests/examples/NegativePatterns.hs" 12 16 12 17
+                            ]
+                        }))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/NegativePatterns.hs" 13 1 15 27
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 13 1 13 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 13 3 13 22
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 13 3 13 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 13 21 13 22
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 21
+                       , srcInfoPoints = []
+                       }
+                     (PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 9
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8 ]
+                          }
+                        (Negative
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/NegativePatterns.hs" 13 7 13 8 ]
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 13 8 13 9
+                             , srcInfoPoints = []
+                             }
+                           1
+                           "1"))
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 13 10 13 18
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 13 10 13 11
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 13 11 13 17
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 13 17 13 18
+                              ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 13 11 13 17
+                             , srcInfoPoints = []
+                             }
+                           "Higher"))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 13 20 13 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 13 20 13 21
+                             , srcInfoPoints = []
+                             }
+                           "x")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 13 23 13 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 13 23 13 24 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26
+                          , SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26
+                             , SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/NegativePatterns.hs" 13 25 13 26
+                                , SrcSpan "tests/examples/NegativePatterns.hs" 13 26 13 27
+                                ]
+                            }))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 14 1 14 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 14 3 14 22
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 14 3 14 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 14 21 14 22
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 21
+                       , srcInfoPoints = []
+                       }
+                     (PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 10
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7 ]
+                          }
+                        (Negative
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/NegativePatterns.hs" 14 6 14 7 ]
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 14 9 14 10
+                             , srcInfoPoints = []
+                             }
+                           2
+                           "2"))
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 14 11 14 17
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 14 11 14 12
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 14 12 14 16
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 14 16 14 17
+                              ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 14 12 14 16
+                             , srcInfoPoints = []
+                             }
+                           "Same"))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 14 20 14 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 14 20 14 21
+                             , srcInfoPoints = []
+                             }
+                           "x")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 14 23 14 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 14 23 14 24 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26
+                          , SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26
+                             , SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/NegativePatterns.hs" 14 25 14 26
+                                , SrcSpan "tests/examples/NegativePatterns.hs" 14 26 14 27
+                                ]
+                            }))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 15 1 15 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/NegativePatterns.hs" 15 3 15 22
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NegativePatterns.hs" 15 3 15 4
+                        , SrcSpan "tests/examples/NegativePatterns.hs" 15 21 15 22
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 21
+                       , srcInfoPoints = []
+                       }
+                     (PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 11
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6 ]
+                          }
+                        (Negative
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/NegativePatterns.hs" 15 5 15 6 ]
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 15 10 15 11
+                             , srcInfoPoints = []
+                             }
+                           3
+                           "3"))
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 15 12 15 19
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/NegativePatterns.hs" 15 12 15 13
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 15 13 15 18
+                              , SrcSpan "tests/examples/NegativePatterns.hs" 15 18 15 19
+                              ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 15 13 15 18
+                             , srcInfoPoints = []
+                             }
+                           "Lower"))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/NegativePatterns.hs" 15 20 15 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/NegativePatterns.hs" 15 20 15 21
+                             , srcInfoPoints = []
+                             }
+                           "x")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/NegativePatterns.hs" 15 23 15 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NegativePatterns.hs" 15 23 15 24 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26
+                          , SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26
+                             , SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/NegativePatterns.hs" 15 25 15 26
+                                , SrcSpan "tests/examples/NegativePatterns.hs" 15 26 15 27
+                                ]
+                            }))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/NegativePatterns.hs.prettyprinter.golden b/tests/examples/NegativePatterns.hs.prettyprinter.golden
--- a/tests/examples/NegativePatterns.hs.prettyprinter.golden
+++ b/tests/examples/NegativePatterns.hs.prettyprinter.golden
@@ -1,19 +1,18 @@
-module Main (main) where
 f 1 = -1
 f (-1) = 1
 f (-2) = 2
 f (-3) = 3
- 
+
 data Z a = Higher a a
          | Same a a
          | Lower a a
- 
+
 infixr 7 `Higher`
- 
+
 infixr 6 `Same`
- 
+
 infixr 5 `Lower`
- 
+
 g :: Z Int -> ()
 g (-1 `Higher` x) = ()
 g (-2 `Same` x) = ()
diff --git a/tests/examples/NestedAsPat.hs.parser.golden b/tests/examples/NestedAsPat.hs.parser.golden
--- a/tests/examples/NestedAsPat.hs.parser.golden
+++ b/tests/examples/NestedAsPat.hs.parser.golden
@@ -1,1 +1,127 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 1,SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 1,SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 1,SrcSpan "tests/examples/NestedAsPat.hs" 4 1 4 1,SrcSpan "tests/examples/NestedAsPat.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 25, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 7,SrcSpan "tests/examples/NestedAsPat.hs" 1 20 1 25]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 8 1 19, srcInfoPoints = []}) "NestedAsPat") Nothing Nothing)) [] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 37, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 12, srcInfoPoints = []}) "nestedAsPat") [PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 13 3 25, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 3 13 3 14,SrcSpan "tests/examples/NestedAsPat.hs" 3 24 3 25]}) [PAsPat (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 14 3 24, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 3 15 3 16]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 14 3 15, srcInfoPoints = []}) "x") (PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 16 3 24, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 3 16 3 17,SrcSpan "tests/examples/NestedAsPat.hs" 3 23 3 24]}) (PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 21, srcInfoPoints = []}) "Just")) [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 22 3 23, srcInfoPoints = []})]))]] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 26 3 37, srcInfoPoints = [SrcSpan "tests/examples/NestedAsPat.hs" 3 26 3 27]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37, srcInfoPoints = []}) "undefined")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 1
+            , SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 1
+            , SrcSpan "tests/examples/NestedAsPat.hs" 4 1 4 1
+            , SrcSpan "tests/examples/NestedAsPat.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/NestedAsPat.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/NestedAsPat.hs" 1 20 1 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 1 8 1 19
+                 , srcInfoPoints = []
+                 }
+               "NestedAsPat")
+            Nothing
+            Nothing))
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 37
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 37
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 1 3 12
+                   , srcInfoPoints = []
+                   }
+                 "nestedAsPat")
+              [ PList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 13 3 25
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/NestedAsPat.hs" 3 13 3 14
+                        , SrcSpan "tests/examples/NestedAsPat.hs" 3 24 3 25
+                        ]
+                    }
+                  [ PAsPat
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 14 3 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/NestedAsPat.hs" 3 15 3 16 ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 14 3 15
+                           , srcInfoPoints = []
+                           }
+                         "x")
+                      (PParen
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 16 3 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/NestedAsPat.hs" 3 16 3 17
+                               , SrcSpan "tests/examples/NestedAsPat.hs" 3 23 3 24
+                               ]
+                           }
+                         (PApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 23
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 21
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/NestedAsPat.hs" 3 17 3 21
+                                    , srcInfoPoints = []
+                                    }
+                                  "Just"))
+                            [ PWildCard
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 22 3 23
+                                  , srcInfoPoints = []
+                                  }
+                            ]))
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 26 3 37
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/NestedAsPat.hs" 3 26 3 27 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/NestedAsPat.hs" 3 28 3 37
+                            , srcInfoPoints = []
+                            }
+                          "undefined"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/NoStartNumIdents.hs b/tests/examples/NoStartNumIdents.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/NoStartNumIdents.hs
@@ -0,0 +1,1 @@
+1a = ()
diff --git a/tests/examples/NoStartNumIdents.hs.exactprinter.golden b/tests/examples/NoStartNumIdents.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/NoStartNumIdents.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
diff --git a/tests/examples/NoStartNumIdents.hs.parser.golden b/tests/examples/NoStartNumIdents.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/NoStartNumIdents.hs.parser.golden
@@ -0,0 +1,3 @@
+ParseFailed
+  (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1)
+  "Parse error in pattern: 1"
diff --git a/tests/examples/NoStartNumIdents.hs.prettyparser.golden b/tests/examples/NoStartNumIdents.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/NoStartNumIdents.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
diff --git a/tests/examples/NoStartNumIdents.hs.prettyprinter.golden b/tests/examples/NoStartNumIdents.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/NoStartNumIdents.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
diff --git a/tests/examples/NonDecreasing.hs.parser.golden b/tests/examples/NonDecreasing.hs.parser.golden
--- a/tests/examples/NonDecreasing.hs.parser.golden
+++ b/tests/examples/NonDecreasing.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/NonDecreasing.hs" 8 3) "Parse error: Last statement in a do-block must be an expression"
+ParseFailed
+  (SrcLoc "tests/examples/NonDecreasing.hs" 8 3)
+  "Parse error: Last statement in a do-block must be an expression"
diff --git a/tests/examples/Nounpack2.hs b/tests/examples/Nounpack2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Nounpack2.hs
@@ -0,0 +1,3 @@
+
+
+data Foo = Foo {-# NOUNPACK #-} Int
diff --git a/tests/examples/Nounpack2.hs.exactprinter.golden b/tests/examples/Nounpack2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Nounpack2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Nounpack2.hs.parser.golden b/tests/examples/Nounpack2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Nounpack2.hs.parser.golden
@@ -0,0 +1,96 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Nounpack2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Nounpack2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Nounpack2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Nounpack2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Nounpack2.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 1 3 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Nounpack2.hs" 3 10 3 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 6 3 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 12 3 36
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 12 3 36
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 12 3 15
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [ TyBang
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 16 3 36
+                       , srcInfoPoints = []
+                       }
+                     (NoStrictAnnot
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "" (-1) (-1) (-1) (-1)
+                          , srcInfoPoints = []
+                          })
+                     (NoUnpack
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 16 3 32
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Nounpack2.hs" 3 16 3 28
+                              , SrcSpan "tests/examples/Nounpack2.hs" 3 29 3 32
+                              ]
+                          })
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 33 3 36
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 33 3 36
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Nounpack2.hs" 3 33 3 36
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 ])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/Nounpack2.hs.prettyparser.golden b/tests/examples/Nounpack2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Nounpack2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Nounpack2.hs.prettyprinter.golden b/tests/examples/Nounpack2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Nounpack2.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+data Foo = Foo {-# NOUNPACK #-} Int
diff --git a/tests/examples/OptionsPragma.hs b/tests/examples/OptionsPragma.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/OptionsPragma.hs
@@ -0,0 +1,2 @@
+{-# OPTIONS -fno-warn-orphans #-}
+
diff --git a/tests/examples/OptionsPragma.hs.exactprinter.golden b/tests/examples/OptionsPragma.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OptionsPragma.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/OptionsPragma.hs.parser.golden b/tests/examples/OptionsPragma.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OptionsPragma.hs.parser.golden
@@ -0,0 +1,28 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/OptionsPragma.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/OptionsPragma.hs" 1 1 1 1
+            , SrcSpan "tests/examples/OptionsPragma.hs" 3 1 3 1
+            , SrcSpan "tests/examples/OptionsPragma.hs" 3 1 3 1
+            , SrcSpan "tests/examples/OptionsPragma.hs" 3 1 3 1
+            , SrcSpan "tests/examples/OptionsPragma.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/OptionsPragma.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OptionsPragma.hs" 1 1 1 31
+                , SrcSpan "tests/examples/OptionsPragma.hs" 1 31 1 34
+                ]
+            }
+          Nothing
+          "-fno-warn-orphans "
+      ]
+      []
+      []
+  , []
+  )
diff --git a/tests/examples/OptionsPragma.hs.prettyparser.golden b/tests/examples/OptionsPragma.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OptionsPragma.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/OptionsPragma.hs.prettyprinter.golden b/tests/examples/OptionsPragma.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OptionsPragma.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+{-# OPTIONS -fno-warn-orphans #-}
diff --git a/tests/examples/Overlapable.hs.parser.golden b/tests/examples/Overlapable.hs.parser.golden
--- a/tests/examples/Overlapable.hs.parser.golden
+++ b/tests/examples/Overlapable.hs.parser.golden
@@ -1,1 +1,176 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1,SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1,SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1,SrcSpan "tests/examples/Overlapable.hs" 3 1 3 1,SrcSpan "tests/examples/Overlapable.hs" 5 1 5 1,SrcSpan "tests/examples/Overlapable.hs" 7 1 7 1,SrcSpan "tests/examples/Overlapable.hs" 7 1 7 1]}) Nothing [] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/Overlapable.hs" 1 1 1 9]}) (Just (Overlap (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 10 1 21, srcInfoPoints = []}))) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 29, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 29, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27, srcInfoPoints = []}) "C"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 28 1 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 28 1 29, srcInfoPoints = []}) "a")))) Nothing,InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 1 3 32, srcInfoPoints = [SrcSpan "tests/examples/Overlapable.hs" 3 1 3 9]}) (Just (NoOverlap (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 10 3 24, srcInfoPoints = []}))) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 32, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 32, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30, srcInfoPoints = []}) "C"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 31 3 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 31 3 32, srcInfoPoints = []}) "a")))) Nothing,InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 1 5 32, srcInfoPoints = [SrcSpan "tests/examples/Overlapable.hs" 5 1 5 9]}) (Just (Incoherent (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 10 5 24, srcInfoPoints = []}))) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 32, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 32, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30, srcInfoPoints = []}) "C"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 31 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 31 5 32, srcInfoPoints = []}) "a")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Overlapable.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Overlapable.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Overlapable.hs" 5 1 5 1
+            , SrcSpan "tests/examples/Overlapable.hs" 7 1 7 1
+            , SrcSpan "tests/examples/Overlapable.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapable.hs" 1 1 1 9 ]
+            }
+          (Just
+             (Overlap
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 10 1 21
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 29
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 29
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 26 1 27
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 28 1 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 1 28 1 29
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          Nothing
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 1 3 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapable.hs" 3 1 3 9 ]
+            }
+          (Just
+             (NoOverlap
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 10 3 24
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 32
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 32
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 29 3 30
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 31 3 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 3 31 3 32
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          Nothing
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 1 5 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapable.hs" 5 1 5 9 ]
+            }
+          (Just
+             (Incoherent
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 10 5 24
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 32
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 32
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 29 5 30
+                           , srcInfoPoints = []
+                           }
+                         "C")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 31 5 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapable.hs" 5 31 5 32
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/Overlapable.hs.prettyprinter.golden b/tests/examples/Overlapable.hs.prettyprinter.golden
--- a/tests/examples/Overlapable.hs.prettyprinter.golden
+++ b/tests/examples/Overlapable.hs.prettyprinter.golden
@@ -1,7 +1,5 @@
-module Main (main) where
- 
 instance {-# OVERLAP #-} C a
- 
+
 instance {-# NO_OVERLAP #-} C a
- 
+
 instance {-# INCOHERENT #-} C a
diff --git a/tests/examples/Overlapping.hs b/tests/examples/Overlapping.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Overlapping.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+module Overlapping where
+
+class C a b where
+  f :: a -> b -> Bool
+
+instance C a b where
+  f _ _ = False
+
+instance {-# OVERLAPPING #-} C a a where
+  f _ _ = True
+
+instance {-# OVERLAPS #-} C a a where
+  f _ _ = True
+
+instance {-# OVERLAPPABLE #-} C a a where
+  f _ _ = True
+
+-- >>> f 'a' 'b'
+-- True
+--
+-- >>> f 'a' "starfish"
+-- False
diff --git a/tests/examples/Overlapping.hs.exactprinter.golden b/tests/examples/Overlapping.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Overlapping.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Overlapping.hs.parser.golden b/tests/examples/Overlapping.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Overlapping.hs.parser.golden
@@ -0,0 +1,730 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 1 1 26 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Overlapping.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Overlapping.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Overlapping.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Overlapping.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Overlapping.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Overlapping.hs" 9 1 9 1
+            , SrcSpan "tests/examples/Overlapping.hs" 12 1 12 1
+            , SrcSpan "tests/examples/Overlapping.hs" 15 1 15 1
+            , SrcSpan "tests/examples/Overlapping.hs" 18 1 18 1
+            , SrcSpan "tests/examples/Overlapping.hs" 26 1 26 1
+            , SrcSpan "tests/examples/Overlapping.hs" 26 1 26 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 4 1 4 25
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Overlapping.hs" 4 1 4 7
+                  , SrcSpan "tests/examples/Overlapping.hs" 4 20 4 25
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 4 8 4 19
+                 , srcInfoPoints = []
+                 }
+               "Overlapping")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 1 1 1 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Overlapping.hs" 1 36 1 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 1 14 1 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 2 1 2 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 2 1 2 13
+                , SrcSpan "tests/examples/Overlapping.hs" 2 36 2 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 2 14 2 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 1 7 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 6 1 6 6
+                , SrcSpan "tests/examples/Overlapping.hs" 6 13 6 18
+                , SrcSpan "tests/examples/Overlapping.hs" 7 3 7 3
+                , SrcSpan "tests/examples/Overlapping.hs" 9 1 9 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 7 6 12
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 7 6 10
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 7 6 8
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 7 6 8
+                        , srcInfoPoints = []
+                        }
+                      "C"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 9 6 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 9 6 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 11 6 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 6 11 6 12
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 3 7 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Overlapping.hs" 7 5 7 7 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 3 7 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Overlapping.hs" 7 5 7 7 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 3 7 4
+                          , srcInfoPoints = []
+                          }
+                        "f"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 8 7 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Overlapping.hs" 7 10 7 12 ]
+                         }
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 8 7 9
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 8 7 9
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 13 7 22
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Overlapping.hs" 7 15 7 17 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 13 7 14
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 13 7 14
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 18 7 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 7 18 7 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/Overlapping.hs" 7 18 7 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 1 12 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 9 1 9 9
+                , SrcSpan "tests/examples/Overlapping.hs" 9 16 9 21
+                , SrcSpan "tests/examples/Overlapping.hs" 10 3 10 3
+                , SrcSpan "tests/examples/Overlapping.hs" 12 1 12 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 15
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 15
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 13
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 10 9 11
+                              , srcInfoPoints = []
+                              }
+                            "C")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 12 9 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 12 9 13
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 14 9 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 9 14 9 15
+                        , srcInfoPoints = []
+                        }
+                      "b"))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 3 10 16
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 3 10 16
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 3 10 16
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 3 10 4
+                             , srcInfoPoints = []
+                             }
+                           "f")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 5 10 6
+                              , srcInfoPoints = []
+                              }
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 7 10 8
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 9 10 16
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Overlapping.hs" 10 9 10 10 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 10 11 10 16
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Overlapping.hs" 10 11 10 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Overlapping.hs" 10 11 10 16
+                                      , srcInfoPoints = []
+                                      }
+                                    "False"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 1 15 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 12 1 12 9
+                , SrcSpan "tests/examples/Overlapping.hs" 12 36 12 41
+                , SrcSpan "tests/examples/Overlapping.hs" 13 3 13 3
+                , SrcSpan "tests/examples/Overlapping.hs" 15 1 15 0
+                ]
+            }
+          (Just
+             (Overlapping
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 10 12 25
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 35
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 35
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 33
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 31
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 31
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 30 12 31
+                              , srcInfoPoints = []
+                              }
+                            "C")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 32 12 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 32 12 33
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 34 12 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 12 34 12 35
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 3 13 15
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 3 13 15
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 3 13 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 3 13 4
+                             , srcInfoPoints = []
+                             }
+                           "f")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 5 13 6
+                              , srcInfoPoints = []
+                              }
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 7 13 8
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 9 13 15
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Overlapping.hs" 13 9 13 10 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 13 11 13 15
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Overlapping.hs" 13 11 13 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Overlapping.hs" 13 11 13 15
+                                      , srcInfoPoints = []
+                                      }
+                                    "True"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 1 18 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 15 1 15 9
+                , SrcSpan "tests/examples/Overlapping.hs" 15 33 15 38
+                , SrcSpan "tests/examples/Overlapping.hs" 16 3 16 3
+                , SrcSpan "tests/examples/Overlapping.hs" 18 1 18 0
+                ]
+            }
+          (Just
+             (Overlaps
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 10 15 22
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 32
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 32
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 30
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 27 15 28
+                              , srcInfoPoints = []
+                              }
+                            "C")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 29 15 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 29 15 30
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 31 15 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 15 31 15 32
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 3 16 15
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 3 16 15
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 3 16 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 3 16 4
+                             , srcInfoPoints = []
+                             }
+                           "f")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 5 16 6
+                              , srcInfoPoints = []
+                              }
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 7 16 8
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 9 16 15
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Overlapping.hs" 16 9 16 10 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 16 11 16 15
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Overlapping.hs" 16 11 16 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Overlapping.hs" 16 11 16 15
+                                      , srcInfoPoints = []
+                                      }
+                                    "True"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 1 26 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Overlapping.hs" 18 1 18 9
+                , SrcSpan "tests/examples/Overlapping.hs" 18 37 18 42
+                , SrcSpan "tests/examples/Overlapping.hs" 19 3 19 3
+                , SrcSpan "tests/examples/Overlapping.hs" 26 1 26 0
+                ]
+            }
+          (Just
+             (Overlappable
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 10 18 26
+                  , srcInfoPoints = []
+                  }))
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 36
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 36
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 34
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 32
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 31 18 32
+                              , srcInfoPoints = []
+                              }
+                            "C")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 33 18 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 33 18 34
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 35 18 36
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 18 35 18 36
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 3 19 15
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 3 19 15
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 3 19 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 3 19 4
+                             , srcInfoPoints = []
+                             }
+                           "f")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 5 19 6
+                              , srcInfoPoints = []
+                              }
+                        , PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 7 19 8
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 9 19 15
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/Overlapping.hs" 19 9 19 10 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Overlapping.hs" 19 11 19 15
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/Overlapping.hs" 19 11 19 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Overlapping.hs" 19 11 19 15
+                                      , srcInfoPoints = []
+                                      }
+                                    "True"))))
+                        Nothing
+                    ])
+             ])
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/Overlapping.hs" 21 1 21 17)
+        " >>> f 'a' 'b'"
+    , Comment
+        False (SrcSpan "tests/examples/Overlapping.hs" 22 1 22 8) " True"
+    , Comment
+        False (SrcSpan "tests/examples/Overlapping.hs" 23 1 23 3) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Overlapping.hs" 24 1 24 24)
+        " >>> f 'a' \"starfish\""
+    , Comment
+        False (SrcSpan "tests/examples/Overlapping.hs" 25 1 25 9) " False"
+    ]
+  )
diff --git a/tests/examples/Overlapping.hs.prettyparser.golden b/tests/examples/Overlapping.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Overlapping.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Overlapping.hs.prettyprinter.golden b/tests/examples/Overlapping.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Overlapping.hs.prettyprinter.golden
@@ -0,0 +1,18 @@
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+module Overlapping where
+
+class C a b where
+        f :: a -> b -> Bool
+
+instance C a b where
+        f _ _ = False
+
+instance {-# OVERLAPPING #-} C a a where
+        f _ _ = True
+
+instance {-# OVERLAPS #-} C a a where
+        f _ _ = True
+
+instance {-# OVERLAPPABLE #-} C a a where
+        f _ _ = True
diff --git a/tests/examples/OverloadedLabels.hs b/tests/examples/OverloadedLabels.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/OverloadedLabels.hs
@@ -0,0 +1,29 @@
+-- Basic tests of overloaded labels
+
+{-# LANGUAGE OverloadedLabels
+           , DataKinds
+           , FlexibleContexts
+           , FlexibleInstances
+           , MultiParamTypeClasses
+           , NoMonomorphismRestriction
+  #-}
+
+import GHC.OverloadedLabels
+
+instance IsLabel "true" Bool where
+  fromLabel _ = True
+
+instance IsLabel "_False1'" Bool where
+  fromLabel _ = False
+
+a :: IsLabel "true" t => t
+a = #true
+
+b = #_False1'
+
+c :: Bool
+c = #true
+
+main = do print (a :: Bool)
+          print (b :: Bool)
+          print c
diff --git a/tests/examples/OverloadedLabels.hs.exactprinter.golden b/tests/examples/OverloadedLabels.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OverloadedLabels.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/OverloadedLabels.hs.parser.golden b/tests/examples/OverloadedLabels.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OverloadedLabels.hs.parser.golden
@@ -0,0 +1,911 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/OverloadedLabels.hs" 3 1 30 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/OverloadedLabels.hs" 3 1 3 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 11 1 11 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 11 1 11 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 11 1 11 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 13 1 13 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 16 1 16 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 19 1 19 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 20 1 20 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 22 1 22 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 24 1 24 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 25 1 25 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 27 1 27 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 30 1 30 1
+            , SrcSpan "tests/examples/OverloadedLabels.hs" 30 1 30 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 3 1 9 6
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OverloadedLabels.hs" 3 1 3 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 4 12 4 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 5 12 5 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 6 12 6 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 7 12 7 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 8 12 8 13
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 9 3 9 6
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 3 14 3 30
+                , srcInfoPoints = []
+                }
+              "OverloadedLabels"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 4 14 4 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 5 14 5 30
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 6 14 6 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 7 14 7 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 8 14 8 39
+                , srcInfoPoints = []
+                }
+              "NoMonomorphismRestriction"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 11 1 11 28
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/OverloadedLabels.hs" 11 1 11 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 11 8 11 28
+                  , srcInfoPoints = []
+                  }
+                "GHC.OverloadedLabels"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 13 1 16 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OverloadedLabels.hs" 13 1 13 9
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 13 30 13 35
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 14 3 14 3
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 16 1 16 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 29
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 29
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 24
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 13 10 13 17
+                              , srcInfoPoints = []
+                              }
+                            "IsLabel")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 13 18 13 24
+                        , srcInfoPoints = []
+                        }
+                      (PromotedString
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 13 18 13 24
+                           , srcInfoPoints = []
+                           }
+                         "true"
+                         "true")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 13 25 13 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 13 25 13 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 13 25 13 29
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/OverloadedLabels.hs" 14 3 14 21
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/OverloadedLabels.hs" 14 3 14 21
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/OverloadedLabels.hs" 14 3 14 21
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/OverloadedLabels.hs" 14 3 14 12
+                             , srcInfoPoints = []
+                             }
+                           "fromLabel")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 14 13 14 14
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/OverloadedLabels.hs" 14 15 14 21
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/OverloadedLabels.hs" 14 15 14 16 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/OverloadedLabels.hs" 14 17 14 21
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/OverloadedLabels.hs" 14 17 14 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/OverloadedLabels.hs" 14 17 14 21
+                                      , srcInfoPoints = []
+                                      }
+                                    "True"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 16 1 19 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OverloadedLabels.hs" 16 1 16 9
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 16 34 16 39
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 17 3 17 3
+                , SrcSpan "tests/examples/OverloadedLabels.hs" 19 1 19 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 33
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 33
+                  , srcInfoPoints = []
+                  }
+                (IHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 28
+                     , srcInfoPoints = []
+                     }
+                   (IHCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 16 10 16 17
+                              , srcInfoPoints = []
+                              }
+                            "IsLabel")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 16 18 16 28
+                        , srcInfoPoints = []
+                        }
+                      (PromotedString
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 16 18 16 28
+                           , srcInfoPoints = []
+                           }
+                         "_False1'"
+                         "_False1'")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 16 29 16 33
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 16 29 16 33
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 16 29 16 33
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/OverloadedLabels.hs" 17 3 17 22
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/OverloadedLabels.hs" 17 3 17 22
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/OverloadedLabels.hs" 17 3 17 22
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/OverloadedLabels.hs" 17 3 17 12
+                             , srcInfoPoints = []
+                             }
+                           "fromLabel")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 17 13 17 14
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/OverloadedLabels.hs" 17 15 17 22
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/OverloadedLabels.hs" 17 15 17 16 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/OverloadedLabels.hs" 17 17 17 22
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/OverloadedLabels.hs" 17 17 17 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/OverloadedLabels.hs" 17 17 17 22
+                                      , srcInfoPoints = []
+                                      }
+                                    "False"))))
+                        Nothing
+                    ])
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 19 1 19 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 3 19 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 19 1 19 2
+                , srcInfoPoints = []
+                }
+              "a"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 27
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 13
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 13
+                                       , srcInfoPoints = []
+                                       }
+                                     "IsLabel")))
+                            (TyPromoted
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/OverloadedLabels.hs" 19 14 19 20
+                                 , srcInfoPoints = []
+                                 }
+                               (PromotedString
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/OverloadedLabels.hs" 19 14 19 20
+                                    , srcInfoPoints = []
+                                    }
+                                  "true"
+                                  "true")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/OverloadedLabels.hs" 19 21 19 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/OverloadedLabels.hs" 19 21 19 22
+                                 , srcInfoPoints = []
+                                 }
+                               "t"))))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 19 26 19 27
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 19 26 19 27
+                     , srcInfoPoints = []
+                     }
+                   "t")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 20 1 20 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 20 1 20 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 20 1 20 2
+                  , srcInfoPoints = []
+                  }
+                "a"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 20 3 20 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 20 3 20 4 ]
+               }
+             (OverloadedLabel
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 20 5 20 10
+                  , srcInfoPoints = []
+                  }
+                "true"))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 22 1 22 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 22 1 22 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 22 1 22 2
+                  , srcInfoPoints = []
+                  }
+                "b"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 22 3 22 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 22 3 22 4 ]
+               }
+             (OverloadedLabel
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 22 5 22 14
+                  , srcInfoPoints = []
+                  }
+                "_False1'"))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 24 1 24 10
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/OverloadedLabels.hs" 24 3 24 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/OverloadedLabels.hs" 24 1 24 2
+                , srcInfoPoints = []
+                }
+              "c"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 24 6 24 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 24 6 24 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/OverloadedLabels.hs" 24 6 24 10
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 25 1 25 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 25 1 25 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 25 1 25 2
+                  , srcInfoPoints = []
+                  }
+                "c"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 25 3 25 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 25 3 25 4 ]
+               }
+             (OverloadedLabel
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 25 5 25 10
+                  , srcInfoPoints = []
+                  }
+                "true"))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/OverloadedLabels.hs" 27 1 29 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 27 1 27 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 27 1 27 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/OverloadedLabels.hs" 27 6 29 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 27 6 27 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/OverloadedLabels.hs" 27 8 29 18
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/OverloadedLabels.hs" 27 8 27 10
+                      , SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 11
+                      , SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 11
+                      , SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 11
+                      , SrcSpan "tests/examples/OverloadedLabels.hs" 30 1 30 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 28
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 28
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 27 11 27 16
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 27 17 27 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/OverloadedLabels.hs" 27 17 27 18
+                                , SrcSpan "tests/examples/OverloadedLabels.hs" 27 27 27 28
+                                ]
+                            }
+                          (ExpTypeSig
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 27 18 27 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 27 20 27 22 ]
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 27 18 27 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/OverloadedLabels.hs" 27 18 27 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/OverloadedLabels.hs" 27 18 27 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 27 23 27 27
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/OverloadedLabels.hs" 27 23 27 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/OverloadedLabels.hs" 27 23 27 27
+                                        , srcInfoPoints = []
+                                        }
+                                      "Bool"))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 28
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 28
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 28 11 28 16
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 28 17 28 28
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/OverloadedLabels.hs" 28 17 28 18
+                                , SrcSpan "tests/examples/OverloadedLabels.hs" 28 27 28 28
+                                ]
+                            }
+                          (ExpTypeSig
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 28 18 28 27
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/OverloadedLabels.hs" 28 20 28 22 ]
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 28 18 28 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/OverloadedLabels.hs" 28 18 28 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/OverloadedLabels.hs" 28 18 28 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 28 23 28 27
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/OverloadedLabels.hs" 28 23 28 27
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/OverloadedLabels.hs" 28 23 28 27
+                                        , srcInfoPoints = []
+                                        }
+                                      "Bool"))))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 18
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 18
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 29 11 29 16
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/OverloadedLabels.hs" 29 17 29 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/OverloadedLabels.hs" 29 17 29 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/OverloadedLabels.hs" 29 17 29 18
+                                  , srcInfoPoints = []
+                                  }
+                                "c"))))
+                ]))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/OverloadedLabels.hs" 1 1 1 36)
+        " Basic tests of overloaded labels"
+    ]
+  )
diff --git a/tests/examples/OverloadedLabels.hs.prettyparser.golden b/tests/examples/OverloadedLabels.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OverloadedLabels.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/OverloadedLabels.hs.prettyprinter.golden b/tests/examples/OverloadedLabels.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/OverloadedLabels.hs.prettyprinter.golden
@@ -0,0 +1,21 @@
+{-# LANGUAGE OverloadedLabels, DataKinds, FlexibleContexts,
+  FlexibleInstances, MultiParamTypeClasses, NoMonomorphismRestriction
+  #-}
+import GHC.OverloadedLabels
+
+instance IsLabel "true" Bool where
+        fromLabel _ = True
+
+instance IsLabel "_False1'" Bool where
+        fromLabel _ = False
+
+a :: IsLabel "true" t => t
+a = #true
+b = #_False1'
+
+c :: Bool
+c = #true
+main
+  = do print (a :: Bool)
+       print (b :: Bool)
+       print c
diff --git a/tests/examples/PackageImports.hs.parser.golden b/tests/examples/PackageImports.hs.parser.golden
--- a/tests/examples/PackageImports.hs.parser.golden
+++ b/tests/examples/PackageImports.hs.parser.golden
@@ -1,1 +1,100 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/PackageImports.hs" 1 1 1 1,SrcSpan "tests/examples/PackageImports.hs" 2 1 2 1,SrcSpan "tests/examples/PackageImports.hs" 2 1 2 1,SrcSpan "tests/examples/PackageImports.hs" 4 1 4 1,SrcSpan "tests/examples/PackageImports.hs" 5 1 5 1,SrcSpan "tests/examples/PackageImports.hs" 6 1 6 1,SrcSpan "tests/examples/PackageImports.hs" 6 1 6 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 2 1 2 28, srcInfoPoints = [SrcSpan "tests/examples/PackageImports.hs" 2 1 2 7,SrcSpan "tests/examples/PackageImports.hs" 2 23 2 28]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 2 8 2 22, srcInfoPoints = []}) "PackageImports") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/PackageImports.hs" 1 1 1 13,SrcSpan "tests/examples/PackageImports.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 1 14 1 28, srcInfoPoints = []}) "PackageImports"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 4 1 4 39, srcInfoPoints = [SrcSpan "tests/examples/PackageImports.hs" 4 1 4 7,SrcSpan "tests/examples/PackageImports.hs" 4 8 4 16]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 4 17 4 39, srcInfoPoints = []}) "PackageImports.Default", importQualified = False, importSrc = False, importSafe = False, importPkg = Just "wibble", importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 5 1 5 43, srcInfoPoints = [SrcSpan "tests/examples/PackageImports.hs" 5 1 5 7,SrcSpan "tests/examples/PackageImports.hs" 5 8 5 16]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 5 17 5 43, srcInfoPoints = []}) "PackageImports.Builtin.All", importQualified = False, importSrc = False, importSafe = False, importPkg = Just "wibble", importAs = Nothing, importSpecs = Nothing}] [],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PackageImports.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PackageImports.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PackageImports.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PackageImports.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PackageImports.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PackageImports.hs" 6 1 6 1
+            , SrcSpan "tests/examples/PackageImports.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 2 1 2 28
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PackageImports.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/PackageImports.hs" 2 23 2 28
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 2 8 2 22
+                 , srcInfoPoints = []
+                 }
+               "PackageImports")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PackageImports.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PackageImports.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PackageImports.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "PackageImports"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 4 1 4 39
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PackageImports.hs" 4 1 4 7
+                    , SrcSpan "tests/examples/PackageImports.hs" 4 8 4 16
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PackageImports.hs" 4 17 4 39
+                  , srcInfoPoints = []
+                  }
+                "PackageImports.Default"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Just "wibble"
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PackageImports.hs" 5 1 5 43
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PackageImports.hs" 5 1 5 7
+                    , SrcSpan "tests/examples/PackageImports.hs" 5 8 5 16
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PackageImports.hs" 5 17 5 43
+                  , srcInfoPoints = []
+                  }
+                "PackageImports.Builtin.All"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Just "wibble"
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/PackageImportsMissing.hs.exactprinter.golden b/tests/examples/PackageImportsMissing.hs.exactprinter.golden
--- a/tests/examples/PackageImportsMissing.hs.exactprinter.golden
+++ b/tests/examples/PackageImportsMissing.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports is not enabled"
+ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports language extension is not enabled. Please add {-# LANGUAGE PackageImports #-} pragma at the top of your module."
diff --git a/tests/examples/PackageImportsMissing.hs.parser.golden b/tests/examples/PackageImportsMissing.hs.parser.golden
--- a/tests/examples/PackageImportsMissing.hs.parser.golden
+++ b/tests/examples/PackageImportsMissing.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports is not enabled"
+ParseFailed
+  (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17)
+  "PackageImports language extension is not enabled. Please add {-# LANGUAGE PackageImports #-} pragma at the top of your module."
diff --git a/tests/examples/PackageImportsMissing.hs.prettyparser.golden b/tests/examples/PackageImportsMissing.hs.prettyparser.golden
--- a/tests/examples/PackageImportsMissing.hs.prettyparser.golden
+++ b/tests/examples/PackageImportsMissing.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports is not enabled"
+ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports language extension is not enabled. Please add {-# LANGUAGE PackageImports #-} pragma at the top of your module."
diff --git a/tests/examples/PackageImportsMissing.hs.prettyprinter.golden b/tests/examples/PackageImportsMissing.hs.prettyprinter.golden
--- a/tests/examples/PackageImportsMissing.hs.prettyprinter.golden
+++ b/tests/examples/PackageImportsMissing.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports is not enabled"
+ParseFailed (SrcLoc "tests/examples/PackageImportsMissing.hs" 3 17) "PackageImports language extension is not enabled. Please add {-# LANGUAGE PackageImports #-} pragma at the top of your module."
diff --git a/tests/examples/ParallelArrays.hs.parser.golden b/tests/examples/ParallelArrays.hs.parser.golden
--- a/tests/examples/ParallelArrays.hs.parser.golden
+++ b/tests/examples/ParallelArrays.hs.parser.golden
@@ -1,1 +1,384 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 1,SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 1,SrcSpan "tests/examples/ParallelArrays.hs" 7 1 7 1,SrcSpan "tests/examples/ParallelArrays.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 13,SrcSpan "tests/examples/ParallelArrays.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 1 14 1 28, srcInfoPoints = []}) "ParallelArrays"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 50, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 3 13 3 15]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 12, srcInfoPoints = []}) "dotp_double"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 50, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 3 27 3 29]}) (TyParArray (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 26, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 18,SrcSpan "tests/examples/ParallelArrays.hs" 3 24 3 26]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24, srcInfoPoints = []}) "Double")))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 50, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 3 41 3 43]}) (TyParArray (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 40, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 32,SrcSpan "tests/examples/ParallelArrays.hs" 3 38 3 40]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38, srcInfoPoints = []}) "Double")))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50, srcInfoPoints = []}) "Double"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 55, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 12, srcInfoPoints = []}) "dotp_double") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 13 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 13 4 15, srcInfoPoints = []}) "xs"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 16 4 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 16 4 18, srcInfoPoints = []}) "ys")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 19 4 55, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 19 4 20]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25, srcInfoPoints = []}) "sumP"))) (ParArrayComp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 26 4 55, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 26 4 28,SrcSpan "tests/examples/ParallelArrays.hs" 4 34 4 35,SrcSpan "tests/examples/ParallelArrays.hs" 4 44 4 45,SrcSpan "tests/examples/ParallelArrays.hs" 4 53 4 55]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 33, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31, srcInfoPoints = []}) "*"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33, srcInfoPoints = []}) "y")))) [[QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 43, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 38 4 40]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 43, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 38 4 40]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 37, srcInfoPoints = []}) "x")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43, srcInfoPoints = []}) "xs"))))],[QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 53, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 48 4 50]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 53, srcInfoPoints = [SrcSpan "tests/examples/ParallelArrays.hs" 4 48 4 50]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 47, srcInfoPoints = []}) "y")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53, srcInfoPoints = []}) "ys"))))]]))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 7 1 7 1
+            , SrcSpan "tests/examples/ParallelArrays.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ParallelArrays.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ParallelArrays.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ParallelArrays.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "ParallelArrays"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ParallelArrays.hs" 3 13 3 15 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 3 1 3 12
+                , srcInfoPoints = []
+                }
+              "dotp_double"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 50
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ParallelArrays.hs" 3 27 3 29 ]
+               }
+             (TyParArray
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ParallelArrays.hs" 3 16 3 18
+                      , SrcSpan "tests/examples/ParallelArrays.hs" 3 24 3 26
+                      ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ParallelArrays.hs" 3 18 3 24
+                           , srcInfoPoints = []
+                           }
+                         "Double"))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 50
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ParallelArrays.hs" 3 41 3 43 ]
+                  }
+                (TyParArray
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ParallelArrays.hs" 3 30 3 32
+                         , SrcSpan "tests/examples/ParallelArrays.hs" 3 38 3 40
+                         ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ParallelArrays.hs" 3 32 3 38
+                              , srcInfoPoints = []
+                              }
+                            "Double"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ParallelArrays.hs" 3 44 3 50
+                           , srcInfoPoints = []
+                           }
+                         "Double")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 55
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 55
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ParallelArrays.hs" 4 1 4 12
+                   , srcInfoPoints = []
+                   }
+                 "dotp_double")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ParallelArrays.hs" 4 13 4 15
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ParallelArrays.hs" 4 13 4 15
+                       , srcInfoPoints = []
+                       }
+                     "xs")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ParallelArrays.hs" 4 16 4 18
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ParallelArrays.hs" 4 16 4 18
+                       , srcInfoPoints = []
+                       }
+                     "ys")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ParallelArrays.hs" 4 19 4 55
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ParallelArrays.hs" 4 19 4 20 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 55
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 21 4 25
+                               , srcInfoPoints = []
+                               }
+                             "sumP")))
+                    (ParArrayComp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ParallelArrays.hs" 4 26 4 55
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ParallelArrays.hs" 4 26 4 28
+                             , SrcSpan "tests/examples/ParallelArrays.hs" 4 34 4 35
+                             , SrcSpan "tests/examples/ParallelArrays.hs" 4 44 4 45
+                             , SrcSpan "tests/examples/ParallelArrays.hs" 4 53 4 55
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 33
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 28 4 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "x")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 30 4 31
+                                     , srcInfoPoints = []
+                                     }
+                                   "*")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 32 4 33
+                                     , srcInfoPoints = []
+                                     }
+                                   "y"))))
+                       [ [ QualStmt
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 43
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ParallelArrays.hs" 4 38 4 40 ]
+                               }
+                             (Generator
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 43
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/ParallelArrays.hs" 4 38 4 40 ]
+                                  }
+                                (PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelArrays.hs" 4 36 4 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "x"))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ParallelArrays.hs" 4 41 4 43
+                                           , srcInfoPoints = []
+                                           }
+                                         "xs"))))
+                         ]
+                       , [ QualStmt
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 53
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ParallelArrays.hs" 4 48 4 50 ]
+                               }
+                             (Generator
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 53
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/ParallelArrays.hs" 4 48 4 50 ]
+                                  }
+                                (PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 47
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelArrays.hs" 4 46 4 47
+                                        , srcInfoPoints = []
+                                        }
+                                      "y"))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/ParallelArrays.hs" 4 51 4 53
+                                           , srcInfoPoints = []
+                                           }
+                                         "ys"))))
+                         ]
+                       ])))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ParallelArrays.hs.prettyprinter.golden b/tests/examples/ParallelArrays.hs.prettyprinter.golden
--- a/tests/examples/ParallelArrays.hs.prettyprinter.golden
+++ b/tests/examples/ParallelArrays.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE ParallelArrays #-}
-module Main (main) where
- 
+
 dotp_double :: [:Double:] -> [:Double:] -> Double
 dotp_double xs ys = sumP [:x * y| x <- xs| y <- ys:]
diff --git a/tests/examples/ParallelArrays2.hs.parser.golden b/tests/examples/ParallelArrays2.hs.parser.golden
--- a/tests/examples/ParallelArrays2.hs.parser.golden
+++ b/tests/examples/ParallelArrays2.hs.parser.golden
@@ -1,1 +1,2 @@
-ParseFailed (SrcLoc "tests/examples/ParallelArrays2.hs" 2 17) "Parse error: :"
+ParseFailed
+  (SrcLoc "tests/examples/ParallelArrays2.hs" 2 17) "Parse error: :"
diff --git a/tests/examples/ParallelListComp.hs.parser.golden b/tests/examples/ParallelListComp.hs.parser.golden
--- a/tests/examples/ParallelListComp.hs.parser.golden
+++ b/tests/examples/ParallelListComp.hs.parser.golden
@@ -1,1 +1,402 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 1,SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1,SrcSpan "tests/examples/ParallelListComp.hs" 4 1 4 1,SrcSpan "tests/examples/ParallelListComp.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 34, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 13,SrcSpan "tests/examples/ParallelListComp.hs" 1 31 1 34]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 1 14 1 30, srcInfoPoints = []}) "ParallelListComp"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 62, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 62, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 2, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 3 3 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 3 3 5, srcInfoPoints = []}) "xs"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 6 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 6 3 8, srcInfoPoints = []}) "ys"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 9 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 9 3 11, srcInfoPoints = []}) "zs")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 12 3 62, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 12 3 13]}) (ParComp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 14 3 62, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 14 3 15,SrcSpan "tests/examples/ParallelListComp.hs" 3 24 3 25,SrcSpan "tests/examples/ParallelListComp.hs" 3 34 3 35,SrcSpan "tests/examples/ParallelListComp.hs" 3 43 3 44,SrcSpan "tests/examples/ParallelListComp.hs" 3 51 3 52,SrcSpan "tests/examples/ParallelListComp.hs" 3 61 3 62]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 16 3 23, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 16 3 17,SrcSpan "tests/examples/ParallelListComp.hs" 3 18 3 19,SrcSpan "tests/examples/ParallelListComp.hs" 3 20 3 21,SrcSpan "tests/examples/ParallelListComp.hs" 3 22 3 23]}) Boxed [Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18, srcInfoPoints = []}) "x")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20, srcInfoPoints = []}) "y")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22, srcInfoPoints = []}) "z"))]) [[QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 33, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 28 3 30]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 33, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 28 3 30]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 27, srcInfoPoints = []}) "x")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33, srcInfoPoints = []}) "xs"))))],[QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 43, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 38 3 40]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 43, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 38 3 40]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 37, srcInfoPoints = []}) "y")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43, srcInfoPoints = []}) "ys")))),QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50, srcInfoPoints = []}) (Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 46, srcInfoPoints = []}) "y"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 47 3 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 47 3 48, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 47 3 48, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 49 3 50, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 49 3 50, srcInfoPoints = []}) 2 "2"))))],[QualStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 60, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 55 3 57]}) (Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 60, srcInfoPoints = [SrcSpan "tests/examples/ParallelListComp.hs" 3 55 3 57]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 54, srcInfoPoints = []}) "z")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60, srcInfoPoints = []}) "zs"))))]])) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ParallelListComp.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParallelListComp.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ParallelListComp.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ParallelListComp.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ParallelListComp.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ParallelListComp.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "ParallelListComp"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 62
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 62
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ParallelListComp.hs" 3 1 3 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ParallelListComp.hs" 3 3 3 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ParallelListComp.hs" 3 3 3 5
+                       , srcInfoPoints = []
+                       }
+                     "xs")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ParallelListComp.hs" 3 6 3 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ParallelListComp.hs" 3 6 3 8
+                       , srcInfoPoints = []
+                       }
+                     "ys")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ParallelListComp.hs" 3 9 3 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ParallelListComp.hs" 3 9 3 11
+                       , srcInfoPoints = []
+                       }
+                     "zs")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ParallelListComp.hs" 3 12 3 62
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ParallelListComp.hs" 3 12 3 13 ]
+                   }
+                 (ParComp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ParallelListComp.hs" 3 14 3 62
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ParallelListComp.hs" 3 14 3 15
+                          , SrcSpan "tests/examples/ParallelListComp.hs" 3 24 3 25
+                          , SrcSpan "tests/examples/ParallelListComp.hs" 3 34 3 35
+                          , SrcSpan "tests/examples/ParallelListComp.hs" 3 43 3 44
+                          , SrcSpan "tests/examples/ParallelListComp.hs" 3 51 3 52
+                          , SrcSpan "tests/examples/ParallelListComp.hs" 3 61 3 62
+                          ]
+                      }
+                    (Tuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ParallelListComp.hs" 3 16 3 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ParallelListComp.hs" 3 16 3 17
+                             , SrcSpan "tests/examples/ParallelListComp.hs" 3 18 3 19
+                             , SrcSpan "tests/examples/ParallelListComp.hs" 3 20 3 21
+                             , SrcSpan "tests/examples/ParallelListComp.hs" 3 22 3 23
+                             ]
+                         }
+                       Boxed
+                       [ Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/ParallelListComp.hs" 3 17 3 18
+                                   , srcInfoPoints = []
+                                   }
+                                 "x"))
+                       , Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/ParallelListComp.hs" 3 19 3 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "y"))
+                       , Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/ParallelListComp.hs" 3 21 3 22
+                                   , srcInfoPoints = []
+                                   }
+                                 "z"))
+                       ])
+                    [ [ QualStmt
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 33
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ParallelListComp.hs" 3 28 3 30 ]
+                            }
+                          (Generator
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 33
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ParallelListComp.hs" 3 28 3 30 ]
+                               }
+                             (PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 26 3 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "x"))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 31 3 33
+                                        , srcInfoPoints = []
+                                        }
+                                      "xs"))))
+                      ]
+                    , [ QualStmt
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 43
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ParallelListComp.hs" 3 38 3 40 ]
+                            }
+                          (Generator
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 43
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ParallelListComp.hs" 3 38 3 40 ]
+                               }
+                             (PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 37
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 36 3 37
+                                     , srcInfoPoints = []
+                                     }
+                                   "y"))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 41 3 43
+                                        , srcInfoPoints = []
+                                        }
+                                      "ys"))))
+                      , QualStmt
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50
+                            , srcInfoPoints = []
+                            }
+                          (Qualifier
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50
+                               , srcInfoPoints = []
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 50
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 46
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 45 3 46
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/ParallelListComp.hs" 3 45 3 46
+                                           , srcInfoPoints = []
+                                           }
+                                         "y")))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 47 3 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 47 3 48
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/ParallelListComp.hs" 3 47 3 48
+                                           , srcInfoPoints = []
+                                           }
+                                         ">")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 49 3 50
+                                     , srcInfoPoints = []
+                                     }
+                                   (Int
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 49 3 50
+                                        , srcInfoPoints = []
+                                        }
+                                      2
+                                      "2"))))
+                      ]
+                    , [ QualStmt
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 60
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ParallelListComp.hs" 3 55 3 57 ]
+                            }
+                          (Generator
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 60
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/ParallelListComp.hs" 3 55 3 57 ]
+                               }
+                             (PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 54
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 53 3 54
+                                     , srcInfoPoints = []
+                                     }
+                                   "z"))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/ParallelListComp.hs" 3 58 3 60
+                                        , srcInfoPoints = []
+                                        }
+                                      "zs"))))
+                      ]
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ParallelListComp.hs.prettyprinter.golden b/tests/examples/ParallelListComp.hs.prettyprinter.golden
--- a/tests/examples/ParallelListComp.hs.prettyprinter.golden
+++ b/tests/examples/ParallelListComp.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE ParallelListComp #-}
-module Main (main) where
 f xs ys zs = [(x, y, z)| x <- xs| y <- ys, y > 2| z <- zs]
diff --git a/tests/examples/ParenFunBind.hs.parser.golden b/tests/examples/ParenFunBind.hs.parser.golden
--- a/tests/examples/ParenFunBind.hs.parser.golden
+++ b/tests/examples/ParenFunBind.hs.parser.golden
@@ -1,1 +1,137 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 1,SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 1,SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 1,SrcSpan "tests/examples/ParenFunBind.hs" 4 1 4 1,SrcSpan "tests/examples/ParenFunBind.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 26, srcInfoPoints = [SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 7,SrcSpan "tests/examples/ParenFunBind.hs" 1 21 1 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 8 1 20, srcInfoPoints = []}) "ParenFunBind") Nothing Nothing)) [] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 18, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 18, srcInfoPoints = [SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 2,SrcSpan "tests/examples/ParenFunBind.hs" 3 7 3 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 2 3 5, srcInfoPoints = []}) "foo") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 6 3 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 6 3 7, srcInfoPoints = []}) "x"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 9 3 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 9 3 10, srcInfoPoints = []}) "y")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 11 3 18, srcInfoPoints = [SrcSpan "tests/examples/ParenFunBind.hs" 3 11 3 12]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16, srcInfoPoints = []}) "+"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18, srcInfoPoints = []}) "y"))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ParenFunBind.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ParenFunBind.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/ParenFunBind.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/ParenFunBind.hs" 1 21 1 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 1 8 1 20
+                 , srcInfoPoints = []
+                 }
+               "ParenFunBind")
+            Nothing
+            Nothing))
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 18
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 18
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/ParenFunBind.hs" 3 1 3 2
+                    , SrcSpan "tests/examples/ParenFunBind.hs" 3 7 3 8
+                    ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 2 3 5
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 6 3 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 6 3 7
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 9 3 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 9 3 10
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 11 3 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ParenFunBind.hs" 3 11 3 12 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 18
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 13 3 14
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 15 3 16
+                               , srcInfoPoints = []
+                               }
+                             "+")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/ParenFunBind.hs" 3 17 3 18
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/PartialSignatures.hs b/tests/examples/PartialSignatures.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PartialSignatures.hs
@@ -0,0 +1,293 @@
+{-# LANGUAGE GADTs, NamedWildCards, ScopedTypeVariables #-}
+
+bar :: Int -> _ Int
+bar x = Foo True () x
+
+
+addAndOr1 :: _
+addAndOr1 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+addAndOr2 :: _ -> _
+addAndOr2 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+addAndOr3 :: _ -> _ -> _
+addAndOr3 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+addAndOr4 :: (_ _ _) -> (_ _ _) -> (_ _ _)
+addAndOr4 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+addAndOr5 :: (_, _) -> (_, _) -> (_, _)
+addAndOr5 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+addAndOr6 :: (Int, _) -> (Bool, _) -> (_ Int Bool)
+addAndOr6 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+
+bar :: _ -> _
+bar x = not x
+
+
+alpha :: _
+alpha = 3
+
+
+bravo :: _ => _
+bravo = 3
+
+
+bravo :: _ => _
+bravo = 3
+
+barry :: _a -> (_b _a, _b _)
+barry x = (Left "x", Right x)
+
+foo :: a ~ Bool => (a, _)
+foo = (True, False)
+
+
+every :: _ -> _ -> Bool
+every _ [] = True
+every p (x:xs) = p x && every p xs
+
+every :: (_a -> Bool) -> [_a] -> Bool
+every _ [] = True
+every p (x:xs) = p x && every p xs
+
+
+bar :: Bool -> Bool
+bar x = (x :: _)
+
+bar :: _a -> _a
+bar True  = (False :: _a)
+bar False = (True :: _a)
+
+
+arbitCs1 :: _ => a -> String
+arbitCs1 x = show (succ x) ++ show (x == x)
+
+arbitCs2 :: (Show a, _) => a -> String
+arbitCs2 x = arbitCs1 x
+
+arbitCs3 :: (Show a, Enum a, _) => a -> String
+arbitCs3 x = arbitCs1 x
+
+arbitCs4 :: (Eq a, _) => a -> String
+arbitCs4 x = arbitCs1 x
+
+arbitCs5 :: (Eq a, Enum a, Show a, _) => a -> String
+arbitCs5 x = arbitCs1 x
+
+
+foo :: _ => String
+foo = "x"
+
+-- No extra constraints
+
+
+
+foo :: _ => a
+foo = 3
+
+
+foo :: _ => a
+foo = 3
+
+fall :: forall a . _ -> a
+fall v = v
+
+bar :: _a -> _a
+bar x = not x
+
+foo :: (forall a. [a] -> [a]) -> _
+foo x = (x [True, False], x ['a', 'b'])
+
+foo :: (forall a. [a] -> [a]) -> (_, _ _)
+foo x = (x [True, False], x ['a', 'b'])
+
+
+monoLoc :: forall a. a -> ((a, String), (a, _))
+monoLoc x = (g True , g False)
+  where
+    g :: t -> (a, String)
+    g _ = (x, "foo")
+
+-- Test case for (fixed) bug that previously generated the following error message:
+
+-- LocalDefinitionBug.hs:9:16:
+--     GHC internal error: ‘a’ is not in scope during type checking, but it passed the renamer
+--     tcl_env of environment: [alA :-> Type variable ‘_’ = _,
+--                              alC :-> Identifier[x::a, <NotTopLevel>],
+--                              alE :-> Type variable ‘t’ = t,
+--                              rjF :-> Identifier[monoLoc::a
+--                                                          -> ((a, String), (a, _)), <NotTopLevel>]]
+--     In the type signature for ‘g’: g :: t -> (a, String)
+--     In an equation for ‘monoLoc’:
+--         monoLoc x
+--           = (g True, g False)
+--           where
+--               g :: t -> (a, String)
+--               g _ = (x, "foo")
+
+
+-- Fixed by using tcExtendTyVarEnv2 instead of tcExtendTyVarEnv
+
+data NukeMonad a b c
+
+instance Functor (NukeMonad a b) where
+  fmap = undefined
+
+instance Applicative (NukeMonad a b) where
+  pure = undefined
+  (<*>) = undefined
+
+instance Monad (NukeMonad a b) where
+  return = undefined
+  (>>=) = undefined
+
+
+isMeltdown :: NukeMonad param1 param2 Bool
+isMeltdown = undefined
+
+unlessMeltdown :: _nm () ->  _nm ()
+unlessMeltdown c = do m <- isMeltdown
+                      if m then return () else c
+
+
+
+monoLoc :: forall a. a -> ((a, String), (a, String))
+monoLoc x = (g True , g 'v')
+  where
+    -- g :: b -> (a, String) -- #1
+    g :: b -> (a, _) -- #2
+    g y = (x, "foo")
+
+-- For #2, we should infer the same type as in #1.
+
+foo :: (_a, b) -> (a, _b)
+foo (x, y) = (x, y)
+
+
+f :: (_) => a -> a -> Bool
+f x y = x == y
+
+
+foo :: _
+Just foo = Just id
+
+
+foo :: Bool -> _
+Just foo = Just id
+
+bar :: Bool -> Bool
+bar (x :: _) = True
+
+
+orr :: a -> a -> a
+orr = undefined
+
+g :: _
+g = f `orr` True
+
+f :: _
+f = g
+
+
+test3 :: _
+test3 x = const (let x :: _b
+                     x = True in False) $
+          const (let x :: _b
+                     x = 'a' in True) $
+          not x
+
+
+-- The named wildcards aren't scoped as the ScopedTypeVariables extension
+-- isn't enabled, of which the behaviour is copied. Thus, the _a annotation of
+-- x, which must be Bool, isn't the same as the _a in g, which is now
+-- generalised over.
+foo :: _a -> _
+foo x = let v = not x
+            g :: _a -> _a
+            g x = x
+        in (g 'x')
+
+showTwo :: Show _a => _a -> String
+showTwo x = show x
+
+
+bar :: _ -> Bool
+bar _ = True
+
+
+data GenParser tok st a = GenParser tok st a
+
+skipMany' :: GenParser tok st a -> GenParser tok st ()
+skipMany' = undefined
+
+skipMany :: _ -> _ ()
+skipMany = skipMany'
+
+somethingShowable :: Show _x => _x -> _
+somethingShowable x = show (not x)
+-- Inferred type: Bool -> String
+
+
+data I a = I a
+instance Functor I where
+    fmap f (I a) = I (f a)
+
+newtype B t a = B a
+instance Functor (B t) where
+    fmap f (B a) = B (f a)
+
+newtype H f = H (f ())
+
+h1 :: _ => _
+-- h :: Functor m => (a -> b) -> m a -> H m
+h1 f b = (H . fmap (const ())) (fmap f b)
+
+h2 :: _
+-- h2 :: Functor m => (a -> b) -> m a -> H m
+h2 f b = (H . fmap (const ())) (fmap f b)
+
+app1 :: H (B t)
+app1 = h1 (H . I) (B ())
+
+app2 :: H (B t)
+app2 = h2 (H . I) (B ())
+
+
+foo f = g
+  where g r = x
+          where x :: _
+                x = r
+
+
+unc :: (_ -> _ -> _) -> (_, _) -> _
+unc = uncurry
+
+unc :: (_a -> _b -> _c) -> (_a, _b) -> _c
+unc = uncurry
+
+
+foo :: (Show _a, _) => _a -> _
+foo x = show (succ x)
+
+bar :: _ -> _ -> _
+bar x y = y x
diff --git a/tests/examples/PartialSignatures.hs.exactprinter.golden b/tests/examples/PartialSignatures.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PartialSignatures.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PartialSignatures.hs.parser.golden b/tests/examples/PartialSignatures.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PartialSignatures.hs.parser.golden
@@ -0,0 +1,16739 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PartialSignatures.hs" 1 1 294 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PartialSignatures.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 7 1 7 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 8 1 8 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 13 1 13 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 14 1 14 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 19 1 19 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 20 1 20 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 25 1 25 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 26 1 26 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 31 1 31 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 32 1 32 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 37 1 37 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 38 1 38 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 43 1 43 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 44 1 44 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 47 1 47 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 48 1 48 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 51 1 51 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 52 1 52 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 55 1 55 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 56 1 56 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 58 1 58 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 59 1 59 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 61 1 61 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 62 1 62 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 65 1 65 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 66 1 66 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 67 1 67 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 69 1 69 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 70 1 70 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 71 1 71 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 74 1 74 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 75 1 75 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 77 1 77 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 78 1 78 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 79 1 79 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 82 1 82 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 83 1 83 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 85 1 85 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 86 1 86 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 88 1 88 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 89 1 89 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 91 1 91 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 92 1 92 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 94 1 94 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 95 1 95 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 98 1 98 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 99 1 99 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 105 1 105 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 106 1 106 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 109 1 109 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 110 1 110 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 112 1 112 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 113 1 113 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 115 1 115 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 116 1 116 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 118 1 118 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 119 1 119 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 121 1 121 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 122 1 122 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 125 1 125 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 126 1 126 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 151 1 151 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 153 1 153 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 156 1 156 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 160 1 160 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 165 1 165 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 166 1 166 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 168 1 168 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 169 1 169 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 174 1 174 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 175 1 175 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 183 1 183 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 184 1 184 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 187 1 187 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 188 1 188 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 191 1 191 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 192 1 192 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 195 1 195 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 196 1 196 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 198 1 198 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 199 1 199 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 202 1 202 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 203 1 203 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 205 1 205 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 206 1 206 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 208 1 208 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 209 1 209 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 212 1 212 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 213 1 213 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 224 1 224 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 225 1 225 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 230 1 230 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 231 1 231 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 234 1 234 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 235 1 235 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 238 1 238 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 240 1 240 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 241 1 241 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 243 1 243 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 244 1 244 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 246 1 246 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 247 1 247 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 251 1 251 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 252 1 252 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 255 1 255 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 256 1 256 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 259 1 259 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 261 1 261 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 263 1 263 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 265 1 265 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 267 1 267 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 269 1 269 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 270 1 270 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 272 1 272 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 273 1 273 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 276 1 276 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 282 1 282 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 283 1 283 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 285 1 285 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 286 1 286 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 289 1 289 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 290 1 290 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 292 1 292 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 293 1 293 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 294 1 294 1
+            , SrcSpan "tests/examples/PartialSignatures.hs" 294 1 294 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 1 1 1 60
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PartialSignatures.hs" 1 19 1 20
+                , SrcSpan "tests/examples/PartialSignatures.hs" 1 35 1 36
+                , SrcSpan "tests/examples/PartialSignatures.hs" 1 57 1 60
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 1 21 1 35
+                , srcInfoPoints = []
+                }
+              "NamedWildCards"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 1 37 1 56
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 3 1 3 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 3 5 3 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 3 1 3 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 3 8 3 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 3 12 3 14 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 3 8 3 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 3 8 3 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 3 8 3 11
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 3 15 3 20
+                  , srcInfoPoints = []
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 3 15 3 16
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 3 17 3 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 3 17 3 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 3 17 3 20
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 4 1 4 22
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 4 1 4 22
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 4 1 4 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 4 5 4 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 4 5 4 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 4 7 4 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 4 7 4 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 22
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 20
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 17
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 4 9 4 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "Foo")))
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 4 13 4 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 4 13 4 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 4 13 4 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "True"))))
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 19
+                                , SrcSpan "tests/examples/PartialSignatures.hs" 4 19 4 20
+                                ]
+                            }
+                          (Special
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 19
+                                   , SrcSpan "tests/examples/PartialSignatures.hs" 4 19 4 20
+                                   ]
+                               }
+                             (UnitCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 20
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/PartialSignatures.hs" 4 18 4 19
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 4 19 4 20
+                                      ]
+                                  }))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 4 21 4 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 4 21 4 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 4 21 4 22
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 7 1 7 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 7 11 7 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 7 1 7 10
+                , srcInfoPoints = []
+                }
+              "addAndOr1"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 7 14 7 15
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 8 1 10 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 9 3 9 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 8 1 10 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 9 3 9 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 8 1 8 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr1")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 8 11 8 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 8 11 8 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 8 13 8 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 8 16 8 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 8 12 8 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 8 12 8 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 8 15 8 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 8 15 8 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 8 18 8 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 8 18 8 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 8 20 8 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 8 23 8 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 8 19 8 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 8 19 8 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 8 22 8 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 8 22 8 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 8 25 8 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 8 25 8 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 8 27 8 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 8 27 8 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 8 38 8 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 8 46 8 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 8 28 8 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 28 8 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 28 8 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 28 8 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 30 8 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 8 30 8 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 8 31 8 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 8 35 8 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 30 8 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 8 30 8 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 8 31 8 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 8 35 8 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 31 8 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 37 8 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 37 8 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 37 8 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 8 40 8 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 40 8 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 40 8 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 40 8 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 42 8 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 42 8 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 42 8 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 8 45 8 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 8 45 8 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 8 45 8 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 9 9 10 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 9 9 9 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 10 9 10 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 13 1 13 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 9 9 9 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 9 14 9 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 9 9 9 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 9 17 9 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 9 21 9 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 9 17 9 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 9 17 9 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 9 17 9 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 9 24 9 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 9 28 9 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 9 24 9 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 9 24 9 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/PartialSignatures.hs" 9 24 9 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 9 31 9 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 9 31 9 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/PartialSignatures.hs" 9 31 9 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 10 9 10 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 10 9 10 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 10 9 10 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 10 9 10 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 10 12 10 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 10 11 10 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 10 12 10 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 10 16 10 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 10 18 10 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 10 18 10 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 10 20 10 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 10 20 10 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 10 22 10 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 10 22 10 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 10 22 10 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 10 22 10 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 10 24 10 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 10 24 10 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 10 24 10 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 10 26 10 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 10 26 10 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 10 26 10 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 13 1 13 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 13 11 13 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 13 1 13 10
+                , srcInfoPoints = []
+                }
+              "addAndOr2"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 13 14 13 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 13 16 13 18 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 13 14 13 15
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 13 19 13 20
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 14 1 16 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 15 3 15 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 14 1 16 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 15 3 15 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 14 1 14 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr2")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 14 11 14 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 14 11 14 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 14 13 14 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 14 16 14 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 14 12 14 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 14 12 14 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 14 15 14 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 14 15 14 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 14 18 14 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 14 18 14 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 14 20 14 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 14 23 14 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 14 19 14 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 14 19 14 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 14 22 14 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 14 22 14 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 14 25 14 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 14 25 14 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 14 27 14 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 14 27 14 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 14 38 14 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 14 46 14 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 14 28 14 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 28 14 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 28 14 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 28 14 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 30 14 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 14 30 14 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 14 31 14 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 14 35 14 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 30 14 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 14 30 14 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 14 31 14 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 14 35 14 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 31 14 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 37 14 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 37 14 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 37 14 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 14 40 14 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 40 14 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 40 14 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 40 14 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 42 14 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 42 14 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 42 14 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 14 45 14 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 14 45 14 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 14 45 14 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 15 9 16 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 15 9 15 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 16 9 16 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 19 1 19 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 15 9 15 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 15 14 15 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 15 9 15 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 15 17 15 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 15 21 15 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 15 17 15 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 15 17 15 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 15 17 15 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 15 24 15 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 15 28 15 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 15 24 15 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 15 24 15 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 15 24 15 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 15 31 15 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 15 31 15 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 15 31 15 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 16 9 16 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 16 9 16 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 16 9 16 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 16 9 16 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 16 12 16 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 16 11 16 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 16 12 16 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 16 16 16 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 16 18 16 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 16 18 16 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 16 20 16 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 16 20 16 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 16 22 16 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 16 22 16 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 16 22 16 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 16 22 16 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 16 24 16 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 16 24 16 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 16 24 16 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 16 26 16 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 16 26 16 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 16 26 16 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 19 1 19 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 19 11 19 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 19 1 19 10
+                , srcInfoPoints = []
+                }
+              "addAndOr3"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 19 14 19 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 19 16 19 18 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 19 14 19 15
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 19 19 19 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 19 21 19 23 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 19 19 19 20
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 19 24 19 25
+                     , srcInfoPoints = []
+                     }
+                   Nothing)))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 20 1 22 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 21 3 21 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 20 1 22 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 21 3 21 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 20 1 20 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr3")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 20 11 20 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 20 11 20 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 20 13 20 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 20 16 20 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 20 12 20 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 20 12 20 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 20 15 20 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 20 15 20 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 20 18 20 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 20 18 20 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 20 20 20 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 20 23 20 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 20 19 20 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 20 19 20 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 20 22 20 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 20 22 20 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 20 25 20 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 20 25 20 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 20 27 20 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 20 27 20 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 20 38 20 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 20 46 20 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 20 28 20 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 28 20 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 28 20 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 28 20 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 30 20 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 20 30 20 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 20 31 20 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 20 35 20 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 30 20 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 20 30 20 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 20 31 20 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 20 35 20 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 31 20 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 37 20 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 37 20 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 37 20 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 20 40 20 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 40 20 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 40 20 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 40 20 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 42 20 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 42 20 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 42 20 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 20 45 20 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 20 45 20 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 20 45 20 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 21 9 22 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 21 9 21 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 22 9 22 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 25 1 25 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 21 9 21 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 21 14 21 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 21 9 21 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 21 17 21 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 21 21 21 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 21 17 21 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 21 17 21 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 21 17 21 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 21 24 21 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 21 28 21 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 21 24 21 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 21 24 21 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 21 24 21 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 21 31 21 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 21 31 21 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 21 31 21 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 22 9 22 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 22 9 22 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 22 9 22 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 22 9 22 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 22 12 22 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 22 11 22 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 22 12 22 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 22 16 22 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 22 18 22 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 22 18 22 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 22 20 22 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 22 20 22 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 22 22 22 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 22 22 22 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 22 22 22 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 22 22 22 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 22 24 22 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 22 24 22 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 22 24 22 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 22 26 22 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 22 26 22 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 22 26 22 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 25 1 25 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 25 11 25 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 25 1 25 10
+                , srcInfoPoints = []
+                }
+              "addAndOr4"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 25 14 25 43
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 25 22 25 24 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 25 14 25 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 25 14 25 15
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 25 20 25 21
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 25 15 25 20
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 25 15 25 18
+                        , srcInfoPoints = []
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 15 25 16
+                           , srcInfoPoints = []
+                           }
+                         Nothing)
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 17 25 18
+                           , srcInfoPoints = []
+                           }
+                         Nothing))
+                   (TyWildCard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 25 19 25 20
+                        , srcInfoPoints = []
+                        }
+                      Nothing)))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 25 25 25 43
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 25 33 25 35 ]
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 25 25 25 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 25 25 25 26
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 25 31 25 32
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 25 26 25 31
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 26 25 29
+                           , srcInfoPoints = []
+                           }
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 25 26 25 27
+                              , srcInfoPoints = []
+                              }
+                            Nothing)
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 25 28 25 29
+                              , srcInfoPoints = []
+                              }
+                            Nothing))
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 30 25 31
+                           , srcInfoPoints = []
+                           }
+                         Nothing)))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 25 36 25 43
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 25 36 25 37
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 25 42 25 43
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 25 37 25 42
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 37 25 40
+                           , srcInfoPoints = []
+                           }
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 25 37 25 38
+                              , srcInfoPoints = []
+                              }
+                            Nothing)
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 25 39 25 40
+                              , srcInfoPoints = []
+                              }
+                            Nothing))
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 25 41 25 42
+                           , srcInfoPoints = []
+                           }
+                         Nothing)))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 26 1 28 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 27 3 27 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 26 1 28 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 27 3 27 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 26 1 26 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr4")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 26 11 26 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 26 11 26 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 26 13 26 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 26 16 26 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 26 12 26 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 26 12 26 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 26 15 26 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 26 15 26 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 26 18 26 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 26 18 26 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 26 20 26 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 26 23 26 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 26 19 26 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 26 19 26 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 26 22 26 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 26 22 26 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 26 25 26 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 26 25 26 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 26 27 26 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 26 27 26 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 26 38 26 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 26 46 26 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 26 28 26 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 28 26 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 28 26 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 28 26 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 30 26 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 26 30 26 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 26 31 26 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 26 35 26 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 30 26 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 26 30 26 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 26 31 26 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 26 35 26 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 31 26 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 37 26 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 37 26 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 37 26 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 26 40 26 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 40 26 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 40 26 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 40 26 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 42 26 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 42 26 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 42 26 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 26 45 26 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 26 45 26 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 26 45 26 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 27 9 28 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 27 9 27 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 28 9 28 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 31 1 31 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 27 9 27 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 27 14 27 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 27 9 27 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 27 17 27 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 27 21 27 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 27 17 27 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 27 17 27 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 27 17 27 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 27 24 27 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 27 28 27 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 27 24 27 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 27 24 27 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 27 24 27 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 27 31 27 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 27 31 27 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 27 31 27 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 28 9 28 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 28 9 28 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 28 9 28 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 28 9 28 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 28 12 28 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 28 11 28 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 28 12 28 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 28 16 28 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 28 18 28 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 28 18 28 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 28 20 28 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 28 20 28 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 28 22 28 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 28 22 28 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 28 22 28 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 28 22 28 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 28 24 28 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 28 24 28 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 28 24 28 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 28 26 28 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 28 26 28 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 28 26 28 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 31 1 31 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 31 11 31 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 31 1 31 10
+                , srcInfoPoints = []
+                }
+              "addAndOr5"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 31 14 31 40
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 31 21 31 23 ]
+               }
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 31 14 31 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 31 14 31 15
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 31 16 31 17
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 31 19 31 20
+                      ]
+                  }
+                Boxed
+                [ TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 31 15 31 16
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                , TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 31 18 31 19
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                ])
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 31 24 31 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 31 31 31 33 ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 31 24 31 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 31 24 31 25
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 31 26 31 27
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 31 29 31 30
+                         ]
+                     }
+                   Boxed
+                   [ TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 31 25 31 26
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   , TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 31 28 31 29
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   ])
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 31 34 31 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 31 34 31 35
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 31 36 31 37
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 31 39 31 40
+                         ]
+                     }
+                   Boxed
+                   [ TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 31 35 31 36
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   , TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 31 38 31 39
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 32 1 34 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 33 3 33 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 32 1 34 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 33 3 33 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 32 1 32 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr5")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 32 11 32 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 32 11 32 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 32 13 32 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 32 16 32 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 32 12 32 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 32 12 32 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 32 15 32 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 32 15 32 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 32 18 32 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 32 18 32 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 32 20 32 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 32 23 32 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 32 19 32 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 32 19 32 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 32 22 32 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 32 22 32 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 32 25 32 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 32 25 32 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 32 27 32 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 32 27 32 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 32 38 32 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 32 46 32 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 32 28 32 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 28 32 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 28 32 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 28 32 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 30 32 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 32 30 32 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 32 31 32 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 32 35 32 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 30 32 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 32 30 32 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 32 31 32 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 32 35 32 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 31 32 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 37 32 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 37 32 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 37 32 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 32 40 32 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 40 32 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 40 32 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 40 32 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 42 32 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 42 32 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 42 32 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 32 45 32 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 32 45 32 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 32 45 32 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 33 9 34 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 33 9 33 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 34 9 34 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 37 1 37 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 33 9 33 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 33 14 33 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 33 9 33 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 33 17 33 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 33 21 33 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 33 17 33 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 33 17 33 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 33 17 33 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 33 24 33 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 33 28 33 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 33 24 33 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 33 24 33 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 33 24 33 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 33 31 33 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 33 31 33 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 33 31 33 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 34 9 34 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 34 9 34 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 34 9 34 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 34 9 34 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 34 12 34 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 34 11 34 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 34 12 34 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 34 16 34 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 34 18 34 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 34 18 34 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 34 20 34 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 34 20 34 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 34 22 34 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 34 22 34 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 34 22 34 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 34 22 34 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 34 24 34 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 34 24 34 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 34 24 34 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 34 26 34 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 34 26 34 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 34 26 34 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 37 1 37 51
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 37 11 37 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 37 1 37 10
+                , srcInfoPoints = []
+                }
+              "addAndOr6"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 37 14 37 51
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 37 23 37 25 ]
+               }
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 37 14 37 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 37 14 37 15
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 37 18 37 19
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 37 21 37 22
+                      ]
+                  }
+                Boxed
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 37 15 37 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 37 15 37 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 37 15 37 18
+                            , srcInfoPoints = []
+                            }
+                          "Int"))
+                , TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 37 20 37 21
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                ])
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 37 26 37 51
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 37 36 37 38 ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 37 26 37 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 37 26 37 27
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 37 31 37 32
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 37 34 37 35
+                         ]
+                     }
+                   Boxed
+                   [ TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 37 27 37 31
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 37 27 37 31
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 37 27 37 31
+                               , srcInfoPoints = []
+                               }
+                             "Bool"))
+                   , TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 37 33 37 34
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   ])
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 37 39 37 51
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 37 39 37 40
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 37 50 37 51
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 37 40 37 50
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 37 40 37 45
+                           , srcInfoPoints = []
+                           }
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 37 40 37 41
+                              , srcInfoPoints = []
+                              }
+                            Nothing)
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 37 42 37 45
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 37 42 37 45
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 37 42 37 45
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int"))))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 37 46 37 50
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 37 46 37 50
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 37 46 37 50
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 38 1 40 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 39 3 39 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 38 1 40 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 39 3 39 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 38 1 38 10
+                   , srcInfoPoints = []
+                   }
+                 "addAndOr6")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 38 11 38 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 38 11 38 12
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 38 13 38 14
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 38 16 38 17
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 38 12 38 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 38 12 38 13
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 38 15 38 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 38 15 38 16
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              , PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 38 18 38 24
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 38 18 38 19
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 38 20 38 21
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 38 23 38 24
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 38 19 38 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 38 19 38 20
+                           , srcInfoPoints = []
+                           }
+                         "c")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 38 22 38 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 38 22 38 23
+                           , srcInfoPoints = []
+                           }
+                         "d")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 38 25 38 47
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 38 25 38 26 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 38 27 38 47
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 38 27 38 28
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 38 38 38 39
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 38 46 38 47
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 38 28 38 38
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 28 38 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 28 38 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 28 38 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "a")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 30 38 36
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 38 30 38 31
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 38 31 38 35
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 38 35 38 36
+                                 ]
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 30 38 36
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 38 30 38 31
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 38 31 38 35
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 38 35 38 36
+                                    ]
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 31 38 35
+                                   , srcInfoPoints = []
+                                   }
+                                 "plus")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 37 38 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 37 38 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 37 38 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "d")))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 38 40 38 46
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 40 38 41
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 40 38 41
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 40 38 41
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 42 38 44
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 42 38 44
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 42 38 44
+                                   , srcInfoPoints = []
+                                   }
+                                 "||")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 38 45 38 46
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 38 45 38 46
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 38 45 38 46
+                                   , srcInfoPoints = []
+                                   }
+                                 "c")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 39 9 40 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 39 9 39 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 40 9 40 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 43 1 43 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 39 9 39 34
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 39 14 39 16 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 39 9 39 13
+                              , srcInfoPoints = []
+                              }
+                            "plus"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 39 17 39 34
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 39 21 39 23 ]
+                             }
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 39 17 39 20
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 39 17 39 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 39 17 39 20
+                                      , srcInfoPoints = []
+                                      }
+                                    "Int")))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 39 24 39 34
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 39 28 39 30 ]
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 39 24 39 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 39 24 39 27
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 39 24 39 27
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 39 31 39 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PartialSignatures.hs" 39 31 39 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 39 31 39 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "Int")))))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 40 9 40 27
+                          , srcInfoPoints = []
+                          }
+                        [ InfixMatch
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 40 9 40 27
+                              , srcInfoPoints = []
+                              }
+                            (PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 40 9 40 10
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 40 9 40 10
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 40 12 40 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 40 11 40 12
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 40 12 40 16
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 40 16 40 17
+                                     ]
+                                 }
+                               "plus")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 40 18 40 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 40 18 40 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 40 20 40 27
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 40 20 40 21 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 40 22 40 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 40 22 40 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 40 22 40 23
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 40 22 40 23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 40 24 40 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 40 24 40 25
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 40 24 40 25
+                                             , srcInfoPoints = []
+                                             }
+                                           "+")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PartialSignatures.hs" 40 26 40 27
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 40 26 40 27
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs" 40 26 40 27
+                                             , srcInfoPoints = []
+                                             }
+                                           "y")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 43 1 43 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 43 5 43 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 43 1 43 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 43 8 43 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 43 10 43 12 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 43 8 43 9
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 43 13 43 14
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 44 1 44 14
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 44 1 44 14
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 44 1 44 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 44 5 44 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 44 5 44 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 44 7 44 14
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 44 7 44 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 44 9 44 14
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 44 9 44 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 44 9 44 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 44 9 44 12
+                               , srcInfoPoints = []
+                               }
+                             "not")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 44 13 44 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 44 13 44 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 44 13 44 14
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 47 1 47 11
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 47 7 47 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 47 1 47 6
+                , srcInfoPoints = []
+                }
+              "alpha"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 47 10 47 11
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 48 1 48 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 48 1 48 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 48 1 48 6
+                  , srcInfoPoints = []
+                  }
+                "alpha"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 48 7 48 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 48 7 48 8 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 48 9 48 10
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 48 9 48 10
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 51 1 51 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 51 7 51 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 51 1 51 6
+                , srcInfoPoints = []
+                }
+              "bravo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 51 10 51 16
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 51 10 51 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 51 12 51 14 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 51 10 51 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 51 12 51 14 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 51 10 51 14
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 51 12 51 14 ]
+                           }
+                         Nothing))))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 51 15 51 16
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 52 1 52 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 52 1 52 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 52 1 52 6
+                  , srcInfoPoints = []
+                  }
+                "bravo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 52 7 52 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 52 7 52 8 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 52 9 52 10
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 52 9 52 10
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 55 1 55 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 55 7 55 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 55 1 55 6
+                , srcInfoPoints = []
+                }
+              "bravo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 55 10 55 16
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 55 10 55 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 55 12 55 14 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 55 10 55 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 55 12 55 14 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 55 10 55 14
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 55 12 55 14 ]
+                           }
+                         Nothing))))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 55 15 55 16
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 56 1 56 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 56 1 56 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 56 1 56 6
+                  , srcInfoPoints = []
+                  }
+                "bravo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 56 7 56 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 56 7 56 8 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 56 9 56 10
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 56 9 56 10
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 58 1 58 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 58 7 58 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 58 1 58 6
+                , srcInfoPoints = []
+                }
+              "barry"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 58 10 58 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 58 13 58 15 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 58 10 58 12
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 58 11 58 12
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 58 16 58 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 58 16 58 17
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 58 22 58 23
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 58 28 58 29
+                      ]
+                  }
+                Boxed
+                [ TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 58 17 58 22
+                      , srcInfoPoints = []
+                      }
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 58 17 58 19
+                         , srcInfoPoints = []
+                         }
+                       (Just
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 58 18 58 19
+                               , srcInfoPoints = []
+                               }
+                             "b")))
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 58 20 58 22
+                         , srcInfoPoints = []
+                         }
+                       (Just
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 58 21 58 22
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                , TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 58 24 58 28
+                      , srcInfoPoints = []
+                      }
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 58 24 58 26
+                         , srcInfoPoints = []
+                         }
+                       (Just
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 58 25 58 26
+                               , srcInfoPoints = []
+                               }
+                             "b")))
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 58 27 58 28
+                         , srcInfoPoints = []
+                         }
+                       Nothing)
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 59 1 59 30
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 59 1 59 30
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 59 1 59 6
+                   , srcInfoPoints = []
+                   }
+                 "barry")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 59 7 59 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 59 7 59 8
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 59 9 59 30
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 59 9 59 10 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 59 11 59 30
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 59 11 59 12
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 59 20 59 21
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 59 29 59 30
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 59 12 59 20
+                          , srcInfoPoints = []
+                          }
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 59 12 59 16
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 59 12 59 16
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 59 12 59 16
+                                   , srcInfoPoints = []
+                                   }
+                                 "Left")))
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 59 17 59 20
+                             , srcInfoPoints = []
+                             }
+                           (String
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 59 17 59 20
+                                , srcInfoPoints = []
+                                }
+                              "x"
+                              "x"))
+                    , App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 59 22 59 29
+                          , srcInfoPoints = []
+                          }
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 59 22 59 27
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 59 22 59 27
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 59 22 59 27
+                                   , srcInfoPoints = []
+                                   }
+                                 "Right")))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 59 28 59 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 59 28 59 29
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 59 28 59 29
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 61 1 61 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 61 5 61 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 61 1 61 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 26
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 19
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 61 10 61 11
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 19
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 61 10 61 11
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19
+                            ]
+                        }
+                      (TyEquals
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 19
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 61 10 61 11
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 9
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 9
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 61 12 61 16
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 61 12 61 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 61 12 61 16
+                                    , srcInfoPoints = []
+                                    }
+                                  "Bool")))))))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 61 20 61 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 61 20 61 21
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 61 22 61 23
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 61 25 61 26
+                      ]
+                  }
+                Boxed
+                [ TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 61 21 61 22
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 61 21 61 22
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                , TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 61 24 61 25
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                ]))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 62 1 62 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 62 1 62 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 62 1 62 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 62 5 62 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 62 5 62 6 ]
+               }
+             (Tuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 62 7 62 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 62 7 62 8
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 62 12 62 13
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 62 19 62 20
+                      ]
+                  }
+                Boxed
+                [ Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 62 8 62 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 62 8 62 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 62 8 62 12
+                            , srcInfoPoints = []
+                            }
+                          "True"))
+                , Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 62 14 62 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 62 14 62 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 62 14 62 19
+                            , srcInfoPoints = []
+                            }
+                          "False"))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 65 1 65 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 65 7 65 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 65 1 65 6
+                , srcInfoPoints = []
+                }
+              "every"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 65 10 65 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 65 12 65 14 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 65 10 65 11
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 65 15 65 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 65 17 65 19 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 65 15 65 16
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 65 20 65 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 65 20 65 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 65 20 65 24
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 66 1 67 35
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 66 1 66 18
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 66 1 66 6
+                   , srcInfoPoints = []
+                   }
+                 "every")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 66 7 66 8
+                    , srcInfoPoints = []
+                    }
+              , PList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 66 9 66 11
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 66 9 66 10
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 66 10 66 11
+                        ]
+                    }
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 66 12 66 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 66 12 66 13 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 66 14 66 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 66 14 66 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 66 14 66 18
+                            , srcInfoPoints = []
+                            }
+                          "True"))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 67 1 67 35
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 67 1 67 6
+                   , srcInfoPoints = []
+                   }
+                 "every")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 67 7 67 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 67 7 67 8
+                       , srcInfoPoints = []
+                       }
+                     "p")
+              , PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 67 9 67 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 67 9 67 10
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 67 14 67 15
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 67 10 67 14
+                       , srcInfoPoints = []
+                       }
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 67 10 67 11
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 67 10 67 11
+                             , srcInfoPoints = []
+                             }
+                           "x"))
+                     (Special
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 67 11 67 12
+                          , srcInfoPoints = []
+                          }
+                        (Cons
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 67 11 67 12
+                             , srcInfoPoints = []
+                             }))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 67 12 67 14
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 67 12 67 14
+                             , srcInfoPoints = []
+                             }
+                           "xs")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 67 16 67 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 67 16 67 17 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 67 18 67 35
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 67 18 67 21
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 67 18 67 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 18 67 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 67 18 67 19
+                                  , srcInfoPoints = []
+                                  }
+                                "p")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 67 20 67 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 20 67 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 67 20 67 21
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 67 22 67 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 67 22 67 24
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 22 67 24
+                               , srcInfoPoints = []
+                               }
+                             "&&")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 67 25 67 35
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 67 25 67 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 25 67 30
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 67 25 67 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 67 25 67 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "every")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 31 67 32
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 67 31 67 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 67 31 67 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "p"))))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 67 33 67 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 67 33 67 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 67 33 67 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 69 1 69 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 69 7 69 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 69 1 69 6
+                , srcInfoPoints = []
+                }
+              "every"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 69 10 69 38
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 69 23 69 25 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 69 10 69 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 69 10 69 11
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 69 21 69 22
+                      ]
+                  }
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 69 11 69 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 69 14 69 16 ]
+                     }
+                   (TyWildCard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 69 11 69 13
+                        , srcInfoPoints = []
+                        }
+                      (Just
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 69 12 69 13
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 69 17 69 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 69 17 69 21
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 69 17 69 21
+                              , srcInfoPoints = []
+                              }
+                            "Bool")))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 69 26 69 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 69 31 69 33 ]
+                  }
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 69 26 69 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 69 26 69 27
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 69 29 69 30
+                         ]
+                     }
+                   (TyWildCard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 69 27 69 29
+                        , srcInfoPoints = []
+                        }
+                      (Just
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 69 28 69 29
+                              , srcInfoPoints = []
+                              }
+                            "a"))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 69 34 69 38
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 69 34 69 38
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 69 34 69 38
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 70 1 71 35
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 70 1 70 18
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 70 1 70 6
+                   , srcInfoPoints = []
+                   }
+                 "every")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 70 7 70 8
+                    , srcInfoPoints = []
+                    }
+              , PList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 70 9 70 11
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 70 9 70 10
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 70 10 70 11
+                        ]
+                    }
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 70 12 70 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 70 12 70 13 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 70 14 70 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 70 14 70 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 70 14 70 18
+                            , srcInfoPoints = []
+                            }
+                          "True"))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 71 1 71 35
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 71 1 71 6
+                   , srcInfoPoints = []
+                   }
+                 "every")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 71 7 71 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 71 7 71 8
+                       , srcInfoPoints = []
+                       }
+                     "p")
+              , PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 71 9 71 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 71 9 71 10
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 71 14 71 15
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 71 10 71 14
+                       , srcInfoPoints = []
+                       }
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 71 10 71 11
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 71 10 71 11
+                             , srcInfoPoints = []
+                             }
+                           "x"))
+                     (Special
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 71 11 71 12
+                          , srcInfoPoints = []
+                          }
+                        (Cons
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 71 11 71 12
+                             , srcInfoPoints = []
+                             }))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 71 12 71 14
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 71 12 71 14
+                             , srcInfoPoints = []
+                             }
+                           "xs")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 71 16 71 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 71 16 71 17 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 71 18 71 35
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 71 18 71 21
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 71 18 71 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 18 71 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 71 18 71 19
+                                  , srcInfoPoints = []
+                                  }
+                                "p")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 71 20 71 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 20 71 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 71 20 71 21
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 71 22 71 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 71 22 71 24
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 22 71 24
+                               , srcInfoPoints = []
+                               }
+                             "&&")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 71 25 71 35
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 71 25 71 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 25 71 30
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 71 25 71 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 71 25 71 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "every")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 31 71 32
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 71 31 71 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 71 31 71 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "p"))))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 71 33 71 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 71 33 71 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 71 33 71 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 74 1 74 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 74 5 74 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 74 1 74 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 74 8 74 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 74 13 74 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 74 8 74 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 74 8 74 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 74 8 74 12
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 74 16 74 20
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 74 16 74 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 74 16 74 20
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 75 1 75 17
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 75 1 75 17
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 75 1 75 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 75 5 75 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 75 5 75 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 75 7 75 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 75 7 75 8 ]
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 75 9 75 17
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 75 9 75 10
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 75 16 75 17
+                          ]
+                      }
+                    (ExpTypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 75 10 75 16
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 75 12 75 14 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 75 10 75 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 75 10 75 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 75 10 75 11
+                                  , srcInfoPoints = []
+                                  }
+                                "x")))
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 75 15 75 16
+                            , srcInfoPoints = []
+                            }
+                          Nothing))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 77 1 77 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 77 5 77 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 77 1 77 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 77 8 77 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 77 11 77 13 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 77 8 77 10
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 77 9 77 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 77 14 77 16
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 77 15 77 16
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 78 1 79 25
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 78 1 78 26
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 78 1 78 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 78 5 78 9
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 78 5 78 9
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 78 5 78 9
+                          , srcInfoPoints = []
+                          }
+                        "True"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 78 11 78 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 78 11 78 12 ]
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 78 13 78 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 78 13 78 14
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 78 25 78 26
+                          ]
+                      }
+                    (ExpTypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 78 14 78 25
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 78 20 78 22 ]
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 78 14 78 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 78 14 78 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 78 14 78 19
+                                  , srcInfoPoints = []
+                                  }
+                                "False")))
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 78 23 78 25
+                            , srcInfoPoints = []
+                            }
+                          (Just
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 78 24 78 25
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 79 1 79 25
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 79 1 79 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 79 5 79 10
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 79 5 79 10
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 79 5 79 10
+                          , srcInfoPoints = []
+                          }
+                        "False"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 79 11 79 25
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 79 11 79 12 ]
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 79 13 79 25
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 79 13 79 14
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 79 24 79 25
+                          ]
+                      }
+                    (ExpTypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 79 14 79 24
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 79 19 79 21 ]
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 79 14 79 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 79 14 79 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 79 14 79 18
+                                  , srcInfoPoints = []
+                                  }
+                                "True")))
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 79 22 79 24
+                            , srcInfoPoints = []
+                            }
+                          (Just
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 79 23 79 24
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 82 1 82 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 82 10 82 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 82 1 82 9
+                , srcInfoPoints = []
+                }
+              "arbitCs1"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 82 13 82 29
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 82 13 82 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 82 15 82 17 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 82 13 82 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 82 15 82 17 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 82 13 82 17
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 82 15 82 17 ]
+                           }
+                         Nothing))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 82 18 82 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 82 20 82 22 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 82 18 82 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 82 18 82 19
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 82 23 82 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 82 23 82 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 82 23 82 29
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 83 1 83 44
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 83 1 83 44
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 83 1 83 9
+                   , srcInfoPoints = []
+                   }
+                 "arbitCs1")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 83 10 83 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 83 10 83 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 83 12 83 44
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 83 12 83 13 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 83 14 83 44
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 83 14 83 27
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 83 14 83 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 83 14 83 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 14 83 18
+                                  , srcInfoPoints = []
+                                  }
+                                "show")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 83 19 83 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PartialSignatures.hs" 83 19 83 20
+                                , SrcSpan "tests/examples/PartialSignatures.hs" 83 26 83 27
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 83 20 83 26
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 20 83 24
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 83 20 83 24
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 83 20 83 24
+                                        , srcInfoPoints = []
+                                        }
+                                      "succ")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 25 83 26
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 83 25 83 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 83 25 83 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "x"))))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 83 28 83 30
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 83 28 83 30
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 83 28 83 30
+                               , srcInfoPoints = []
+                               }
+                             "++")))
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 83 31 83 44
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 83 31 83 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 83 31 83 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 31 83 35
+                                  , srcInfoPoints = []
+                                  }
+                                "show")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 83 36 83 44
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PartialSignatures.hs" 83 36 83 37
+                                , SrcSpan "tests/examples/PartialSignatures.hs" 83 43 83 44
+                                ]
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 83 37 83 43
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 37 83 38
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 83 37 83 38
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 83 37 83 38
+                                        , srcInfoPoints = []
+                                        }
+                                      "x")))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 39 83 41
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 83 39 83 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 83 39 83 41
+                                        , srcInfoPoints = []
+                                        }
+                                      "==")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 83 42 83 43
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 83 42 83 43
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 83 42 83 43
+                                        , srcInfoPoints = []
+                                        }
+                                      "x"))))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 85 1 85 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 85 10 85 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 85 1 85 9
+                , srcInfoPoints = []
+                }
+              "arbitCs2"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 85 13 85 39
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 85 13 85 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 85 13 85 14
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 85 20 85 21
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 85 23 85 24
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 85 25 85 27
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "Show")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 85 19 85 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 85 19 85 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 85 22 85 23
+                         , srcInfoPoints = []
+                         }
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 85 22 85 23
+                            , srcInfoPoints = []
+                            }
+                          Nothing)
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 85 28 85 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 85 30 85 32 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 85 28 85 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 85 28 85 29
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 85 33 85 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 85 33 85 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 85 33 85 39
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 86 1 86 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 86 1 86 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 86 1 86 9
+                   , srcInfoPoints = []
+                   }
+                 "arbitCs2")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 86 10 86 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 86 10 86 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 86 12 86 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 86 12 86 13 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 86 14 86 24
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 86 14 86 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 86 14 86 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 86 14 86 22
+                               , srcInfoPoints = []
+                               }
+                             "arbitCs1")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 86 23 86 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 86 23 86 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 86 23 86 24
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 88 1 88 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 88 10 88 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 88 1 88 9
+                , srcInfoPoints = []
+                }
+              "arbitCs3"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 88 13 88 47
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 88 13 88 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 88 13 88 14
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 88 20 88 21
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 88 28 88 29
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 88 31 88 32
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 88 33 88 35
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "Show")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 19 88 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 88 19 88 20
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 28
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 28
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 28
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 26
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "Enum")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 27 88 28
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 88 27 88 28
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 88 30 88 31
+                         , srcInfoPoints = []
+                         }
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 30 88 31
+                            , srcInfoPoints = []
+                            }
+                          Nothing)
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 88 36 88 47
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 88 38 88 40 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 88 36 88 37
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 88 36 88 37
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 88 41 88 47
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 88 41 88 47
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 88 41 88 47
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 89 1 89 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 89 1 89 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 89 1 89 9
+                   , srcInfoPoints = []
+                   }
+                 "arbitCs3")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 89 10 89 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 89 10 89 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 89 12 89 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 89 12 89 13 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 89 14 89 24
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 89 14 89 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 89 14 89 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 89 14 89 22
+                               , srcInfoPoints = []
+                               }
+                             "arbitCs1")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 89 23 89 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 89 23 89 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 89 23 89 24
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 91 1 91 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 91 10 91 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 91 1 91 9
+                , srcInfoPoints = []
+                }
+              "arbitCs4"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 91 13 91 37
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 91 13 91 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 91 13 91 14
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 91 18 91 19
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 91 21 91 22
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 91 23 91 25
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 91 17 91 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 91 17 91 18
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 91 20 91 21
+                         , srcInfoPoints = []
+                         }
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 91 20 91 21
+                            , srcInfoPoints = []
+                            }
+                          Nothing)
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 91 26 91 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 91 28 91 30 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 91 26 91 27
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 91 26 91 27
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 91 31 91 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 91 31 91 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 91 31 91 37
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 92 1 92 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 92 1 92 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 92 1 92 9
+                   , srcInfoPoints = []
+                   }
+                 "arbitCs4")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 92 10 92 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 92 10 92 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 92 12 92 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 92 12 92 13 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 92 14 92 24
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 92 14 92 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 92 14 92 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 92 14 92 22
+                               , srcInfoPoints = []
+                               }
+                             "arbitCs1")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 92 23 92 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 92 23 92 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 92 23 92 24
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 94 1 94 53
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 94 10 94 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 94 1 94 9
+                , srcInfoPoints = []
+                }
+              "arbitCs5"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 94 13 94 53
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 94 13 94 41
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 94 13 94 14
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 94 18 94 19
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 94 26 94 27
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 94 34 94 35
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 94 37 94 38
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 94 39 94 41
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 17 94 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 17 94 18
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 26
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "Enum")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 25 94 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 25 94 26
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 34
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 34
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 34
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "Show")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 33 94 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 94 33 94 34
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 94 36 94 37
+                         , srcInfoPoints = []
+                         }
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 36 94 37
+                            , srcInfoPoints = []
+                            }
+                          Nothing)
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 94 42 94 53
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 94 44 94 46 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 94 42 94 43
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 94 42 94 43
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 94 47 94 53
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 94 47 94 53
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 94 47 94 53
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 95 1 95 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 95 1 95 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 95 1 95 9
+                   , srcInfoPoints = []
+                   }
+                 "arbitCs5")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 95 10 95 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 95 10 95 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 95 12 95 24
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 95 12 95 13 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 95 14 95 24
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 95 14 95 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 95 14 95 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 95 14 95 22
+                               , srcInfoPoints = []
+                               }
+                             "arbitCs1")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 95 23 95 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 95 23 95 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 95 23 95 24
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 98 1 98 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 98 5 98 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 98 1 98 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 98 8 98 19
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 98 8 98 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 98 10 98 12 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 98 8 98 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 98 10 98 12 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 98 8 98 12
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 98 10 98 12 ]
+                           }
+                         Nothing))))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 98 13 98 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 98 13 98 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 98 13 98 19
+                        , srcInfoPoints = []
+                        }
+                      "String"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 99 1 99 10
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 99 1 99 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 99 1 99 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 99 5 99 10
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 99 5 99 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 99 7 99 10
+                  , srcInfoPoints = []
+                  }
+                (String
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 99 7 99 10
+                     , srcInfoPoints = []
+                     }
+                   "x"
+                   "x")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 105 1 105 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 105 5 105 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 105 1 105 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 105 8 105 14
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 105 8 105 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 105 10 105 12 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 105 8 105 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 105 10 105 12 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 105 8 105 12
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 105 10 105 12 ]
+                           }
+                         Nothing))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 105 13 105 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 105 13 105 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 106 1 106 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 106 1 106 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 106 1 106 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 106 5 106 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 106 5 106 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 106 7 106 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 106 7 106 8
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 109 1 109 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 109 5 109 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 109 1 109 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 109 8 109 14
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 109 8 109 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 109 10 109 12 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 109 8 109 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 109 10 109 12 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 109 8 109 12
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 109 10 109 12 ]
+                           }
+                         Nothing))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 109 13 109 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 109 13 109 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 110 1 110 8
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 110 1 110 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 110 1 110 4
+                  , srcInfoPoints = []
+                  }
+                "foo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 110 5 110 8
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 110 5 110 6 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 110 7 110 8
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 110 7 110 8
+                     , srcInfoPoints = []
+                     }
+                   3
+                   "3")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 112 1 112 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 112 6 112 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 112 1 112 5
+                , srcInfoPoints = []
+                }
+              "fall"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 112 9 112 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 112 9 112 15
+                   , SrcSpan "tests/examples/PartialSignatures.hs" 112 18 112 19
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 112 16 112 17
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 112 16 112 17
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 112 20 112 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 112 22 112 24 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 112 20 112 21
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 112 25 112 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 112 25 112 26
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 113 1 113 11
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 113 1 113 11
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 113 1 113 5
+                   , srcInfoPoints = []
+                   }
+                 "fall")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 113 6 113 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 113 6 113 7
+                       , srcInfoPoints = []
+                       }
+                     "v")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 113 8 113 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 113 8 113 9 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 113 10 113 11
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 113 10 113 11
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 113 10 113 11
+                            , srcInfoPoints = []
+                            }
+                          "v"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 115 1 115 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 115 5 115 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 115 1 115 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 115 8 115 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 115 11 115 13 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 115 8 115 10
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 115 9 115 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 115 14 115 16
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 115 15 115 16
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 116 1 116 14
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 116 1 116 14
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 116 1 116 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 116 5 116 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 116 5 116 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 116 7 116 14
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 116 7 116 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 116 9 116 14
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 116 9 116 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 116 9 116 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 116 9 116 12
+                               , srcInfoPoints = []
+                               }
+                             "not")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 116 13 116 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 116 13 116 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 116 13 116 14
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 118 1 118 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 118 5 118 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 118 1 118 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 118 8 118 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 118 31 118 33 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 118 8 118 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 118 8 118 9
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 118 29 118 30
+                      ]
+                  }
+                (TyForall
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 118 9 118 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 118 9 118 15
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 118 17 118 18
+                         ]
+                     }
+                   (Just
+                      [ UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 118 16 118 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 118 16 118 17
+                               , srcInfoPoints = []
+                               }
+                             "a")
+                      ])
+                   Nothing
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 118 19 118 29
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 118 23 118 25 ]
+                        }
+                      (TyList
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 118 19 118 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 118 19 118 20
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 118 21 118 22
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 118 20 118 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 118 20 118 21
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyList
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 118 26 118 29
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 118 26 118 27
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 118 28 118 29
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 118 27 118 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 118 27 118 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 118 34 118 35
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 119 1 119 40
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 119 1 119 40
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 119 1 119 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 119 5 119 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 119 5 119 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 119 7 119 40
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 119 7 119 8 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 119 9 119 40
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 119 9 119 10
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 119 25 119 26
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 119 39 119 40
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 119 10 119 25
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 119 10 119 11
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 119 10 119 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 119 10 119 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")))
+                        (List
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 119 12 119 25
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 119 12 119 13
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 119 17 119 18
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 119 24 119 25
+                                 ]
+                             }
+                           [ Con
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 119 13 119 17
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 119 13 119 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 119 13 119 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "True"))
+                           , Con
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 119 19 119 24
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 119 19 119 24
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 119 19 119 24
+                                       , srcInfoPoints = []
+                                       }
+                                     "False"))
+                           ])
+                    , App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 119 27 119 39
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 119 27 119 28
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 119 27 119 28
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 119 27 119 28
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")))
+                        (List
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 119 29 119 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 119 29 119 30
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 119 33 119 34
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 119 38 119 39
+                                 ]
+                             }
+                           [ Lit
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 119 30 119 33
+                                 , srcInfoPoints = []
+                                 }
+                               (Char
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 119 30 119 33
+                                    , srcInfoPoints = []
+                                    }
+                                  'a'
+                                  "a")
+                           , Lit
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 119 35 119 38
+                                 , srcInfoPoints = []
+                                 }
+                               (Char
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 119 35 119 38
+                                    , srcInfoPoints = []
+                                    }
+                                  'b'
+                                  "b")
+                           ])
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 121 1 121 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 121 5 121 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 121 1 121 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 121 8 121 42
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 121 31 121 33 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 121 8 121 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 121 8 121 9
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 121 29 121 30
+                      ]
+                  }
+                (TyForall
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 121 9 121 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 121 9 121 15
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 121 17 121 18
+                         ]
+                     }
+                   (Just
+                      [ UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 121 16 121 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 121 16 121 17
+                               , srcInfoPoints = []
+                               }
+                             "a")
+                      ])
+                   Nothing
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 121 19 121 29
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 121 23 121 25 ]
+                        }
+                      (TyList
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 121 19 121 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 121 19 121 20
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 121 21 121 22
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 121 20 121 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 121 20 121 21
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyList
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 121 26 121 29
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 121 26 121 27
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 121 28 121 29
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 121 27 121 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 121 27 121 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 121 34 121 42
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 121 34 121 35
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 121 36 121 37
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 121 41 121 42
+                      ]
+                  }
+                Boxed
+                [ TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 121 35 121 36
+                      , srcInfoPoints = []
+                      }
+                    Nothing
+                , TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 121 38 121 41
+                      , srcInfoPoints = []
+                      }
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 121 38 121 39
+                         , srcInfoPoints = []
+                         }
+                       Nothing)
+                    (TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 121 40 121 41
+                         , srcInfoPoints = []
+                         }
+                       Nothing)
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 122 1 122 40
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 122 1 122 40
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 122 1 122 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 122 5 122 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 122 5 122 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 122 7 122 40
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 122 7 122 8 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 122 9 122 40
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 122 9 122 10
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 122 25 122 26
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 122 39 122 40
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 122 10 122 25
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 122 10 122 11
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 122 10 122 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 122 10 122 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")))
+                        (List
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 122 12 122 25
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 122 12 122 13
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 122 17 122 18
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 122 24 122 25
+                                 ]
+                             }
+                           [ Con
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 122 13 122 17
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 122 13 122 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 122 13 122 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "True"))
+                           , Con
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 122 19 122 24
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 122 19 122 24
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 122 19 122 24
+                                       , srcInfoPoints = []
+                                       }
+                                     "False"))
+                           ])
+                    , App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 122 27 122 39
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 122 27 122 28
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 122 27 122 28
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 122 27 122 28
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")))
+                        (List
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 122 29 122 39
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 122 29 122 30
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 122 33 122 34
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 122 38 122 39
+                                 ]
+                             }
+                           [ Lit
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 122 30 122 33
+                                 , srcInfoPoints = []
+                                 }
+                               (Char
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 122 30 122 33
+                                    , srcInfoPoints = []
+                                    }
+                                  'a'
+                                  "a")
+                           , Lit
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 122 35 122 38
+                                 , srcInfoPoints = []
+                                 }
+                               (Char
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 122 35 122 38
+                                    , srcInfoPoints = []
+                                    }
+                                  'b'
+                                  "b")
+                           ])
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 125 1 125 48
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 125 9 125 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 125 1 125 8
+                , srcInfoPoints = []
+                }
+              "monoLoc"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 125 12 125 48
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 125 12 125 18
+                   , SrcSpan "tests/examples/PartialSignatures.hs" 125 20 125 21
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 125 19 125 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 125 19 125 20
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 125 22 125 48
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 125 24 125 26 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 125 22 125 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 125 22 125 23
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 125 27 125 48
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 125 27 125 28
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 125 39 125 40
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 125 47 125 48
+                         ]
+                     }
+                   Boxed
+                   [ TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 125 28 125 39
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 125 28 125 29
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 125 30 125 31
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 125 38 125 39
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 125 29 125 30
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 125 29 125 30
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 125 32 125 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 125 32 125 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 125 32 125 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "String"))
+                       ]
+                   , TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 125 41 125 47
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 125 41 125 42
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 125 43 125 44
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 125 46 125 47
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 125 42 125 43
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 125 42 125 43
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyWildCard
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 125 45 125 46
+                             , srcInfoPoints = []
+                             }
+                           Nothing
+                       ]
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 126 1 129 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 127 3 127 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 126 1 129 21
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 127 3 127 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 126 1 126 8
+                   , srcInfoPoints = []
+                   }
+                 "monoLoc")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 126 9 126 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 126 9 126 10
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 126 11 126 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 126 11 126 12 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 126 13 126 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 126 13 126 14
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 126 21 126 22
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 126 30 126 31
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 126 14 126 20
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 126 14 126 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 126 14 126 15
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 126 14 126 15
+                                   , srcInfoPoints = []
+                                   }
+                                 "g")))
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 126 16 126 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 126 16 126 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 126 16 126 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "True")))
+                    , App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 126 23 126 30
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 126 23 126 24
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 126 23 126 24
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 126 23 126 24
+                                   , srcInfoPoints = []
+                                   }
+                                 "g")))
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 126 25 126 30
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 126 25 126 30
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 126 25 126 30
+                                   , srcInfoPoints = []
+                                   }
+                                 "False")))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 128 5 129 21
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 128 5 128 5
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 129 5 129 5
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 151 1 151 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 128 5 128 26
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 128 7 128 9 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 128 5 128 6
+                              , srcInfoPoints = []
+                              }
+                            "g"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 128 10 128 26
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 128 12 128 14 ]
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 128 10 128 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 128 10 128 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "t"))
+                           (TyTuple
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 128 15 128 26
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 128 15 128 16
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 128 17 128 18
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 128 25 128 26
+                                    ]
+                                }
+                              Boxed
+                              [ TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 128 16 128 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 128 16 128 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "a")
+                              , TyCon
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 128 19 128 25
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 128 19 128 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 128 19 128 25
+                                          , srcInfoPoints = []
+                                          }
+                                        "String"))
+                              ]))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 129 5 129 21
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 129 5 129 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 129 5 129 6
+                                 , srcInfoPoints = []
+                                 }
+                               "g")
+                            [ PWildCard
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 129 7 129 8
+                                  , srcInfoPoints = []
+                                  }
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 129 9 129 21
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 129 9 129 10 ]
+                                 }
+                               (Tuple
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 129 11 129 21
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 129 11 129 12
+                                        , SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 129 13 129 14
+                                        , SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 129 20 129 21
+                                        ]
+                                    }
+                                  Boxed
+                                  [ Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 129 12 129 13
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 129 12 129 13
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    129
+                                                    12
+                                                    129
+                                                    13
+                                              , srcInfoPoints = []
+                                              }
+                                            "x"))
+                                  , Lit
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 129 15 129 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (String
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 129 15 129 20
+                                           , srcInfoPoints = []
+                                           }
+                                         "foo"
+                                         "foo")
+                                  ]))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 151 1 151 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 151 1 151 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 151 6 151 21
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 151 6 151 19
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 151 6 151 17
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 151 6 151 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 151 6 151 15
+                           , srcInfoPoints = []
+                           }
+                         "NukeMonad"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 151 16 151 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 151 16 151 17
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 151 18 151 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 151 18 151 19
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 151 20 151 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 151 20 151 21
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          []
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 153 1 156 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 153 1 153 9
+                , SrcSpan "tests/examples/PartialSignatures.hs" 153 34 153 39
+                , SrcSpan "tests/examples/PartialSignatures.hs" 154 3 154 3
+                , SrcSpan "tests/examples/PartialSignatures.hs" 156 1 156 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 153 10 153 33
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 153 10 153 33
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 153 10 153 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 153 10 153 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 153 10 153 17
+                           , srcInfoPoints = []
+                           }
+                         "Functor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 153 18 153 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 153 18 153 19
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 153 32 153 33
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 153 19 153 32
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 153 19 153 30
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 153 19 153 28
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 153 19 153 28
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 153 19 153 28
+                                    , srcInfoPoints = []
+                                    }
+                                  "NukeMonad")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 153 29 153 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 153 29 153 30
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 153 31 153 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 153 31 153 32
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 154 3 154 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 154 3 154 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 154 3 154 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 154 3 154 7
+                            , srcInfoPoints = []
+                            }
+                          "fmap"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 154 8 154 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 154 8 154 9 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 154 10 154 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 154 10 154 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 154 10 154 19
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 156 1 160 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 156 1 156 9
+                , SrcSpan "tests/examples/PartialSignatures.hs" 156 38 156 43
+                , SrcSpan "tests/examples/PartialSignatures.hs" 157 3 157 3
+                , SrcSpan "tests/examples/PartialSignatures.hs" 158 3 158 3
+                , SrcSpan "tests/examples/PartialSignatures.hs" 160 1 160 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 156 10 156 37
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 156 10 156 37
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 156 10 156 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 156 10 156 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 156 10 156 21
+                           , srcInfoPoints = []
+                           }
+                         "Applicative")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 156 22 156 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 156 22 156 23
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 156 36 156 37
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 156 23 156 36
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 156 23 156 34
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 156 23 156 32
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 156 23 156 32
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 156 23 156 32
+                                    , srcInfoPoints = []
+                                    }
+                                  "NukeMonad")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 156 33 156 34
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 156 33 156 34
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 156 35 156 36
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 156 35 156 36
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 157 3 157 19
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 157 3 157 19
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 157 3 157 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 157 3 157 7
+                            , srcInfoPoints = []
+                            }
+                          "pure"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 157 8 157 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 157 8 157 9 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 157 10 157 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 157 10 157 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 157 10 157 19
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 158 3 158 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 158 3 158 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 158 3 158 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 158 3 158 4
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 158 4 158 7
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 158 7 158 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 158 4 158 7
+                            , srcInfoPoints = []
+                            }
+                          "<*>"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 158 9 158 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 158 9 158 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 158 11 158 20
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 158 11 158 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 158 11 158 20
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 160 1 165 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 160 1 160 9
+                , SrcSpan "tests/examples/PartialSignatures.hs" 160 32 160 37
+                , SrcSpan "tests/examples/PartialSignatures.hs" 161 3 161 3
+                , SrcSpan "tests/examples/PartialSignatures.hs" 162 3 162 3
+                , SrcSpan "tests/examples/PartialSignatures.hs" 165 1 165 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 160 10 160 31
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 160 10 160 31
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 160 10 160 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 160 10 160 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 160 10 160 15
+                           , srcInfoPoints = []
+                           }
+                         "Monad")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 160 16 160 31
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 160 16 160 17
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 160 30 160 31
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 160 17 160 30
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 160 17 160 28
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 160 17 160 26
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 160 17 160 26
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 160 17 160 26
+                                    , srcInfoPoints = []
+                                    }
+                                  "NukeMonad")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 160 27 160 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 160 27 160 28
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 160 29 160 30
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 160 29 160 30
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 161 3 161 21
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 161 3 161 21
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 161 3 161 9
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 161 3 161 9
+                            , srcInfoPoints = []
+                            }
+                          "return"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 161 10 161 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 161 10 161 11 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 161 12 161 21
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 161 12 161 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 161 12 161 21
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 162 3 162 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 162 3 162 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 162 3 162 8
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 162 3 162 4
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 162 4 162 7
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 162 7 162 8
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 162 4 162 7
+                            , srcInfoPoints = []
+                            }
+                          ">>="))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 162 9 162 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 162 9 162 10 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 162 11 162 20
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 162 11 162 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 162 11 162 20
+                                  , srcInfoPoints = []
+                                  }
+                                "undefined"))))
+                    Nothing)
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 165 1 165 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 165 12 165 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 165 1 165 11
+                , srcInfoPoints = []
+                }
+              "isMeltdown"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 43
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 38
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 31
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 24
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 165 15 165 24
+                              , srcInfoPoints = []
+                              }
+                            "NukeMonad")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 165 25 165 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 165 25 165 31
+                           , srcInfoPoints = []
+                           }
+                         "param1")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 165 32 165 38
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 165 32 165 38
+                        , srcInfoPoints = []
+                        }
+                      "param2")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 165 39 165 43
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 165 39 165 43
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 165 39 165 43
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 166 1 166 23
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 166 1 166 11
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 166 1 166 11
+                  , srcInfoPoints = []
+                  }
+                "isMeltdown"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 166 12 166 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 166 12 166 13 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 166 14 166 23
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 166 14 166 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 166 14 166 23
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 168 1 168 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 168 16 168 18 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 168 1 168 15
+                , srcInfoPoints = []
+                }
+              "unlessMeltdown"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 168 19 168 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 168 26 168 28 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 168 19 168 25
+                  , srcInfoPoints = []
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 168 19 168 22
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 168 20 168 22
+                           , srcInfoPoints = []
+                           }
+                         "nm")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 24
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 168 24 168 25
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 24
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 168 24 168 25
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 168 23 168 24
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 168 24 168 25
+                               ]
+                           }))))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 168 30 168 36
+                  , srcInfoPoints = []
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 168 30 168 33
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 168 31 168 33
+                           , srcInfoPoints = []
+                           }
+                         "nm")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 35
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 168 35 168 36
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 36
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 35
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 168 35 168 36
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 36
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 168 34 168 35
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 168 35 168 36
+                               ]
+                           })))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 169 1 170 49
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 169 1 170 49
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 169 1 169 15
+                   , srcInfoPoints = []
+                   }
+                 "unlessMeltdown")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 169 16 169 17
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 169 16 169 17
+                       , srcInfoPoints = []
+                       }
+                     "c")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 169 18 170 49
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 169 18 169 19 ]
+                   }
+                 (Do
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 169 20 170 49
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 169 20 169 22
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 169 23 169 23
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 170 23 170 23
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 174 1 174 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 169 23 169 38
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 169 25 169 27 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 169 23 169 24
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 169 23 169 24
+                                , srcInfoPoints = []
+                                }
+                              "m"))
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 169 28 169 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 169 28 169 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 169 28 169 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "isMeltdown")))
+                    , Qualifier
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 170 23 170 49
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 170 23 170 25
+                              , SrcSpan "tests/examples/PartialSignatures.hs" 170 28 170 32
+                              , SrcSpan "tests/examples/PartialSignatures.hs" 170 43 170 47
+                              ]
+                          }
+                        (If
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 170 23 170 49
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 170 23 170 25
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 170 28 170 32
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 170 43 170 47
+                                 ]
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 170 26 170 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 170 26 170 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 170 26 170 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "m")))
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 170 33 170 42
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 170 33 170 39
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 170 33 170 39
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 170 33 170 39
+                                         , srcInfoPoints = []
+                                         }
+                                       "return")))
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 170 40 170 42
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/PartialSignatures.hs" 170 40 170 41
+                                       , SrcSpan "tests/examples/PartialSignatures.hs" 170 41 170 42
+                                       ]
+                                   }
+                                 (Special
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 170 40 170 42
+                                      , srcInfoPoints =
+                                          [ SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 170 40 170 41
+                                          , SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 170 41 170 42
+                                          ]
+                                      }
+                                    (UnitCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 170 40 170 42
+                                         , srcInfoPoints =
+                                             [ SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 170 40 170 41
+                                             , SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 170 41 170 42
+                                             ]
+                                         }))))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 170 48 170 49
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 170 48 170 49
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 170 48 170 49
+                                      , srcInfoPoints = []
+                                      }
+                                    "c"))))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 174 1 174 53
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 174 9 174 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 174 1 174 8
+                , srcInfoPoints = []
+                }
+              "monoLoc"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 174 12 174 53
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 174 12 174 18
+                   , SrcSpan "tests/examples/PartialSignatures.hs" 174 20 174 21
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 174 19 174 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 174 19 174 20
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 174 22 174 53
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 174 24 174 26 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 174 22 174 23
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 174 22 174 23
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 174 27 174 53
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 174 27 174 28
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 174 39 174 40
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 174 52 174 53
+                         ]
+                     }
+                   Boxed
+                   [ TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 174 28 174 39
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 174 28 174 29
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 174 30 174 31
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 174 38 174 39
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 174 29 174 30
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 174 29 174 30
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 174 32 174 38
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 174 32 174 38
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 174 32 174 38
+                                   , srcInfoPoints = []
+                                   }
+                                 "String"))
+                       ]
+                   , TyTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 174 41 174 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 174 41 174 42
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 174 43 174 44
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 174 51 174 52
+                             ]
+                         }
+                       Boxed
+                       [ TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 174 42 174 43
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 174 42 174 43
+                                , srcInfoPoints = []
+                                }
+                              "a")
+                       , TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 174 45 174 51
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 174 45 174 51
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 174 45 174 51
+                                   , srcInfoPoints = []
+                                   }
+                                 "String"))
+                       ]
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 175 1 179 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 176 3 176 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 175 1 179 21
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 176 3 176 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 175 1 175 8
+                   , srcInfoPoints = []
+                   }
+                 "monoLoc")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 175 9 175 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 175 9 175 10
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 175 11 175 29
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 175 11 175 12 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 175 13 175 29
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 175 13 175 14
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 175 21 175 22
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 175 28 175 29
+                          ]
+                      }
+                    Boxed
+                    [ App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 175 14 175 20
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 175 14 175 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 175 14 175 15
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 175 14 175 15
+                                   , srcInfoPoints = []
+                                   }
+                                 "g")))
+                        (Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 175 16 175 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 175 16 175 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 175 16 175 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "True")))
+                    , App
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 175 23 175 28
+                          , srcInfoPoints = []
+                          }
+                        (Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 175 23 175 24
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 175 23 175 24
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 175 23 175 24
+                                   , srcInfoPoints = []
+                                   }
+                                 "g")))
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 175 25 175 28
+                             , srcInfoPoints = []
+                             }
+                           (Char
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 175 25 175 28
+                                , srcInfoPoints = []
+                                }
+                              'v'
+                              "v"))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 178 5 179 21
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 178 5 178 5
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 179 5 179 5
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 183 1 183 0
+                          ]
+                      }
+                    [ TypeSig
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 178 5 178 21
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 178 7 178 9 ]
+                          }
+                        [ Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 178 5 178 6
+                              , srcInfoPoints = []
+                              }
+                            "g"
+                        ]
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 178 10 178 21
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 178 12 178 14 ]
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 178 10 178 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 178 10 178 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b"))
+                           (TyTuple
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 178 15 178 21
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 178 15 178 16
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 178 17 178 18
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 178 20 178 21
+                                    ]
+                                }
+                              Boxed
+                              [ TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 178 16 178 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 178 16 178 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "a")
+                              , TyWildCard
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 178 19 178 20
+                                    , srcInfoPoints = []
+                                    }
+                                  Nothing
+                              ]))
+                    , FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 179 5 179 21
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 179 5 179 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 179 5 179 6
+                                 , srcInfoPoints = []
+                                 }
+                               "g")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 179 7 179 8
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 179 7 179 8
+                                     , srcInfoPoints = []
+                                     }
+                                   "y")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 179 9 179 21
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 179 9 179 10 ]
+                                 }
+                               (Tuple
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 179 11 179 21
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 179 11 179 12
+                                        , SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 179 13 179 14
+                                        , SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 179 20 179 21
+                                        ]
+                                    }
+                                  Boxed
+                                  [ Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 179 12 179 13
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 179 12 179 13
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    179
+                                                    12
+                                                    179
+                                                    13
+                                              , srcInfoPoints = []
+                                              }
+                                            "x"))
+                                  , Lit
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 179 15 179 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (String
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 179 15 179 20
+                                           , srcInfoPoints = []
+                                           }
+                                         "foo"
+                                         "foo")
+                                  ]))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 183 1 183 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 183 5 183 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 183 1 183 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 183 8 183 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 183 16 183 18 ]
+               }
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 183 8 183 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 183 8 183 9
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 183 11 183 12
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 183 14 183 15
+                      ]
+                  }
+                Boxed
+                [ TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 183 9 183 11
+                      , srcInfoPoints = []
+                      }
+                    (Just
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 183 10 183 11
+                            , srcInfoPoints = []
+                            }
+                          "a"))
+                , TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 183 13 183 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 183 13 183 14
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                ])
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 183 19 183 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 183 19 183 20
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 183 21 183 22
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 183 25 183 26
+                      ]
+                  }
+                Boxed
+                [ TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 183 20 183 21
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 183 20 183 21
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                , TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 183 23 183 25
+                      , srcInfoPoints = []
+                      }
+                    (Just
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 183 24 183 25
+                            , srcInfoPoints = []
+                            }
+                          "b"))
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 184 1 184 20
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 184 1 184 20
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 184 1 184 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 184 5 184 11
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 184 5 184 6
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 184 7 184 8
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 184 10 184 11
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 184 6 184 7
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 184 6 184 7
+                           , srcInfoPoints = []
+                           }
+                         "x")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 184 9 184 10
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 184 9 184 10
+                           , srcInfoPoints = []
+                           }
+                         "y")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 184 12 184 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 184 12 184 13 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 184 14 184 20
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 184 14 184 15
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 184 16 184 17
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 184 19 184 20
+                          ]
+                      }
+                    Boxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 184 15 184 16
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 184 15 184 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 184 15 184 16
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 184 18 184 19
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 184 18 184 19
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 184 18 184 19
+                                , srcInfoPoints = []
+                                }
+                              "y"))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 187 1 187 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 187 3 187 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 187 1 187 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 187 6 187 27
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 187 6 187 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 187 6 187 7
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 187 8 187 9
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 187 10 187 12
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 187 6 187 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 187 6 187 7
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 187 8 187 9
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 187 10 187 12
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 187 7 187 8
+                           , srcInfoPoints = []
+                           }
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 187 7 187 8
+                              , srcInfoPoints = []
+                              }
+                            Nothing)))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 187 13 187 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 187 15 187 17 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 187 13 187 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 187 13 187 14
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 187 18 187 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 187 20 187 22 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 187 18 187 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 187 18 187 19
+                           , srcInfoPoints = []
+                           }
+                         "a"))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 187 23 187 27
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 187 23 187 27
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 187 23 187 27
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 188 1 188 15
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 188 1 188 15
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 188 1 188 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 188 3 188 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 188 3 188 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 188 5 188 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 188 5 188 6
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 188 7 188 15
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 188 7 188 8 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 188 9 188 15
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 188 9 188 10
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 188 9 188 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 188 9 188 10
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 188 11 188 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 188 11 188 13
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 188 11 188 13
+                               , srcInfoPoints = []
+                               }
+                             "==")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 188 14 188 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 188 14 188 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 188 14 188 15
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 191 1 191 9
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 191 5 191 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 191 1 191 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 191 8 191 9
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 192 1 192 19
+            , srcInfoPoints = []
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 192 1 192 9
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 192 1 192 5
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 192 1 192 5
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 192 6 192 9
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 192 6 192 9
+                      , srcInfoPoints = []
+                      }
+                    "foo")
+             ])
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 192 10 192 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 192 10 192 11 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 192 12 192 19
+                  , srcInfoPoints = []
+                  }
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 192 12 192 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 192 12 192 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 192 12 192 16
+                           , srcInfoPoints = []
+                           }
+                         "Just")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 192 17 192 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 192 17 192 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 192 17 192 19
+                           , srcInfoPoints = []
+                           }
+                         "id")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 195 1 195 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 195 5 195 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 195 1 195 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 195 8 195 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 195 13 195 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 195 8 195 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 195 8 195 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 195 8 195 12
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 195 16 195 17
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 196 1 196 19
+            , srcInfoPoints = []
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 196 1 196 9
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 196 1 196 5
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 196 1 196 5
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 196 6 196 9
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 196 6 196 9
+                      , srcInfoPoints = []
+                      }
+                    "foo")
+             ])
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 196 10 196 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 196 10 196 11 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 196 12 196 19
+                  , srcInfoPoints = []
+                  }
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 196 12 196 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 196 12 196 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 196 12 196 16
+                           , srcInfoPoints = []
+                           }
+                         "Just")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 196 17 196 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 196 17 196 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 196 17 196 19
+                           , srcInfoPoints = []
+                           }
+                         "id")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 198 1 198 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 198 5 198 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 198 1 198 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 198 8 198 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 198 13 198 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 198 8 198 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 198 8 198 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 198 8 198 12
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 198 16 198 20
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 198 16 198 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 198 16 198 20
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 199 1 199 20
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 199 1 199 20
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 199 1 199 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 199 5 199 13
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PartialSignatures.hs" 199 5 199 6
+                        , SrcSpan "tests/examples/PartialSignatures.hs" 199 12 199 13
+                        ]
+                    }
+                  (PatTypeSig
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 199 6 199 12
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/PartialSignatures.hs" 199 8 199 10 ]
+                       }
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 199 6 199 7
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 199 6 199 7
+                             , srcInfoPoints = []
+                             }
+                           "x"))
+                     (TyWildCard
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 199 11 199 12
+                          , srcInfoPoints = []
+                          }
+                        Nothing))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 199 14 199 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 199 14 199 15 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 199 16 199 20
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 199 16 199 20
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 199 16 199 20
+                            , srcInfoPoints = []
+                            }
+                          "True"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 202 1 202 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 202 5 202 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 202 1 202 4
+                , srcInfoPoints = []
+                }
+              "orr"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 202 8 202 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 202 10 202 12 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 202 8 202 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 202 8 202 9
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 202 13 202 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 202 15 202 17 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 202 13 202 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 202 13 202 14
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 202 18 202 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 202 18 202 19
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 203 1 203 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 203 1 203 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 203 1 203 4
+                  , srcInfoPoints = []
+                  }
+                "orr"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 203 5 203 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 203 5 203 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 203 7 203 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 203 7 203 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 203 7 203 16
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 205 1 205 7
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 205 3 205 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 205 1 205 2
+                , srcInfoPoints = []
+                }
+              "g"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 205 6 205 7
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 206 1 206 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 206 1 206 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 206 1 206 2
+                  , srcInfoPoints = []
+                  }
+                "g"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 206 3 206 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 206 3 206 4 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 206 5 206 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 206 5 206 6
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 206 5 206 6
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 206 5 206 6
+                           , srcInfoPoints = []
+                           }
+                         "f")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 206 7 206 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 206 7 206 8
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 206 8 206 11
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 206 11 206 12
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 206 7 206 12
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 206 7 206 8
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 206 8 206 11
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 206 11 206 12
+                            ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 206 8 206 11
+                           , srcInfoPoints = []
+                           }
+                         "orr")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 206 13 206 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 206 13 206 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 206 13 206 17
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 208 1 208 7
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 208 3 208 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 208 1 208 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 208 6 208 7
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 209 1 209 6
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 209 1 209 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 209 1 209 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 209 3 209 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 209 3 209 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 209 5 209 6
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 209 5 209 6
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 209 5 209 6
+                        , srcInfoPoints = []
+                        }
+                      "g"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 212 1 212 11
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 212 7 212 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 212 1 212 6
+                , srcInfoPoints = []
+                }
+              "test3"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 212 10 212 11
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 213 1 217 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 213 1 217 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 213 1 213 6
+                   , srcInfoPoints = []
+                   }
+                 "test3")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 213 7 213 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 213 7 213 8
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 213 9 217 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 213 9 213 10 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 213 11 217 16
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 213 11 214 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 213 11 213 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 213 11 213 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 213 11 213 16
+                                  , srcInfoPoints = []
+                                  }
+                                "const")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 213 17 214 40
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PartialSignatures.hs" 213 17 213 18
+                                , SrcSpan "tests/examples/PartialSignatures.hs" 214 39 214 40
+                                ]
+                            }
+                          (Let
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 213 18 214 39
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/PartialSignatures.hs" 213 18 213 21
+                                   , SrcSpan "tests/examples/PartialSignatures.hs" 214 31 214 33
+                                   ]
+                               }
+                             (BDecls
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 213 22 214 30
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/PartialSignatures.hs" 213 22 213 22
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 214 22 214 22
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 214 31 214 31
+                                      ]
+                                  }
+                                [ TypeSig
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 213 22 213 29
+                                      , srcInfoPoints =
+                                          [ SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 213 24 213 26
+                                          ]
+                                      }
+                                    [ Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 213 22 213 23
+                                          , srcInfoPoints = []
+                                          }
+                                        "x"
+                                    ]
+                                    (TyWildCard
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 213 27 213 29
+                                         , srcInfoPoints = []
+                                         }
+                                       (Just
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     213
+                                                     28
+                                                     213
+                                                     29
+                                               , srcInfoPoints = []
+                                               }
+                                             "b")))
+                                , PatBind
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 214 22 214 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (PVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 214 22 214 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  214
+                                                  22
+                                                  214
+                                                  23
+                                            , srcInfoPoints = []
+                                            }
+                                          "x"))
+                                    (UnGuardedRhs
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 214 24 214 30
+                                         , srcInfoPoints =
+                                             [ SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 214 24 214 25
+                                             ]
+                                         }
+                                       (Con
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  214
+                                                  26
+                                                  214
+                                                  30
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     214
+                                                     26
+                                                     214
+                                                     30
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/PartialSignatures.hs"
+                                                        214
+                                                        26
+                                                        214
+                                                        30
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "True"))))
+                                    Nothing
+                                ])
+                             (Con
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 214 34 214 39
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 214 34 214 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 214 34 214 39
+                                        , srcInfoPoints = []
+                                        }
+                                      "False"))))))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 214 41 214 42
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 214 41 214 42
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 214 41 214 42
+                               , srcInfoPoints = []
+                               }
+                             "$")))
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 215 11 217 16
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 215 11 216 38
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 215 11 215 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 215 11 215 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 215 11 215 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "const")))
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 215 17 216 38
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/PartialSignatures.hs" 215 17 215 18
+                                   , SrcSpan "tests/examples/PartialSignatures.hs" 216 37 216 38
+                                   ]
+                               }
+                             (Let
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 215 18 216 37
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/PartialSignatures.hs" 215 18 215 21
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 216 30 216 32
+                                      ]
+                                  }
+                                (BDecls
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 215 22 216 29
+                                     , srcInfoPoints =
+                                         [ SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 215 22 215 22
+                                         , SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 216 22 216 22
+                                         , SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 216 30 216 30
+                                         ]
+                                     }
+                                   [ TypeSig
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 215 22 215 29
+                                         , srcInfoPoints =
+                                             [ SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 215 24 215 26
+                                             ]
+                                         }
+                                       [ Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   215
+                                                   22
+                                                   215
+                                                   23
+                                             , srcInfoPoints = []
+                                             }
+                                           "x"
+                                       ]
+                                       (TyWildCard
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  215
+                                                  27
+                                                  215
+                                                  29
+                                            , srcInfoPoints = []
+                                            }
+                                          (Just
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/PartialSignatures.hs"
+                                                        215
+                                                        28
+                                                        215
+                                                        29
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "b")))
+                                   , PatBind
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 216 22 216 29
+                                         , srcInfoPoints = []
+                                         }
+                                       (PVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  216
+                                                  22
+                                                  216
+                                                  23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     216
+                                                     22
+                                                     216
+                                                     23
+                                               , srcInfoPoints = []
+                                               }
+                                             "x"))
+                                       (UnGuardedRhs
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  216
+                                                  24
+                                                  216
+                                                  29
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    216
+                                                    24
+                                                    216
+                                                    25
+                                                ]
+                                            }
+                                          (Lit
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     216
+                                                     26
+                                                     216
+                                                     29
+                                               , srcInfoPoints = []
+                                               }
+                                             (Char
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/PartialSignatures.hs"
+                                                        216
+                                                        26
+                                                        216
+                                                        29
+                                                  , srcInfoPoints = []
+                                                  }
+                                                'a'
+                                                "a")))
+                                       Nothing
+                                   ])
+                                (Con
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 216 33 216 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 216 33 216 37
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 216 33 216 37
+                                           , srcInfoPoints = []
+                                           }
+                                         "True"))))))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 216 39 216 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 216 39 216 40
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 216 39 216 40
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 217 11 217 16
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 217 11 217 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 217 11 217 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 217 11 217 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "not")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 217 15 217 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 217 15 217 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 217 15 217 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "x")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 224 1 224 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 224 5 224 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 224 1 224 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 224 8 224 15
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 224 11 224 13 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 224 8 224 10
+                  , srcInfoPoints = []
+                  }
+                (Just
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 224 9 224 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 224 14 224 15
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 225 1 228 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 225 1 228 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 225 1 225 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 225 5 225 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 225 5 225 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 225 7 228 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 225 7 225 8 ]
+                   }
+                 (Let
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 225 9 228 19
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 225 9 225 12
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 228 9 228 11
+                          ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 225 13 227 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 225 13 225 13
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 226 13 226 13
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 227 13 227 13
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 228 9 228 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 225 13 225 22
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 225 13 225 14
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 225 13 225 14
+                                   , srcInfoPoints = []
+                                   }
+                                 "v"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 225 15 225 22
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 225 15 225 16 ]
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 225 17 225 22
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 225 17 225 20
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 225 17 225 20
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  225
+                                                  17
+                                                  225
+                                                  20
+                                            , srcInfoPoints = []
+                                            }
+                                          "not")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 225 21 225 22
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 225 21 225 22
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  225
+                                                  21
+                                                  225
+                                                  22
+                                            , srcInfoPoints = []
+                                            }
+                                          "x")))))
+                           Nothing
+                       , TypeSig
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 226 13 226 26
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 226 15 226 17 ]
+                             }
+                           [ Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 226 13 226 14
+                                 , srcInfoPoints = []
+                                 }
+                               "g"
+                           ]
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 226 18 226 26
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 226 21 226 23 ]
+                                }
+                              (TyWildCard
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 226 18 226 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (Just
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 226 19 226 20
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))
+                              (TyWildCard
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 226 24 226 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (Just
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 226 25 226 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "a"))))
+                       , FunBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 227 13 227 20
+                             , srcInfoPoints = []
+                             }
+                           [ Match
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 227 13 227 20
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 227 13 227 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "g")
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 227 15 227 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 227 15 227 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "x")
+                               ]
+                               (UnGuardedRhs
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 227 17 227 20
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 227 17 227 18
+                                        ]
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 227 19 227 20
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 227 19 227 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   227
+                                                   19
+                                                   227
+                                                   20
+                                             , srcInfoPoints = []
+                                             }
+                                           "x"))))
+                               Nothing
+                           ]
+                       ])
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 228 12 228 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 228 12 228 13
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 228 18 228 19
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 228 13 228 18
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 228 13 228 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 228 13 228 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 228 13 228 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "g")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 228 15 228 18
+                               , srcInfoPoints = []
+                               }
+                             (Char
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 228 15 228 18
+                                  , srcInfoPoints = []
+                                  }
+                                'x'
+                                "x"))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 230 1 230 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 230 9 230 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 230 1 230 8
+                , srcInfoPoints = []
+                }
+              "showTwo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 35
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 16
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 16
+                                    , srcInfoPoints = []
+                                    }
+                                  "Show")))
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 230 17 230 19
+                              , srcInfoPoints = []
+                              }
+                            (Just
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 230 18 230 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 230 23 230 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 230 26 230 28 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 230 23 230 25
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 230 24 230 25
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 230 29 230 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 230 29 230 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 230 29 230 35
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 231 1 231 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 231 1 231 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 231 1 231 8
+                   , srcInfoPoints = []
+                   }
+                 "showTwo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 231 9 231 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 231 9 231 10
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 231 11 231 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 231 11 231 12 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 231 13 231 19
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 231 13 231 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 231 13 231 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 231 13 231 17
+                               , srcInfoPoints = []
+                               }
+                             "show")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 231 18 231 19
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 231 18 231 19
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 231 18 231 19
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 234 1 234 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 234 5 234 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 234 1 234 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 234 8 234 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 234 10 234 12 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 234 8 234 9
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 234 13 234 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 234 13 234 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 234 13 234 17
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 235 1 235 13
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 235 1 235 13
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 235 1 235 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 235 5 235 6
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 235 7 235 13
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 235 7 235 8 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 235 9 235 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 235 9 235 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 235 9 235 13
+                            , srcInfoPoints = []
+                            }
+                          "True"))))
+              Nothing
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 238 1 238 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 238 25 238 26 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 238 1 238 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 238 6 238 24
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 238 6 238 22
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 238 6 238 19
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 238 6 238 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 238 6 238 15
+                           , srcInfoPoints = []
+                           }
+                         "GenParser"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 238 16 238 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 238 16 238 19
+                           , srcInfoPoints = []
+                           }
+                         "tok")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 238 20 238 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 238 20 238 22
+                        , srcInfoPoints = []
+                        }
+                      "st")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 238 23 238 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 238 23 238 24
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 238 27 238 45
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 238 27 238 45
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 238 27 238 36
+                      , srcInfoPoints = []
+                      }
+                    "GenParser")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 238 37 238 40
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 238 37 238 40
+                          , srcInfoPoints = []
+                          }
+                        "tok")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 238 41 238 43
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 238 41 238 43
+                          , srcInfoPoints = []
+                          }
+                        "st")
+                 , TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 238 44 238 45
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 238 44 238 45
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 240 1 240 55
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 240 11 240 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 240 1 240 10
+                , srcInfoPoints = []
+                }
+              "skipMany'"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 55
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 240 33 240 35 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 32
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 30
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 27
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 23
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 23
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 240 14 240 23
+                                 , srcInfoPoints = []
+                                 }
+                               "GenParser")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 24 240 27
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 240 24 240 27
+                              , srcInfoPoints = []
+                              }
+                            "tok")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 28 240 30
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 28 240 30
+                           , srcInfoPoints = []
+                           }
+                         "st")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 240 31 240 32
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 31 240 32
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 55
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 52
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 49
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 45
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 45
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 240 36 240 45
+                                 , srcInfoPoints = []
+                                 }
+                               "GenParser")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 46 240 49
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 240 46 240 49
+                              , srcInfoPoints = []
+                              }
+                            "tok")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 50 240 52
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 50 240 52
+                           , srcInfoPoints = []
+                           }
+                         "st")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 55
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 54
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 240 54 240 55
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 55
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 54
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 240 54 240 55
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 55
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 240 53 240 54
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 240 54 240 55
+                               ]
+                           })))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 241 1 241 22
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 241 1 241 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 241 1 241 10
+                  , srcInfoPoints = []
+                  }
+                "skipMany'"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 241 11 241 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 241 11 241 12 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 241 13 241 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 241 13 241 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 241 13 241 22
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 243 1 243 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 243 10 243 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 243 1 243 9
+                , srcInfoPoints = []
+                }
+              "skipMany"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 243 13 243 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 243 15 243 17 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 243 13 243 14
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 243 18 243 22
+                  , srcInfoPoints = []
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 243 18 243 19
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 21
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 243 21 243 22
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 22
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 21
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 243 21 243 22
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 243 20 243 21
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 243 21 243 22
+                               ]
+                           })))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 244 1 244 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 244 1 244 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 244 1 244 9
+                  , srcInfoPoints = []
+                  }
+                "skipMany"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 244 10 244 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 244 10 244 11 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 244 12 244 21
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 244 12 244 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 244 12 244 21
+                        , srcInfoPoints = []
+                        }
+                      "skipMany'"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 246 1 246 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 246 19 246 21 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 246 1 246 18
+                , srcInfoPoints = []
+                }
+              "somethingShowable"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 26
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 26
+                                    , srcInfoPoints = []
+                                    }
+                                  "Show")))
+                         (TyWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 246 27 246 29
+                              , srcInfoPoints = []
+                              }
+                            (Just
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 246 28 246 29
+                                    , srcInfoPoints = []
+                                    }
+                                  "x")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 246 33 246 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 246 36 246 38 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 246 33 246 35
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 246 34 246 35
+                           , srcInfoPoints = []
+                           }
+                         "x")))
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 246 39 246 40
+                     , srcInfoPoints = []
+                     }
+                   Nothing)))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 247 1 247 35
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 247 1 247 35
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 247 1 247 18
+                   , srcInfoPoints = []
+                   }
+                 "somethingShowable")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 247 19 247 20
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 247 19 247 20
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 247 21 247 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 247 21 247 22 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 247 23 247 35
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 247 23 247 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 247 23 247 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 247 23 247 27
+                               , srcInfoPoints = []
+                               }
+                             "show")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 247 28 247 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 247 28 247 29
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 247 34 247 35
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 247 29 247 34
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 247 29 247 32
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 247 29 247 32
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 247 29 247 32
+                                     , srcInfoPoints = []
+                                     }
+                                   "not")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 247 33 247 34
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 247 33 247 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 247 33 247 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "x")))))))
+              Nothing
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 251 1 251 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 251 10 251 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 251 1 251 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 251 6 251 9
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 251 6 251 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 251 6 251 7
+                     , srcInfoPoints = []
+                     }
+                   "I"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 251 8 251 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 251 8 251 9
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 251 12 251 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 251 12 251 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 251 12 251 13
+                      , srcInfoPoints = []
+                      }
+                    "I")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 251 14 251 15
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 251 14 251 15
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 252 1 255 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 252 1 252 9
+                , SrcSpan "tests/examples/PartialSignatures.hs" 252 20 252 25
+                , SrcSpan "tests/examples/PartialSignatures.hs" 253 5 253 5
+                , SrcSpan "tests/examples/PartialSignatures.hs" 255 1 255 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 252 10 252 19
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 252 10 252 19
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 252 10 252 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 252 10 252 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 252 10 252 17
+                           , srcInfoPoints = []
+                           }
+                         "Functor")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 252 18 252 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 252 18 252 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 252 18 252 19
+                           , srcInfoPoints = []
+                           }
+                         "I")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 253 5 253 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 253 5 253 27
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 253 5 253 27
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 253 5 253 9
+                             , srcInfoPoints = []
+                             }
+                           "fmap")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 253 10 253 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 253 10 253 11
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 253 12 253 17
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 253 12 253 13
+                                  , SrcSpan "tests/examples/PartialSignatures.hs" 253 16 253 17
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 253 13 253 16
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 253 13 253 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 253 13 253 14
+                                       , srcInfoPoints = []
+                                       }
+                                     "I"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 253 15 253 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 253 15 253 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 253 18 253 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 253 18 253 19 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 253 20 253 27
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 253 20 253 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 253 20 253 21
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 253 20 253 21
+                                         , srcInfoPoints = []
+                                         }
+                                       "I")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 253 22 253 27
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/PartialSignatures.hs" 253 22 253 23
+                                       , SrcSpan "tests/examples/PartialSignatures.hs" 253 26 253 27
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 253 23 253 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 253 23 253 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  253
+                                                  23
+                                                  253
+                                                  24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     253
+                                                     23
+                                                     253
+                                                     24
+                                               , srcInfoPoints = []
+                                               }
+                                             "f")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 253 25 253 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  253
+                                                  25
+                                                  253
+                                                  26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     253
+                                                     25
+                                                     253
+                                                     26
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 255 1 255 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 255 15 255 16 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 255 1 255 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 255 9 255 14
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 255 9 255 12
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 255 9 255 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 255 9 255 10
+                        , srcInfoPoints = []
+                        }
+                      "B"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 255 11 255 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 255 11 255 12
+                        , srcInfoPoints = []
+                        }
+                      "t")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 255 13 255 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 255 13 255 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 255 17 255 20
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 255 17 255 20
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 255 17 255 18
+                      , srcInfoPoints = []
+                      }
+                    "B")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 255 19 255 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 255 19 255 20
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 256 1 259 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 256 1 256 9
+                , SrcSpan "tests/examples/PartialSignatures.hs" 256 24 256 29
+                , SrcSpan "tests/examples/PartialSignatures.hs" 257 5 257 5
+                , SrcSpan "tests/examples/PartialSignatures.hs" 259 1 259 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 256 10 256 23
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 256 10 256 23
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 256 10 256 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 256 10 256 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 256 10 256 17
+                           , srcInfoPoints = []
+                           }
+                         "Functor")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 256 18 256 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 256 18 256 19
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 256 22 256 23
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 256 19 256 22
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 256 19 256 20
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 256 19 256 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 256 19 256 20
+                                 , srcInfoPoints = []
+                                 }
+                               "B")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 256 21 256 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 256 21 256 22
+                              , srcInfoPoints = []
+                              }
+                            "t"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 257 5 257 27
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 257 5 257 27
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 257 5 257 27
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 257 5 257 9
+                             , srcInfoPoints = []
+                             }
+                           "fmap")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 257 10 257 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 257 10 257 11
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                        , PParen
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 257 12 257 17
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 257 12 257 13
+                                  , SrcSpan "tests/examples/PartialSignatures.hs" 257 16 257 17
+                                  ]
+                              }
+                            (PApp
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 257 13 257 16
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 257 13 257 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 257 13 257 14
+                                       , srcInfoPoints = []
+                                       }
+                                     "B"))
+                               [ PVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 257 15 257 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 257 15 257 16
+                                        , srcInfoPoints = []
+                                        }
+                                      "a")
+                               ])
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 257 18 257 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 257 18 257 19 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 257 20 257 27
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 257 20 257 21
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 257 20 257 21
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 257 20 257 21
+                                         , srcInfoPoints = []
+                                         }
+                                       "B")))
+                              (Paren
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 257 22 257 27
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/PartialSignatures.hs" 257 22 257 23
+                                       , SrcSpan "tests/examples/PartialSignatures.hs" 257 26 257 27
+                                       ]
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 257 23 257 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 257 23 257 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  257
+                                                  23
+                                                  257
+                                                  24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     257
+                                                     23
+                                                     257
+                                                     24
+                                               , srcInfoPoints = []
+                                               }
+                                             "f")))
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/PartialSignatures.hs" 257 25 257 26
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  257
+                                                  25
+                                                  257
+                                                  26
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/PartialSignatures.hs"
+                                                     257
+                                                     25
+                                                     257
+                                                     26
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))))))
+                        Nothing
+                    ])
+             ])
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 259 1 259 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 259 13 259 14 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 259 1 259 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 259 9 259 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 259 9 259 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 259 9 259 10
+                     , srcInfoPoints = []
+                     }
+                   "H"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 259 11 259 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 259 11 259 12
+                     , srcInfoPoints = []
+                     }
+                   "f")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 259 15 259 23
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 259 15 259 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 259 15 259 16
+                      , srcInfoPoints = []
+                      }
+                    "H")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 259 17 259 23
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/PartialSignatures.hs" 259 17 259 18
+                           , SrcSpan "tests/examples/PartialSignatures.hs" 259 22 259 23
+                           ]
+                       }
+                     (TyApp
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 259 18 259 22
+                          , srcInfoPoints = []
+                          }
+                        (TyVar
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 259 18 259 19
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 259 18 259 19
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 22
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 21
+                                 , SrcSpan "tests/examples/PartialSignatures.hs" 259 21 259 22
+                                 ]
+                             }
+                           (Special
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 22
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 21
+                                    , SrcSpan "tests/examples/PartialSignatures.hs" 259 21 259 22
+                                    ]
+                                }
+                              (UnitCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 22
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/PartialSignatures.hs" 259 20 259 21
+                                       , SrcSpan "tests/examples/PartialSignatures.hs" 259 21 259 22
+                                       ]
+                                   }))))
+                 ])
+          ]
+          []
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 261 1 261 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 261 4 261 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 261 1 261 3
+                , srcInfoPoints = []
+                }
+              "h1"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 261 7 261 13
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 261 7 261 11
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 261 9 261 11 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 261 7 261 11
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 261 9 261 11 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 261 7 261 11
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 261 9 261 11 ]
+                           }
+                         Nothing))))
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 261 12 261 13
+                  , srcInfoPoints = []
+                  }
+                Nothing))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 263 1 263 42
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 263 1 263 42
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 263 1 263 3
+                   , srcInfoPoints = []
+                   }
+                 "h1")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 263 4 263 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 263 4 263 5
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 263 6 263 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 263 6 263 7
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 263 8 263 42
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 263 8 263 9 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 263 10 263 42
+                      , srcInfoPoints = []
+                      }
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 263 10 263 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 263 10 263 11
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 263 30 263 31
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 263 11 263 30
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 263 11 263 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 11 263 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 11 263 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "H")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 263 13 263 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 13 263 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 13 263 14
+                                     , srcInfoPoints = []
+                                     }
+                                   ".")))
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 263 15 263 30
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 15 263 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 15 263 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 263 15 263 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "fmap")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 20 263 30
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/PartialSignatures.hs" 263 20 263 21
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 263 29 263 30
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 21 263 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 263 21 263 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 263 21 263 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    263
+                                                    21
+                                                    263
+                                                    26
+                                              , srcInfoPoints = []
+                                              }
+                                            "const")))
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 263 27 263 29
+                                        , srcInfoPoints =
+                                            [ SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 263 27 263 28
+                                            , SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 263 28 263 29
+                                            ]
+                                        }
+                                      (Special
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 263 27 263 29
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   263
+                                                   27
+                                                   263
+                                                   28
+                                               , SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   263
+                                                   28
+                                                   263
+                                                   29
+                                               ]
+                                           }
+                                         (UnitCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    263
+                                                    27
+                                                    263
+                                                    29
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/PartialSignatures.hs"
+                                                      263
+                                                      27
+                                                      263
+                                                      28
+                                                  , SrcSpan
+                                                      "tests/examples/PartialSignatures.hs"
+                                                      263
+                                                      28
+                                                      263
+                                                      29
+                                                  ]
+                                              }))))))))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 263 32 263 42
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 263 32 263 33
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 263 41 263 42
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 263 33 263 41
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 263 33 263 39
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 33 263 37
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 33 263 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 263 33 263 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "fmap")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 38 263 39
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 38 263 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 263 38 263 39
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 263 40 263 41
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 263 40 263 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 263 40 263 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 265 1 265 8
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 265 4 265 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 265 1 265 3
+                , srcInfoPoints = []
+                }
+              "h2"
+          ]
+          (TyWildCard
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 265 7 265 8
+               , srcInfoPoints = []
+               }
+             Nothing)
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 267 1 267 42
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 267 1 267 42
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 267 1 267 3
+                   , srcInfoPoints = []
+                   }
+                 "h2")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 267 4 267 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 267 4 267 5
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 267 6 267 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 267 6 267 7
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 267 8 267 42
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 267 8 267 9 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 267 10 267 42
+                      , srcInfoPoints = []
+                      }
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 267 10 267 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 267 10 267 11
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 267 30 267 31
+                             ]
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 267 11 267 30
+                            , srcInfoPoints = []
+                            }
+                          (Con
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 267 11 267 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 11 267 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 11 267 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "H")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 267 13 267 14
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 13 267 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 13 267 14
+                                     , srcInfoPoints = []
+                                     }
+                                   ".")))
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 267 15 267 30
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 15 267 19
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 15 267 19
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 267 15 267 19
+                                        , srcInfoPoints = []
+                                        }
+                                      "fmap")))
+                             (Paren
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 20 267 30
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/PartialSignatures.hs" 267 20 267 21
+                                      , SrcSpan "tests/examples/PartialSignatures.hs" 267 29 267 30
+                                      ]
+                                  }
+                                (App
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 21 267 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 267 21 267 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 267 21 267 26
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    267
+                                                    21
+                                                    267
+                                                    26
+                                              , srcInfoPoints = []
+                                              }
+                                            "const")))
+                                   (Con
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 267 27 267 29
+                                        , srcInfoPoints =
+                                            [ SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 267 27 267 28
+                                            , SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 267 28 267 29
+                                            ]
+                                        }
+                                      (Special
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 267 27 267 29
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   267
+                                                   27
+                                                   267
+                                                   28
+                                               , SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   267
+                                                   28
+                                                   267
+                                                   29
+                                               ]
+                                           }
+                                         (UnitCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    267
+                                                    27
+                                                    267
+                                                    29
+                                              , srcInfoPoints =
+                                                  [ SrcSpan
+                                                      "tests/examples/PartialSignatures.hs"
+                                                      267
+                                                      27
+                                                      267
+                                                      28
+                                                  , SrcSpan
+                                                      "tests/examples/PartialSignatures.hs"
+                                                      267
+                                                      28
+                                                      267
+                                                      29
+                                                  ]
+                                              }))))))))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 267 32 267 42
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 267 32 267 33
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 267 41 267 42
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 267 33 267 41
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 267 33 267 39
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 33 267 37
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 33 267 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 267 33 267 37
+                                        , srcInfoPoints = []
+                                        }
+                                      "fmap")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 38 267 39
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 38 267 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 267 38 267 39
+                                        , srcInfoPoints = []
+                                        }
+                                      "f"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 267 40 267 41
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 267 40 267 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 267 40 267 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 269 1 269 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 269 6 269 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 269 1 269 5
+                , srcInfoPoints = []
+                }
+              "app1"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 269 9 269 16
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 269 9 269 10
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 269 9 269 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 269 9 269 10
+                        , srcInfoPoints = []
+                        }
+                      "H")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 269 11 269 16
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 269 11 269 12
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 269 15 269 16
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 269 12 269 15
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 269 12 269 13
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 269 12 269 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 269 12 269 13
+                              , srcInfoPoints = []
+                              }
+                            "B")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 269 14 269 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 269 14 269 15
+                           , srcInfoPoints = []
+                           }
+                         "t")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 270 1 270 25
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 270 1 270 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 270 1 270 5
+                  , srcInfoPoints = []
+                  }
+                "app1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 270 6 270 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 270 6 270 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 270 8 270 25
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 270 8 270 18
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 270 8 270 10
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 270 8 270 10
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 8 270 10
+                              , srcInfoPoints = []
+                              }
+                            "h1")))
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 270 11 270 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 270 11 270 12
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 270 17 270 18
+                            ]
+                        }
+                      (InfixApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 270 12 270 17
+                           , srcInfoPoints = []
+                           }
+                         (Con
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 12 270 13
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 270 12 270 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 270 12 270 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "H")))
+                         (QVarOp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 14 270 15
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 270 14 270 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 270 14 270 15
+                                    , srcInfoPoints = []
+                                    }
+                                  ".")))
+                         (Con
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 16 270 17
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 270 16 270 17
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 270 16 270 17
+                                    , srcInfoPoints = []
+                                    }
+                                  "I"))))))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 270 19 270 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 270 19 270 20
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 270 24 270 25
+                         ]
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 270 20 270 24
+                        , srcInfoPoints = []
+                        }
+                      (Con
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 270 20 270 21
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 20 270 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 270 20 270 21
+                                 , srcInfoPoints = []
+                                 }
+                               "B")))
+                      (Con
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 23
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 270 23 270 24
+                               ]
+                           }
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 23
+                                  , SrcSpan "tests/examples/PartialSignatures.hs" 270 23 270 24
+                                  ]
+                              }
+                            (UnitCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 24
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 270 22 270 23
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 270 23 270 24
+                                     ]
+                                 })))))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 272 1 272 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 272 6 272 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 272 1 272 5
+                , srcInfoPoints = []
+                }
+              "app2"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 272 9 272 16
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 272 9 272 10
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 272 9 272 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 272 9 272 10
+                        , srcInfoPoints = []
+                        }
+                      "H")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 272 11 272 16
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 272 11 272 12
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 272 15 272 16
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 272 12 272 15
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 272 12 272 13
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 272 12 272 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 272 12 272 13
+                              , srcInfoPoints = []
+                              }
+                            "B")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 272 14 272 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 272 14 272 15
+                           , srcInfoPoints = []
+                           }
+                         "t")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 273 1 273 25
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 273 1 273 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 273 1 273 5
+                  , srcInfoPoints = []
+                  }
+                "app2"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 273 6 273 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 273 6 273 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 273 8 273 25
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 273 8 273 18
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 273 8 273 10
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 273 8 273 10
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 8 273 10
+                              , srcInfoPoints = []
+                              }
+                            "h2")))
+                   (Paren
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 273 11 273 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 273 11 273 12
+                            , SrcSpan "tests/examples/PartialSignatures.hs" 273 17 273 18
+                            ]
+                        }
+                      (InfixApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 273 12 273 17
+                           , srcInfoPoints = []
+                           }
+                         (Con
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 12 273 13
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 273 12 273 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 273 12 273 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "H")))
+                         (QVarOp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 14 273 15
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 273 14 273 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 273 14 273 15
+                                    , srcInfoPoints = []
+                                    }
+                                  ".")))
+                         (Con
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 16 273 17
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 273 16 273 17
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 273 16 273 17
+                                    , srcInfoPoints = []
+                                    }
+                                  "I"))))))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 273 19 273 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 273 19 273 20
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 273 24 273 25
+                         ]
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 273 20 273 24
+                        , srcInfoPoints = []
+                        }
+                      (Con
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 273 20 273 21
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 20 273 21
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 273 20 273 21
+                                 , srcInfoPoints = []
+                                 }
+                               "B")))
+                      (Con
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 23
+                               , SrcSpan "tests/examples/PartialSignatures.hs" 273 23 273 24
+                               ]
+                           }
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 23
+                                  , SrcSpan "tests/examples/PartialSignatures.hs" 273 23 273 24
+                                  ]
+                              }
+                            (UnitCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 24
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 273 22 273 23
+                                     , SrcSpan "tests/examples/PartialSignatures.hs" 273 23 273 24
+                                     ]
+                                 })))))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 276 1 279 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 277 3 277 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 276 1 279 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PartialSignatures.hs" 277 3 277 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 276 1 276 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 276 5 276 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 276 5 276 6
+                       , srcInfoPoints = []
+                       }
+                     "f")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 276 7 276 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 276 7 276 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 276 9 276 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 276 9 276 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 276 9 276 10
+                            , srcInfoPoints = []
+                            }
+                          "g"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 277 9 279 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PartialSignatures.hs" 277 9 277 9
+                          , SrcSpan "tests/examples/PartialSignatures.hs" 282 1 282 0
+                          ]
+                      }
+                    [ FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PartialSignatures.hs" 277 9 279 22
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PartialSignatures.hs" 278 11 278 16 ]
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 277 9 279 22
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PartialSignatures.hs" 278 11 278 16 ]
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 277 9 277 10
+                                 , srcInfoPoints = []
+                                 }
+                               "g")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 277 11 277 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 277 11 277 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "r")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 277 13 277 16
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/PartialSignatures.hs" 277 13 277 14 ]
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 277 15 277 16
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/PartialSignatures.hs" 277 15 277 16
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 277 15 277 16
+                                          , srcInfoPoints = []
+                                          }
+                                        "x"))))
+                            (Just
+                               (BDecls
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PartialSignatures.hs" 278 17 279 22
+                                    , srcInfoPoints =
+                                        [ SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 278 17 278 17
+                                        , SrcSpan
+                                            "tests/examples/PartialSignatures.hs" 279 17 279 17
+                                        , SrcSpan "tests/examples/PartialSignatures.hs" 282 1 282 0
+                                        ]
+                                    }
+                                  [ TypeSig
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 278 17 278 23
+                                        , srcInfoPoints =
+                                            [ SrcSpan
+                                                "tests/examples/PartialSignatures.hs" 278 19 278 21
+                                            ]
+                                        }
+                                      [ Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/PartialSignatures.hs"
+                                                  278
+                                                  17
+                                                  278
+                                                  18
+                                            , srcInfoPoints = []
+                                            }
+                                          "x"
+                                      ]
+                                      (TyWildCard
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 278 22 278 23
+                                           , srcInfoPoints = []
+                                           }
+                                         Nothing)
+                                  , PatBind
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan
+                                              "tests/examples/PartialSignatures.hs" 279 17 279 22
+                                        , srcInfoPoints = []
+                                        }
+                                      (PVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 279 17 279 18
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    279
+                                                    17
+                                                    279
+                                                    18
+                                              , srcInfoPoints = []
+                                              }
+                                            "x"))
+                                      (UnGuardedRhs
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/PartialSignatures.hs" 279 19 279 22
+                                           , srcInfoPoints =
+                                               [ SrcSpan
+                                                   "tests/examples/PartialSignatures.hs"
+                                                   279
+                                                   19
+                                                   279
+                                                   20
+                                               ]
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/PartialSignatures.hs"
+                                                    279
+                                                    21
+                                                    279
+                                                    22
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/PartialSignatures.hs"
+                                                       279
+                                                       21
+                                                       279
+                                                       22
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/PartialSignatures.hs"
+                                                          279
+                                                          21
+                                                          279
+                                                          22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "r"))))
+                                      Nothing
+                                  ]))
+                        ]
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 282 1 282 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 282 5 282 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 282 1 282 4
+                , srcInfoPoints = []
+                }
+              "unc"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 282 8 282 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 282 22 282 24 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 282 8 282 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 282 8 282 9
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 282 20 282 21
+                      ]
+                  }
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 282 9 282 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 282 11 282 13 ]
+                     }
+                   (TyWildCard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 282 9 282 10
+                        , srcInfoPoints = []
+                        }
+                      Nothing)
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 282 14 282 20
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 282 16 282 18 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 282 14 282 15
+                           , srcInfoPoints = []
+                           }
+                         Nothing)
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 282 19 282 20
+                           , srcInfoPoints = []
+                           }
+                         Nothing))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 282 25 282 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 282 32 282 34 ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 282 25 282 31
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 282 25 282 26
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 282 27 282 28
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 282 30 282 31
+                         ]
+                     }
+                   Boxed
+                   [ TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 282 26 282 27
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   , TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 282 29 282 30
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                   ])
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 282 35 282 36
+                     , srcInfoPoints = []
+                     }
+                   Nothing)))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 283 1 283 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 283 1 283 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 283 1 283 4
+                  , srcInfoPoints = []
+                  }
+                "unc"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 283 5 283 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 283 5 283 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 283 7 283 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 283 7 283 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 283 7 283 14
+                        , srcInfoPoints = []
+                        }
+                      "uncurry"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 285 1 285 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 285 5 285 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 285 1 285 4
+                , srcInfoPoints = []
+                }
+              "unc"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 285 8 285 42
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 285 25 285 27 ]
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 285 8 285 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 285 8 285 9
+                      , SrcSpan "tests/examples/PartialSignatures.hs" 285 23 285 24
+                      ]
+                  }
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 285 9 285 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 285 12 285 14 ]
+                     }
+                   (TyWildCard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 285 9 285 11
+                        , srcInfoPoints = []
+                        }
+                      (Just
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PartialSignatures.hs" 285 10 285 11
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 285 15 285 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PartialSignatures.hs" 285 18 285 20 ]
+                        }
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 285 15 285 17
+                           , srcInfoPoints = []
+                           }
+                         (Just
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 285 16 285 17
+                                 , srcInfoPoints = []
+                                 }
+                               "b")))
+                      (TyWildCard
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 285 21 285 23
+                           , srcInfoPoints = []
+                           }
+                         (Just
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PartialSignatures.hs" 285 22 285 23
+                                 , srcInfoPoints = []
+                                 }
+                               "c"))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 285 28 285 42
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 285 37 285 39 ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 285 28 285 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 285 28 285 29
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 285 31 285 32
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 285 35 285 36
+                         ]
+                     }
+                   Boxed
+                   [ TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 285 29 285 31
+                         , srcInfoPoints = []
+                         }
+                       (Just
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 285 30 285 31
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                   , TyWildCard
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 285 33 285 35
+                         , srcInfoPoints = []
+                         }
+                       (Just
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 285 34 285 35
+                               , srcInfoPoints = []
+                               }
+                             "b"))
+                   ])
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 285 40 285 42
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 285 41 285 42
+                           , srcInfoPoints = []
+                           }
+                         "c")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 286 1 286 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 286 1 286 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 286 1 286 4
+                  , srcInfoPoints = []
+                  }
+                "unc"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 286 5 286 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 286 5 286 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 286 7 286 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 286 7 286 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PartialSignatures.hs" 286 7 286 14
+                        , srcInfoPoints = []
+                        }
+                      "uncurry"))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 289 1 289 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 289 5 289 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 289 1 289 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 289 8 289 31
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 289 8 289 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 289 8 289 9
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 289 16 289 17
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 289 19 289 20
+                         , SrcSpan "tests/examples/PartialSignatures.hs" 289 21 289 23
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 13
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 13
+                                     , srcInfoPoints = []
+                                     }
+                                   "Show")))
+                          (TyWildCard
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 289 14 289 16
+                               , srcInfoPoints = []
+                               }
+                             (Just
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 289 15 289 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"))))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 289 18 289 19
+                         , srcInfoPoints = []
+                         }
+                       (TyWildCard
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 289 18 289 19
+                            , srcInfoPoints = []
+                            }
+                          Nothing)
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 289 24 289 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 289 27 289 29 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 289 24 289 26
+                     , srcInfoPoints = []
+                     }
+                   (Just
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PartialSignatures.hs" 289 25 289 26
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 289 30 289 31
+                     , srcInfoPoints = []
+                     }
+                   Nothing)))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 290 1 290 22
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 290 1 290 22
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 290 1 290 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 290 5 290 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 290 5 290 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 290 7 290 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 290 7 290 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 290 9 290 22
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 290 9 290 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 290 9 290 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 290 9 290 13
+                               , srcInfoPoints = []
+                               }
+                             "show")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 290 14 290 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PartialSignatures.hs" 290 14 290 15
+                             , SrcSpan "tests/examples/PartialSignatures.hs" 290 21 290 22
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 290 15 290 21
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 290 15 290 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 290 15 290 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 290 15 290 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "succ")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 290 20 290 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PartialSignatures.hs" 290 20 290 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PartialSignatures.hs" 290 20 290 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "x")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 292 1 292 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PartialSignatures.hs" 292 5 292 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 292 1 292 4
+                , srcInfoPoints = []
+                }
+              "bar"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PartialSignatures.hs" 292 8 292 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PartialSignatures.hs" 292 10 292 12 ]
+               }
+             (TyWildCard
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 292 8 292 9
+                  , srcInfoPoints = []
+                  }
+                Nothing)
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PartialSignatures.hs" 292 13 292 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PartialSignatures.hs" 292 15 292 17 ]
+                  }
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 292 13 292 14
+                     , srcInfoPoints = []
+                     }
+                   Nothing)
+                (TyWildCard
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PartialSignatures.hs" 292 18 292 19
+                     , srcInfoPoints = []
+                     }
+                   Nothing)))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PartialSignatures.hs" 293 1 293 14
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PartialSignatures.hs" 293 1 293 14
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 293 1 293 4
+                   , srcInfoPoints = []
+                   }
+                 "bar")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 293 5 293 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 293 5 293 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PartialSignatures.hs" 293 7 293 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PartialSignatures.hs" 293 7 293 8
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PartialSignatures.hs" 293 9 293 14
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PartialSignatures.hs" 293 9 293 10 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PartialSignatures.hs" 293 11 293 14
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 293 11 293 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 293 11 293 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 293 11 293 12
+                               , srcInfoPoints = []
+                               }
+                             "y")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PartialSignatures.hs" 293 13 293 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PartialSignatures.hs" 293 13 293 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PartialSignatures.hs" 293 13 293 14
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 101 1 101 24)
+        " No extra constraints"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 131 1 131 84)
+        " Test case for (fixed) bug that previously generated the following error message:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 133 1 133 31)
+        " LocalDefinitionBug.hs:9:16:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 134 1 134 95)
+        "     GHC internal error: \8216a\8217 is not in scope during type checking, but it passed the renamer"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 135 1 135 63)
+        "     tcl_env of environment: [alA :-> Type variable \8216_\8217 = _,"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 136 1 136 73)
+        "                              alC :-> Identifier[x::a, <NotTopLevel>],"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 137 1 137 63)
+        "                              alE :-> Type variable \8216t\8217 = t,"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 138 1 138 62)
+        "                              rjF :-> Identifier[monoLoc::a"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 139 1 139 102)
+        "                                                          -> ((a, String), (a, _)), <NotTopLevel>]]"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 140 1 140 60)
+        "     In the type signature for \8216g\8217: g :: t -> (a, String)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 141 1 141 37)
+        "     In an equation for \8216monoLoc\8217:"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 142 1 142 21)
+        "         monoLoc x"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 143 1 143 33)
+        "           = (g True, g False)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 144 1 144 19)
+        "           where"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 145 1 145 39)
+        "               g :: t -> (a, String)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 146 1 146 34)
+        "               g _ = (x, \"foo\")"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 149 1 149 64)
+        " Fixed by using tcExtendTyVarEnv2 instead of tcExtendTyVarEnv"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 177 5 177 35)
+        " g :: b -> (a, String) -- #1"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 178 22 178 27)
+        " #2"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 181 1 181 51)
+        " For #2, we should infer the same type as in #1."
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 220 1 220 74)
+        " The named wildcards aren't scoped as the ScopedTypeVariables extension"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 221 1 221 79)
+        " isn't enabled, of which the behaviour is copied. Thus, the _a annotation of"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 222 1 222 70)
+        " x, which must be Bool, isn't the same as the _a in g, which is now"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 223 1 223 21)
+        " generalised over."
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 248 1 248 33)
+        " Inferred type: Bool -> String"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 262 1 262 44)
+        " h :: Functor m => (a -> b) -> m a -> H m"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PartialSignatures.hs" 266 1 266 45)
+        " h2 :: Functor m => (a -> b) -> m a -> H m"
+    ]
+  )
diff --git a/tests/examples/PartialSignatures.hs.prettyparser.golden b/tests/examples/PartialSignatures.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PartialSignatures.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PartialSignatures.hs.prettyprinter.golden b/tests/examples/PartialSignatures.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PartialSignatures.hs.prettyprinter.golden
@@ -0,0 +1,236 @@
+{-# LANGUAGE GADTs, NamedWildCards, ScopedTypeVariables #-}
+
+bar :: Int -> _ Int
+bar x = Foo True () x
+
+addAndOr1 :: _
+addAndOr1 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+addAndOr2 :: _ -> _
+addAndOr2 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+addAndOr3 :: _ -> _ -> _
+addAndOr3 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+addAndOr4 :: (_ _ _) -> (_ _ _) -> (_ _ _)
+addAndOr4 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+addAndOr5 :: (_, _) -> (_, _) -> (_, _)
+addAndOr5 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+addAndOr6 :: (Int, _) -> (Bool, _) -> (_ Int Bool)
+addAndOr6 (a, b) (c, d) = (a `plus` d, b || c)
+  where plus :: Int -> Int -> Int
+        x `plus` y = x + y
+
+bar :: _ -> _
+bar x = not x
+
+alpha :: _
+alpha = 3
+
+bravo :: _ => _
+bravo = 3
+
+bravo :: _ => _
+bravo = 3
+
+barry :: _a -> (_b _a, _b _)
+barry x = (Left "x", Right x)
+
+foo :: a ~ Bool => (a, _)
+foo = (True, False)
+
+every :: _ -> _ -> Bool
+every _ [] = True
+every p (x : xs) = p x && every p xs
+
+every :: (_a -> Bool) -> [_a] -> Bool
+every _ [] = True
+every p (x : xs) = p x && every p xs
+
+bar :: Bool -> Bool
+bar x = (x :: _)
+
+bar :: _a -> _a
+bar True = (False :: _a)
+bar False = (True :: _a)
+
+arbitCs1 :: _ => a -> String
+arbitCs1 x = show (succ x) ++ show (x == x)
+
+arbitCs2 :: (Show a, _) => a -> String
+arbitCs2 x = arbitCs1 x
+
+arbitCs3 :: (Show a, Enum a, _) => a -> String
+arbitCs3 x = arbitCs1 x
+
+arbitCs4 :: (Eq a, _) => a -> String
+arbitCs4 x = arbitCs1 x
+
+arbitCs5 :: (Eq a, Enum a, Show a, _) => a -> String
+arbitCs5 x = arbitCs1 x
+
+foo :: _ => String
+foo = "x"
+
+foo :: _ => a
+foo = 3
+
+foo :: _ => a
+foo = 3
+
+fall :: forall a . _ -> a
+fall v = v
+
+bar :: _a -> _a
+bar x = not x
+
+foo :: (forall a . [a] -> [a]) -> _
+foo x = (x [True, False], x ['a', 'b'])
+
+foo :: (forall a . [a] -> [a]) -> (_, _ _)
+foo x = (x [True, False], x ['a', 'b'])
+
+monoLoc :: forall a . a -> ((a, String), (a, _))
+monoLoc x = (g True, g False)
+  where g :: t -> (a, String)
+        g _ = (x, "foo")
+
+data NukeMonad a b c
+
+instance Functor (NukeMonad a b) where
+        fmap = undefined
+
+instance Applicative (NukeMonad a b) where
+        pure = undefined
+        (<*>) = undefined
+
+instance Monad (NukeMonad a b) where
+        return = undefined
+        (>>=) = undefined
+
+isMeltdown :: NukeMonad param1 param2 Bool
+isMeltdown = undefined
+
+unlessMeltdown :: _nm () -> _nm ()
+unlessMeltdown c
+  = do m <- isMeltdown
+       if m then return () else c
+
+monoLoc :: forall a . a -> ((a, String), (a, String))
+monoLoc x = (g True, g 'v')
+  where g :: b -> (a, _)
+        g y = (x, "foo")
+
+foo :: (_a, b) -> (a, _b)
+foo (x, y) = (x, y)
+
+f :: (_) => a -> a -> Bool
+f x y = x == y
+
+foo :: _
+Just foo = Just id
+
+foo :: Bool -> _
+Just foo = Just id
+
+bar :: Bool -> Bool
+bar (x :: _) = True
+
+orr :: a -> a -> a
+orr = undefined
+
+g :: _
+g = f `orr` True
+
+f :: _
+f = g
+
+test3 :: _
+test3 x
+  = const
+      (let x :: _b
+           x = True
+         in False)
+      $
+      const
+        (let x :: _b
+             x = 'a'
+           in True)
+        $ not x
+
+foo :: _a -> _
+foo x
+  = let v = not x
+        
+        g :: _a -> _a
+        g x = x
+      in (g 'x')
+
+showTwo :: Show _a => _a -> String
+showTwo x = show x
+
+bar :: _ -> Bool
+bar _ = True
+
+data GenParser tok st a = GenParser tok st a
+
+skipMany' :: GenParser tok st a -> GenParser tok st ()
+skipMany' = undefined
+
+skipMany :: _ -> _ ()
+skipMany = skipMany'
+
+somethingShowable :: Show _x => _x -> _
+somethingShowable x = show (not x)
+
+data I a = I a
+
+instance Functor I where
+        fmap f (I a) = I (f a)
+
+newtype B t a = B a
+
+instance Functor (B t) where
+        fmap f (B a) = B (f a)
+
+newtype H f = H (f ())
+
+h1 :: _ => _
+h1 f b = (H . fmap (const ())) (fmap f b)
+
+h2 :: _
+h2 f b = (H . fmap (const ())) (fmap f b)
+
+app1 :: H (B t)
+app1 = h1 (H . I) (B ())
+
+app2 :: H (B t)
+app2 = h2 (H . I) (B ())
+foo f = g
+  where g r = x
+          where x :: _
+                x = r
+
+unc :: (_ -> _ -> _) -> (_, _) -> _
+unc = uncurry
+
+unc :: (_a -> _b -> _c) -> (_a, _b) -> _c
+unc = uncurry
+
+foo :: (Show _a, _) => _a -> _
+foo x = show (succ x)
+
+bar :: _ -> _ -> _
+bar x y = y x
diff --git a/tests/examples/PatSynFix.hs b/tests/examples/PatSynFix.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatSynFix.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE PatternSynonyms #-}
+pattern A <- (True, True) where A = (not $ False && True, True)
+exp = not $ False && True
diff --git a/tests/examples/PatSynFix.hs.exactprinter.golden b/tests/examples/PatSynFix.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatSynFix.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatSynFix.hs.parser.golden b/tests/examples/PatSynFix.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatSynFix.hs.parser.golden
@@ -0,0 +1,381 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatSynFix.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PatSynFix.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatSynFix.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatSynFix.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatSyn
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 1 2 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatSynFix.hs" 2 1 2 8
+                , SrcSpan "tests/examples/PatSynFix.hs" 2 11 2 13
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 9 2 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 9 2 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 9 2 10
+                     , srcInfoPoints = []
+                     }
+                   "A"))
+             [])
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 14 2 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatSynFix.hs" 2 14 2 15
+                   , SrcSpan "tests/examples/PatSynFix.hs" 2 19 2 20
+                   , SrcSpan "tests/examples/PatSynFix.hs" 2 25 2 26
+                   ]
+               }
+             Boxed
+             [ PApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 15 2 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 15 2 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 15 2 19
+                         , srcInfoPoints = []
+                         }
+                       "True"))
+                 []
+             , PApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 21 2 25
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 21 2 25
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 21 2 25
+                         , srcInfoPoints = []
+                         }
+                       "True"))
+                 []
+             ])
+          (ExplicitBidirectional
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 27 3 0
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatSynFix.hs" 2 27 2 32
+                   , SrcSpan "tests/examples/PatSynFix.hs" 2 33 2 33
+                   , SrcSpan "tests/examples/PatSynFix.hs" 3 1 3 0
+                   ]
+               }
+             [ PatBind
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 33 2 64
+                   , srcInfoPoints = []
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 33 2 34
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 33 2 34
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 33 2 34
+                            , srcInfoPoints = []
+                            }
+                          "A"))
+                    [])
+                 (UnGuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 35 2 64
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PatSynFix.hs" 2 35 2 36 ]
+                      }
+                    (Tuple
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 37 2 64
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatSynFix.hs" 2 37 2 38
+                             , SrcSpan "tests/examples/PatSynFix.hs" 2 57 2 58
+                             , SrcSpan "tests/examples/PatSynFix.hs" 2 63 2 64
+                             ]
+                         }
+                       Boxed
+                       [ InfixApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 38 2 57
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 38 2 41
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 38 2 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PatSynFix.hs" 2 38 2 41
+                                      , srcInfoPoints = []
+                                      }
+                                    "not")))
+                           (QVarOp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 42 2 43
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 42 2 43
+                                   , srcInfoPoints = []
+                                   }
+                                 (Symbol
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PatSynFix.hs" 2 42 2 43
+                                      , srcInfoPoints = []
+                                      }
+                                    "$")))
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 44 2 57
+                                , srcInfoPoints = []
+                                }
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 44 2 49
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PatSynFix.hs" 2 44 2 49
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/PatSynFix.hs" 2 44 2 49
+                                         , srcInfoPoints = []
+                                         }
+                                       "False")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 50 2 52
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PatSynFix.hs" 2 50 2 52
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/PatSynFix.hs" 2 50 2 52
+                                         , srcInfoPoints = []
+                                         }
+                                       "&&")))
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 53 2 57
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PatSynFix.hs" 2 53 2 57
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/PatSynFix.hs" 2 53 2 57
+                                         , srcInfoPoints = []
+                                         }
+                                       "True"))))
+                       , Con
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 59 2 63
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 59 2 63
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 2 59 2 63
+                                   , srcInfoPoints = []
+                                   }
+                                 "True"))
+                       ]))
+                 Nothing
+             ])
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 1 3 26
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 1 3 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 1 3 4
+                  , srcInfoPoints = []
+                  }
+                "exp"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 5 3 26
+               , srcInfoPoints = [ SrcSpan "tests/examples/PatSynFix.hs" 3 5 3 6 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 7 3 26
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 7 3 10
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 7 3 10
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 7 3 10
+                           , srcInfoPoints = []
+                           }
+                         "not")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 11 3 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 11 3 12
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 11 3 12
+                           , srcInfoPoints = []
+                           }
+                         "$")))
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 13 3 26
+                     , srcInfoPoints = []
+                     }
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 13 3 18
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 13 3 18
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 13 3 18
+                              , srcInfoPoints = []
+                              }
+                            "False")))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 19 3 21
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 19 3 21
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 19 3 21
+                              , srcInfoPoints = []
+                              }
+                            "&&")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 22 3 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 22 3 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/PatSynFix.hs" 3 22 3 26
+                              , srcInfoPoints = []
+                              }
+                            "True"))))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/PatSynFix.hs.prettyparser.golden b/tests/examples/PatSynFix.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatSynFix.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatSynFix.hs.prettyprinter.golden b/tests/examples/PatSynFix.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatSynFix.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+pattern A <- (True, True)
+  where A = (not $ False && True, True)
+exp = not $ False && True
diff --git a/tests/examples/PatternSplice.hs b/tests/examples/PatternSplice.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSplice.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE TemplateHaskell #-}
+module PatternSpliceTest where
+
+foo :: Int -> Bool
+foo $( [p| 42 |] ) = True
+foo _              = False
diff --git a/tests/examples/PatternSplice.hs.exactprinter.golden b/tests/examples/PatternSplice.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSplice.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSplice.hs.parser.golden b/tests/examples/PatternSplice.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSplice.hs.parser.golden
@@ -0,0 +1,235 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSplice.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 6 1 6 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 7 1 7 1
+            , SrcSpan "tests/examples/PatternSplice.hs" 7 1 7 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 2 1 2 31
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PatternSplice.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/PatternSplice.hs" 2 26 2 31
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 2 8 2 25
+                 , srcInfoPoints = []
+                 }
+               "PatternSpliceTest")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSplice.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSplice.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 1 4 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSplice.hs" 4 5 4 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 1 4 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 8 4 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSplice.hs" 4 12 4 14 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 8 4 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 8 4 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 8 4 11
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 15 4 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 15 4 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 4 15 4 19
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 1 6 27
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 1 5 26
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 1 5 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PSplice
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 5 5 19
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSplice.hs" 5 5 5 7
+                        , SrcSpan "tests/examples/PatternSplice.hs" 5 18 5 19
+                        ]
+                    }
+                  (ParenSplice
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 5 5 19
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/PatternSplice.hs" 5 5 5 7
+                           , SrcSpan "tests/examples/PatternSplice.hs" 5 18 5 19
+                           ]
+                       }
+                     (BracketExp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 8 5 17
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PatternSplice.hs" 5 8 5 11
+                              , SrcSpan "tests/examples/PatternSplice.hs" 5 15 5 17
+                              ]
+                          }
+                        (PatBracket
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 8 5 17
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PatternSplice.hs" 5 8 5 11
+                                 , SrcSpan "tests/examples/PatternSplice.hs" 5 15 5 17
+                                 ]
+                             }
+                           (PLit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 12 5 14
+                                , srcInfoPoints = []
+                                }
+                              (Signless
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PatternSplice.hs" 5 12 5 14
+                                   , srcInfoPoints = []
+                                   })
+                              (Int
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PatternSplice.hs" 5 12 5 14
+                                   , srcInfoPoints = []
+                                   }
+                                 42
+                                 "42")))))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 20 5 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSplice.hs" 5 20 5 21 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 22 5 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 22 5 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 5 22 5 26
+                            , srcInfoPoints = []
+                            }
+                          "True"))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 1 6 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 1 6 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 5 6 6
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 20 6 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSplice.hs" 6 20 6 21 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 22 6 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 22 6 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PatternSplice.hs" 6 22 6 27
+                            , srcInfoPoints = []
+                            }
+                          "False"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/PatternSplice.hs.prettyparser.golden b/tests/examples/PatternSplice.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSplice.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSplice.hs.prettyprinter.golden b/tests/examples/PatternSplice.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSplice.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE TemplateHaskell #-}
+module PatternSpliceTest where
+
+foo :: Int -> Bool
+foo $( [p| 42 |] ) = True
+foo _ = False
diff --git a/tests/examples/PatternSynonymImport.hs b/tests/examples/PatternSynonymImport.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymImport.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+module Main (pattern Foo, pattern (:>)) where
+
+import Foo (pattern Foo, pattern (:>))
diff --git a/tests/examples/PatternSynonymImport.hs.exactprinter.golden b/tests/examples/PatternSynonymImport.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymImport.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonymImport.hs.parser.golden b/tests/examples/PatternSynonymImport.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymImport.hs.parser.golden
@@ -0,0 +1,208 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PatternSynonymImport.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSynonymImport.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSynonymImport.hs" 6 1 6 1
+            , SrcSpan "tests/examples/PatternSynonymImport.hs" 6 1 6 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/PatternSynonymImport.hs" 3 1 3 46
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PatternSynonymImport.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 41 3 46
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/PatternSynonymImport.hs" 3 8 3 12
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonymImport.hs" 3 13 3 40
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonymImport.hs" 3 13 3 14
+                        , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 25 3 26
+                        , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 39 3 40
+                        ]
+                    }
+                  [ EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymImport.hs" 3 14 3 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymImport.hs" 3 14 3 21 ]
+                        }
+                      (PatternNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymImport.hs" 3 14 3 21
+                           , srcInfoPoints = []
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymImport.hs" 3 22 3 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymImport.hs" 3 22 3 25
+                              , srcInfoPoints = []
+                              }
+                            "Foo"))
+                  , EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymImport.hs" 3 27 3 39
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymImport.hs" 3 27 3 34 ]
+                        }
+                      (PatternNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymImport.hs" 3 27 3 34
+                           , srcInfoPoints = []
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymImport.hs" 3 35 3 39
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymImport.hs" 3 35 3 36
+                               , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 36 3 38
+                               , SrcSpan "tests/examples/PatternSynonymImport.hs" 3 38 3 39
+                               ]
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymImport.hs" 3 36 3 38
+                              , srcInfoPoints = []
+                              }
+                            ":>"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymImport.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymImport.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSynonymImport.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymImport.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymImport.hs" 5 1 5 39
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 1 5 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymImport.hs" 5 8 5 11
+                  , srcInfoPoints = []
+                  }
+                "Foo"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymImport.hs" 5 12 5 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 12 5 13
+                         , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 24 5 25
+                         , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 38 5 39
+                         ]
+                     }
+                   False
+                   [ IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonymImport.hs" 5 13 5 24
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 13 5 20
+                             , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 21 5 24
+                             ]
+                         }
+                       (PatternNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonymImport.hs" 5 13 5 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 13 5 20 ]
+                            })
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonymImport.hs" 5 21 5 24
+                            , srcInfoPoints = []
+                            }
+                          "Foo")
+                   , IAbs
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonymImport.hs" 5 26 5 38
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 26 5 33
+                             , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 34 5 38
+                             ]
+                         }
+                       (PatternNamespace
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonymImport.hs" 5 26 5 33
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 26 5 33 ]
+                            })
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonymImport.hs" 5 34 5 38
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PatternSynonymImport.hs" 5 34 5 35
+                                , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 35 5 37
+                                , SrcSpan "tests/examples/PatternSynonymImport.hs" 5 37 5 38
+                                ]
+                            }
+                          ":>")
+                   ])
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/PatternSynonymImport.hs.prettyparser.golden b/tests/examples/PatternSynonymImport.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymImport.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonymImport.hs.prettyprinter.golden b/tests/examples/PatternSynonymImport.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymImport.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE PatternSynonyms #-}
+module Main (pattern Foo, pattern (:>)) where
+import Foo (pattern Foo, pattern (:>))
diff --git a/tests/examples/PatternSynonymSignatures.hs b/tests/examples/PatternSynonymSignatures.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymSignatures.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+
+pattern Syn :: Typ
+
+pattern Syn :: () => () => Typ
+
+pattern Syn :: Show a => Show b => Typ
+
+pattern Syn :: Show b => Typ
+
+pattern Syn :: Show b => () => Typ
+
+pattern Syn :: () => Show b => Typ
+
diff --git a/tests/examples/PatternSynonymSignatures.hs.exactprinter.golden b/tests/examples/PatternSynonymSignatures.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymSignatures.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonymSignatures.hs.parser.golden b/tests/examples/PatternSynonymSignatures.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymSignatures.hs.parser.golden
@@ -0,0 +1,607 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 1 16 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 1 6 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 1 8 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 1 10 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 1 12 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 1 14 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 16 1 16 1
+            , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 16 1 16 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 1 4 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 1 4 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 13 4 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 9 4 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 16 4 19
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 16 4 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 4 16 4 19
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 1 6 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 1 6 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 13 6 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 9 6 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 16 6 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 16 6 17
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 17 6 18
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 19 6 21
+                      ]
+                  }))
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 22 6 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 22 6 23
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 23 6 24
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 25 6 27
+                      ]
+                  }))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 28 6 31
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 28 6 31
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 28 6 31
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 1 8 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 1 8 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 13 8 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 9 8 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 20
+                                 , srcInfoPoints = []
+                                 }
+                               "Show")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 21 8 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 21 8 22
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 30
+                                 , srcInfoPoints = []
+                                 }
+                               "Show")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 31 8 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 31 8 32
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 36 8 39
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 36 8 39
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 36 8 39
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 1 10 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 1 10 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 13 10 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 9 10 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25
+                      ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25
+                            ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25
+                               ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/PatternSynonymSignatures.hs" 10 16 10 20
+                                 , srcInfoPoints = []
+                                 }
+                               "Show")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 21 10 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 21 10 22
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          Nothing
+          Nothing
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 26 10 29
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 26 10 29
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 26 10 29
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 1 12 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 1 12 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 13 12 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 9 12 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25
+                      ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25
+                            ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25
+                               ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 20
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/PatternSynonymSignatures.hs" 12 16 12 20
+                                 , srcInfoPoints = []
+                                 }
+                               "Show")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 21 12 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 21 12 22
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 26 12 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 26 12 27
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 27 12 28
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 29 12 31
+                      ]
+                  }))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 32 12 35
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 32 12 35
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 32 12 35
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 1 14 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 1 14 8
+                , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 13 14 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 9 14 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 16 14 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 16 14 17
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 17 14 18
+                      , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 19 14 21
+                      ]
+                  }))
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31
+                      ]
+                  }
+                (TypeA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31
+                            ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31
+                               ]
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan
+                                       "tests/examples/PatternSynonymSignatures.hs" 14 22 14 26
+                                 , srcInfoPoints = []
+                                 }
+                               "Show")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 27 14 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 27 14 28
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 32 14 35
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 32 14 35
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 32 14 35
+                     , srcInfoPoints = []
+                     }
+                   "Typ")))
+      ]
+  , []
+  )
diff --git a/tests/examples/PatternSynonymSignatures.hs.prettyparser.golden b/tests/examples/PatternSynonymSignatures.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymSignatures.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonymSignatures.hs.prettyprinter.golden b/tests/examples/PatternSynonymSignatures.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonymSignatures.hs.prettyprinter.golden
@@ -0,0 +1,13 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+pattern Syn :: Typ
+
+pattern Syn :: () => () => Typ
+
+pattern Syn :: Show a => Show b => Typ
+
+pattern Syn :: Show b => Typ
+
+pattern Syn :: Show b => () => Typ
+
+pattern Syn :: () => Show b => Typ
diff --git a/tests/examples/PatternSynonyms.hs b/tests/examples/PatternSynonyms.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+pattern A = Nothing
+
+pattern B a = Just a
+
+pattern a :+: b = (a,b)
+
+pattern Tuple a b = (a,b)
+
+pattern    A = Nothing
+
+pattern B a    = Just a
+
+pattern a :+: b =     (a,b)
+
diff --git a/tests/examples/PatternSynonyms.hs.exactprinter.golden b/tests/examples/PatternSynonyms.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms.hs.parser.golden b/tests/examples/PatternSynonyms.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms.hs.parser.golden
@@ -0,0 +1,575 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 17 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 17 1 17 1
+            , SrcSpan "tests/examples/PatternSynonyms.hs" 17 1 17 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 20
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 3 11 3 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
+                     , srcInfoPoints = []
+                     }
+                   "A"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
+                     , srcInfoPoints = []
+                     }
+                   "Nothing"))
+             [])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 5 13 5 14
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 10
+                     , srcInfoPoints = []
+                     }
+                   "B"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 5 11 5 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 5 11 5 12
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 21
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 19
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 5 20 5 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 5 20 5 21
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 7 17 7 18
+                ]
+            }
+          (PInfixApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 16
+               , srcInfoPoints = []
+               }
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 11 7 14
+                  , srcInfoPoints = []
+                  }
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 11 7 14
+                     , srcInfoPoints = []
+                     }
+                   ":+:"))
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 15 7 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 15 7 16
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 7 19 7 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 7 19 7 20
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 7 21 7 22
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 7 23 7 24
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 7 20 7 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 7 20 7 21
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 7 22 7 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 7 22 7 23
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 9 19 9 20
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 18
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 14
+                     , srcInfoPoints = []
+                     }
+                   "Tuple"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 15 9 16
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 15 9 16
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 17 9 18
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 17 9 18
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 9 21 9 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 9 21 9 22
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 9 23 9 24
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 9 25 9 26
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 22 9 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 22 9 23
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 24 9 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 24 9 25
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 11 14 11 15
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
+                     , srcInfoPoints = []
+                     }
+                   "A"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
+                     , srcInfoPoints = []
+                     }
+                   "Nothing"))
+             [])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 13 16 13 17
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 10
+                     , srcInfoPoints = []
+                     }
+                   "B"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 13 11 13 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 13 11 13 12
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 24
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 22
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 13 23 13 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 13 23 13 24
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 8
+                , SrcSpan "tests/examples/PatternSynonyms.hs" 15 17 15 18
+                ]
+            }
+          (PInfixApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 16
+               , srcInfoPoints = []
+               }
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 11 15 14
+                  , srcInfoPoints = []
+                  }
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 11 15 14
+                     , srcInfoPoints = []
+                     }
+                   ":+:"))
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 15 15 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 15 15 16
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms.hs" 15 23 15 28
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 15 23 15 24
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 15 25 15 26
+                   , SrcSpan "tests/examples/PatternSynonyms.hs" 15 27 15 28
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 15 24 15 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 15 24 15 25
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms.hs" 15 26 15 27
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms.hs" 15 26 15 27
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          ImplicitBidirectional
+      ]
+  , []
+  )
diff --git a/tests/examples/PatternSynonyms.hs.prettyparser.golden b/tests/examples/PatternSynonyms.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms.hs.prettyprinter.golden b/tests/examples/PatternSynonyms.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms.hs.prettyprinter.golden
@@ -0,0 +1,15 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+pattern A = Nothing
+
+pattern B a = Just a
+
+pattern a :+: b = (a, b)
+
+pattern Tuple a b = (a, b)
+
+pattern A = Nothing
+
+pattern B a = Just a
+
+pattern a :+: b = (a, b)
diff --git a/tests/examples/PatternSynonyms2.hs b/tests/examples/PatternSynonyms2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms2.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, KindSignatures  #-}
+module Foo (pattern Single) where
+
+
+
+pattern Single x <- [x]
+  where Single 4 = [x]
+        Single 5 = [x]
+
+pattern Double x = [x]
+
+
+
+
+
+single :: [a] -> Maybe a
+single (Single x) = Just x
+single _ = Nothing
diff --git a/tests/examples/PatternSynonyms2.hs.exactprinter.golden b/tests/examples/PatternSynonyms2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms2.hs.parser.golden b/tests/examples/PatternSynonyms2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms2.hs.parser.golden
@@ -0,0 +1,664 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PatternSynonyms2.hs" 1 1 19 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSynonyms2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 6 1 6 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 10 1 10 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 16 1 16 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 17 1 17 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 18 1 18 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 19 1 19 1
+            , SrcSpan "tests/examples/PatternSynonyms2.hs" 19 1 19 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/PatternSynonyms2.hs" 2 1 2 34
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PatternSynonyms2.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/PatternSynonyms2.hs" 2 29 2 34
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/PatternSynonyms2.hs" 2 8 2 11
+                 , srcInfoPoints = []
+                 }
+               "Foo")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms2.hs" 2 12 2 28
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonyms2.hs" 2 12 2 13
+                        , SrcSpan "tests/examples/PatternSynonyms2.hs" 2 27 2 28
+                        ]
+                    }
+                  [ EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms2.hs" 2 13 2 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonyms2.hs" 2 13 2 20 ]
+                        }
+                      (PatternNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms2.hs" 2 13 2 20
+                           , srcInfoPoints = []
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms2.hs" 2 21 2 27
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms2.hs" 2 21 2 27
+                              , srcInfoPoints = []
+                              }
+                            "Single"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms2.hs" 1 1 1 71
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSynonyms2.hs" 1 29 1 30
+                , SrcSpan "tests/examples/PatternSynonyms2.hs" 1 50 1 51
+                , SrcSpan "tests/examples/PatternSynonyms2.hs" 1 68 1 71
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 1 31 1 50
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 1 52 1 66
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      ]
+      []
+      [ PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms2.hs" 6 1 6 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms2.hs" 6 1 6 8
+                , SrcSpan "tests/examples/PatternSynonyms2.hs" 6 18 6 20
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 6 9 6 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms2.hs" 6 9 6 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms2.hs" 6 9 6 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 6 16 6 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 6 16 6 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 6 21 6 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms2.hs" 6 21 6 22
+                   , SrcSpan "tests/examples/PatternSynonyms2.hs" 6 23 6 24
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 6 22 6 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 6 22 6 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (ExplicitBidirectional
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 7 3 10 0
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms2.hs" 7 3 7 8
+                   , SrcSpan "tests/examples/PatternSynonyms2.hs" 7 9 7 9
+                   , SrcSpan "tests/examples/PatternSynonyms2.hs" 8 9 8 9
+                   , SrcSpan "tests/examples/PatternSynonyms2.hs" 10 1 10 0
+                   ]
+               }
+             [ PatBind
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 7 9 7 23
+                   , srcInfoPoints = []
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 7 9 7 17
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 7 9 7 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms2.hs" 7 9 7 15
+                            , srcInfoPoints = []
+                            }
+                          "Single"))
+                    [ PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms2.hs" 7 16 7 17
+                          , srcInfoPoints = []
+                          }
+                        (Signless
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 7 16 7 17
+                             , srcInfoPoints = []
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 7 16 7 17
+                             , srcInfoPoints = []
+                             }
+                           4
+                           "4")
+                    ])
+                 (UnGuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 7 18 7 23
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PatternSynonyms2.hs" 7 18 7 19 ]
+                      }
+                    (List
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 7 20 7 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatternSynonyms2.hs" 7 20 7 21
+                             , SrcSpan "tests/examples/PatternSynonyms2.hs" 7 22 7 23
+                             ]
+                         }
+                       [ Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 7 21 7 22
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PatternSynonyms2.hs" 7 21 7 22
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PatternSynonyms2.hs" 7 21 7 22
+                                   , srcInfoPoints = []
+                                   }
+                                 "x"))
+                       ]))
+                 Nothing
+             , PatBind
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 8 9 8 23
+                   , srcInfoPoints = []
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 8 9 8 17
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 8 9 8 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms2.hs" 8 9 8 15
+                            , srcInfoPoints = []
+                            }
+                          "Single"))
+                    [ PLit
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms2.hs" 8 16 8 17
+                          , srcInfoPoints = []
+                          }
+                        (Signless
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 8 16 8 17
+                             , srcInfoPoints = []
+                             })
+                        (Int
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 8 16 8 17
+                             , srcInfoPoints = []
+                             }
+                           5
+                           "5")
+                    ])
+                 (UnGuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 8 18 8 23
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PatternSynonyms2.hs" 8 18 8 19 ]
+                      }
+                    (List
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 8 20 8 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatternSynonyms2.hs" 8 20 8 21
+                             , SrcSpan "tests/examples/PatternSynonyms2.hs" 8 22 8 23
+                             ]
+                         }
+                       [ Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 8 21 8 22
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PatternSynonyms2.hs" 8 21 8 22
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PatternSynonyms2.hs" 8 21 8 22
+                                   , srcInfoPoints = []
+                                   }
+                                 "x"))
+                       ]))
+                 Nothing
+             ])
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms2.hs" 10 1 10 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms2.hs" 10 1 10 8
+                , SrcSpan "tests/examples/PatternSynonyms2.hs" 10 18 10 19
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 10 9 10 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms2.hs" 10 9 10 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms2.hs" 10 9 10 15
+                     , srcInfoPoints = []
+                     }
+                   "Double"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 10 16 10 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 10 16 10 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 10 20 10 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms2.hs" 10 20 10 21
+                   , SrcSpan "tests/examples/PatternSynonyms2.hs" 10 22 10 23
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 10 21 10 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 10 21 10 22
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms2.hs" 16 1 16 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms2.hs" 16 8 16 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 16 1 16 7
+                , srcInfoPoints = []
+                }
+              "single"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms2.hs" 16 11 16 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms2.hs" 16 15 16 17 ]
+               }
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms2.hs" 16 11 16 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms2.hs" 16 11 16 12
+                      , SrcSpan "tests/examples/PatternSynonyms2.hs" 16 13 16 14
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms2.hs" 16 12 16 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms2.hs" 16 12 16 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms2.hs" 16 18 16 25
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms2.hs" 16 18 16 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms2.hs" 16 18 16 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms2.hs" 16 18 16 23
+                           , srcInfoPoints = []
+                           }
+                         "Maybe")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms2.hs" 16 24 16 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms2.hs" 16 24 16 25
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms2.hs" 17 1 18 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 17 1 17 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 17 1 17 7
+                   , srcInfoPoints = []
+                   }
+                 "single")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms2.hs" 17 8 17 18
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonyms2.hs" 17 8 17 9
+                        , SrcSpan "tests/examples/PatternSynonyms2.hs" 17 17 17 18
+                        ]
+                    }
+                  (PApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms2.hs" 17 9 17 17
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms2.hs" 17 9 17 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms2.hs" 17 9 17 15
+                             , srcInfoPoints = []
+                             }
+                           "Single"))
+                     [ PVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms2.hs" 17 16 17 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms2.hs" 17 16 17 17
+                              , srcInfoPoints = []
+                              }
+                            "x")
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 17 19 17 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms2.hs" 17 19 17 20 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 17 21 17 27
+                      , srcInfoPoints = []
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 17 21 17 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms2.hs" 17 21 17 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms2.hs" 17 21 17 25
+                               , srcInfoPoints = []
+                               }
+                             "Just")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 17 26 17 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms2.hs" 17 26 17 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms2.hs" 17 26 17 27
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms2.hs" 18 1 18 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 18 1 18 7
+                   , srcInfoPoints = []
+                   }
+                 "single")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms2.hs" 18 8 18 9
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms2.hs" 18 10 18 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms2.hs" 18 10 18 11 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms2.hs" 18 12 18 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms2.hs" 18 12 18 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms2.hs" 18 12 18 19
+                            , srcInfoPoints = []
+                            }
+                          "Nothing"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/PatternSynonyms2.hs.prettyparser.golden b/tests/examples/PatternSynonyms2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms2.hs.prettyprinter.golden b/tests/examples/PatternSynonyms2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms2.hs.prettyprinter.golden
@@ -0,0 +1,13 @@
+{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, KindSignatures
+  #-}
+module Foo (pattern Single) where
+
+pattern Single x <- [x]
+  where Single 4 = [x]
+        Single 5 = [x]
+
+pattern Double x = [x]
+
+single :: [a] -> Maybe a
+single (Single x) = Just x
+single _ = Nothing
diff --git a/tests/examples/PatternSynonyms3.hs b/tests/examples/PatternSynonyms3.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms3.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms, BangPatterns, PolyKinds, DataKinds, GADTs,
+ FlexibleContexts, ViewPatterns #-}
+{-# LANGUAGE ExplicitForAll #-}
+
+pattern Single x <- [x]
+
+
+single :: [a] -> Maybe a
+single (Single x) = Just x
+single _ = Nothing
+
+pattern Single :: a -> [a]
+pattern Single x = [x]
+
+
+pattern Single :: () => (Show a) => a -> [a]
+pattern Single x = [x]
+
+f :: (Show a) => [a] -> a
+f (Single x) = x
+
+pattern SinglePair :: (a, a) -> [(a, a)]
+pattern SinglePair x = [x]
+
+f :: (Show a) => [(a, a)] -> String
+f (SinglePair x) = show x
+
+pattern Q = D
+
+pattern C :: a -> X Maybe (Maybe a)
+pattern C x = Y (Just x)
+
+
+pattern Syn :: forall a b c    . () => () => Int
+
+pattern C :: (Show (a, Bool)) => a -> X Maybe (Maybe (a, Bool))
+pattern C x = Y (Just (x, True))
+
+pattern P :: T Bool b
+pattern P <- MkT True
+
+pattern D :: a -> T (Maybe a) Bool
+pattern D x = MkT (Just x)
+
+
+pattern P a b = Just (a, b)
+
+pattern Single x = [x]
+
+pattern a :+: b = (a, b)
+
+
+pattern P x <- MkT 42 x
+
+
+pattern P x y <- MkT x y
+
+pattern P x <- MkT (f -> True) x
+
+data T where
+    MkT :: b -> (b -> Bool) -> T
+
+pattern P x f <- MkT x f
+
+pattern Single x <- [x]
+
+pattern P <- Just True
+
+pattern P = 42
+
+
+pattern P = ()
+
+
+pattern Single x <- [x]
+
diff --git a/tests/examples/PatternSynonyms3.hs.exactprinter.golden b/tests/examples/PatternSynonyms3.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms3.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms3.hs.parser.golden b/tests/examples/PatternSynonyms3.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms3.hs.parser.golden
@@ -0,0 +1,3805 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 77 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 60 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 77 1 77 1
+            , SrcSpan "tests/examples/PatternSynonyms3.hs" 77 1 77 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 2 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 29 1 30
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 43 1 44
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 54 1 55
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 65 1 66
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 72 1 73
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 2 18 2 19
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 2 33 2 36
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 31 1 43
+                , srcInfoPoints = []
+                }
+              "BangPatterns"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 45 1 54
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 56 1 65
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 67 1 72
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 2 2 2 18
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 2 20 2 32
+                , srcInfoPoints = []
+                }
+              "ViewPatterns"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 13
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 3 29 3 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 3 14 3 28
+                , srcInfoPoints = []
+                }
+              "ExplicitForAll"
+          ]
+      ]
+      []
+      [ PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 18 5 20
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 5 16 5 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 5 16 5 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 5 21 5 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 5 21 5 22
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 23 5 24
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 5 22 5 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 5 22 5 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          Unidirectional
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 8 8 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 7
+                , srcInfoPoints = []
+                }
+              "single"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 15 8 17 ]
+               }
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 12
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 8 13 8 14
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 12 8 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 12 8 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 25
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
+                           , srcInfoPoints = []
+                           }
+                         "Maybe")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 24 8 25
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 24 8 25
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 10 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 7
+                   , srcInfoPoints = []
+                   }
+                 "single")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms3.hs" 9 8 9 18
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 9 8 9 9
+                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 9 17 9 18
+                        ]
+                    }
+                  (PApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 17
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 15
+                             , srcInfoPoints = []
+                             }
+                           "Single"))
+                     [ PVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 9 16 9 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 9 16 9 17
+                              , srcInfoPoints = []
+                              }
+                            "x")
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 9 19 9 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 9 19 9 20 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 27
+                      , srcInfoPoints = []
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
+                               , srcInfoPoints = []
+                               }
+                             "Just")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 7
+                   , srcInfoPoints = []
+                   }
+                 "single")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms3.hs" 10 8 10 9
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 10 10 10 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 10 10 10 11 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
+                            , srcInfoPoints = []
+                            }
+                          "Nothing"))))
+              Nothing
+          ]
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 16 12 18
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 12 9 12 15
+                , srcInfoPoints = []
+                }
+              "Single"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 21 12 23 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 20
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 12 24 12 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 24 12 25
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 26 12 27
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 12 25 12 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 12 25 12 26
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 18 13 19
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 13 16 13 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 13 16 13 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 13 20 13 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 13 20 13 21
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 22 13 23
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 13 21 13 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 13 21 13 22
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 16 16 18
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 16 9 16 15
+                , srcInfoPoints = []
+                }
+              "Single"
+          ]
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 19 16 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 19 16 20
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 20 16 21
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 22 16 24
+                      ]
+                  }))
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 26
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 32 16 33
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 34 16 36
+                      ]
+                  }
+                (ParenA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 26
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 32 16 33
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 34 16 36
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30
+                                    , srcInfoPoints = []
+                                    }
+                                  "Show")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 16 31 16 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 16 31 16 32
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))))
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 45
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 39 16 41 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 38
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 38
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 42 16 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 42 16 43
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 44 16 45
+                      ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 43 16 44
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 16 43 16 44
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 18 17 19
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 17 16 17 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 17 16 17 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 17 20 17 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 17 20 17 21
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 22 17 23
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 17 21 17 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 17 21 17 22
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 3 19 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 26
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 7
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 13 19 14
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 15 19 17
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 7
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 13 19 14
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 15 19 17
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11
+                                       , srcInfoPoints = []
+                                       }
+                                     "Show")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 19 12 19 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 19 12 19 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 22 19 24 ]
+                  }
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 19
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 20 19 21
+                         ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 19 19 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 19 19 19 20
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 25 19 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 25 19 26
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 17
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 17
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms3.hs" 20 3 20 13
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 20 3 20 4
+                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 20 12 20 13
+                        ]
+                    }
+                  (PApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 12
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 10
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 10
+                             , srcInfoPoints = []
+                             }
+                           "Single"))
+                     [ PVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 20 11 20 12
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 20 11 20 12
+                              , srcInfoPoints = []
+                              }
+                            "x")
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 20 14 20 17
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 20 14 20 15 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 41
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 20 22 22
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 22 9 22 19
+                , srcInfoPoints = []
+                }
+              "SinglePair"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 41
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 30 22 32 ]
+               }
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 24
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 25 22 26
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 28 22 29
+                      ]
+                  }
+                Boxed
+                [ TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 22 24 22 25
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 24 22 25
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                , TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 22 27 22 28
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 27 22 28
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 22 33 22 41
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 33 22 34
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 40 22 41
+                      ]
+                  }
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 22 34 22 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 34 22 35
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 36 22 37
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 39 22 40
+                         ]
+                     }
+                   Boxed
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 35 22 36
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 35 22 36
+                            , srcInfoPoints = []
+                            }
+                          "a")
+                   , TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 38 22 39
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 38 22 39
+                            , srcInfoPoints = []
+                            }
+                          "a")
+                   ])))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 22 23 23
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 21
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 19
+                     , srcInfoPoints = []
+                     }
+                   "SinglePair"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 23 20 23 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 23 20 23 21
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 23 24 23 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 23 24 23 25
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 26 23 27
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 23 25 23 26
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 23 25 23 26
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 3 25 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 36
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 7
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 13 25 14
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 15 25 17
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 7
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 13 25 14
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 15 25 17
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11
+                                       , srcInfoPoints = []
+                                       }
+                                     "Show")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 25 12 25 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 25 12 25 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 27 25 29 ]
+                  }
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 19
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 25 25 26
+                         ]
+                     }
+                   (TyTuple
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 19 25 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 19 25 20
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 21 25 22
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 24 25 25
+                            ]
+                        }
+                      Boxed
+                      [ TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 20 25 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 20 25 21
+                               , srcInfoPoints = []
+                               }
+                             "a")
+                      , TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 23 25 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 23 25 24
+                               , srcInfoPoints = []
+                               }
+                             "a")
+                      ]))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
+                           , srcInfoPoints = []
+                           }
+                         "String")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 26
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 26
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/PatternSynonyms3.hs" 26 3 26 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 26 3 26 4
+                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 26 16 26 17
+                        ]
+                    }
+                  (PApp
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 16
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 14
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 14
+                             , srcInfoPoints = []
+                             }
+                           "SinglePair"))
+                     [ PVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 26 15 26 16
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 26 15 26 16
+                              , srcInfoPoints = []
+                              }
+                            "x")
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 26 18 26 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 26 18 26 19 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 26
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
+                               , srcInfoPoints = []
+                               }
+                             "show")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 28 11 28 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
+                     , srcInfoPoints = []
+                     }
+                   "Q"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
+                     , srcInfoPoints = []
+                     }
+                   "D"))
+             [])
+          ImplicitBidirectional
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 36
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 11 30 13
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 30 9 30 10
+                , srcInfoPoints = []
+                }
+              "C"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 36
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 16 30 18 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 15
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 36
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 26
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
+                              , srcInfoPoints = []
+                              }
+                            "X")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
+                              , srcInfoPoints = []
+                              }
+                            "Maybe"))))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 27 30 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 27 30 28
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 35 30 36
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 35
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 34 30 35
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 34 30 35
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 13 31 14
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 10
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 31 11 31 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 31 11 31 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 25
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 16
+                     , srcInfoPoints = []
+                     }
+                   "Y"))
+             [ PParen
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 31 17 31 25
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 31 17 31 18
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 24 31 25
+                       ]
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 24
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 22
+                            , srcInfoPoints = []
+                            }
+                          "Just"))
+                    [ PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 31 23 31 24
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 31 23 31 24
+                             , srcInfoPoints = []
+                             }
+                           "x")
+                    ])
+             ])
+          ImplicitBidirectional
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 49
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 13 34 15
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 16 34 22
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 32 34 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 34 9 34 12
+                , srcInfoPoints = []
+                }
+              "Syn"
+          ]
+          (Just
+             [ UnkindedVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 23 34 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 23 34 24
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , UnkindedVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 25 34 26
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 25 34 26
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             , UnkindedVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 27 34 28
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 27 34 28
+                      , srcInfoPoints = []
+                      }
+                    "c")
+             ])
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 34 34 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 34 34 35
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 35 34 36
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 37 34 39
+                      ]
+                  }))
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 40 34 45
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 40 34 41
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 41 34 42
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 43 34 45
+                      ]
+                  }))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 64
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 11 36 13
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 36 9 36 10
+                , srcInfoPoints = []
+                }
+              "C"
+          ]
+          Nothing
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 15
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 29 36 30
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 31 36 33
+                      ]
+                  }
+                (ParenA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 15
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 29 36 30
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 31 36 33
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19
+                                    , srcInfoPoints = []
+                                    }
+                                  "Show")))
+                         (TyTuple
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 20 36 29
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 20 36 21
+                                  , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 22 36 23
+                                  , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 28 36 29
+                                  ]
+                              }
+                            Boxed
+                            [ TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 21 36 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 21 36 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")
+                            , TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "Bool"))
+                            ]))))))
+          Nothing
+          Nothing
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 64
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 36 36 38 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 35
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 35
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 64
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 46
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
+                              , srcInfoPoints = []
+                              }
+                            "X")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
+                              , srcInfoPoints = []
+                              }
+                            "Maybe"))))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 47 36 64
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 47 36 48
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 63 36 64
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 63
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))
+                      (TyTuple
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 54 36 63
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 54 36 55
+                               , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 56 36 57
+                               , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 62 36 63
+                               ]
+                           }
+                         Boxed
+                         [ TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 55 36 56
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 55 36 56
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         , TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool"))
+                         ])))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 13 37 14
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 10
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 37 11 37 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 37 11 37 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 33
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 16
+                     , srcInfoPoints = []
+                     }
+                   "Y"))
+             [ PParen
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 37 17 37 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 17 37 18
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 32 37 33
+                       ]
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 32
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 22
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 22
+                            , srcInfoPoints = []
+                            }
+                          "Just"))
+                    [ PTuple
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 37 23 37 32
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 23 37 24
+                              , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 25 37 26
+                              , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 31 37 32
+                              ]
+                          }
+                        Boxed
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 37 24 37 25
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 37 24 37 25
+                                 , srcInfoPoints = []
+                                 }
+                               "x")
+                        , PApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
+                                    , srcInfoPoints = []
+                                    }
+                                  "True"))
+                            []
+                        ]
+                    ])
+             ])
+          ImplicitBidirectional
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 39 11 39 13
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 39 9 39 10
+                , srcInfoPoints = []
+                }
+              "P"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 22
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 20
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
+                           , srcInfoPoints = []
+                           }
+                         "T")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
+                           , srcInfoPoints = []
+                           }
+                         "Bool"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 39 21 39 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 21 39 22
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 40 11 40 13
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 22
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 17
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
+                         , srcInfoPoints = []
+                         }
+                       "True"))
+                 []
+             ])
+          Unidirectional
+      , PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 11 42 13
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 42 9 42 10
+                , srcInfoPoints = []
+                }
+              "D"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 16 42 18 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 15
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 35
+                  , srcInfoPoints = []
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 30
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
+                              , srcInfoPoints = []
+                              }
+                            "T")))
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 21 42 30
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 21 42 22
+                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 29 42 30
+                            ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 29
+                           , srcInfoPoints = []
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
+                                    , srcInfoPoints = []
+                                    }
+                                  "Maybe")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 28 42 29
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 42 28 42 29
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 13 43 14
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 10
+                     , srcInfoPoints = []
+                     }
+                   "D"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 43 11 43 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 43 11 43 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 27
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 18
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PParen
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 43 19 43 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 43 19 43 20
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 26 43 27
+                       ]
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 24
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 24
+                            , srcInfoPoints = []
+                            }
+                          "Just"))
+                    [ PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 43 25 43 26
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 43 25 43 26
+                             , srcInfoPoints = []
+                             }
+                           "x")
+                    ])
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 15 46 16
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 11 46 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 46 11 46 12
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 13 46 14
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 46 13 46 14
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 28
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 21
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PTuple
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 22 46 28
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 46 22 46 23
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 24 46 25
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 27 46 28
+                       ]
+                   }
+                 Boxed
+                 [ PVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms3.hs" 46 23 46 24
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 46 23 46 24
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 , PVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/PatternSynonyms3.hs" 46 26 46 27
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/PatternSynonyms3.hs" 46 26 46 27
+                          , srcInfoPoints = []
+                          }
+                        "b")
+                 ]
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 18 48 19
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 48 16 48 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 48 16 48 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 48 20 48 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 48 20 48 21
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 22 48 23
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 48 21 48 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 48 21 48 22
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 17 50 18
+                ]
+            }
+          (PInfixApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 16
+               , srcInfoPoints = []
+               }
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 11 50 14
+                  , srcInfoPoints = []
+                  }
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 11 50 14
+                     , srcInfoPoints = []
+                     }
+                   ":+:"))
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 15 50 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 15 50 16
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 50 19 50 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 50 19 50 20
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 21 50 22
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 24 50 25
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 50 20 50 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 50 20 50 21
+                      , srcInfoPoints = []
+                      }
+                    "a")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 50 23 50 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 50 23 50 24
+                      , srcInfoPoints = []
+                      }
+                    "b")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 53 13 53 15
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 11 53 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 11 53 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 24
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 19
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PLit
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
+                   , srcInfoPoints = []
+                   }
+                 (Signless
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
+                      , srcInfoPoints = []
+                      })
+                 (Int
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
+                      , srcInfoPoints = []
+                      }
+                    42
+                    "42")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 23 53 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 23 53 24
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          Unidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 56 15 56 17
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 11 56 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 11 56 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 13 56 14
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 13 56 14
+                      , srcInfoPoints = []
+                      }
+                    "y")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 25
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 21
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 22 56 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 22 56 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 24 56 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 24 56 25
+                      , srcInfoPoints = []
+                      }
+                    "y")
+             ])
+          Unidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 13 58 15
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 11 58 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 11 58 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 33
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 19
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PParen
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 20 58 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 20 58 21
+                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 30 58 31
+                       ]
+                   }
+                 (PViewPat
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 30
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 23 58 25 ]
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
+                               , srcInfoPoints = []
+                               }
+                             "f")))
+                    (PApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
+                               , srcInfoPoints = []
+                               }
+                             "True"))
+                       []))
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 32 58 33
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 32 58 33
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          Unidirectional
+      , GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 63 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 60 8 60 13
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 5
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 60 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 60 6 60 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 60 6 60 7
+                  , srcInfoPoints = []
+                  }
+                "T"))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 33
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 9 61 11 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 8
+                   , srcInfoPoints = []
+                   }
+                 "MkT")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 33
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 14 61 16 ]
+                   }
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 13
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 13
+                         , srcInfoPoints = []
+                         }
+                       "b"))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 33
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 29 61 31 ]
+                      }
+                    (TyParen
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 28
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 18
+                             , SrcSpan "tests/examples/PatternSynonyms3.hs" 61 27 61 28
+                             ]
+                         }
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 20 61 22 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 19
+                                  , srcInfoPoints = []
+                                  }
+                                "b"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "Bool")))))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
+                               , srcInfoPoints = []
+                               }
+                             "T")))))
+          ]
+          []
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 15 63 17
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 11 63 12
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 11 63 12
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 13 63 14
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 13 63 14
+                      , srcInfoPoints = []
+                      }
+                    "f")
+             ])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 25
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 21
+                     , srcInfoPoints = []
+                     }
+                   "MkT"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 22 63 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 22 63 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 24 63 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 24 63 25
+                      , srcInfoPoints = []
+                      }
+                    "f")
+             ])
+          Unidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 18 65 20
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 65 16 65 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 65 16 65 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 65 21 65 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 65 21 65 22
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 23 65 24
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 65 22 65 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 65 22 65 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          Unidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 67 11 67 13
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 23
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 18
+                     , srcInfoPoints = []
+                     }
+                   "Just"))
+             [ PApp
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
+                         , srcInfoPoints = []
+                         }
+                       "True"))
+                 []
+             ])
+          Unidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 69 11 69 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [])
+          (PLit
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
+               , srcInfoPoints = []
+               }
+             (Signless
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
+                  , srcInfoPoints = []
+                  })
+             (Int
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
+                  , srcInfoPoints = []
+                  }
+                42
+                "42"))
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 11 72 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
+                     , srcInfoPoints = []
+                     }
+                   "P"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
+                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
+                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
+                         ]
+                     }))
+             [])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 8
+                , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 18 75 20
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 17
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 75 16 75 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 75 16 75 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PatternSynonyms3.hs" 75 21 75 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 75 21 75 22
+                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 23 75 24
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/PatternSynonyms3.hs" 75 22 75 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PatternSynonyms3.hs" 75 22 75 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          Unidirectional
+      ]
+  , []
+  )
diff --git a/tests/examples/PatternSynonyms3.hs.prettyparser.golden b/tests/examples/PatternSynonyms3.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms3.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PatternSynonyms3.hs.prettyprinter.golden b/tests/examples/PatternSynonyms3.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PatternSynonyms3.hs.prettyprinter.golden
@@ -0,0 +1,74 @@
+{-# LANGUAGE PatternSynonyms, BangPatterns, PolyKinds, DataKinds,
+  GADTs, FlexibleContexts, ViewPatterns #-}
+{-# LANGUAGE ExplicitForAll #-}
+
+pattern Single x <- [x]
+
+single :: [a] -> Maybe a
+single (Single x) = Just x
+single _ = Nothing
+
+pattern Single :: a -> [a]
+
+pattern Single x = [x]
+
+pattern Single :: () => (Show a) => a -> [a]
+
+pattern Single x = [x]
+
+f :: (Show a) => [a] -> a
+f (Single x) = x
+
+pattern SinglePair :: (a, a) -> [(a, a)]
+
+pattern SinglePair x = [x]
+
+f :: (Show a) => [(a, a)] -> String
+f (SinglePair x) = show x
+
+pattern Q = D
+
+pattern C :: a -> X Maybe (Maybe a)
+
+pattern C x = Y (Just x)
+
+pattern Syn :: forall a b c . () => () => Int
+
+pattern C :: (Show (a, Bool)) => a -> X Maybe (Maybe (a, Bool))
+
+pattern C x = Y (Just (x, True))
+
+pattern P :: T Bool b
+
+pattern P <- MkT True
+
+pattern D :: a -> T (Maybe a) Bool
+
+pattern D x = MkT (Just x)
+
+pattern P a b = Just (a, b)
+
+pattern Single x = [x]
+
+pattern a :+: b = (a, b)
+
+pattern P x <- MkT 42 x
+
+pattern P x y <- MkT x y
+
+pattern P x <- MkT (f -> True) x
+
+data T where
+        MkT :: b -> (b -> Bool) -> T
+
+pattern P x f <- MkT x f
+
+pattern Single x <- [x]
+
+pattern P <- Just True
+
+pattern P = 42
+
+pattern P = ()
+
+pattern Single x <- [x]
diff --git a/tests/examples/PolyKindSigs.hs b/tests/examples/PolyKindSigs.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PolyKindSigs.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE GADTs          #-}
+--{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE PolyKinds      #-}
+
+module Test where
+
+data Foo :: * -> * where
+  Foo :: Foo a
diff --git a/tests/examples/PolyKindSigs.hs.exactprinter.golden b/tests/examples/PolyKindSigs.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PolyKindSigs.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PolyKindSigs.hs.parser.golden b/tests/examples/PolyKindSigs.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PolyKindSigs.hs.parser.golden
@@ -0,0 +1,163 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PolyKindSigs.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 7 1 7 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 9 1 9 1
+            , SrcSpan "tests/examples/PolyKindSigs.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 5 1 5 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PolyKindSigs.hs" 5 1 5 7
+                  , SrcSpan "tests/examples/PolyKindSigs.hs" 5 13 5 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 5 8 5 12
+                 , srcInfoPoints = []
+                 }
+               "Test")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKindSigs.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PolyKindSigs.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 3 1 3 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKindSigs.hs" 3 1 3 13
+                , SrcSpan "tests/examples/PolyKindSigs.hs" 3 29 3 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 3 14 3 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 1 9 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKindSigs.hs" 7 10 7 12
+                , SrcSpan "tests/examples/PolyKindSigs.hs" 7 20 7 25
+                , SrcSpan "tests/examples/PolyKindSigs.hs" 8 3 8 3
+                , SrcSpan "tests/examples/PolyKindSigs.hs" 9 1 9 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 1 7 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 6 7 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 6 7 9
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          (Just
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 13 7 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PolyKindSigs.hs" 7 15 7 17 ]
+                  }
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 13 7 14
+                     , srcInfoPoints = []
+                     })
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 18 7 19
+                     , srcInfoPoints = []
+                     })))
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 3 8 15
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/PolyKindSigs.hs" 8 7 8 9 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 3 8 6
+                   , srcInfoPoints = []
+                   }
+                 "Foo")
+              Nothing
+              Nothing
+              Nothing
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 10 8 15
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 10 8 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 10 8 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 10 8 13
+                            , srcInfoPoints = []
+                            }
+                          "Foo")))
+                 (TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 14 8 15
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 8 14 8 15
+                         , srcInfoPoints = []
+                         }
+                       "a")))
+          ]
+          []
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/PolyKindSigs.hs" 2 1 2 34)
+        "{-# LANGUAGE KindSignatures #-}"
+    ]
+  )
diff --git a/tests/examples/PolyKindSigs.hs.prettyparser.golden b/tests/examples/PolyKindSigs.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PolyKindSigs.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PolyKindSigs.hs.prettyprinter.golden b/tests/examples/PolyKindSigs.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PolyKindSigs.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE PolyKinds #-}
+module Test where
+
+data Foo :: * -> * where
+        Foo :: Foo a
diff --git a/tests/examples/PolyKinds.hs.parser.golden b/tests/examples/PolyKinds.hs.parser.golden
--- a/tests/examples/PolyKinds.hs.parser.golden
+++ b/tests/examples/PolyKinds.hs.parser.golden
@@ -1,1 +1,437 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 1 9 1, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 1,SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1,SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1,SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1,SrcSpan "tests/examples/PolyKinds.hs" 4 1 4 1,SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 1,SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 1,SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 1,SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 27, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 13,SrcSpan "tests/examples/PolyKinds.hs" 1 24 1 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 14 1 23, srcInfoPoints = []}) "PolyKinds"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 21, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 2 14 2 15]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 11, srcInfoPoints = []}) "Proxy")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 12 2 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 12 2 13, srcInfoPoints = []}) "t"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21, srcInfoPoints = []}) "Proxy") [])] Nothing,ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 1 5 31, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 4 1 4 6,SrcSpan "tests/examples/PolyKinds.hs" 4 18 4 23,SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 3,SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 17, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 15, srcInfoPoints = []}) "Typeable")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 16 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 16 4 17, srcInfoPoints = []}) "t"))) [] (Just [ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 31, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 5 10 5 12]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 31, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 5 10 5 12]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 9, srcInfoPoints = []}) "typeOf"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 31, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 5 21 5 23]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 20, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18, srcInfoPoints = []}) "Proxy"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 19 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 19 5 20, srcInfoPoints = []}) "t"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31, srcInfoPoints = []}) "TypeRep")))))]),InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 1 8 0, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 9,SrcSpan "tests/examples/PolyKinds.hs" 7 24 7 29,SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 30,SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 22, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 22, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18, srcInfoPoints = []}) "Typeable"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22, srcInfoPoints = []}) "Int"))))) (Just [InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 36, srcInfoPoints = []}) "typeOf") [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 37 7 38, srcInfoPoints = []})] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 39 7 48, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 7 39 7 40]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48, srcInfoPoints = []}) "TypeRep")))) Nothing])]),InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 1 9 0, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 9,SrcSpan "tests/examples/PolyKinds.hs" 8 24 8 29,SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 30,SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 21, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 21, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18, srcInfoPoints = []}) "Typeable"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20,SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20,SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21]}) (ListCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20,SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21]})))))) (Just [InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 36, srcInfoPoints = []}) "typeOf") [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 37 8 38, srcInfoPoints = []})] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 39 8 48, srcInfoPoints = [SrcSpan "tests/examples/PolyKinds.hs" 8 39 8 40]}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48, srcInfoPoints = []}) "TypeRep")))) Nothing])])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 4 1 4 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 1
+            , SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKinds.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PolyKinds.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKinds.hs" 2 14 2 15 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 1 2 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 6 2 11
+                     , srcInfoPoints = []
+                     }
+                   "Proxy"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 12 2 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 12 2 13
+                     , srcInfoPoints = []
+                     }
+                   "t")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 2 16 2 21
+                      , srcInfoPoints = []
+                      }
+                    "Proxy")
+                 [])
+          ]
+          []
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 1 5 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKinds.hs" 4 1 4 6
+                , SrcSpan "tests/examples/PolyKinds.hs" 4 18 4 23
+                , SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 3
+                , SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 17
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 7 4 15
+                     , srcInfoPoints = []
+                     }
+                   "Typeable"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 16 4 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 4 16 4 17
+                     , srcInfoPoints = []
+                     }
+                   "t")))
+          []
+          (Just
+             [ ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 31
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/PolyKinds.hs" 5 10 5 12 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 31
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PolyKinds.hs" 5 10 5 12 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 3 5 9
+                          , srcInfoPoints = []
+                          }
+                        "typeOf"
+                    ]
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PolyKinds.hs" 5 21 5 23 ]
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 20
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 13 5 18
+                                     , srcInfoPoints = []
+                                     }
+                                   "Proxy")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 19 5 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 19 5 20
+                                  , srcInfoPoints = []
+                                  }
+                                "t")))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 5 24 5 31
+                                  , srcInfoPoints = []
+                                  }
+                                "TypeRep")))))
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 1 8 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKinds.hs" 7 1 7 9
+                , SrcSpan "tests/examples/PolyKinds.hs" 7 24 7 29
+                , SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 30
+                , SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 22
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 22
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 10 7 18
+                           , srcInfoPoints = []
+                           }
+                         "Typeable")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 19 7 22
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 48
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 30 7 36
+                             , srcInfoPoints = []
+                             }
+                           "typeOf")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 37 7 38
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 39 7 48
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PolyKinds.hs" 7 39 7 40 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PolyKinds.hs" 7 41 7 48
+                                      , srcInfoPoints = []
+                                      }
+                                    "TypeRep"))))
+                        Nothing
+                    ])
+             ])
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 1 9 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PolyKinds.hs" 8 1 8 9
+                , SrcSpan "tests/examples/PolyKinds.hs" 8 24 8 29
+                , SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 30
+                , SrcSpan "tests/examples/PolyKinds.hs" 9 1 9 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 21
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 21
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 10 8 18
+                           , srcInfoPoints = []
+                           }
+                         "Typeable")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20
+                         , SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20
+                            , SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21
+                            ]
+                        }
+                      (ListCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 21
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/PolyKinds.hs" 8 19 8 20
+                               , SrcSpan "tests/examples/PolyKinds.hs" 8 20 8 21
+                               ]
+                           })))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 48
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 30 8 36
+                             , srcInfoPoints = []
+                             }
+                           "typeOf")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 37 8 38
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 39 8 48
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/PolyKinds.hs" 8 39 8 40 ]
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/PolyKinds.hs" 8 41 8 48
+                                      , srcInfoPoints = []
+                                      }
+                                    "TypeRep"))))
+                        Nothing
+                    ])
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/PolyKinds.hs.prettyprinter.golden b/tests/examples/PolyKinds.hs.prettyprinter.golden
--- a/tests/examples/PolyKinds.hs.prettyprinter.golden
+++ b/tests/examples/PolyKinds.hs.prettyprinter.golden
@@ -1,14 +1,12 @@
 {-# LANGUAGE PolyKinds #-}
-module Main (main) where
- 
+
 data Proxy t = Proxy
- 
+
 class Typeable t where
-         
         typeOf :: Proxy t -> TypeRep
- 
+
 instance Typeable Int where
         typeOf _ = TypeRep
- 
+
 instance Typeable [] where
         typeOf _ = TypeRep
diff --git a/tests/examples/Ppr048.hs b/tests/examples/Ppr048.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Ppr048.hs
@@ -0,0 +1,10 @@
+module Ppr048 where
+
+{-# SCc foo #-}
+foo :: Int -> Int
+foo       x = x
+
+{-# SCc foo2 "label" #-}
+foo2 :: ()
+foo2 = ()
+
diff --git a/tests/examples/Ppr048.hs.exactprinter.golden b/tests/examples/Ppr048.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Ppr048.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/Ppr048.hs" 3 9) "Parse error: foo"
diff --git a/tests/examples/Ppr048.hs.parser.golden b/tests/examples/Ppr048.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Ppr048.hs.parser.golden
@@ -0,0 +1,2 @@
+ParseFailed
+  (SrcLoc "tests/examples/Ppr048.hs" 3 9) "Parse error: foo"
diff --git a/tests/examples/Ppr048.hs.prettyparser.golden b/tests/examples/Ppr048.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Ppr048.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/Ppr048.hs" 3 9) "Parse error: foo"
diff --git a/tests/examples/Ppr048.hs.prettyprinter.golden b/tests/examples/Ppr048.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Ppr048.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/Ppr048.hs" 3 9) "Parse error: foo"
diff --git a/tests/examples/PrimitiveIntHexLiteral.hs.parser.golden b/tests/examples/PrimitiveIntHexLiteral.hs.parser.golden
--- a/tests/examples/PrimitiveIntHexLiteral.hs.parser.golden
+++ b/tests/examples/PrimitiveIntHexLiteral.hs.parser.golden
@@ -1,1 +1,112 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 1,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 3 1 3 1,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 27, srcInfoPoints = [SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 13,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 24 1 27]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 14 1 23, srcInfoPoints = []}) "MagicHash"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 34, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 7, srcInfoPoints = []}) "minInt")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 8 2 34, srcInfoPoints = [SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 8 2 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 34, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12, srcInfoPoints = []}) "I#"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 13 2 34, srcInfoPoints = [SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 13 2 14,SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 33 2 34]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 14 2 33, srcInfoPoints = []}) (PrimInt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 14 2 33, srcInfoPoints = []}) 9223372036854775808 "0x8000000000000000"))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 3 1 3 1
+            , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "MagicHash"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 34
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 1 2 7
+                  , srcInfoPoints = []
+                  }
+                "minInt"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 8 2 34
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 8 2 9 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 34
+                  , srcInfoPoints = []
+                  }
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 10 2 12
+                           , srcInfoPoints = []
+                           }
+                         "I#")))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 13 2 34
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 13 2 14
+                         , SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 33 2 34
+                         ]
+                     }
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 14 2 33
+                        , srcInfoPoints = []
+                        }
+                      (PrimInt
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/PrimitiveIntHexLiteral.hs" 2 14 2 33
+                           , srcInfoPoints = []
+                           }
+                         9223372036854775808
+                         "0x8000000000000000")))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/PrimitiveIntHexLiteral.hs.prettyparser.golden b/tests/examples/PrimitiveIntHexLiteral.hs.prettyparser.golden
--- a/tests/examples/PrimitiveIntHexLiteral.hs.prettyparser.golden
+++ b/tests/examples/PrimitiveIntHexLiteral.hs.prettyparser.golden
@@ -1,1 +1,10 @@
-Match
+Roundtrip test failed
+
+AST 1:
+
+Module () Nothing [LanguagePragma () [Ident () "MagicHash"]] [] [PatBind () (PVar () (Ident () "minInt")) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "I#"))) (Paren () (Lit () (PrimInt () 9223372036854775808 "0x8000000000000000"))))) Nothing]
+
+AST 2:
+
+Module () Nothing [LanguagePragma () [Ident () "MagicHash"]] [] [PatBind () (PVar () (Ident () "minInt")) (UnGuardedRhs () (App () (Con () (UnQual () (Ident () "I#"))) (Paren () (Lit () (PrimInt () 9223372036854775808 "9223372036854775808"))))) Nothing]
+
diff --git a/tests/examples/PrimitiveIntHexLiteral.hs.prettyprinter.golden b/tests/examples/PrimitiveIntHexLiteral.hs.prettyprinter.golden
--- a/tests/examples/PrimitiveIntHexLiteral.hs.prettyprinter.golden
+++ b/tests/examples/PrimitiveIntHexLiteral.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE MagicHash #-}
-module Main (main) where
 minInt = I# (9223372036854775808#)
diff --git a/tests/examples/PromotedSpace.hs b/tests/examples/PromotedSpace.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/PromotedSpace.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE DataKinds #-}
+module PromotedSpace where
+
+-- Promoted list containing promoted constructor with quote
+type PL1 = '[ 'True ]
+
+-- Promoted list containing promoted list
+type PL2 = '[ '[Int] ]
+
+-- Promoted list containing promoted tuple
+type PL3 = '[ '(Int, Bool) ]
+
+-- Promoted tuple containing promoted constructor with quote
+type PT1 = '( 'True, False )
+
+-- Promoted tuple containing promoted list
+type PT2 = '( '[Int], Bool )
+
+-- Promoted tuple containing promoted tuple
+type PT3 = '( '(Int, Bool), Char )
diff --git a/tests/examples/PromotedSpace.hs.exactprinter.golden b/tests/examples/PromotedSpace.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PromotedSpace.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PromotedSpace.hs.parser.golden b/tests/examples/PromotedSpace.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PromotedSpace.hs.parser.golden
@@ -0,0 +1,617 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 1 1 21 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/PromotedSpace.hs" 1 1 1 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 5 1 5 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 8 1 8 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 11 1 11 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 14 1 14 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 17 1 17 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 20 1 20 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 21 1 21 1
+            , SrcSpan "tests/examples/PromotedSpace.hs" 21 1 21 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/PromotedSpace.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/PromotedSpace.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "PromotedSpace")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 1 1 1 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 1 1 1 13
+                , SrcSpan "tests/examples/PromotedSpace.hs" 1 24 1 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      ]
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 1 5 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 5 1 5 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 5 10 5 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 6 5 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 6 5 9
+                  , srcInfoPoints = []
+                  }
+                "PL1"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 12 5 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 5 12 5 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 5 21 5 22
+                   ]
+               }
+             (PromotedList
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 12 5 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 5 12 5 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 5 21 5 22
+                      ]
+                  }
+                True
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 15 5 20
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 5 15 5 16 ]
+                      }
+                    (PromotedCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 15 5 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 5 15 5 16 ]
+                         }
+                       True
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 16 5 20
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 5 16 5 20
+                               , srcInfoPoints = []
+                               }
+                             "True")))
+                ]))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 1 8 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 8 1 8 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 8 10 8 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 6 8 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 6 8 9
+                  , srcInfoPoints = []
+                  }
+                "PL2"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 12 8 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 8 12 8 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 8 22 8 23
+                   ]
+               }
+             (PromotedList
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 12 8 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 8 12 8 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 8 22 8 23
+                      ]
+                  }
+                True
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 15 8 21
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 8 15 8 16
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 8 20 8 21
+                          ]
+                      }
+                    (PromotedList
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 15 8 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 8 15 8 16
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 8 20 8 21
+                             ]
+                         }
+                       True
+                       [ TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 17 8 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 8 17 8 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 8 17 8 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))
+                       ])
+                ]))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PromotedSpace.hs" 11 1 11 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 11 1 11 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 11 10 11 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 11 6 11 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 11 6 11 9
+                  , srcInfoPoints = []
+                  }
+                "PL3"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PromotedSpace.hs" 11 12 11 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 11 12 11 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 11 28 11 29
+                   ]
+               }
+             (PromotedList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PromotedSpace.hs" 11 12 11 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 11 12 11 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 11 28 11 29
+                      ]
+                  }
+                True
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 11 15 11 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 11 15 11 16
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 11 20 11 21
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 11 26 11 27
+                          ]
+                      }
+                    (PromotedTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 11 15 11 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 11 15 11 16
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 11 20 11 21
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 11 26 11 27
+                             ]
+                         }
+                       [ TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PromotedSpace.hs" 11 17 11 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PromotedSpace.hs" 11 17 11 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 11 17 11 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))
+                       , TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PromotedSpace.hs" 11 22 11 26
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PromotedSpace.hs" 11 22 11 26
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 11 22 11 26
+                                   , srcInfoPoints = []
+                                   }
+                                 "Bool"))
+                       ])
+                ]))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PromotedSpace.hs" 14 1 14 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 14 1 14 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 14 10 14 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 14 6 14 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 14 6 14 9
+                  , srcInfoPoints = []
+                  }
+                "PT1"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PromotedSpace.hs" 14 12 14 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 14 12 14 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 14 20 14 21
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 14 28 14 29
+                   ]
+               }
+             (PromotedTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PromotedSpace.hs" 14 12 14 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 14 12 14 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 14 20 14 21
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 14 28 14 29
+                      ]
+                  }
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 14 15 14 20
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 14 15 14 16 ]
+                      }
+                    (PromotedCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 14 15 14 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 14 15 14 16 ]
+                         }
+                       True
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PromotedSpace.hs" 14 16 14 20
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/PromotedSpace.hs" 14 16 14 20
+                               , srcInfoPoints = []
+                               }
+                             "True")))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 14 22 14 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 14 22 14 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PromotedSpace.hs" 14 22 14 27
+                            , srcInfoPoints = []
+                            }
+                          "False"))
+                ]))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PromotedSpace.hs" 17 1 17 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 17 1 17 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 17 10 17 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 17 6 17 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 17 6 17 9
+                  , srcInfoPoints = []
+                  }
+                "PT2"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PromotedSpace.hs" 17 12 17 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 17 12 17 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 17 21 17 22
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 17 28 17 29
+                   ]
+               }
+             (PromotedTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PromotedSpace.hs" 17 12 17 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 17 12 17 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 17 21 17 22
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 17 28 17 29
+                      ]
+                  }
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 17 15 17 21
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 17 15 17 16
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 17 20 17 21
+                          ]
+                      }
+                    (PromotedList
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 17 15 17 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 17 15 17 16
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 17 20 17 21
+                             ]
+                         }
+                       True
+                       [ TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PromotedSpace.hs" 17 17 17 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PromotedSpace.hs" 17 17 17 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 17 17 17 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))
+                       ])
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 17 23 17 27
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 17 23 17 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PromotedSpace.hs" 17 23 17 27
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                ]))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/PromotedSpace.hs" 20 1 20 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/PromotedSpace.hs" 20 1 20 5
+                , SrcSpan "tests/examples/PromotedSpace.hs" 20 10 20 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 20 6 20 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/PromotedSpace.hs" 20 6 20 9
+                  , srcInfoPoints = []
+                  }
+                "PT3"))
+          (TyPromoted
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/PromotedSpace.hs" 20 12 20 35
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/PromotedSpace.hs" 20 12 20 13
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 20 27 20 28
+                   , SrcSpan "tests/examples/PromotedSpace.hs" 20 34 20 35
+                   ]
+               }
+             (PromotedTuple
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/PromotedSpace.hs" 20 12 20 35
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/PromotedSpace.hs" 20 12 20 13
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 20 27 20 28
+                      , SrcSpan "tests/examples/PromotedSpace.hs" 20 34 20 35
+                      ]
+                  }
+                [ TyPromoted
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 20 15 20 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/PromotedSpace.hs" 20 15 20 16
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 20 20 20 21
+                          , SrcSpan "tests/examples/PromotedSpace.hs" 20 26 20 27
+                          ]
+                      }
+                    (PromotedTuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 20 15 20 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/PromotedSpace.hs" 20 15 20 16
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 20 20 20 21
+                             , SrcSpan "tests/examples/PromotedSpace.hs" 20 26 20 27
+                             ]
+                         }
+                       [ TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PromotedSpace.hs" 20 17 20 20
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PromotedSpace.hs" 20 17 20 20
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 20 17 20 20
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))
+                       , TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/PromotedSpace.hs" 20 22 20 26
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/PromotedSpace.hs" 20 22 20 26
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/PromotedSpace.hs" 20 22 20 26
+                                   , srcInfoPoints = []
+                                   }
+                                 "Bool"))
+                       ])
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/PromotedSpace.hs" 20 29 20 33
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/PromotedSpace.hs" 20 29 20 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/PromotedSpace.hs" 20 29 20 33
+                            , srcInfoPoints = []
+                            }
+                          "Char"))
+                ]))
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 4 1 4 60)
+        " Promoted list containing promoted constructor with quote"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 7 1 7 42)
+        " Promoted list containing promoted list"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 10 1 10 43)
+        " Promoted list containing promoted tuple"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 13 1 13 61)
+        " Promoted tuple containing promoted constructor with quote"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 16 1 16 43)
+        " Promoted tuple containing promoted list"
+    , Comment
+        False
+        (SrcSpan "tests/examples/PromotedSpace.hs" 19 1 19 44)
+        " Promoted tuple containing promoted tuple"
+    ]
+  )
diff --git a/tests/examples/PromotedSpace.hs.prettyparser.golden b/tests/examples/PromotedSpace.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PromotedSpace.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/PromotedSpace.hs.prettyprinter.golden b/tests/examples/PromotedSpace.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/PromotedSpace.hs.prettyprinter.golden
@@ -0,0 +1,14 @@
+{-# LANGUAGE DataKinds #-}
+module PromotedSpace where
+
+type PL1 = '[ 'True]
+
+type PL2 = '[ '[Int]]
+
+type PL3 = '[ '(Int, Bool)]
+
+type PT1 = '( 'True, False)
+
+type PT2 = '( '[Int], Bool)
+
+type PT3 = '( '(Int, Bool), Char)
diff --git a/tests/examples/QQType.hs.parser.golden b/tests/examples/QQType.hs.parser.golden
--- a/tests/examples/QQType.hs.parser.golden
+++ b/tests/examples/QQType.hs.parser.golden
@@ -1,1 +1,278 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 1 1 1 1,SrcSpan "tests/examples/QQType.hs" 2 1 2 1,SrcSpan "tests/examples/QQType.hs" 2 1 2 1,SrcSpan "tests/examples/QQType.hs" 4 1 4 1,SrcSpan "tests/examples/QQType.hs" 6 1 6 1,SrcSpan "tests/examples/QQType.hs" 7 1 7 1,SrcSpan "tests/examples/QQType.hs" 8 1 8 1,SrcSpan "tests/examples/QQType.hs" 8 1 8 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 2 1 2 20, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 2 1 2 7,SrcSpan "tests/examples/QQType.hs" 2 15 2 20]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 2 8 2 14, srcInfoPoints = []}) "QQType") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 1 1 65, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 1 1 1 13,SrcSpan "tests/examples/QQType.hs" 1 31 1 32,SrcSpan "tests/examples/QQType.hs" 1 48 1 49,SrcSpan "tests/examples/QQType.hs" 1 62 1 65]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 14 1 31, srcInfoPoints = []}) "FlexibleInstances",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 33 1 48, srcInfoPoints = []}) "TemplateHaskell",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 50 1 61, srcInfoPoints = []}) "QuasiQuotes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 4 1 4 27, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 4 8 4 27, srcInfoPoints = []}) "Language.Haskell.TH", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 1 6 11, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 6 3 6 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 1 6 2, srcInfoPoints = []}) "x"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11, srcInfoPoints = []}) "DecsQ"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 48, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 3 7 48, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 3 7 4]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 5 7 48, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 5 7 8,SrcSpan "tests/examples/QQType.hs" 7 46 7 48]}) (DeclBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 5 7 48, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 9 7 9,SrcSpan "tests/examples/QQType.hs" 7 46 7 46,SrcSpan "tests/examples/QQType.hs" 7 46 7 48]}) [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 9 7 45, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 9 7 17]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 45, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 45, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22, srcInfoPoints = []}) "Show"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 23 7 45, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 23 7 25,SrcSpan "tests/examples/QQType.hs" 7 44 7 45]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 23 7 45, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 23 7 25,SrcSpan "tests/examples/QQType.hs" 7 44 7 45]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 25 7 44, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 25 7 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 25 7 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 25 7 29, srcInfoPoints = []}) "conT"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 30 7 44, srcInfoPoints = [SrcSpan "tests/examples/QQType.hs" 7 30 7 31,SrcSpan "tests/examples/QQType.hs" 7 43 7 44]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 31 7 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 31 7 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 31 7 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 31 7 37, srcInfoPoints = []}) "mkName"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 38 7 43, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 38 7 43, srcInfoPoints = []}) "Int" "Int"))))))))) Nothing]))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QQType.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QQType.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QQType.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QQType.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QQType.hs" 6 1 6 1
+            , SrcSpan "tests/examples/QQType.hs" 7 1 7 1
+            , SrcSpan "tests/examples/QQType.hs" 8 1 8 1
+            , SrcSpan "tests/examples/QQType.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 2 1 2 20
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/QQType.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/QQType.hs" 2 15 2 20
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 2 8 2 14
+                 , srcInfoPoints = []
+                 }
+               "QQType")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 1 1 65
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QQType.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QQType.hs" 1 31 1 32
+                , SrcSpan "tests/examples/QQType.hs" 1 48 1 49
+                , SrcSpan "tests/examples/QQType.hs" 1 62 1 65
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 14 1 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 33 1 48
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 1 50 1 61
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 4 1 4 27
+                , srcInfoPoints = [ SrcSpan "tests/examples/QQType.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 4 8 4 27
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 1 6 11
+            , srcInfoPoints = [ SrcSpan "tests/examples/QQType.hs" 6 3 6 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 1 6 2
+                , srcInfoPoints = []
+                }
+              "x"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 6 6 6 11
+                     , srcInfoPoints = []
+                     }
+                   "DecsQ")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 48
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 1 7 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 3 7 48
+               , srcInfoPoints = [ SrcSpan "tests/examples/QQType.hs" 7 3 7 4 ]
+               }
+             (BracketExp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 5 7 48
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QQType.hs" 7 5 7 8
+                      , SrcSpan "tests/examples/QQType.hs" 7 46 7 48
+                      ]
+                  }
+                (DeclBracket
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 5 7 48
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QQType.hs" 7 9 7 9
+                         , SrcSpan "tests/examples/QQType.hs" 7 46 7 46
+                         , SrcSpan "tests/examples/QQType.hs" 7 46 7 48
+                         ]
+                     }
+                   [ InstDecl
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 9 7 45
+                         , srcInfoPoints = [ SrcSpan "tests/examples/QQType.hs" 7 9 7 17 ]
+                         }
+                       Nothing
+                       (IRule
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 45
+                            , srcInfoPoints = []
+                            }
+                          Nothing
+                          Nothing
+                          (IHApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 45
+                               , srcInfoPoints = []
+                               }
+                             (IHCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 18 7 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "Show")))
+                             (TySplice
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 23 7 45
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/QQType.hs" 7 23 7 25
+                                      , SrcSpan "tests/examples/QQType.hs" 7 44 7 45
+                                      ]
+                                  }
+                                (ParenSplice
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 23 7 45
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/QQType.hs" 7 23 7 25
+                                         , SrcSpan "tests/examples/QQType.hs" 7 44 7 45
+                                         ]
+                                     }
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/QQType.hs" 7 25 7 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/QQType.hs" 7 25 7 29
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/QQType.hs" 7 25 7 29
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/QQType.hs" 7 25 7 29
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "conT")))
+                                      (Paren
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/QQType.hs" 7 30 7 44
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/QQType.hs" 7 30 7 31
+                                               , SrcSpan "tests/examples/QQType.hs" 7 43 7 44
+                                               ]
+                                           }
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/QQType.hs" 7 31 7 43
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/QQType.hs" 7 31 7 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan "tests/examples/QQType.hs" 7 31 7 37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/QQType.hs" 7 31 7 37
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "mkName")))
+                                            (Lit
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/QQType.hs" 7 38 7 43
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (String
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan "tests/examples/QQType.hs" 7 38 7 43
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "Int"
+                                                  "Int")))))))))
+                       Nothing
+                   ])))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QQType.hs.prettyprinter.golden b/tests/examples/QQType.hs.prettyprinter.golden
--- a/tests/examples/QQType.hs.prettyprinter.golden
+++ b/tests/examples/QQType.hs.prettyprinter.golden
@@ -1,9 +1,9 @@
 {-# LANGUAGE FlexibleInstances, TemplateHaskell, QuasiQuotes #-}
 module QQType where
 import Language.Haskell.TH
- 
+
 x :: DecsQ
 x = [d|
-       
+      
       instance Show $( conT (mkName "Int") )
       |]
diff --git a/tests/examples/QualifiedDot.hs.parser.golden b/tests/examples/QualifiedDot.hs.parser.golden
--- a/tests/examples/QualifiedDot.hs.parser.golden
+++ b/tests/examples/QualifiedDot.hs.parser.golden
@@ -1,1 +1,87 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 1,SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 1,SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 1,SrcSpan "tests/examples/QualifiedDot.hs" 4 1 4 1,SrcSpan "tests/examples/QualifiedDot.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 26, srcInfoPoints = [SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 7,SrcSpan "tests/examples/QualifiedDot.hs" 1 21 1 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 8 1 20, srcInfoPoints = []}) "QualifiedDot") Nothing Nothing)) [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 22, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 8, srcInfoPoints = []}) "twoDots")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 9 3 22, srcInfoPoints = [SrcSpan "tests/examples/QualifiedDot.hs" 3 9 3 10]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 22, srcInfoPoints = [SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 12,SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21,SrcSpan "tests/examples/QualifiedDot.hs" 3 21 3 22]}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 22, srcInfoPoints = [SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 12,SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21,SrcSpan "tests/examples/QualifiedDot.hs" 3 21 3 22]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21, srcInfoPoints = []}) "Prelude") (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21, srcInfoPoints = []}) ".")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QualifiedDot.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QualifiedDot.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/QualifiedDot.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/QualifiedDot.hs" 1 21 1 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 1 8 1 20
+                 , srcInfoPoints = []
+                 }
+               "QualifiedDot")
+            Nothing
+            Nothing))
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 22
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 1 3 8
+                  , srcInfoPoints = []
+                  }
+                "twoDots"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 9 3 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QualifiedDot.hs" 3 9 3 10 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 12
+                      , SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21
+                      , SrcSpan "tests/examples/QualifiedDot.hs" 3 21 3 22
+                      ]
+                  }
+                (Qual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QualifiedDot.hs" 3 11 3 12
+                         , SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21
+                         , SrcSpan "tests/examples/QualifiedDot.hs" 3 21 3 22
+                         ]
+                     }
+                   (ModuleName
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21
+                        , srcInfoPoints = []
+                        }
+                      "Prelude")
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/QualifiedDot.hs" 3 12 3 21
+                        , srcInfoPoints = []
+                        }
+                      "."))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QualifiedQQuote.hs.parser.golden b/tests/examples/QualifiedQQuote.hs.parser.golden
--- a/tests/examples/QualifiedQQuote.hs.parser.golden
+++ b/tests/examples/QualifiedQQuote.hs.parser.golden
@@ -1,1 +1,145 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 7 1 7 1,SrcSpan "tests/examples/QualifiedQQuote.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 13,SrcSpan "tests/examples/QualifiedQQuote.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 42, srcInfoPoints = [SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 7,SrcSpan "tests/examples/QualifiedQQuote.hs" 2 8 2 17,SrcSpan "tests/examples/QualifiedQQuote.hs" 2 38 2 40]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 2 18 2 37, srcInfoPoints = []}) "Language.Haskell.TH", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 2 41 2 42, srcInfoPoints = []}) "T"), importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 13, srcInfoPoints = [SrcSpan "tests/examples/QualifiedQQuote.hs" 4 3 4 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 2, srcInfoPoints = []}) "x"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13, srcInfoPoints = []}) "T") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13, srcInfoPoints = []}) "DecsQ"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 3 5 14, srcInfoPoints = [SrcSpan "tests/examples/QualifiedQQuote.hs" 5 3 5 4]}) (QuasiQuote (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 5 5 14, srcInfoPoints = []}) "T.d" "id")) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 7 1 7 1
+            , SrcSpan "tests/examples/QualifiedQQuote.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QualifiedQQuote.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QualifiedQQuote.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QualifiedQQuote.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 42
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/QualifiedQQuote.hs" 2 1 2 7
+                    , SrcSpan "tests/examples/QualifiedQQuote.hs" 2 8 2 17
+                    , SrcSpan "tests/examples/QualifiedQQuote.hs" 2 38 2 40
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QualifiedQQuote.hs" 2 18 2 37
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QualifiedQQuote.hs" 2 41 2 42
+                     , srcInfoPoints = []
+                     }
+                   "T")
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QualifiedQQuote.hs" 4 3 4 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 4 1 4 2
+                , srcInfoPoints = []
+                }
+              "x"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13
+               , srcInfoPoints = []
+               }
+             (Qual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13
+                  , srcInfoPoints = []
+                  }
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13
+                     , srcInfoPoints = []
+                     }
+                   "T")
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QualifiedQQuote.hs" 4 6 4 13
+                     , srcInfoPoints = []
+                     }
+                   "DecsQ")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QualifiedQQuote.hs" 5 1 5 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QualifiedQQuote.hs" 5 3 5 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QualifiedQQuote.hs" 5 3 5 4 ]
+               }
+             (QuasiQuote
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QualifiedQQuote.hs" 5 5 5 14
+                  , srcInfoPoints = []
+                  }
+                "T.d"
+                "id"))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QualifiedQQuote.hs.prettyprinter.golden b/tests/examples/QualifiedQQuote.hs.prettyprinter.golden
--- a/tests/examples/QualifiedQQuote.hs.prettyprinter.golden
+++ b/tests/examples/QualifiedQQuote.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
 import qualified Language.Haskell.TH as T
- 
+
 x :: T.DecsQ
 x = [T.d|id|]
diff --git a/tests/examples/QualifiedRecordfieldPuns.hs.parser.golden b/tests/examples/QualifiedRecordfieldPuns.hs.parser.golden
--- a/tests/examples/QualifiedRecordfieldPuns.hs.parser.golden
+++ b/tests/examples/QualifiedRecordfieldPuns.hs.parser.golden
@@ -1,1 +1,143 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 1,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 4 1 4 1,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 13,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 14 1 28, srcInfoPoints = []}) "NamedFieldPuns"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 16, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 2, srcInfoPoints = []}) "f") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 3 2 12, srcInfoPoints = [SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 3 2 4,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 11 2 12]}) (PRec (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 11, srcInfoPoints = [SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 6 2 7,SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 10 2 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 5, srcInfoPoints = []}) "C")) [PFieldPun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10, srcInfoPoints = []}) "M") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10, srcInfoPoints = []}) "a"))])] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 13 2 16, srcInfoPoints = [SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 13 2 14]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16, srcInfoPoints = []}) "a")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "NamedFieldPuns"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 1 2 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 3 2 12
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 3 2 4
+                        , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 11 2 12
+                        ]
+                    }
+                  (PRec
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 11
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 6 2 7
+                           , SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 10 2 11
+                           ]
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 5
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 4 2 5
+                             , srcInfoPoints = []
+                             }
+                           "C"))
+                     [ PFieldPun
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10
+                           , srcInfoPoints = []
+                           }
+                         (Qual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10
+                              , srcInfoPoints = []
+                              }
+                            (ModuleName
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10
+                                 , srcInfoPoints = []
+                                 }
+                               "M")
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 7 2 10
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                     ])
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 13 2 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 13 2 14 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QualifiedRecordfieldPuns.hs" 2 15 2 16
+                            , srcInfoPoints = []
+                            }
+                          "a"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/QualifiedRecordfieldPuns.hs.prettyprinter.golden b/tests/examples/QualifiedRecordfieldPuns.hs.prettyprinter.golden
--- a/tests/examples/QualifiedRecordfieldPuns.hs.prettyprinter.golden
+++ b/tests/examples/QualifiedRecordfieldPuns.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE NamedFieldPuns #-}
-module Main (main) where
 f (C{M.a}) = a
diff --git a/tests/examples/QuantifiedConstraints.hs b/tests/examples/QuantifiedConstraints.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuantifiedConstraints.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE ExplicitForAll #-}
+{-# LANGUAGE QuantifiedConstraints #-}
+
+class (forall a. Eq (f a)) => C f
diff --git a/tests/examples/QuantifiedConstraints.hs.exactprinter.golden b/tests/examples/QuantifiedConstraints.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuantifiedConstraints.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/QuantifiedConstraints.hs.parser.golden b/tests/examples/QuantifiedConstraints.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuantifiedConstraints.hs.parser.golden
@@ -0,0 +1,222 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuantifiedConstraints.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "ExplicitForAll"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuantifiedConstraints.hs" 2 1 2 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 2 1 2 13
+                , SrcSpan "tests/examples/QuantifiedConstraints.hs" 2 36 2 39
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuantifiedConstraints.hs" 2 14 2 35
+                , srcInfoPoints = []
+                }
+              "QuantifiedConstraints"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 1 4 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 1 4 6 ]
+            }
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 7 4 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 7 4 8
+                      , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 26 4 27
+                      , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 28 4 30
+                      ]
+                  }
+                (ParenA
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 7 4 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 7 4 8
+                         , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 26 4 27
+                         , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 28 4 30
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 8 4 26
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 8 4 14
+                            , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 16 4 17
+                            ]
+                        }
+                      (TyForall
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 8 4 26
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 8 4 14
+                               , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 16 4 17
+                               ]
+                           }
+                         (Just
+                            [ UnkindedVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 15 4 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 15 4 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")
+                            ])
+                         Nothing
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 18 4 26
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 18 4 20
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 18 4 20
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/QuantifiedConstraints.hs" 4 18 4 20
+                                       , srcInfoPoints = []
+                                       }
+                                     "Eq")))
+                            (TyParen
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 21 4 26
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 21 4 22
+                                     , SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 25 4 26
+                                     ]
+                                 }
+                               (TyApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 22 4 25
+                                    , srcInfoPoints = []
+                                    }
+                                  (TyVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/QuantifiedConstraints.hs" 4 22 4 23
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/QuantifiedConstraints.hs" 4 22 4 23
+                                          , srcInfoPoints = []
+                                          }
+                                        "f"))
+                                  (TyVar
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan
+                                             "tests/examples/QuantifiedConstraints.hs" 4 24 4 25
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/QuantifiedConstraints.hs" 4 24 4 25
+                                          , srcInfoPoints = []
+                                          }
+                                        "a"))))))))))
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 31 4 34
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 31 4 32
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 31 4 32
+                     , srcInfoPoints = []
+                     }
+                   "C"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 33 4 34
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuantifiedConstraints.hs" 4 33 4 34
+                     , srcInfoPoints = []
+                     }
+                   "f")))
+          []
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QuantifiedConstraints.hs.prettyparser.golden b/tests/examples/QuantifiedConstraints.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuantifiedConstraints.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/QuantifiedConstraints.hs.prettyprinter.golden b/tests/examples/QuantifiedConstraints.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuantifiedConstraints.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE ExplicitForAll #-}
+{-# LANGUAGE QuantifiedConstraints #-}
+
+class (forall a . Eq (f a)) => C f
diff --git a/tests/examples/QuasiQuoteLines.hs.parser.golden b/tests/examples/QuasiQuoteLines.hs.parser.golden
--- a/tests/examples/QuasiQuoteLines.hs.parser.golden
+++ b/tests/examples/QuasiQuoteLines.hs.parser.golden
@@ -1,1 +1,285 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 13 1, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 1,SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 13,SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 12, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 8 3 12, srcInfoPoints = []}) "Here", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 14, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 5 5 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 4, srcInfoPoints = []}) "str"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14, srcInfoPoints = []}) "String"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 8 13, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 4, srcInfoPoints = []}) "str")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 5 8 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 5 6 6]}) (QuasiQuote (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 7 8 13, srcInfoPoints = []}) "here" "test \ntest \ntest test ")) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 6 11 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 5, srcInfoPoints = []}) "main"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 13, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13]}))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 23, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 6 12 23, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 6 12 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 8 12 23, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 8 12 10,SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 11,SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 23, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19, srcInfoPoints = []}) "putStrLn"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23, srcInfoPoints = []}) "str"))))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 13 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 1
+            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteLines.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 12
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 3 8 3 12
+                  , srcInfoPoints = []
+                  }
+                "Here"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 5 5 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 1 5 4
+                , srcInfoPoints = []
+                }
+              "str"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteLines.hs" 5 8 5 14
+                     , srcInfoPoints = []
+                     }
+                   "String")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 8 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 1 6 4
+                  , srcInfoPoints = []
+                  }
+                "str"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 5 8 13
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 5 6 6 ]
+               }
+             (QuasiQuote
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 6 7 8 13
+                  , srcInfoPoints = []
+                  }
+                "here"
+                "test \ntest \ntest test "))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 6 11 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 1 11 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 13
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 9 11 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12
+                      , SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12
+                         , SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 13
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 11 11 12
+                            , SrcSpan "tests/examples/QuasiQuoteLines.hs" 11 12 11 13
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 23
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 1 12 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 6 12 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 6 12 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 8 12 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 8 12 10
+                      , SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 11
+                      , SrcSpan "tests/examples/QuasiQuoteLines.hs" 13 1 13 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 23
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 23
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 11 12 19
+                                  , srcInfoPoints = []
+                                  }
+                                "putStrLn")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteLines.hs" 12 20 12 23
+                                  , srcInfoPoints = []
+                                  }
+                                "str"))))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteLines.hs.prettyprinter.golden b/tests/examples/QuasiQuoteLines.hs.prettyprinter.golden
--- a/tests/examples/QuasiQuoteLines.hs.prettyprinter.golden
+++ b/tests/examples/QuasiQuoteLines.hs.prettyprinter.golden
@@ -1,11 +1,10 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
 import Here
- 
+
 str :: String
 str = [here|test 
 test 
 test test |]
- 
+
 main :: IO ()
 main = do putStrLn str
diff --git a/tests/examples/QuasiQuoteOld.hs.parser.golden b/tests/examples/QuasiQuoteOld.hs.parser.golden
--- a/tests/examples/QuasiQuoteOld.hs.parser.golden
+++ b/tests/examples/QuasiQuoteOld.hs.parser.golden
@@ -1,1 +1,270 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 13 1, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 1,SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 13,SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 12, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 8 3 12, srcInfoPoints = []}) "Here", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 14, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 5 5 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 4, srcInfoPoints = []}) "str"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14, srcInfoPoints = []}) "String"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 8 13, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 4, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 4, srcInfoPoints = []}) "str")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 5 8 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 5 6 6]}) (QuasiQuote (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 7 8 13, srcInfoPoints = []}) "here" "test \ntest \ntest test ")) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 6 11 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 5, srcInfoPoints = []}) "main"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 13, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12,SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13]}))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 23, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 6 12 23, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 6 12 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 8 12 23, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 8 12 10,SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 11,SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 23, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19, srcInfoPoints = []}) "putStrLn"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23, srcInfoPoints = []}) "str"))))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 13 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 1
+            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 12
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 3 8 3 12
+                  , srcInfoPoints = []
+                  }
+                "Here"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 5 5 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 1 5 4
+                , srcInfoPoints = []
+                }
+              "str"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 5 8 5 14
+                     , srcInfoPoints = []
+                     }
+                   "String")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 8 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 1 6 4
+                  , srcInfoPoints = []
+                  }
+                "str"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 5 8 13
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 5 6 6 ]
+               }
+             (QuasiQuote
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 6 7 8 13
+                  , srcInfoPoints = []
+                  }
+                "here"
+                "test \ntest \ntest test "))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 6 11 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 1 11 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 13
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 9 11 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12
+                      , SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12
+                         , SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 13
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 11 11 12
+                            , SrcSpan "tests/examples/QuasiQuoteOld.hs" 11 12 11 13
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 23
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 1 12 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 6 12 23
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 6 12 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 8 12 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 8 12 10
+                      , SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 11
+                      , SrcSpan "tests/examples/QuasiQuoteOld.hs" 13 1 13 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 23
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 23
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 11 12 19
+                                  , srcInfoPoints = []
+                                  }
+                                "putStrLn")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteOld.hs" 12 20 12 23
+                                  , srcInfoPoints = []
+                                  }
+                                "str"))))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteOld.hs.prettyprinter.golden b/tests/examples/QuasiQuoteOld.hs.prettyprinter.golden
--- a/tests/examples/QuasiQuoteOld.hs.prettyprinter.golden
+++ b/tests/examples/QuasiQuoteOld.hs.prettyprinter.golden
@@ -1,11 +1,10 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
 import Here
- 
+
 str :: String
 str = [here|test 
 test 
 test test |]
- 
+
 main :: IO ()
 main = do putStrLn str
diff --git a/tests/examples/QuasiQuoteQual2.hs.parser.golden b/tests/examples/QuasiQuoteQual2.hs.parser.golden
--- a/tests/examples/QuasiQuoteQual2.hs.parser.golden
+++ b/tests/examples/QuasiQuoteQual2.hs.parser.golden
@@ -1,1 +1,140 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 5 1 5 1,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 13,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 3 8, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 2, srcInfoPoints = []}) "f") [PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 3 2 9, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 3 2 4,SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 8 2 9]}) [PApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8, srcInfoPoints = []}) "True")) []]] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 10 2 13, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 10 2 11]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 12 2 13, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 12 2 13, srcInfoPoints = []}) 1 "1"))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 2, srcInfoPoints = []}) "f") [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 3 3 4, srcInfoPoints = []})] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 5 3 8, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 5 3 6]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 7 3 8, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 7 3 8, srcInfoPoints = []}) 0 "0"))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteQual2.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 3 8
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 13
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 1 2 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 3 2 9
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 3 2 4
+                        , SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 8 2 9
+                        ]
+                    }
+                  [ PApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 4 2 8
+                              , srcInfoPoints = []
+                              }
+                            "True"))
+                      []
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 10 2 13
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 10 2 11 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 12 2 13
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteQual2.hs" 2 12 2 13
+                         , srcInfoPoints = []
+                         }
+                       1
+                       "1")))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 1 3 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 3 3 4
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 5 3 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 5 3 6 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 7 3 8
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteQual2.hs" 3 7 3 8
+                         , srcInfoPoints = []
+                         }
+                       0
+                       "0")))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteQual2.hs.prettyprinter.golden b/tests/examples/QuasiQuoteQual2.hs.prettyprinter.golden
--- a/tests/examples/QuasiQuoteQual2.hs.prettyprinter.golden
+++ b/tests/examples/QuasiQuoteQual2.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
 f [True] = 1
 f _ = 0
diff --git a/tests/examples/QuasiQuoteSplice.hs.parser.golden b/tests/examples/QuasiQuoteSplice.hs.parser.golden
--- a/tests/examples/QuasiQuoteSplice.hs.parser.golden
+++ b/tests/examples/QuasiQuoteSplice.hs.parser.golden
@@ -1,1 +1,589 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 10 1, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 10 1 10 1,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 10 1 10 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 45, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 13,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 29 1 30,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 42 1 45]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 14 1 29, srcInfoPoints = []}) "TemplateHaskell",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 31 1 41, srcInfoPoints = []}) "RankNTypes"],OptionsPragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 34, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 31,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 31 2 34]}) (Just GHC) " -F -pgmFtrhsx "] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 27, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 8 3 27, srcInfoPoints = []}) "Language.Haskell.TH", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 27, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 23 5 24]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 22, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 20, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 18, srcInfoPoints = []}) "PageFunction")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 19 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 19 5 20, srcInfoPoints = []}) "m"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 21 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 21 5 22, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27, srcInfoPoints = []}) "PF") [])] Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 8 75, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 6 8 75, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 6 7 7]}) (Let (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 8 8 75, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 8 7 11,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 27 7 29]}) (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 26, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 12,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 27 7 27]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 13, srcInfoPoints = []}) "a")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 14 7 26, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 14 7 15]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22, srcInfoPoints = []}) "mkName"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 23 7 26, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 23 7 26, srcInfoPoints = []}) "a" "a")))) Nothing]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 75, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 65, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12, srcInfoPoints = []}) "runQ"))) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 65, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 16,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 63 8 65]}) (TypeBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 65, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 16,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 63 8 65]}) (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 17 8 62, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 17 8 23,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 25 8 26]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 24 8 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 24 8 25, srcInfoPoints = []}) "m")]) Nothing (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 62, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 41, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39, srcInfoPoints = []}) "PageFunction"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 40 8 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 40 8 41, srcInfoPoints = []}) "m"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 62, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 44,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 61 8 62]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 62, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 44,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 61 8 62]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 44 8 61, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 44 8 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 44 8 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 44 8 48, srcInfoPoints = []}) "conT"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 49 8 61, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 49 8 50,SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 60 8 61]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 50 8 60, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 50 8 56, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 50 8 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 50 8 56, srcInfoPoints = []}) "mkName"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 57 8 60, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 57 8 60, srcInfoPoints = []}) "a" "a")))))))))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69, srcInfoPoints = []}) ">>="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75, srcInfoPoints = []}) "print")))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 10 1 10 1
+            , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 10 1 10 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 45
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 29 1 30
+                , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 42 1 45
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteSplice.hs" 1 31 1 41
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      , OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 1 2 31
+                , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 2 31 2 34
+                ]
+            }
+          (Just GHC)
+          "-F -pgmFtrhsx "
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 3 8 3 27
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 23 5 24 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 22
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 20
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 6 5 18
+                        , srcInfoPoints = []
+                        }
+                      "PageFunction"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 19 5 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 19 5 20
+                        , srcInfoPoints = []
+                        }
+                      "m")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 21 5 22
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 21 5 22
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QuasiQuoteSplice.hs" 5 25 5 27
+                      , srcInfoPoints = []
+                      }
+                    "PF")
+                 [])
+          ]
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 8 75
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 1 7 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 6 8 75
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 6 7 7 ]
+               }
+             (Let
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 8 8 75
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 8 7 11
+                      , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 27 7 29
+                      ]
+                  }
+                (BDecls
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 12
+                         , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 27 7 27
+                         ]
+                     }
+                   [ PatBind
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 26
+                         , srcInfoPoints = []
+                         }
+                       (PVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 12 7 13
+                               , srcInfoPoints = []
+                               }
+                             "a"))
+                       (UnGuardedRhs
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 14 7 26
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 14 7 15 ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 26
+                               , srcInfoPoints = []
+                               }
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 16 7 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "mkName")))
+                             (Lit
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 23 7 26
+                                  , srcInfoPoints = []
+                                  }
+                                (String
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 7 23 7 26
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"
+                                   "a"))))
+                       Nothing
+                   ])
+                (InfixApp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 75
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 65
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 8 8 12
+                                 , srcInfoPoints = []
+                                 }
+                               "runQ")))
+                      (BracketExp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 65
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 16
+                               , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 63 8 65
+                               ]
+                           }
+                         (TypeBracket
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 65
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 13 8 16
+                                  , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 63 8 65
+                                  ]
+                              }
+                            (TyForall
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 17 8 62
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 17 8 23
+                                     , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 25 8 26
+                                     ]
+                                 }
+                               (Just
+                                  [ UnkindedVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 24 8 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/QuasiQuoteSplice.hs" 8 24 8 25
+                                           , srcInfoPoints = []
+                                           }
+                                         "m")
+                                  ])
+                               Nothing
+                               (TyApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 62
+                                    , srcInfoPoints = []
+                                    }
+                                  (TyApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 41
+                                       , srcInfoPoints = []
+                                       }
+                                     (TyCon
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/QuasiQuoteSplice.hs" 8 27 8 39
+                                                , srcInfoPoints = []
+                                                }
+                                              "PageFunction")))
+                                     (TyVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 40 8 41
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/QuasiQuoteSplice.hs" 8 40 8 41
+                                             , srcInfoPoints = []
+                                             }
+                                           "m")))
+                                  (TySplice
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 62
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 44
+                                           , SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 61 8 62
+                                           ]
+                                       }
+                                     (ParenSplice
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 42 8 62
+                                          , srcInfoPoints =
+                                              [ SrcSpan
+                                                  "tests/examples/QuasiQuoteSplice.hs" 8 42 8 44
+                                              , SrcSpan
+                                                  "tests/examples/QuasiQuoteSplice.hs" 8 61 8 62
+                                              ]
+                                          }
+                                        (App
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/QuasiQuoteSplice.hs" 8 44 8 61
+                                             , srcInfoPoints = []
+                                             }
+                                           (Var
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/QuasiQuoteSplice.hs" 8 44 8 48
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/QuasiQuoteSplice.hs"
+                                                         8
+                                                         44
+                                                         8
+                                                         48
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/QuasiQuoteSplice.hs"
+                                                            8
+                                                            44
+                                                            8
+                                                            48
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "conT")))
+                                           (Paren
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/QuasiQuoteSplice.hs" 8 49 8 61
+                                                , srcInfoPoints =
+                                                    [ SrcSpan
+                                                        "tests/examples/QuasiQuoteSplice.hs"
+                                                        8
+                                                        49
+                                                        8
+                                                        50
+                                                    , SrcSpan
+                                                        "tests/examples/QuasiQuoteSplice.hs"
+                                                        8
+                                                        60
+                                                        8
+                                                        61
+                                                    ]
+                                                }
+                                              (App
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/QuasiQuoteSplice.hs"
+                                                         8
+                                                         50
+                                                         8
+                                                         60
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Var
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/QuasiQuoteSplice.hs"
+                                                            8
+                                                            50
+                                                            8
+                                                            56
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (UnQual
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/QuasiQuoteSplice.hs"
+                                                               8
+                                                               50
+                                                               8
+                                                               56
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       (Ident
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/QuasiQuoteSplice.hs"
+                                                                  8
+                                                                  50
+                                                                  8
+                                                                  56
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          "mkName")))
+                                                 (Lit
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/QuasiQuoteSplice.hs"
+                                                            8
+                                                            57
+                                                            8
+                                                            60
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    (String
+                                                       SrcSpanInfo
+                                                         { srcInfoSpan =
+                                                             SrcSpan
+                                                               "tests/examples/QuasiQuoteSplice.hs"
+                                                               8
+                                                               57
+                                                               8
+                                                               60
+                                                         , srcInfoPoints = []
+                                                         }
+                                                       "a"
+                                                       "a"))))))))))))
+                   (QVarOp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 66 8 69
+                              , srcInfoPoints = []
+                              }
+                            ">>=")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/QuasiQuoteSplice.hs" 8 70 8 75
+                              , srcInfoPoints = []
+                              }
+                            "print"))))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteSplice.hs.prettyprinter.golden b/tests/examples/QuasiQuoteSplice.hs.prettyprinter.golden
--- a/tests/examples/QuasiQuoteSplice.hs.prettyprinter.golden
+++ b/tests/examples/QuasiQuoteSplice.hs.prettyprinter.golden
@@ -1,8 +1,7 @@
 {-# LANGUAGE TemplateHaskell, RankNTypes #-}
 {-# OPTIONS_GHC -F -pgmFtrhsx #-}
-module Main (main) where
 import Language.Haskell.TH
- 
+
 data PageFunction m a = PF
 main
   = let a = mkName "a" in
diff --git a/tests/examples/QuasiQuoteToplevel.hs.parser.golden b/tests/examples/QuasiQuoteToplevel.hs.parser.golden
--- a/tests/examples/QuasiQuoteToplevel.hs.parser.golden
+++ b/tests/examples/QuasiQuoteToplevel.hs.parser.golden
@@ -1,1 +1,51 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 9 1, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 1,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 9 1 9 1,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 9 1 9 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 13,SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [] [SpliceDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 8 3, srcInfoPoints = []}) (QuasiQuote (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 8 3, srcInfoPoints = []}) "undefined" "\nthis quasiquote is acceptable to ghc's\nparser. Previously hse would reject this\nbecause -XTemplateHaskell is not enabled\nto allow \"expressions\" at top-level\n")],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 3 1
+            , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 9 1 9 1
+            , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 9 1 9 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      []
+      [ SpliceDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 8 3
+            , srcInfoPoints = []
+            }
+          (QuasiQuote
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/QuasiQuoteToplevel.hs" 3 1 8 3
+               , srcInfoPoints = []
+               }
+             "undefined"
+             "\nthis quasiquote is acceptable to ghc's\nparser. Previously hse would reject this\nbecause -XTemplateHaskell is not enabled\nto allow \"expressions\" at top-level\n")
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteToplevel.hs.prettyprinter.golden b/tests/examples/QuasiQuoteToplevel.hs.prettyprinter.golden
--- a/tests/examples/QuasiQuoteToplevel.hs.prettyprinter.golden
+++ b/tests/examples/QuasiQuoteToplevel.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
- 
+
 [undefined|
 this quasiquote is acceptable to ghc's
 parser. Previously hse would reject this
diff --git a/tests/examples/QuasiQuoteUnit.hs b/tests/examples/QuasiQuoteUnit.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuasiQuoteUnit.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TemplateHaskell #-}
+
+unNest n = conP '()
+
diff --git a/tests/examples/QuasiQuoteUnit.hs.exactprinter.golden b/tests/examples/QuasiQuoteUnit.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuasiQuoteUnit.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/QuasiQuoteUnit.hs.parser.golden b/tests/examples/QuasiQuoteUnit.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuasiQuoteUnit.hs.parser.golden
@@ -0,0 +1,139 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 1 1 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 2 1 2 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 6 1 6 1
+            , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 1 1 13
+                , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteUnit.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 2 1 2 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 2 1 2 13
+                , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 2 30 2 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/QuasiQuoteUnit.hs" 2 14 2 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 20
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 20
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 1 4 7
+                   , srcInfoPoints = []
+                   }
+                 "unNest")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 8 4 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 8 4 9
+                       , srcInfoPoints = []
+                       }
+                     "n")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 10 4 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 10 4 11 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 12 4 20
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 12 4 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 12 4 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 12 4 16
+                               , srcInfoPoints = []
+                               }
+                             "conP")))
+                    (VarQuote
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 17 4 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 17 4 18 ]
+                         }
+                       (Special
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 18 4 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 18 4 19
+                                , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 19 4 20
+                                ]
+                            }
+                          (UnitCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 18 4 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 18 4 19
+                                   , SrcSpan "tests/examples/QuasiQuoteUnit.hs" 4 19 4 20
+                                   ]
+                               })))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/QuasiQuoteUnit.hs.prettyparser.golden b/tests/examples/QuasiQuoteUnit.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuasiQuoteUnit.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/QuasiQuoteUnit.hs.prettyprinter.golden b/tests/examples/QuasiQuoteUnit.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/QuasiQuoteUnit.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TemplateHaskell #-}
+unNest n = conP '()
diff --git a/tests/examples/RCategory.hs.parser.golden b/tests/examples/RCategory.hs.parser.golden
--- a/tests/examples/RCategory.hs.parser.golden
+++ b/tests/examples/RCategory.hs.parser.golden
@@ -1,1 +1,2479 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 1 46 1, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 1 1 1 1,SrcSpan "tests/examples/RCategory.hs" 2 1 2 1,SrcSpan "tests/examples/RCategory.hs" 2 1 2 1,SrcSpan "tests/examples/RCategory.hs" 5 1 5 1,SrcSpan "tests/examples/RCategory.hs" 7 1 7 1,SrcSpan "tests/examples/RCategory.hs" 9 1 9 1,SrcSpan "tests/examples/RCategory.hs" 10 1 10 1,SrcSpan "tests/examples/RCategory.hs" 14 1 14 1,SrcSpan "tests/examples/RCategory.hs" 25 1 25 1,SrcSpan "tests/examples/RCategory.hs" 32 1 32 1,SrcSpan "tests/examples/RCategory.hs" 38 1 38 1,SrcSpan "tests/examples/RCategory.hs" 40 1 40 1,SrcSpan "tests/examples/RCategory.hs" 43 1 43 1,SrcSpan "tests/examples/RCategory.hs" 45 1 45 1,SrcSpan "tests/examples/RCategory.hs" 46 1 46 1,SrcSpan "tests/examples/RCategory.hs" 46 1 46 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 2 1 2 31, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 2 1 2 7,SrcSpan "tests/examples/RCategory.hs" 2 26 2 31]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 2 8 2 25, srcInfoPoints = []}) "Control.RCategory") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 1 1 70, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 1 1 1 13,SrcSpan "tests/examples/RCategory.hs" 1 26 1 27,SrcSpan "tests/examples/RCategory.hs" 1 43 1 44,SrcSpan "tests/examples/RCategory.hs" 1 67 1 70]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 28 1 43, srcInfoPoints = []}) "ConstraintKinds",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 45 1 66, srcInfoPoints = []}) "MultiParamTypeClasses"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 5 1 5 25, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 5 1 5 7,SrcSpan "tests/examples/RCategory.hs" 5 8 5 17]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 5 18 5 25, srcInfoPoints = []}) "Prelude", importQualified = True, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing},ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 7 1 7 16, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 7 1 7 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 7 8 7 16, srcInfoPoints = []}) "GHC.Prim", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 1 9 11, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 9 8 9 9]}) (AssocRight (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 1 9 7, srcInfoPoints = []})) (Just 9) [VarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 10 9 11, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 10 9 11, srcInfoPoints = []}) ".")],InfixDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 1 10 18, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 10 8 10 9,SrcSpan "tests/examples/RCategory.hs" 10 13 10 14]}) (AssocRight (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 1 10 7, srcInfoPoints = []})) (Just 1) [VarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 10 10 13, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 10 10 13, srcInfoPoints = []}) ">>>"),VarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 15 10 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 15 10 18, srcInfoPoints = []}) "<<<")],ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 1 23 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 14 1 14 6,SrcSpan "tests/examples/RCategory.hs" 14 21 14 26,SrcSpan "tests/examples/RCategory.hs" 15 3 15 3,SrcSpan "tests/examples/RCategory.hs" 18 3 18 3,SrcSpan "tests/examples/RCategory.hs" 22 3 22 3,SrcSpan "tests/examples/RCategory.hs" 25 1 25 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 20, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 16, srcInfoPoints = []}) "RCategory")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 17 14 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 17 14 20, srcInfoPoints = []}) "cat"))) [] (Just [ClsTyFam (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 3 15 43, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 15 3 15 7,SrcSpan "tests/examples/RCategory.hs" 15 30 15 32]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 29, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 27, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 25, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 21, srcInfoPoints = []}) "RCategoryCtxt")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 22 15 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 22 15 25, srcInfoPoints = []}) "cat"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 26 15 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 26 15 27, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 28 15 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 28 15 29, srcInfoPoints = []}) "b"))) (Just (KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43, srcInfoPoints = []}) "Constraint")))),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 19 16, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 18 6 18 8]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 19 16, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 18 6 18 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 18 5, srcInfoPoints = []}) "id"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 16, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 8, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 19 6 19 8]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 8, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 19 6 19 8]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 18 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 18 22, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 23 18 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 23 18 26, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 27 18 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 27 18 28, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 29 18 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 29 18 30, srcInfoPoints = []}) "a")]))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 16, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 14, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 12, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 13 19 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 13 19 14, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 15 19 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 15 19 16, srcInfoPoints = []}) "a"))))),ClsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 23 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 22 7 22 9]}) (TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 23 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 22 7 22 9]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 22 6, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 22 3 22 4,SrcSpan "tests/examples/RCategory.hs" 22 4 22 5,SrcSpan "tests/examples/RCategory.hs" 22 5 22 6]}) "."] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 10 23 39, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 10 23 9, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 22 10 22 11,SrcSpan "tests/examples/RCategory.hs" 22 32 22 33,SrcSpan "tests/examples/RCategory.hs" 22 55 22 56,SrcSpan "tests/examples/RCategory.hs" 22 78 22 79,SrcSpan "tests/examples/RCategory.hs" 23 7 23 9]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 11 22 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 11 22 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 11 22 24, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 25 22 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 25 22 28, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 29 22 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 29 22 30, srcInfoPoints = []}) "b"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 31 22 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 31 22 32, srcInfoPoints = []}) "c")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 34 22 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 34 22 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 34 22 47, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 48 22 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 48 22 51, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 52 22 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 52 22 53, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 54 22 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 54 22 55, srcInfoPoints = []}) "b")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 57 22 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 57 22 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 57 22 70, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 71 22 74, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 71 22 74, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 75 22 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 75 22 76, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 77 22 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 77 22 78, srcInfoPoints = []}) "c")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 23 18 23 20]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 17, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 15, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 13, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 14 23 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 14 23 15, srcInfoPoints = []}) "b"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 16 23 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 16 23 17, srcInfoPoints = []}) "c"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 23 29 23 31]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 28, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 26, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 24, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 25 23 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 25 23 26, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 27 23 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 27 23 28, srcInfoPoints = []}) "b"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 32 23 39, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 32 23 37, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 32 23 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 32 23 35, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 36 23 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 36 23 37, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 38 23 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 38 23 39, srcInfoPoints = []}) "c")))))))]),RulePragmaDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 25 1 30 5, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 25 1 25 10,SrcSpan "tests/examples/RCategory.hs" 30 2 30 5]}) [Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 1 27 27, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 26 1 26 16,SrcSpan "tests/examples/RCategory.hs" 26 17 26 23,SrcSpan "tests/examples/RCategory.hs" 26 26 26 27,SrcSpan "tests/examples/RCategory.hs" 27 24 27 25]}) "identity/left" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 24 26 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 24 26 25, srcInfoPoints = []}) "p")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19, srcInfoPoints = []}) "id"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21, srcInfoPoints = []}) "."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23, srcInfoPoints = []}) "p")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27, srcInfoPoints = []}) "p"))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 1 29 27, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 28 1 28 17,SrcSpan "tests/examples/RCategory.hs" 28 25 28 31,SrcSpan "tests/examples/RCategory.hs" 28 34 28 35,SrcSpan "tests/examples/RCategory.hs" 29 24 29 25]}) "identity/right" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 32 28 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 32 28 33, srcInfoPoints = []}) "p")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18, srcInfoPoints = []}) "p"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20, srcInfoPoints = []}) "."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23, srcInfoPoints = []}) "id")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27, srcInfoPoints = []}) "p")))],InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 1 38 0, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 32 1 32 9,SrcSpan "tests/examples/RCategory.hs" 32 25 32 30,SrcSpan "tests/examples/RCategory.hs" 33 3 33 3,SrcSpan "tests/examples/RCategory.hs" 34 3 34 3,SrcSpan "tests/examples/RCategory.hs" 35 3 35 3,SrcSpan "tests/examples/RCategory.hs" 38 1 38 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 24, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 24, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19, srcInfoPoints = []}) "RCategory"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 32 20 32 21,SrcSpan "tests/examples/RCategory.hs" 32 21 32 23,SrcSpan "tests/examples/RCategory.hs" 32 23 32 24]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 32 20 32 21,SrcSpan "tests/examples/RCategory.hs" 32 21 32 23,SrcSpan "tests/examples/RCategory.hs" 32 23 32 24]}) (FunCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 32 20 32 21,SrcSpan "tests/examples/RCategory.hs" 32 21 32 23,SrcSpan "tests/examples/RCategory.hs" 32 23 32 24]})))))) (Just [InsType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 3 33 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 3 33 7,SrcSpan "tests/examples/RCategory.hs" 33 31 33 32]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 30, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 28, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 26, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 21, srcInfoPoints = []}) "RCategoryCtxt"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 22 33 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 22 33 23,SrcSpan "tests/examples/RCategory.hs" 33 23 33 25,SrcSpan "tests/examples/RCategory.hs" 33 25 33 26]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 22 33 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 22 33 23,SrcSpan "tests/examples/RCategory.hs" 33 23 33 25,SrcSpan "tests/examples/RCategory.hs" 33 25 33 26]}) (FunCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 22 33 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 22 33 23,SrcSpan "tests/examples/RCategory.hs" 33 23 33 25,SrcSpan "tests/examples/RCategory.hs" 33 25 33 26]}))))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 27 33 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 27 33 28, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 29 33 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 29 33 30, srcInfoPoints = []}) "a"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 33 33 34,SrcSpan "tests/examples/RCategory.hs" 33 34 33 35]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 33 33 34,SrcSpan "tests/examples/RCategory.hs" 33 34 33 35]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 33 33 33 34,SrcSpan "tests/examples/RCategory.hs" 33 34 33 35]})))),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 18, srcInfoPoints = []}) (PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 5, srcInfoPoints = []}) "id")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 6 34 18, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 34 6 34 7]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18, srcInfoPoints = []}) "Prelude") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18, srcInfoPoints = []}) "id")))) Nothing),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 20, srcInfoPoints = []}) (PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 6, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 35 3 35 4,SrcSpan "tests/examples/RCategory.hs" 35 4 35 5,SrcSpan "tests/examples/RCategory.hs" 35 5 35 6]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 4 35 5, srcInfoPoints = []}) ".")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 7 35 20, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 35 7 35 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 9 35 20, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 35 9 35 10,SrcSpan "tests/examples/RCategory.hs" 35 10 35 19,SrcSpan "tests/examples/RCategory.hs" 35 19 35 20]}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 9 35 20, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 35 9 35 10,SrcSpan "tests/examples/RCategory.hs" 35 10 35 19,SrcSpan "tests/examples/RCategory.hs" 35 19 35 20]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 10 35 19, srcInfoPoints = []}) "Prelude") (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 10 35 19, srcInfoPoints = []}) ".")))) Nothing)]),TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 1 39 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 38 7 38 9]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 1 38 6, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 38 1 38 2,SrcSpan "tests/examples/RCategory.hs" 38 2 38 5,SrcSpan "tests/examples/RCategory.hs" 38 5 38 6]}) "<<<"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 10 39 39, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 10 39 9, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 38 10 38 11,SrcSpan "tests/examples/RCategory.hs" 38 32 38 33,SrcSpan "tests/examples/RCategory.hs" 38 55 38 56,SrcSpan "tests/examples/RCategory.hs" 38 78 38 79,SrcSpan "tests/examples/RCategory.hs" 38 93 38 94,SrcSpan "tests/examples/RCategory.hs" 39 7 39 9]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 24, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 25 38 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 25 38 28, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 29 38 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 29 38 30, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 31 38 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 31 38 32, srcInfoPoints = []}) "c")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 47, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 48 38 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 48 38 51, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 52 38 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 52 38 53, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 54 38 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 54 38 55, srcInfoPoints = []}) "b")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 70, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 71 38 74, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 71 38 74, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 75 38 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 75 38 76, srcInfoPoints = []}) "b"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 77 38 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 77 38 78, srcInfoPoints = []}) "c")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 93, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 89, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 89, srcInfoPoints = []}) "RCategory")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 90 38 93, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 90 38 93, srcInfoPoints = []}) "cat")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 39 18 39 20]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 17, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 15, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 13, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 14 39 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 14 39 15, srcInfoPoints = []}) "b"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 16 39 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 16 39 17, srcInfoPoints = []}) "c"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 39 29 39 31]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 28, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 26, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 24, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 25 39 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 25 39 26, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 27 39 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 27 39 28, srcInfoPoints = []}) "b"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 39, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 37, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 35, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 36 39 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 36 39 37, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 38 39 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 38 39 39, srcInfoPoints = []}) "c")))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 1 40 12, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 1 40 6, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 40 1 40 2,SrcSpan "tests/examples/RCategory.hs" 40 2 40 5,SrcSpan "tests/examples/RCategory.hs" 40 5 40 6]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 2 40 5, srcInfoPoints = []}) "<<<")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 7 40 12, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 40 7 40 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 9 40 12, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 40 9 40 10,SrcSpan "tests/examples/RCategory.hs" 40 10 40 11,SrcSpan "tests/examples/RCategory.hs" 40 11 40 12]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 9 40 12, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 40 9 40 10,SrcSpan "tests/examples/RCategory.hs" 40 10 40 11,SrcSpan "tests/examples/RCategory.hs" 40 11 40 12]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 10 40 11, srcInfoPoints = []}) ".")))) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 1 44 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 43 7 43 9]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 1 43 6, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 43 1 43 2,SrcSpan "tests/examples/RCategory.hs" 43 2 43 5,SrcSpan "tests/examples/RCategory.hs" 43 5 43 6]}) ">>>"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 10 44 39, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 10 44 9, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 43 10 43 11,SrcSpan "tests/examples/RCategory.hs" 43 32 43 33,SrcSpan "tests/examples/RCategory.hs" 43 55 43 56,SrcSpan "tests/examples/RCategory.hs" 43 78 43 79,SrcSpan "tests/examples/RCategory.hs" 43 93 43 94,SrcSpan "tests/examples/RCategory.hs" 44 7 44 9]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 24, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 25 43 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 25 43 28, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 29 43 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 29 43 30, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 31 43 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 31 43 32, srcInfoPoints = []}) "c")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 55, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 47, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 47, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 48 43 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 48 43 51, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 52 43 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 52 43 53, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 54 43 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 54 43 55, srcInfoPoints = []}) "b")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 78, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 70, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 70, srcInfoPoints = []}) "RCategoryCtxt")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 71 43 74, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 71 43 74, srcInfoPoints = []}) "cat"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 75 43 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 75 43 76, srcInfoPoints = []}) "b"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 77 43 78, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 77 43 78, srcInfoPoints = []}) "c")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 93, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 89, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 89, srcInfoPoints = []}) "RCategory")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 90 43 93, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 90 43 93, srcInfoPoints = []}) "cat")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 44 18 44 20]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 17, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 15, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 13, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 14 44 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 14 44 15, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 16 44 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 16 44 17, srcInfoPoints = []}) "b"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 39, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 44 29 44 31]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 28, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 26, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 24, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 25 44 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 25 44 26, srcInfoPoints = []}) "b"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 27 44 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 27 44 28, srcInfoPoints = []}) "c"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 39, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 37, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 35, srcInfoPoints = []}) "cat")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 36 44 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 36 44 37, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 38 44 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 38 44 39, srcInfoPoints = []}) "c")))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 16, srcInfoPoints = []}) [InfixMatch (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 16, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 2, srcInfoPoints = []}) "f")) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 3 45 6, srcInfoPoints = []}) ">>>") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 7 45 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 7 45 8, srcInfoPoints = []}) "g")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 9 45 16, srcInfoPoints = [SrcSpan "tests/examples/RCategory.hs" 45 9 45 10]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 16, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12, srcInfoPoints = []}) "g"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14, srcInfoPoints = []}) "."))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16, srcInfoPoints = []}) "f"))))) Nothing]],[Comment False (SrcSpan "tests/examples/RCategory.hs" 12 1 12 29) " | A class for categories.",Comment False (SrcSpan "tests/examples/RCategory.hs" 13 1 13 36) "   id and (.) must form a monoid.",Comment False (SrcSpan "tests/examples/RCategory.hs" 17 3 17 29) " | the identity morphism",Comment False (SrcSpan "tests/examples/RCategory.hs" 21 3 21 28) " | morphism composition",Comment False (SrcSpan "tests/examples/RCategory.hs" 37 1 37 31) " | Right-to-left composition",Comment False (SrcSpan "tests/examples/RCategory.hs" 42 1 42 31) " | Left-to-right composition"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 1 46 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RCategory.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RCategory.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RCategory.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RCategory.hs" 5 1 5 1
+            , SrcSpan "tests/examples/RCategory.hs" 7 1 7 1
+            , SrcSpan "tests/examples/RCategory.hs" 9 1 9 1
+            , SrcSpan "tests/examples/RCategory.hs" 10 1 10 1
+            , SrcSpan "tests/examples/RCategory.hs" 14 1 14 1
+            , SrcSpan "tests/examples/RCategory.hs" 25 1 25 1
+            , SrcSpan "tests/examples/RCategory.hs" 32 1 32 1
+            , SrcSpan "tests/examples/RCategory.hs" 38 1 38 1
+            , SrcSpan "tests/examples/RCategory.hs" 40 1 40 1
+            , SrcSpan "tests/examples/RCategory.hs" 43 1 43 1
+            , SrcSpan "tests/examples/RCategory.hs" 45 1 45 1
+            , SrcSpan "tests/examples/RCategory.hs" 46 1 46 1
+            , SrcSpan "tests/examples/RCategory.hs" 46 1 46 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 2 1 2 31
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RCategory.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/RCategory.hs" 2 26 2 31
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 2 8 2 25
+                 , srcInfoPoints = []
+                 }
+               "Control.RCategory")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 1 1 70
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RCategory.hs" 1 26 1 27
+                , SrcSpan "tests/examples/RCategory.hs" 1 43 1 44
+                , SrcSpan "tests/examples/RCategory.hs" 1 67 1 70
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 28 1 43
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 1 45 1 66
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 5 1 5 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory.hs" 5 1 5 7
+                    , SrcSpan "tests/examples/RCategory.hs" 5 8 5 17
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 5 18 5 25
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = True
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 7 1 7 16
+                , srcInfoPoints = [ SrcSpan "tests/examples/RCategory.hs" 7 1 7 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 7 8 7 16
+                  , srcInfoPoints = []
+                  }
+                "GHC.Prim"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 1 9 11
+            , srcInfoPoints = [ SrcSpan "tests/examples/RCategory.hs" 9 8 9 9 ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 1 9 7
+               , srcInfoPoints = []
+               })
+          (Just 9)
+          [ VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 10 9 11
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 9 10 9 11
+                   , srcInfoPoints = []
+                   }
+                 ".")
+          ]
+      , InfixDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 1 10 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 10 8 10 9
+                , SrcSpan "tests/examples/RCategory.hs" 10 13 10 14
+                ]
+            }
+          (AssocRight
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 1 10 7
+               , srcInfoPoints = []
+               })
+          (Just 1)
+          [ VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 10 10 13
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 10 10 13
+                   , srcInfoPoints = []
+                   }
+                 ">>>")
+          , VarOp
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 15 10 18
+                , srcInfoPoints = []
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 10 15 10 18
+                   , srcInfoPoints = []
+                   }
+                 "<<<")
+          ]
+      , ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 1 23 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 14 1 14 6
+                , SrcSpan "tests/examples/RCategory.hs" 14 21 14 26
+                , SrcSpan "tests/examples/RCategory.hs" 15 3 15 3
+                , SrcSpan "tests/examples/RCategory.hs" 18 3 18 3
+                , SrcSpan "tests/examples/RCategory.hs" 22 3 22 3
+                , SrcSpan "tests/examples/RCategory.hs" 25 1 25 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 7 14 16
+                     , srcInfoPoints = []
+                     }
+                   "RCategory"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 17 14 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 14 17 14 20
+                     , srcInfoPoints = []
+                     }
+                   "cat")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 3 15 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory.hs" 15 3 15 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 29
+                      , srcInfoPoints = []
+                      }
+                    (DHApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 27
+                         , srcInfoPoints = []
+                         }
+                       (DHApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 25
+                            , srcInfoPoints = []
+                            }
+                          (DHead
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 8 15 21
+                                  , srcInfoPoints = []
+                                  }
+                                "RCategoryCtxt"))
+                          (UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 22 15 25
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 22 15 25
+                                  , srcInfoPoints = []
+                                  }
+                                "cat")))
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 26 15 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 26 15 27
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 28 15 29
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 28 15 29
+                            , srcInfoPoints = []
+                            }
+                          "b")))
+                 (Just
+                    (KindSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 30 15 43
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory.hs" 15 30 15 32 ]
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 15 33 15 43
+                                  , srcInfoPoints = []
+                                  }
+                                "Constraint")))))
+                 Nothing
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 19 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory.hs" 18 6 18 8 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 19 16
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RCategory.hs" 18 6 18 8 ]
+                      }
+                    [ Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 3 18 5
+                          , srcInfoPoints = []
+                          }
+                        "id"
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 16
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxSingle
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8 ]
+                               }
+                             (TypeA
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8 ]
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8 ]
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8 ]
+                                        }
+                                      (TyApp
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8 ]
+                                           }
+                                         (TyCon
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/RCategory.hs" 18 9 19 8
+                                              , srcInfoPoints =
+                                                  [ SrcSpan "tests/examples/RCategory.hs" 19 6 19 8
+                                                  ]
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/RCategory.hs" 18 9 18 22
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/RCategory.hs" 18 9 18 22
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "RCategoryCtxt")))
+                                         (TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/RCategory.hs" 18 23 18 26
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/RCategory.hs" 18 23 18 26
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "cat")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 18 27 18 28
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/RCategory.hs" 18 27 18 28
+                                              , srcInfoPoints = []
+                                              }
+                                            "a")))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 18 29 18 30
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 18 29 18 30
+                                           , srcInfoPoints = []
+                                           }
+                                         "a"))))))
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 16
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 14
+                               , srcInfoPoints = []
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 9 19 12
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 19 9 19 12
+                                     , srcInfoPoints = []
+                                     }
+                                   "cat"))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 13 19 14
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 19 13 19 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 15 19 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 19 15 19 16
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))))
+             , ClsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 23 39
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory.hs" 22 7 22 9 ]
+                   }
+                 (TypeSig
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 23 39
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RCategory.hs" 22 7 22 9 ]
+                      }
+                    [ Symbol
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 3 22 6
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/RCategory.hs" 22 3 22 4
+                              , SrcSpan "tests/examples/RCategory.hs" 22 4 22 5
+                              , SrcSpan "tests/examples/RCategory.hs" 22 5 22 6
+                              ]
+                          }
+                        "."
+                    ]
+                    (TyForall
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 10 23 39
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       (Just
+                          (CxTuple
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 10 23 9
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory.hs" 22 10 22 11
+                                   , SrcSpan "tests/examples/RCategory.hs" 22 32 22 33
+                                   , SrcSpan "tests/examples/RCategory.hs" 22 55 22 56
+                                   , SrcSpan "tests/examples/RCategory.hs" 22 78 22 79
+                                   , SrcSpan "tests/examples/RCategory.hs" 23 7 23 9
+                                   ]
+                               }
+                             [ TypeA
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 11 22 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RCategory.hs" 22 11 22 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (TyApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 11 22 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (TyApp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 11 22 32
+                                            , srcInfoPoints = []
+                                            }
+                                          (TyCon
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 11 22 32
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 11 22 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RCategory.hs" 22 11 22 24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "RCategoryCtxt")))
+                                          (TyVar
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 25 22 28
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 25 22 28
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "cat")))
+                                       (TyVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 29 22 30
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 29 22 30
+                                               , srcInfoPoints = []
+                                               }
+                                             "b")))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 31 22 32
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 31 22 32
+                                            , srcInfoPoints = []
+                                            }
+                                          "c")))
+                             , TypeA
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 34 22 55
+                                   , srcInfoPoints = []
+                                   }
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RCategory.hs" 22 34 22 55
+                                      , srcInfoPoints = []
+                                      }
+                                    (TyApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 34 22 55
+                                         , srcInfoPoints = []
+                                         }
+                                       (TyApp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 34 22 55
+                                            , srcInfoPoints = []
+                                            }
+                                          (TyCon
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 34 22 55
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 34 22 47
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RCategory.hs" 22 34 22 47
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "RCategoryCtxt")))
+                                          (TyVar
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 48 22 51
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 48 22 51
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "cat")))
+                                       (TyVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 52 22 53
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 52 22 53
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 54 22 55
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 54 22 55
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))
+                             , TypeA
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 22 57 22 78
+                                   , srcInfoPoints = []
+                                   }
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RCategory.hs" 22 57 22 78
+                                      , srcInfoPoints = []
+                                      }
+                                    (TyApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 57 22 78
+                                         , srcInfoPoints = []
+                                         }
+                                       (TyApp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 57 22 78
+                                            , srcInfoPoints = []
+                                            }
+                                          (TyCon
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 57 22 78
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 57 22 70
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RCategory.hs" 22 57 22 70
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "RCategoryCtxt")))
+                                          (TyVar
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 71 22 74
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RCategory.hs" 22 71 22 74
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "cat")))
+                                       (TyVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 75 22 76
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RCategory.hs" 22 75 22 76
+                                               , srcInfoPoints = []
+                                               }
+                                             "a")))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RCategory.hs" 22 77 22 78
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RCategory.hs" 22 77 22 78
+                                            , srcInfoPoints = []
+                                            }
+                                          "c")))
+                             ]))
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 39
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RCategory.hs" 23 18 23 20 ]
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 17
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 10 23 15
+                                  , srcInfoPoints = []
+                                  }
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 10 23 13
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 10 23 13
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat"))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 14 23 15
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 14 23 15
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 16 23 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 16 23 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "c")))
+                          (TyFun
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 39
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory.hs" 23 29 23 31 ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 21 23 28
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 21 23 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 21 23 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 23 21 23 24
+                                           , srcInfoPoints = []
+                                           }
+                                         "cat"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 25 23 26
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 23 25 23 26
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 27 23 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 27 23 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "b")))
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 23 32 23 39
+                                  , srcInfoPoints = []
+                                  }
+                                (TyApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 32 23 37
+                                     , srcInfoPoints = []
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 32 23 35
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 23 32 23 35
+                                           , srcInfoPoints = []
+                                           }
+                                         "cat"))
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 36 23 37
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 23 36 23 37
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 23 38 23 39
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 23 38 23 39
+                                        , srcInfoPoints = []
+                                        }
+                                      "c")))))))
+             ])
+      , RulePragmaDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 25 1 30 5
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 25 1 25 10
+                , SrcSpan "tests/examples/RCategory.hs" 30 2 30 5
+                ]
+            }
+          [ Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 1 27 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory.hs" 26 1 26 16
+                    , SrcSpan "tests/examples/RCategory.hs" 26 17 26 23
+                    , SrcSpan "tests/examples/RCategory.hs" 26 26 26 27
+                    , SrcSpan "tests/examples/RCategory.hs" 27 24 27 25
+                    ]
+                }
+              "identity/left"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 24 26 25
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 26 24 26 25
+                          , srcInfoPoints = []
+                          }
+                        "p")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 23
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 17 27 19
+                            , srcInfoPoints = []
+                            }
+                          "id")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 20 27 21
+                            , srcInfoPoints = []
+                            }
+                          ".")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 22 27 23
+                            , srcInfoPoints = []
+                            }
+                          "p"))))
+              (Var
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 27 26 27 27
+                         , srcInfoPoints = []
+                         }
+                       "p")))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 1 29 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory.hs" 28 1 28 17
+                    , SrcSpan "tests/examples/RCategory.hs" 28 25 28 31
+                    , SrcSpan "tests/examples/RCategory.hs" 28 34 28 35
+                    , SrcSpan "tests/examples/RCategory.hs" 29 24 29 25
+                    ]
+                }
+              "identity/right"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 32 28 33
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 28 32 28 33
+                          , srcInfoPoints = []
+                          }
+                        "p")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 23
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 17 29 18
+                            , srcInfoPoints = []
+                            }
+                          "p")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 19 29 20
+                            , srcInfoPoints = []
+                            }
+                          ".")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 21 29 23
+                            , srcInfoPoints = []
+                            }
+                          "id"))))
+              (Var
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 29 26 29 27
+                         , srcInfoPoints = []
+                         }
+                       "p")))
+          ]
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 1 38 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 32 1 32 9
+                , SrcSpan "tests/examples/RCategory.hs" 32 25 32 30
+                , SrcSpan "tests/examples/RCategory.hs" 33 3 33 3
+                , SrcSpan "tests/examples/RCategory.hs" 34 3 34 3
+                , SrcSpan "tests/examples/RCategory.hs" 35 3 35 3
+                , SrcSpan "tests/examples/RCategory.hs" 38 1 38 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 24
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 24
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 10 32 19
+                           , srcInfoPoints = []
+                           }
+                         "RCategory")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 32 20 32 21
+                         , SrcSpan "tests/examples/RCategory.hs" 32 21 32 23
+                         , SrcSpan "tests/examples/RCategory.hs" 32 23 32 24
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RCategory.hs" 32 20 32 21
+                            , SrcSpan "tests/examples/RCategory.hs" 32 21 32 23
+                            , SrcSpan "tests/examples/RCategory.hs" 32 23 32 24
+                            ]
+                        }
+                      (FunCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 32 20 32 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/RCategory.hs" 32 20 32 21
+                               , SrcSpan "tests/examples/RCategory.hs" 32 21 32 23
+                               , SrcSpan "tests/examples/RCategory.hs" 32 23 32 24
+                               ]
+                           })))))
+          (Just
+             [ InsType
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 3 33 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory.hs" 33 3 33 7
+                       , SrcSpan "tests/examples/RCategory.hs" 33 31 33 32
+                       ]
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 30
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 28
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 8 33 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 33 8 33 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "RCategoryCtxt")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 22 33 26
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory.hs" 33 22 33 23
+                                   , SrcSpan "tests/examples/RCategory.hs" 33 23 33 25
+                                   , SrcSpan "tests/examples/RCategory.hs" 33 25 33 26
+                                   ]
+                               }
+                             (Special
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 22 33 26
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/RCategory.hs" 33 22 33 23
+                                      , SrcSpan "tests/examples/RCategory.hs" 33 23 33 25
+                                      , SrcSpan "tests/examples/RCategory.hs" 33 25 33 26
+                                      ]
+                                  }
+                                (FunCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 33 22 33 26
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/RCategory.hs" 33 22 33 23
+                                         , SrcSpan "tests/examples/RCategory.hs" 33 23 33 25
+                                         , SrcSpan "tests/examples/RCategory.hs" 33 25 33 26
+                                         ]
+                                     }))))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 27 33 28
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 27 33 28
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 29 33 30
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 29 33 30
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RCategory.hs" 33 33 33 34
+                          , SrcSpan "tests/examples/RCategory.hs" 33 34 33 35
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory.hs" 33 33 33 34
+                             , SrcSpan "tests/examples/RCategory.hs" 33 34 33 35
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 33 33 33 35
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RCategory.hs" 33 33 33 34
+                                , SrcSpan "tests/examples/RCategory.hs" 33 34 33 35
+                                ]
+                            })))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 18
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 18
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 5
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 3 34 5
+                            , srcInfoPoints = []
+                            }
+                          "id"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 6 34 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory.hs" 34 6 34 7 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18
+                            , srcInfoPoints = []
+                            }
+                          (Qual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18
+                               , srcInfoPoints = []
+                               }
+                             (ModuleName
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18
+                                  , srcInfoPoints = []
+                                  }
+                                "Prelude")
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 34 8 34 18
+                                  , srcInfoPoints = []
+                                  }
+                                "id"))))
+                    Nothing)
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 20
+                   , srcInfoPoints = []
+                   }
+                 (PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 20
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 3 35 6
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory.hs" 35 3 35 4
+                             , SrcSpan "tests/examples/RCategory.hs" 35 4 35 5
+                             , SrcSpan "tests/examples/RCategory.hs" 35 5 35 6
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 4 35 5
+                            , srcInfoPoints = []
+                            }
+                          "."))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 7 35 20
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory.hs" 35 7 35 8 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 9 35 20
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RCategory.hs" 35 9 35 10
+                                , SrcSpan "tests/examples/RCategory.hs" 35 10 35 19
+                                , SrcSpan "tests/examples/RCategory.hs" 35 19 35 20
+                                ]
+                            }
+                          (Qual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 9 35 20
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory.hs" 35 9 35 10
+                                   , SrcSpan "tests/examples/RCategory.hs" 35 10 35 19
+                                   , SrcSpan "tests/examples/RCategory.hs" 35 19 35 20
+                                   ]
+                               }
+                             (ModuleName
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 10 35 19
+                                  , srcInfoPoints = []
+                                  }
+                                "Prelude")
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 35 10 35 19
+                                  , srcInfoPoints = []
+                                  }
+                                "."))))
+                    Nothing)
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 1 39 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 38 7 38 9 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 1 38 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory.hs" 38 1 38 2
+                    , SrcSpan "tests/examples/RCategory.hs" 38 2 38 5
+                    , SrcSpan "tests/examples/RCategory.hs" 38 5 38 6
+                    ]
+                }
+              "<<<"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 10 39 39
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 10 39 9
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 38 10 38 11
+                         , SrcSpan "tests/examples/RCategory.hs" 38 32 38 33
+                         , SrcSpan "tests/examples/RCategory.hs" 38 55 38 56
+                         , SrcSpan "tests/examples/RCategory.hs" 38 78 38 79
+                         , SrcSpan "tests/examples/RCategory.hs" 38 93 38 94
+                         , SrcSpan "tests/examples/RCategory.hs" 39 7 39 9
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 32
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 32
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 32
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 11 38 32
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 11 38 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 11 38 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 38 11 38 24
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 25 38 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 25 38 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 29 38 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 29 38 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 31 38 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 31 38 32
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 55
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 55
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 55
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 34 38 55
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 34 38 55
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 34 38 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 38 34 38 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 48 38 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 48 38 51
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 52 38 53
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 52 38 53
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 54 38 55
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 54 38 55
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 78
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 78
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 78
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 57 38 78
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 57 38 78
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 57 38 70
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 38 57 38 70
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 71 38 74
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 38 71 38 74
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 75 38 76
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 75 38 76
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 77 38 78
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 77 38 78
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 93
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 93
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 93
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 80 38 89
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 38 80 38 89
+                                     , srcInfoPoints = []
+                                     }
+                                   "RCategory")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 90 38 93
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 38 90 38 93
+                                  , srcInfoPoints = []
+                                  }
+                                "cat")))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RCategory.hs" 39 18 39 20 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 17
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 15
+                        , srcInfoPoints = []
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 10 39 13
+                              , srcInfoPoints = []
+                              }
+                            "cat"))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 14 39 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 14 39 15
+                              , srcInfoPoints = []
+                              }
+                            "b")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 16 39 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 16 39 17
+                           , srcInfoPoints = []
+                           }
+                         "c")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 39 29 39 31 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 28
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 26
+                           , srcInfoPoints = []
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 24
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 21 39 24
+                                 , srcInfoPoints = []
+                                 }
+                               "cat"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 25 39 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 25 39 26
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 27 39 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 27 39 28
+                              , srcInfoPoints = []
+                              }
+                            "b")))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 39
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 37
+                           , srcInfoPoints = []
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 32 39 35
+                                 , srcInfoPoints = []
+                                 }
+                               "cat"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 36 39 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 36 39 37
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 38 39 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 39 38 39 39
+                              , srcInfoPoints = []
+                              }
+                            "c"))))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 1 40 12
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 1 40 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RCategory.hs" 40 1 40 2
+                   , SrcSpan "tests/examples/RCategory.hs" 40 2 40 5
+                   , SrcSpan "tests/examples/RCategory.hs" 40 5 40 6
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 2 40 5
+                  , srcInfoPoints = []
+                  }
+                "<<<"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 7 40 12
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RCategory.hs" 40 7 40 8 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 9 40 12
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RCategory.hs" 40 9 40 10
+                      , SrcSpan "tests/examples/RCategory.hs" 40 10 40 11
+                      , SrcSpan "tests/examples/RCategory.hs" 40 11 40 12
+                      ]
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 9 40 12
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 40 9 40 10
+                         , SrcSpan "tests/examples/RCategory.hs" 40 10 40 11
+                         , SrcSpan "tests/examples/RCategory.hs" 40 11 40 12
+                         ]
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 40 10 40 11
+                        , srcInfoPoints = []
+                        }
+                      "."))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 1 44 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory.hs" 43 7 43 9 ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 1 43 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory.hs" 43 1 43 2
+                    , SrcSpan "tests/examples/RCategory.hs" 43 2 43 5
+                    , SrcSpan "tests/examples/RCategory.hs" 43 5 43 6
+                    ]
+                }
+              ">>>"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 10 44 39
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 10 44 9
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 43 10 43 11
+                         , SrcSpan "tests/examples/RCategory.hs" 43 32 43 33
+                         , SrcSpan "tests/examples/RCategory.hs" 43 55 43 56
+                         , SrcSpan "tests/examples/RCategory.hs" 43 78 43 79
+                         , SrcSpan "tests/examples/RCategory.hs" 43 93 43 94
+                         , SrcSpan "tests/examples/RCategory.hs" 44 7 44 9
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 32
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 32
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 32
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 11 43 32
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 11 43 32
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 11 43 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 43 11 43 24
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 25 43 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 25 43 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 29 43 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 29 43 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 31 43 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 31 43 32
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 55
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 55
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 55
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 34 43 55
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 34 43 55
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 34 43 47
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 43 34 43 47
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 48 43 51
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 48 43 51
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 52 43 53
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 52 43 53
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 54 43 55
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 54 43 55
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 78
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 78
+                            , srcInfoPoints = []
+                            }
+                          (TyApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 78
+                               , srcInfoPoints = []
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 57 43 78
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 57 43 78
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 57 43 70
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RCategory.hs" 43 57 43 70
+                                           , srcInfoPoints = []
+                                           }
+                                         "RCategoryCtxt")))
+                                (TyVar
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 71 43 74
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RCategory.hs" 43 71 43 74
+                                        , srcInfoPoints = []
+                                        }
+                                      "cat")))
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 75 43 76
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 75 43 76
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 77 43 78
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 77 43 78
+                                  , srcInfoPoints = []
+                                  }
+                                "c")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 93
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 93
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 93
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 80 43 89
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory.hs" 43 80 43 89
+                                     , srcInfoPoints = []
+                                     }
+                                   "RCategory")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 90 43 93
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 43 90 43 93
+                                  , srcInfoPoints = []
+                                  }
+                                "cat")))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RCategory.hs" 44 18 44 20 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 17
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 15
+                        , srcInfoPoints = []
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 10 44 13
+                              , srcInfoPoints = []
+                              }
+                            "cat"))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 14 44 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 14 44 15
+                              , srcInfoPoints = []
+                              }
+                            "a")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 16 44 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 16 44 17
+                           , srcInfoPoints = []
+                           }
+                         "b")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory.hs" 44 29 44 31 ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 28
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 26
+                           , srcInfoPoints = []
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 24
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 21 44 24
+                                 , srcInfoPoints = []
+                                 }
+                               "cat"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 25 44 26
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 25 44 26
+                                 , srcInfoPoints = []
+                                 }
+                               "b")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 27 44 28
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 27 44 28
+                              , srcInfoPoints = []
+                              }
+                            "c")))
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 39
+                        , srcInfoPoints = []
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 37
+                           , srcInfoPoints = []
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 32 44 35
+                                 , srcInfoPoints = []
+                                 }
+                               "cat"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 36 44 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 36 44 37
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 38 44 39
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 44 38 44 39
+                              , srcInfoPoints = []
+                              }
+                            "c"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 16
+            , srcInfoPoints = []
+            }
+          [ InfixMatch
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 16
+                , srcInfoPoints = []
+                }
+              (PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 2
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 1 45 2
+                      , srcInfoPoints = []
+                      }
+                    "f"))
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 3 45 6
+                   , srcInfoPoints = []
+                   }
+                 ">>>")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 7 45 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 7 45 8
+                       , srcInfoPoints = []
+                       }
+                     "g")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 9 45 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory.hs" 45 9 45 10 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 16
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 11 45 12
+                               , srcInfoPoints = []
+                               }
+                             "g")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 13 45 14
+                               , srcInfoPoints = []
+                               }
+                             ".")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory.hs" 45 15 45 16
+                               , srcInfoPoints = []
+                               }
+                             "f")))))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 12 1 12 29)
+        " | A class for categories."
+    , Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 13 1 13 36)
+        "   id and (.) must form a monoid."
+    , Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 17 3 17 29)
+        " | the identity morphism"
+    , Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 21 3 21 28)
+        " | morphism composition"
+    , Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 37 1 37 31)
+        " | Right-to-left composition"
+    , Comment
+        False
+        (SrcSpan "tests/examples/RCategory.hs" 42 1 42 31)
+        " | Left-to-right composition"
+    ]
+  )
diff --git a/tests/examples/RCategory.hs.prettyprinter.golden b/tests/examples/RCategory.hs.prettyprinter.golden
--- a/tests/examples/RCategory.hs.prettyprinter.golden
+++ b/tests/examples/RCategory.hs.prettyprinter.golden
@@ -3,37 +3,37 @@
 module Control.RCategory where
 import qualified Prelude
 import GHC.Prim
- 
+
 infixr 9 .
- 
+
 infixr 1 >>>, <<<
- 
+
 class RCategory cat where
         type RCategoryCtxt cat a b :: Constraint
-         
+        
         id :: RCategoryCtxt cat a a => cat a a
-         
+        
         (.) ::
               (RCategoryCtxt cat b c, RCategoryCtxt cat a b,
                RCategoryCtxt cat a c) =>
               cat b c -> cat a b -> cat a c
- 
+
 {-# RULES
 "identity/left" forall p . id . p = p
 "identity/right" forall p . p . id = p
  #-}
- 
+
 instance RCategory (->) where
         type RCategoryCtxt (->) a a = ()
         id = Prelude.id
         (.) = (Prelude..)
- 
+
 (<<<) ::
         (RCategoryCtxt cat a c, RCategoryCtxt cat a b,
          RCategoryCtxt cat b c, RCategory cat) =>
         cat b c -> cat a b -> cat a c
 (<<<) = (.)
- 
+
 (>>>) ::
         (RCategoryCtxt cat a c, RCategoryCtxt cat a b,
          RCategoryCtxt cat b c, RCategory cat) =>
diff --git a/tests/examples/RCategory2.hs.parser.golden b/tests/examples/RCategory2.hs.parser.golden
--- a/tests/examples/RCategory2.hs.parser.golden
+++ b/tests/examples/RCategory2.hs.parser.golden
@@ -1,1 +1,193 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/RCategory2.hs" 1 1 1 1,SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory2.hs" 5 1 5 1,SrcSpan "tests/examples/RCategory2.hs" 7 1 7 1,SrcSpan "tests/examples/RCategory2.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 1 1 47, srcInfoPoints = [SrcSpan "tests/examples/RCategory2.hs" 1 1 1 13,SrcSpan "tests/examples/RCategory2.hs" 1 26 1 27,SrcSpan "tests/examples/RCategory2.hs" 1 44 1 47]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 28 1 43, srcInfoPoints = []}) "ConstraintKinds"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 3 1 3 16, srcInfoPoints = [SrcSpan "tests/examples/RCategory2.hs" 3 1 3 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 3 8 3 16, srcInfoPoints = []}) "GHC.Prim", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 1 6 43, srcInfoPoints = [SrcSpan "tests/examples/RCategory2.hs" 5 1 5 6,SrcSpan "tests/examples/RCategory2.hs" 5 21 5 26,SrcSpan "tests/examples/RCategory2.hs" 6 3 6 3,SrcSpan "tests/examples/RCategory2.hs" 7 1 7 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 20, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 16, srcInfoPoints = []}) "RCategory")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 17 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 17 5 20, srcInfoPoints = []}) "cat"))) [] (Just [ClsTyFam (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 3 6 43, srcInfoPoints = [SrcSpan "tests/examples/RCategory2.hs" 6 3 6 7,SrcSpan "tests/examples/RCategory2.hs" 6 30 6 32]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 29, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 27, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 25, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 21, srcInfoPoints = []}) "RCategoryCtxt")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 22 6 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 22 6 25, srcInfoPoints = []}) "cat"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 26 6 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 26 6 27, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 28 6 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 28 6 29, srcInfoPoints = []}) "b"))) (Just (KindVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43, srcInfoPoints = []}) "Constraint"))))])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RCategory2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/RCategory2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/RCategory2.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 1 1 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RCategory2.hs" 1 26 1 27
+                , SrcSpan "tests/examples/RCategory2.hs" 1 44 1 47
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 1 28 1 43
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 3 1 3 16
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RCategory2.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 3 8 3 16
+                  , srcInfoPoints = []
+                  }
+                "GHC.Prim"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 1 6 43
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory2.hs" 5 1 5 6
+                , SrcSpan "tests/examples/RCategory2.hs" 5 21 5 26
+                , SrcSpan "tests/examples/RCategory2.hs" 6 3 6 3
+                , SrcSpan "tests/examples/RCategory2.hs" 7 1 7 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 7 5 16
+                     , srcInfoPoints = []
+                     }
+                   "RCategory"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 17 5 20
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 5 17 5 20
+                     , srcInfoPoints = []
+                     }
+                   "cat")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 3 6 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory2.hs" 6 3 6 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 29
+                      , srcInfoPoints = []
+                      }
+                    (DHApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 27
+                         , srcInfoPoints = []
+                         }
+                       (DHApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 25
+                            , srcInfoPoints = []
+                            }
+                          (DHead
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 21
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 8 6 21
+                                  , srcInfoPoints = []
+                                  }
+                                "RCategoryCtxt"))
+                          (UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 22 6 25
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 22 6 25
+                                  , srcInfoPoints = []
+                                  }
+                                "cat")))
+                       (UnkindedVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 26 6 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 26 6 27
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 28 6 29
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 28 6 29
+                            , srcInfoPoints = []
+                            }
+                          "b")))
+                 (Just
+                    (KindSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 30 6 43
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory2.hs" 6 30 6 32 ]
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43
+                                  , srcInfoPoints = []
+                                  }
+                                "Constraint")))))
+                 Nothing
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/RCategory2.hs.prettyprinter.golden b/tests/examples/RCategory2.hs.prettyprinter.golden
--- a/tests/examples/RCategory2.hs.prettyprinter.golden
+++ b/tests/examples/RCategory2.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE TypeFamilies, ConstraintKinds #-}
-module Main (main) where
 import GHC.Prim
- 
+
 class RCategory cat where
         type RCategoryCtxt cat a b :: Constraint
diff --git a/tests/examples/RCategory3.hs.parser.golden b/tests/examples/RCategory3.hs.parser.golden
--- a/tests/examples/RCategory3.hs.parser.golden
+++ b/tests/examples/RCategory3.hs.parser.golden
@@ -1,1 +1,222 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 1 1 1 1,SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1,SrcSpan "tests/examples/RCategory3.hs" 6 1 6 1,SrcSpan "tests/examples/RCategory3.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 1 1 47, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 1 1 1 13,SrcSpan "tests/examples/RCategory3.hs" 1 26 1 27,SrcSpan "tests/examples/RCategory3.hs" 1 44 1 47]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 28 1 43, srcInfoPoints = []}) "ConstraintKinds"]] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 1 6 0, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 3 1 3 9,SrcSpan "tests/examples/RCategory3.hs" 3 25 3 30,SrcSpan "tests/examples/RCategory3.hs" 4 3 4 3,SrcSpan "tests/examples/RCategory3.hs" 6 1 6 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 24, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 24, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19, srcInfoPoints = []}) "RCategory"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21,SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23,SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21,SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23,SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24]}) (FunCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21,SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23,SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24]})))))) (Just [InsType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 3 4 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 3 4 7,SrcSpan "tests/examples/RCategory3.hs" 4 31 4 32]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 30, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 28, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 26, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21, srcInfoPoints = []}) "RCategoryCtxt"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23,SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25,SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23,SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25,SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26]}) (FunCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23,SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25,SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26]}))))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 27 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 27 4 28, srcInfoPoints = []}) "a"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 29 4 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 29 4 30, srcInfoPoints = []}) "a"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34,SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34,SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35, srcInfoPoints = [SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34,SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35]}))))])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RCategory3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RCategory3.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RCategory3.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 1 1 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RCategory3.hs" 1 26 1 27
+                , SrcSpan "tests/examples/RCategory3.hs" 1 44 1 47
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 1 28 1 43
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          ]
+      ]
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 1 6 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RCategory3.hs" 3 1 3 9
+                , SrcSpan "tests/examples/RCategory3.hs" 3 25 3 30
+                , SrcSpan "tests/examples/RCategory3.hs" 4 3 4 3
+                , SrcSpan "tests/examples/RCategory3.hs" 6 1 6 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 24
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 24
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 10 3 19
+                           , srcInfoPoints = []
+                           }
+                         "RCategory")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21
+                         , SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23
+                         , SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21
+                            , SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23
+                            , SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24
+                            ]
+                        }
+                      (FunCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 3 20 3 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/RCategory3.hs" 3 20 3 21
+                               , SrcSpan "tests/examples/RCategory3.hs" 3 21 3 23
+                               , SrcSpan "tests/examples/RCategory3.hs" 3 23 3 24
+                               ]
+                           })))))
+          (Just
+             [ InsType
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 3 4 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RCategory3.hs" 4 3 4 7
+                       , SrcSpan "tests/examples/RCategory3.hs" 4 31 4 32
+                       ]
+                   }
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 30
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 28
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 8 4 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "RCategoryCtxt")))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23
+                                   , SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25
+                                   , SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26
+                                   ]
+                               }
+                             (Special
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23
+                                      , SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25
+                                      , SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26
+                                      ]
+                                  }
+                                (FunCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RCategory3.hs" 4 22 4 26
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/RCategory3.hs" 4 22 4 23
+                                         , SrcSpan "tests/examples/RCategory3.hs" 4 23 4 25
+                                         , SrcSpan "tests/examples/RCategory3.hs" 4 25 4 26
+                                         ]
+                                     }))))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 27 4 28
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 27 4 28
+                               , srcInfoPoints = []
+                               }
+                             "a")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 29 4 30
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 29 4 30
+                            , srcInfoPoints = []
+                            }
+                          "a")))
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34
+                          , SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34
+                             , SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RCategory3.hs" 4 33 4 35
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RCategory3.hs" 4 33 4 34
+                                , SrcSpan "tests/examples/RCategory3.hs" 4 34 4 35
+                                ]
+                            })))
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/RCategory3.hs.prettyprinter.golden b/tests/examples/RCategory3.hs.prettyprinter.golden
--- a/tests/examples/RCategory3.hs.prettyprinter.golden
+++ b/tests/examples/RCategory3.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE TypeFamilies, ConstraintKinds #-}
-module Main (main) where
- 
+
 instance RCategory (->) where
         type RCategoryCtxt (->) a a = ()
diff --git a/tests/examples/ReadP.hs.parser.golden b/tests/examples/ReadP.hs.parser.golden
--- a/tests/examples/ReadP.hs.parser.golden
+++ b/tests/examples/ReadP.hs.parser.golden
@@ -1,1 +1,245 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 1 1 1 1,SrcSpan "tests/examples/ReadP.hs" 2 1 2 1,SrcSpan "tests/examples/ReadP.hs" 2 1 2 1,SrcSpan "tests/examples/ReadP.hs" 2 1 2 1,SrcSpan "tests/examples/ReadP.hs" 3 1 3 1,SrcSpan "tests/examples/ReadP.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 1 1 1 13,SrcSpan "tests/examples/ReadP.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 14 1 27, srcInfoPoints = []}) "TypeOperators"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 51, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 2 17 2 18]}) (NewType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 8, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 16, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14, srcInfoPoints = []}) "ReadP")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16, srcInfoPoints = []}) "a"))) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 20, srcInfoPoints = []}) "R") [TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 21 2 51, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 2 21 2 22,SrcSpan "tests/examples/ReadP.hs" 2 50 2 51]}) (TyInfix (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 50, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 30, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28, srcInfoPoints = []}) "forall")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30, srcInfoPoints = []}) "b"))) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32, srcInfoPoints = []}) ".")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 50, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 2 44 2 46]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 43, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 2 33 2 34,SrcSpan "tests/examples/ReadP.hs" 2 42 2 43]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 42, srcInfoPoints = [SrcSpan "tests/examples/ReadP.hs" 2 36 2 38]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35, srcInfoPoints = []}) "a")) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 42, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 40, srcInfoPoints = []}) "P"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 41 2 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 41 2 42, srcInfoPoints = []}) "b"))))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 50, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48, srcInfoPoints = []}) "P"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50, srcInfoPoints = []}) "b")))))])] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ReadP.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ReadP.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ReadP.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ReadP.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ReadP.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ReadP.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 51
+            , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 17 2 18 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 1 2 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 9 2 14
+                     , srcInfoPoints = []
+                     }
+                   "ReadP"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 15 2 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 51
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 19 2 20
+                      , srcInfoPoints = []
+                      }
+                    "R")
+                 [ TyParen
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 21 2 51
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/ReadP.hs" 2 21 2 22
+                           , SrcSpan "tests/examples/ReadP.hs" 2 50 2 51
+                           ]
+                       }
+                     (TyInfix
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 50
+                          , srcInfoPoints = []
+                          }
+                        (TyApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 30
+                             , srcInfoPoints = []
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 22 2 28
+                                   , srcInfoPoints = []
+                                   }
+                                 "forall"))
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 29 2 30
+                                   , srcInfoPoints = []
+                                   }
+                                 "b")))
+                        (UnpromotedName
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 31 2 32
+                                   , srcInfoPoints = []
+                                   }
+                                 ".")))
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 50
+                             , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 44 2 46 ]
+                             }
+                           (TyParen
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 33 2 43
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/ReadP.hs" 2 33 2 34
+                                    , SrcSpan "tests/examples/ReadP.hs" 2 42 2 43
+                                    ]
+                                }
+                              (TyFun
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 42
+                                   , srcInfoPoints = [ SrcSpan "tests/examples/ReadP.hs" 2 36 2 38 ]
+                                   }
+                                 (TyVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 34 2 35
+                                         , srcInfoPoints = []
+                                         }
+                                       "a"))
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 42
+                                      , srcInfoPoints = []
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/ReadP.hs" 2 39 2 40
+                                               , srcInfoPoints = []
+                                               }
+                                             "P")))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 41 2 42
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/ReadP.hs" 2 41 2 42
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))))
+                           (TyApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 50
+                                , srcInfoPoints = []
+                                }
+                              (TyCon
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 47 2 48
+                                         , srcInfoPoints = []
+                                         }
+                                       "P")))
+                              (TyVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/ReadP.hs" 2 49 2 50
+                                      , srcInfoPoints = []
+                                      }
+                                    "b")))))
+                 ])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/ReadP.hs.prettyprinter.golden b/tests/examples/ReadP.hs.prettyprinter.golden
--- a/tests/examples/ReadP.hs.prettyprinter.golden
+++ b/tests/examples/ReadP.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
 {-# LANGUAGE TypeOperators #-}
-module Main (main) where
- 
+
 newtype ReadP a = R (forall b . (a -> P b) -> P b)
diff --git a/tests/examples/RealGHC.lhs.parser.golden b/tests/examples/RealGHC.lhs.parser.golden
# file too large to diff: tests/examples/RealGHC.lhs.parser.golden
diff --git a/tests/examples/RealGHC.lhs.prettyprinter.golden b/tests/examples/RealGHC.lhs.prettyprinter.golden
--- a/tests/examples/RealGHC.lhs.prettyprinter.golden
+++ b/tests/examples/RealGHC.lhs.prettyprinter.golden
@@ -33,7 +33,7 @@
 import Bag
 import Util
 import Data.List
- 
+
 mkLocalRule ::
             RuleName ->
               Activation ->
@@ -42,10 +42,10 @@
   = Rule{ru_name = name, ru_fn = fn, ru_act = act, ru_bndrs = bndrs,
          ru_args = args, ru_rhs = rhs, ru_rough = roughTopNames args,
          ru_local = True}
- 
+
 roughTopNames :: [CoreExpr] -> [Maybe Name]
 roughTopNames args = map roughTopName args
- 
+
 roughTopName :: CoreExpr -> Maybe Name
 roughTopName (Type ty)
   = case tcSplitTyConApp_maybe ty of
@@ -56,40 +56,40 @@
   | isGlobalId f = Just (idName f)
   | otherwise = Nothing
 roughTopName other = Nothing
- 
+
 ruleCantMatch :: [Maybe Name] -> [Maybe Name] -> Bool
 ruleCantMatch (Just n1 : ts) (Just n2 : as)
   = n1 /= n2 || ruleCantMatch ts as
 ruleCantMatch (t : ts) (a : as) = ruleCantMatch ts as
 ruleCantMatch ts as = False
- 
+
 pprRulesForUser :: [CoreRule] -> SDoc
 pprRulesForUser rules
   = withPprStyle defaultUserStyle $
       pprRules $ sortLe le_rule $ tidyRules emptyTidyEnv rules
   where le_rule r1 r2 = ru_name r1 <= ru_name r2
- 
+
 mkSpecInfo :: [CoreRule] -> SpecInfo
 mkSpecInfo rules = SpecInfo rules (rulesFreeVars rules)
- 
+
 extendSpecInfo :: SpecInfo -> [CoreRule] -> SpecInfo
 extendSpecInfo (SpecInfo rs1 fvs1) rs2
   = SpecInfo (rs2 ++ rs1) (rulesFreeVars rs2 `unionVarSet` fvs1)
- 
+
 addSpecInfo :: SpecInfo -> SpecInfo -> SpecInfo
 addSpecInfo (SpecInfo rs1 fvs1) (SpecInfo rs2 fvs2)
   = SpecInfo (rs1 ++ rs2) (fvs1 `unionVarSet` fvs2)
- 
+
 addIdSpecialisations :: Id -> [CoreRule] -> Id
 addIdSpecialisations id [] = id
 addIdSpecialisations id rules
   = setIdSpecialisation id $
       extendSpecInfo (idSpecialisation id) rules
- 
+
 rulesOfBinds :: [CoreBind] -> [CoreRule]
 rulesOfBinds binds
   = concatMap (concatMap idCoreRules . bindersOf) binds
- 
+
 getRules :: RuleBase -> Id -> [CoreRule]
 getRules rule_base fn
   | isLocalId fn = idCoreRules fn
@@ -100,29 +100,29 @@
       idCoreRules
       fn
       ++ (lookupNameEnv rule_base (idName fn) `orElse` [])
- 
+
 type RuleBase = NameEnv [CoreRule]
 emptyRuleBase = emptyNameEnv
- 
+
 mkRuleBase :: [CoreRule] -> RuleBase
 mkRuleBase rules = extendRuleBaseList emptyRuleBase rules
- 
+
 extendRuleBaseList :: RuleBase -> [CoreRule] -> RuleBase
 extendRuleBaseList rule_base new_guys
   = foldl extendRuleBase rule_base new_guys
- 
+
 unionRuleBase :: RuleBase -> RuleBase -> RuleBase
 unionRuleBase rb1 rb2 = plusNameEnv_C (++) rb1 rb2
- 
+
 extendRuleBase :: RuleBase -> CoreRule -> RuleBase
 extendRuleBase rule_base rule
   = extendNameEnv_Acc (:) singleton rule_base (ruleIdName rule) rule
- 
+
 pprRuleBase :: RuleBase -> SDoc
 pprRuleBase rules
   = vcat
       [pprRules (tidyRules emptyTidyEnv rs) | rs <- nameEnvElts rules]
- 
+
 lookupRule ::
            (Activation -> Bool) ->
              InScopeSet ->
@@ -132,7 +132,7 @@
         [] -> Nothing
         (m : ms) -> Just (findBest (fn, args) m ms)
   where rough_args = map roughTopName args
-         
+        
         go ::
            [(CoreRule, CoreExpr)] -> [CoreRule] -> [(CoreRule, CoreExpr)]
         go ms [] = ms
@@ -140,7 +140,7 @@
           = case (matchRule is_active in_scope args rough_args r) of
                 Just e -> go ((r, e) : ms) rs
                 Nothing -> go ms rs
- 
+
 findBest ::
          (Id, [CoreExpr]) ->
            (CoreRule, CoreExpr) ->
@@ -165,7 +165,7 @@
         $ findBest target (rule1, ans1) prs
   | otherwise = findBest target (rule1, ans1) prs
   where (fn, args) = target
- 
+
 isMoreSpecific :: CoreRule -> CoreRule -> Bool
 isMoreSpecific (BuiltinRule{}) r2 = True
 isMoreSpecific r1 (BuiltinRule{}) = False
@@ -173,10 +173,10 @@
   (Rule{ru_bndrs = bndrs2, ru_args = args2})
   = isJust (matchN in_scope bndrs2 args2 args1)
   where in_scope = mkInScopeSet (mkVarSet bndrs1)
- 
+
 noBlackList :: Activation -> Bool
 noBlackList act = False
- 
+
 matchRule ::
           (Activation -> Bool) ->
             InScopeSet ->
@@ -197,7 +197,7 @@
         Just (binds, tpl_vals) -> Just
                                     (mkLets binds $ rule_fn `mkApps` tpl_vals)
   where rule_fn = occurAnalyseExpr (mkLams tpl_vars rhs)
- 
+
 matchN ::
        InScopeSet ->
          [Var] -> [CoreExpr] -> [CoreExpr] -> Maybe ([CoreBind], [CoreExpr])
@@ -216,7 +216,7 @@
         go menv subst (t : ts) (e : es)
           = do subst1 <- match menv subst t e
                go menv subst1 ts es
-         
+        
         lookup_tmpl :: TvSubstEnv -> IdSubstEnv -> Var -> CoreExpr
         lookup_tmpl tv_subst id_subst tmpl_var'
           | isTyVar tmpl_var' =
@@ -231,14 +231,14 @@
           = pprPanic "Template variable unbound in rewrite rule"
               (ppr var $$ ppr tmpl_vars $$ ppr tmpl_vars' $$ ppr tmpl_es $$
                  ppr target_es)
- 
+
 type SubstEnv = (TvSubstEnv, IdSubstEnv, OrdList CoreBind)
- 
+
 type IdSubstEnv = IdEnv CoreExpr
- 
+
 emptySubstEnv :: SubstEnv
 emptySubstEnv = (emptyVarEnv, emptyVarEnv, nilOL)
- 
+
 match ::
       MatchEnv -> SubstEnv -> CoreExpr -> CoreExpr -> Maybe SubstEnv
 match menv subst (Var v1) e2
@@ -288,7 +288,7 @@
   = do subst1 <- match_ty menv subst co1 co2
        match menv subst1 e1 e2
 match menv subst e1 e2 = Nothing
- 
+
 match_var ::
           MatchEnv -> SubstEnv -> Var -> CoreExpr -> Maybe SubstEnv
 match_var menv subst@(tv_subst, id_subst, binds) v1 e2
@@ -308,7 +308,7 @@
         other -> Nothing
   where rn_env = me_env menv
         v1' = rnOccL rn_env v1
- 
+
 match_alts ::
            MatchEnv -> SubstEnv -> [CoreAlt] -> [CoreAlt] -> Maybe SubstEnv
 match_alts menv subst [] [] = return subst
@@ -317,16 +317,15 @@
   | c1 == c2 =
     do subst1 <- match menv' subst r1 r2
        match_alts menv subst1 alts1 alts2
-  where  
-        menv' :: MatchEnv
+  where menv' :: MatchEnv
         menv' = menv{me_env = rnBndrs2 (me_env menv) vs1 vs2}
 match_alts menv subst alts1 alts2 = Nothing
- 
+
 match_ty :: MatchEnv -> SubstEnv -> Type -> Type -> Maybe SubstEnv
 match_ty menv (tv_subst, id_subst, binds) ty1 ty2
   = do tv_subst' <- Unify.ruleMatchTyX menv tv_subst ty1 ty2
        return (tv_subst', id_subst, binds)
- 
+
 ruleCheckProgram ::
                  (Activation -> Bool) -> String -> RuleBase -> [CoreBind] -> SDoc
 ruleCheckProgram is_active rule_pat rule_base binds
@@ -341,16 +340,16 @@
               (map (ruleCheckBind (RuleCheckEnv is_active rule_pat rule_base))
                  binds)
         line = text (replicate 20 '-')
- 
+
 data RuleCheckEnv = RuleCheckEnv{rc_is_active ::
                                  Activation -> Bool,
                                  rc_pattern :: String, rc_rule_base :: RuleBase}
- 
+
 ruleCheckBind :: RuleCheckEnv -> CoreBind -> Bag SDoc
 ruleCheckBind env (NonRec b r) = ruleCheck env r
 ruleCheckBind env (Rec prs)
   = unionManyBags [ruleCheck env r | (b, r) <- prs]
- 
+
 ruleCheck :: RuleCheckEnv -> CoreExpr -> Bag SDoc
 ruleCheck env (Var v) = emptyBag
 ruleCheck env (Lit l) = emptyBag
@@ -368,7 +367,7 @@
   = ruleCheck env a `unionBags` ruleCheckApp env f (a : as)
 ruleCheckApp env (Var f) as = ruleCheckFun env f as
 ruleCheckApp env other as = ruleCheck env other
- 
+
 ruleCheckFun :: RuleCheckEnv -> Id -> [CoreExpr] -> Bag SDoc
 ruleCheckFun env fn args
   | null name_match_rules = emptyBag
@@ -378,7 +377,7 @@
   where name_match_rules
           = filter match (getRules (rc_rule_base env) fn)
         match rule = (rc_pattern env) `isPrefixOf` unpackFS (ruleName rule)
- 
+
 ruleAppCheck_help ::
                   (Activation -> Bool) -> Id -> [CoreExpr] -> [CoreRule] -> SDoc
 ruleAppCheck_help is_active fn args rules
diff --git a/tests/examples/RecordInfixSelector.hs.parser.golden b/tests/examples/RecordInfixSelector.hs.parser.golden
--- a/tests/examples/RecordInfixSelector.hs.parser.golden
+++ b/tests/examples/RecordInfixSelector.hs.parser.golden
@@ -1,1 +1,234 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1,SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 1,SrcSpan "tests/examples/RecordInfixSelector.hs" 4 1 4 1,SrcSpan "tests/examples/RecordInfixSelector.hs" 4 1 4 1]}) Nothing [] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 59, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 30 1 31]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 6 1 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 6 1 29, srcInfoPoints = []}) "RecordWithInfixSelector")) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 59, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 37 1 38,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 58 1 59]}) Nothing Nothing (RecDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 59, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 37 1 38,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 58 1 59]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 36, srcInfoPoints = []}) "Cons") [FieldDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 57, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 44 1 46]}) [Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 43, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 40,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 40 1 42,SrcSpan "tests/examples/RecordInfixSelector.hs" 1 42 1 43]}) "<>"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 57, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 1 51 1 53]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57, srcInfoPoints = []}) "Int"))))])] Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 30, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 9, srcInfoPoints = []}) "idRecord")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 10 3 30, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 3 10 3 11]}) (RecConstr (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 30, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 3 17 3 18,SrcSpan "tests/examples/RecordInfixSelector.hs" 3 29 3 30]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 16, srcInfoPoints = []}) "Cons")) [FieldUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 28, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 3 24 3 25]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 23, srcInfoPoints = [SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 20,SrcSpan "tests/examples/RecordInfixSelector.hs" 3 20 3 22,SrcSpan "tests/examples/RecordInfixSelector.hs" 3 22 3 23]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 20 3 22, srcInfoPoints = []}) "<>")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28, srcInfoPoints = []}) "id")))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RecordInfixSelector.hs" 4 1 4 1
+            , SrcSpan "tests/examples/RecordInfixSelector.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 59
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 30 1 31 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordInfixSelector.hs" 1 1 1 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordInfixSelector.hs" 1 6 1 29
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordInfixSelector.hs" 1 6 1 29
+                  , srcInfoPoints = []
+                  }
+                "RecordWithInfixSelector"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 59
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 37 1 38
+                    , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 58 1 59
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 59
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 37 1 38
+                       , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 58 1 59
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordInfixSelector.hs" 1 32 1 36
+                      , srcInfoPoints = []
+                      }
+                    "Cons")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 57
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 44 1 46 ]
+                       }
+                     [ Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 43
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 39 1 40
+                               , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 40 1 42
+                               , SrcSpan "tests/examples/RecordInfixSelector.hs" 1 42 1 43
+                               ]
+                           }
+                         "<>"
+                     ]
+                     (TyFun
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 57
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/RecordInfixSelector.hs" 1 51 1 53 ]
+                          }
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/RecordInfixSelector.hs" 1 47 1 50
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int")))
+                        (TyCon
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/RecordInfixSelector.hs" 1 54 1 57
+                                   , srcInfoPoints = []
+                                   }
+                                 "Int"))))
+                 ])
+          ]
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordInfixSelector.hs" 3 1 3 9
+                  , srcInfoPoints = []
+                  }
+                "idRecord"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordInfixSelector.hs" 3 10 3 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordInfixSelector.hs" 3 10 3 11 ]
+               }
+             (RecConstr
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RecordInfixSelector.hs" 3 17 3 18
+                      , SrcSpan "tests/examples/RecordInfixSelector.hs" 3 29 3 30
+                      ]
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RecordInfixSelector.hs" 3 12 3 16
+                        , srcInfoPoints = []
+                        }
+                      "Cons"))
+                [ FieldUpdate
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 28
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RecordInfixSelector.hs" 3 24 3 25 ]
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RecordInfixSelector.hs" 3 19 3 20
+                             , SrcSpan "tests/examples/RecordInfixSelector.hs" 3 20 3 22
+                             , SrcSpan "tests/examples/RecordInfixSelector.hs" 3 22 3 23
+                             ]
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordInfixSelector.hs" 3 20 3 22
+                            , srcInfoPoints = []
+                            }
+                          "<>"))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RecordInfixSelector.hs" 3 26 3 28
+                               , srcInfoPoints = []
+                               }
+                             "id")))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/RecordInfixSelector.hs.prettyprinter.golden b/tests/examples/RecordInfixSelector.hs.prettyprinter.golden
--- a/tests/examples/RecordInfixSelector.hs.prettyprinter.golden
+++ b/tests/examples/RecordInfixSelector.hs.prettyprinter.golden
@@ -1,4 +1,2 @@
-module Main (main) where
- 
 data RecordWithInfixSelector = Cons{(<>) :: Int -> Int}
 idRecord = Cons{(<>) = id}
diff --git a/tests/examples/RecordPatternSynonyms.hs b/tests/examples/RecordPatternSynonyms.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/RecordPatternSynonyms.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE PatternSynonyms #-}
+module ShouldCompile where
+
+pattern Single{x} = [x]
+
+pattern Double{y,z} = (y,z)
+
+pattern More{x} <- (x,_) where
+  More x = (x, Nothing)
+
+-- Selector
+selector :: Int
+selector = x [5]
+
+update :: [String]
+update = ["String"] { x = "updated" }
diff --git a/tests/examples/RecordPatternSynonyms.hs.exactprinter.golden b/tests/examples/RecordPatternSynonyms.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RecordPatternSynonyms.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RecordPatternSynonyms.hs.parser.golden b/tests/examples/RecordPatternSynonyms.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RecordPatternSynonyms.hs.parser.golden
@@ -0,0 +1,688 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 1 17 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 1 4 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 1 8 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 1 12 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 1 13 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 1 15 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 1 16 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 17 1 17 1
+            , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 17 1 17 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/RecordPatternSynonyms.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "ShouldCompile")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RecordPatternSynonyms.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 1 4 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 1 4 8
+                , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 19 4 20
+                ]
+            }
+          (PRec
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 9 4 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 15 4 16
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 17 4 18
+                   ]
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 9 4 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 9 4 15
+                     , srcInfoPoints = []
+                     }
+                   "Single"))
+             [ PFieldPun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 16 4 17
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 16 4 17
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 16 4 17
+                         , srcInfoPoints = []
+                         }
+                       "x"))
+             ])
+          (PList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 21 4 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 21 4 22
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 23 4 24
+                   ]
+               }
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 22 4 23
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 4 22 4 23
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 1 6 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 1 6 8
+                , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 21 6 22
+                ]
+            }
+          (PRec
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 9 6 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 15 6 16
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 17 6 18
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 19 6 20
+                   ]
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 9 6 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 9 6 15
+                     , srcInfoPoints = []
+                     }
+                   "Double"))
+             [ PFieldPun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 16 6 17
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 16 6 17
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 16 6 17
+                         , srcInfoPoints = []
+                         }
+                       "y"))
+             , PFieldPun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 18 6 19
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 18 6 19
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 18 6 19
+                         , srcInfoPoints = []
+                         }
+                       "z"))
+             ])
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 23 6 28
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 23 6 24
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 25 6 26
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 27 6 28
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 24 6 25
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 24 6 25
+                      , srcInfoPoints = []
+                      }
+                    "y")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 26 6 27
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 6 26 6 27
+                      , srcInfoPoints = []
+                      }
+                    "z")
+             ])
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 1 8 25
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 1 8 8
+                , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 17 8 19
+                ]
+            }
+          (PRec
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 9 8 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 13 8 14
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 15 8 16
+                   ]
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 9 8 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 9 8 13
+                     , srcInfoPoints = []
+                     }
+                   "More"))
+             [ PFieldPun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 14 8 15
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 14 8 15
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 14 8 15
+                         , srcInfoPoints = []
+                         }
+                       "x"))
+             ])
+          (PTuple
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 20 8 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 20 8 21
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 22 8 23
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 24 8 25
+                   ]
+               }
+             Boxed
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 21 8 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 21 8 22
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PWildCard
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 23 8 24
+                   , srcInfoPoints = []
+                   }
+             ])
+          (ExplicitBidirectional
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 26 12 0
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 8 26 8 31
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 3 9 3
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 1 12 0
+                   ]
+               }
+             [ PatBind
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 3 9 24
+                   , srcInfoPoints = []
+                   }
+                 (PApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 3 9 9
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 3 9 7
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 3 9 7
+                            , srcInfoPoints = []
+                            }
+                          "More"))
+                    [ PVar
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 8 9 9
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 8 9 9
+                             , srcInfoPoints = []
+                             }
+                           "x")
+                    ])
+                 (UnGuardedRhs
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 10 9 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 10 9 11 ]
+                      }
+                    (Tuple
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 12 9 24
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 12 9 13
+                             , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 14 9 15
+                             , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 23 9 24
+                             ]
+                         }
+                       Boxed
+                       [ Var
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 13 9 14
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 13 9 14
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 13 9 14
+                                   , srcInfoPoints = []
+                                   }
+                                 "x"))
+                       , Con
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 16 9 23
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 16 9 23
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/RecordPatternSynonyms.hs" 9 16 9 23
+                                   , srcInfoPoints = []
+                                   }
+                                 "Nothing"))
+                       ]))
+                 Nothing
+             ])
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 1 12 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 10 12 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 1 12 9
+                , srcInfoPoints = []
+                }
+              "selector"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 13 12 16
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 13 12 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 12 13 12 16
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 1 13 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 1 13 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 1 13 9
+                  , srcInfoPoints = []
+                  }
+                "selector"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 10 13 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 10 13 11 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 12 13 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 12 13 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 12 13 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 12 13 13
+                           , srcInfoPoints = []
+                           }
+                         "x")))
+                (List
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 14 13 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 14 13 15
+                         , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 16 13 17
+                         ]
+                     }
+                   [ Lit
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 15 13 16
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 13 15 13 16
+                            , srcInfoPoints = []
+                            }
+                          5
+                          "5")
+                   ])))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 1 15 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 8 15 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 1 15 7
+                , srcInfoPoints = []
+                }
+              "update"
+          ]
+          (TyList
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 11 15 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 11 15 12
+                   , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 18 15 19
+                   ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 12 15 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 12 15 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RecordPatternSynonyms.hs" 15 12 15 18
+                        , srcInfoPoints = []
+                        }
+                      "String"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 1 16 38
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 1 16 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 1 16 7
+                  , srcInfoPoints = []
+                  }
+                "update"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 8 16 38
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 8 16 9 ]
+               }
+             (RecUpdate
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 10 16 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 21 16 22
+                      , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 37 16 38
+                      ]
+                  }
+                (List
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 10 16 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 10 16 11
+                         , SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 19 16 20
+                         ]
+                     }
+                   [ Lit
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 11 16 19
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 11 16 19
+                            , srcInfoPoints = []
+                            }
+                          "String"
+                          "String")
+                   ])
+                [ FieldUpdate
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 23 16 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 25 16 26 ]
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 23 16 24
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 23 16 24
+                            , srcInfoPoints = []
+                            }
+                          "x"))
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 27 16 36
+                         , srcInfoPoints = []
+                         }
+                       (String
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RecordPatternSynonyms.hs" 16 27 16 36
+                            , srcInfoPoints = []
+                            }
+                          "updated"
+                          "updated"))
+                ]))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/RecordPatternSynonyms.hs" 11 1 11 12)
+        " Selector"
+    ]
+  )
diff --git a/tests/examples/RecordPatternSynonyms.hs.prettyparser.golden b/tests/examples/RecordPatternSynonyms.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RecordPatternSynonyms.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RecordPatternSynonyms.hs.prettyprinter.golden b/tests/examples/RecordPatternSynonyms.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RecordPatternSynonyms.hs.prettyprinter.golden
@@ -0,0 +1,15 @@
+{-# LANGUAGE PatternSynonyms #-}
+module ShouldCompile where
+
+pattern Single{x} = [x]
+
+pattern Double{y, z} = (y, z)
+
+pattern More{x} <- (x, _)
+  where More x = (x, Nothing)
+
+selector :: Int
+selector = x [5]
+
+update :: [String]
+update = ["String"]{x = "updated"}
diff --git a/tests/examples/RecordPuns.hs.parser.golden b/tests/examples/RecordPuns.hs.parser.golden
--- a/tests/examples/RecordPuns.hs.parser.golden
+++ b/tests/examples/RecordPuns.hs.parser.golden
@@ -1,1 +1,120 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 1,SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 1,SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 1,SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 1,SrcSpan "tests/examples/RecordPuns.hs" 5 1 5 1,SrcSpan "tests/examples/RecordPuns.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 24, srcInfoPoints = [SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 7,SrcSpan "tests/examples/RecordPuns.hs" 2 19 2 24]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 2 8 2 18, srcInfoPoints = []}) "RecordPuns") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 32, srcInfoPoints = [SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 13,SrcSpan "tests/examples/RecordPuns.hs" 1 29 1 32]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 14 1 28, srcInfoPoints = []}) "NamedFieldPuns"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 30, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 7, srcInfoPoints = []}) "cotile")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 8 4 30, srcInfoPoints = [SrcSpan "tests/examples/RecordPuns.hs" 4 8 4 9]}) (RecUpdate (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 30, srcInfoPoints = [SrcSpan "tests/examples/RecordPuns.hs" 4 15 4 16,SrcSpan "tests/examples/RecordPuns.hs" 4 29 4 30]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14, srcInfoPoints = []}) "tile"))) [FieldPun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29, srcInfoPoints = []}) (Qual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29, srcInfoPoints = []}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29, srcInfoPoints = []}) "Kind") (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29, srcInfoPoints = []}) "ospeedup"))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 1
+            , SrcSpan "tests/examples/RecordPuns.hs" 5 1 5 1
+            , SrcSpan "tests/examples/RecordPuns.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RecordPuns.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/RecordPuns.hs" 2 19 2 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 2 8 2 18
+                 , srcInfoPoints = []
+                 }
+               "RecordPuns")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecordPuns.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RecordPuns.hs" 1 29 1 32
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 1 14 1 28
+                , srcInfoPoints = []
+                }
+              "NamedFieldPuns"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 1 4 7
+                  , srcInfoPoints = []
+                  }
+                "cotile"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 8 4 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecordPuns.hs" 4 8 4 9 ]
+               }
+             (RecUpdate
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RecordPuns.hs" 4 15 4 16
+                      , SrcSpan "tests/examples/RecordPuns.hs" 4 29 4 30
+                      ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 10 4 14
+                           , srcInfoPoints = []
+                           }
+                         "tile")))
+                [ FieldPun
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29
+                      , srcInfoPoints = []
+                      }
+                    (Qual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29
+                         , srcInfoPoints = []
+                         }
+                       (ModuleName
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29
+                            , srcInfoPoints = []
+                            }
+                          "Kind")
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RecordPuns.hs" 4 16 4 29
+                            , srcInfoPoints = []
+                            }
+                          "ospeedup"))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/RecordWildcard.hs.parser.golden b/tests/examples/RecordWildcard.hs.parser.golden
--- a/tests/examples/RecordWildcard.hs.parser.golden
+++ b/tests/examples/RecordWildcard.hs.parser.golden
@@ -1,1 +1,2 @@
-ParseFailed (SrcLoc "tests/examples/RecordWildcard.hs" 3 9) "Parse error: ,"
+ParseFailed
+  (SrcLoc "tests/examples/RecordWildcard.hs" 3 9) "Parse error: ,"
diff --git a/tests/examples/RecordWildcardError.hs.exactprinter.golden b/tests/examples/RecordWildcardError.hs.exactprinter.golden
--- a/tests/examples/RecordWildcardError.hs.exactprinter.golden
+++ b/tests/examples/RecordWildcardError.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards is not enabled"
+ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards language extension is not enabled. Please add {-# LANGUAGE RecordWildCards #-} pragma at the top of your module."
diff --git a/tests/examples/RecordWildcardError.hs.parser.golden b/tests/examples/RecordWildcardError.hs.parser.golden
--- a/tests/examples/RecordWildcardError.hs.parser.golden
+++ b/tests/examples/RecordWildcardError.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards is not enabled"
+ParseFailed
+  (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12)
+  "RecordWildCards language extension is not enabled. Please add {-# LANGUAGE RecordWildCards #-} pragma at the top of your module."
diff --git a/tests/examples/RecordWildcardError.hs.prettyparser.golden b/tests/examples/RecordWildcardError.hs.prettyparser.golden
--- a/tests/examples/RecordWildcardError.hs.prettyparser.golden
+++ b/tests/examples/RecordWildcardError.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards is not enabled"
+ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards language extension is not enabled. Please add {-# LANGUAGE RecordWildCards #-} pragma at the top of your module."
diff --git a/tests/examples/RecordWildcardError.hs.prettyprinter.golden b/tests/examples/RecordWildcardError.hs.prettyprinter.golden
--- a/tests/examples/RecordWildcardError.hs.prettyprinter.golden
+++ b/tests/examples/RecordWildcardError.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards is not enabled"
+ParseFailed (SrcLoc "tests/examples/RecordWildcardError.hs" 1 12) "RecordWildCards language extension is not enabled. Please add {-# LANGUAGE RecordWildCards #-} pragma at the top of your module."
diff --git a/tests/examples/RecursiveDo.hs.parser.golden b/tests/examples/RecursiveDo.hs.parser.golden
--- a/tests/examples/RecursiveDo.hs.parser.golden
+++ b/tests/examples/RecursiveDo.hs.parser.golden
@@ -1,1 +1,281 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 1,SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1,SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1,SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1,SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 1,SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 13,SrcSpan "tests/examples/RecursiveDo.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 14 1 25, srcInfoPoints = []}) "RecursiveDo"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 4 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 9, srcInfoPoints = []}) "justOnes")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 10 4 27, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 2 10 2 11]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 12 4 27, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 2 12 2 14,SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 5,SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 5,SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 0]}) [RecStmt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 26, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 8,SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 9,SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 26, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 3 12 3 14]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 11, srcInfoPoints = []}) "xs")) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 26, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19, srcInfoPoints = []}) "Just"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 20 3 26, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 3 20 3 21,SrcSpan "tests/examples/RecursiveDo.hs" 3 25 3 26]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 25, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 22, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 22, srcInfoPoints = []}) 1 "1")) (QConOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23, srcInfoPoints = []}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23, srcInfoPoints = []})))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25, srcInfoPoints = []}) "xs"))))))],Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11, srcInfoPoints = []}) "return"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 12 4 27, srcInfoPoints = [SrcSpan "tests/examples/RecursiveDo.hs" 4 12 4 13,SrcSpan "tests/examples/RecursiveDo.hs" 4 26 4 27]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16, srcInfoPoints = []}) "map"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23, srcInfoPoints = []}) "negate")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26, srcInfoPoints = []}) "xs"))))))])) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RecursiveDo.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RecursiveDo.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "RecursiveDo"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 4 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 1 2 9
+                  , srcInfoPoints = []
+                  }
+                "justOnes"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 10 4 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RecursiveDo.hs" 2 10 2 11 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 2 12 4 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RecursiveDo.hs" 2 12 2 14
+                      , SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 5
+                      , SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 5
+                      , SrcSpan "tests/examples/RecursiveDo.hs" 6 1 6 0
+                      ]
+                  }
+                [ RecStmt
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RecursiveDo.hs" 3 5 3 8
+                          , SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 9
+                          , SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 0
+                          ]
+                      }
+                    [ Generator
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 26
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/RecursiveDo.hs" 3 12 3 14 ]
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 11
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 9 3 11
+                                , srcInfoPoints = []
+                                }
+                              "xs"))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 26
+                             , srcInfoPoints = []
+                             }
+                           (Con
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RecursiveDo.hs" 3 15 3 19
+                                      , srcInfoPoints = []
+                                      }
+                                    "Just")))
+                           (Paren
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 20 3 26
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/RecursiveDo.hs" 3 20 3 21
+                                    , SrcSpan "tests/examples/RecursiveDo.hs" 3 25 3 26
+                                    ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 22
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RecursiveDo.hs" 3 21 3 22
+                                         , srcInfoPoints = []
+                                         }
+                                       1
+                                       "1"))
+                                 (QConOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23
+                                      , srcInfoPoints = []
+                                      }
+                                    (Special
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (Cons
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RecursiveDo.hs" 3 22 3 23
+                                            , srcInfoPoints = []
+                                            })))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RecursiveDo.hs" 3 23 3 25
+                                            , srcInfoPoints = []
+                                            }
+                                          "xs"))))))
+                    ]
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 27
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 27
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 5 4 11
+                                  , srcInfoPoints = []
+                                  }
+                                "return")))
+                       (Paren
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 12 4 27
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RecursiveDo.hs" 4 12 4 13
+                                , SrcSpan "tests/examples/RecursiveDo.hs" 4 26 4 27
+                                ]
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 26
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RecursiveDo.hs" 4 13 4 16
+                                           , srcInfoPoints = []
+                                           }
+                                         "map")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RecursiveDo.hs" 4 17 4 23
+                                           , srcInfoPoints = []
+                                           }
+                                         "negate"))))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RecursiveDo.hs" 4 24 4 26
+                                        , srcInfoPoints = []
+                                        }
+                                      "xs"))))))
+                ]))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/RecursiveDo.hs.prettyprinter.golden b/tests/examples/RecursiveDo.hs.prettyprinter.golden
--- a/tests/examples/RecursiveDo.hs.prettyprinter.golden
+++ b/tests/examples/RecursiveDo.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE RecursiveDo #-}
-module Main (main) where
 justOnes
   = do rec xs <- Just (1 : xs)
        return (map negate xs)
diff --git a/tests/examples/RegularPatterns.hs b/tests/examples/RegularPatterns.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/RegularPatterns.hs
@@ -0,0 +1,9 @@
+{-# OPTIONS_GHC -F -pgmFhsx2hs #-}
+{-# LANGUAGE RegularPatterns #-}
+module RegularPatterns where
+
+f :: [Int] -> [[Int]]
+f [ 0+!, b+, 1?, (| 2,3 |) ] = [b]
+f [ 1+, (| x | x `mod` 2 == 0 |) ] = [[x]]
+f [ 2, a@(| b@:_, _ |)* ] = b:a
+f _ = []
diff --git a/tests/examples/RegularPatterns.hs.exactprinter.golden b/tests/examples/RegularPatterns.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RegularPatterns.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RegularPatterns.hs.parser.golden b/tests/examples/RegularPatterns.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RegularPatterns.hs.parser.golden
@@ -0,0 +1,851 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/RegularPatterns.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RegularPatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 5 1 5 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 7 1 7 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 8 1 8 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 9 1 9 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 10 1 10 1
+            , SrcSpan "tests/examples/RegularPatterns.hs" 10 1 10 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/RegularPatterns.hs" 3 1 3 29
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RegularPatterns.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/RegularPatterns.hs" 3 24 3 29
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/RegularPatterns.hs" 3 8 3 23
+                 , srcInfoPoints = []
+                 }
+               "RegularPatterns")
+            Nothing
+            Nothing))
+      [ OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RegularPatterns.hs" 1 1 1 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RegularPatterns.hs" 1 1 1 32
+                , SrcSpan "tests/examples/RegularPatterns.hs" 1 32 1 35
+                ]
+            }
+          (Just GHC)
+          "-F -pgmFhsx2hs "
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RegularPatterns.hs" 2 1 2 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RegularPatterns.hs" 2 1 2 13
+                , SrcSpan "tests/examples/RegularPatterns.hs" 2 30 2 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RegularPatterns.hs" 2 14 2 29
+                , srcInfoPoints = []
+                }
+              "RegularPatterns"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RegularPatterns.hs" 5 1 5 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RegularPatterns.hs" 5 3 5 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 5 1 5 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RegularPatterns.hs" 5 6 5 22
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RegularPatterns.hs" 5 12 5 14 ]
+               }
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RegularPatterns.hs" 5 6 5 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RegularPatterns.hs" 5 6 5 7
+                      , SrcSpan "tests/examples/RegularPatterns.hs" 5 10 5 11
+                      ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RegularPatterns.hs" 5 7 5 10
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 5 7 5 10
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 5 7 5 10
+                           , srcInfoPoints = []
+                           }
+                         "Int"))))
+             (TyList
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RegularPatterns.hs" 5 15 5 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RegularPatterns.hs" 5 15 5 16
+                      , SrcSpan "tests/examples/RegularPatterns.hs" 5 21 5 22
+                      ]
+                  }
+                (TyList
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RegularPatterns.hs" 5 16 5 21
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RegularPatterns.hs" 5 16 5 17
+                         , SrcSpan "tests/examples/RegularPatterns.hs" 5 20 5 21
+                         ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 5 17 5 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 5 17 5 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 5 17 5 20
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 1 9 9
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RegularPatterns.hs" 6 1 6 35
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 1 6 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PRPat
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/RegularPatterns.hs" 6 3 6 29
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/RegularPatterns.hs" 6 3 6 4
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 6 8 6 9
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 6 12 6 13
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 6 16 6 17
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 6 28 6 29
+                        ]
+                    }
+                  [ RPOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 5 6 8
+                        , srcInfoPoints = []
+                        }
+                      (RPPat
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 5 6 6
+                           , srcInfoPoints = []
+                           }
+                         (PLit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 5 6 6
+                              , srcInfoPoints = []
+                              }
+                            (Signless
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 5 6 6
+                                 , srcInfoPoints = []
+                                 })
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 5 6 6
+                                 , srcInfoPoints = []
+                                 }
+                               0
+                               "0")))
+                      (RPPlusG
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 6 6 6 8
+                           , srcInfoPoints = []
+                           })
+                  , RPOp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 6 10 6 12
+                        , srcInfoPoints = []
+                        }
+                      (RPPat
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 6 10 6 11
+                           , srcInfoPoints = []
+                           }
+                         (PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 6 10 6 11
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/RegularPatterns.hs" 6 10 6 11
+                                 , srcInfoPoints = []
+                                 }
+                               "b")))
+                      (RPPlus
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 6 11 6 12
+                           , srcInfoPoints = []
+                           })
+                  , RPOp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 6 14 6 16
+                        , srcInfoPoints = []
+                        }
+                      (RPPat
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 6 14 6 15
+                           , srcInfoPoints = []
+                           }
+                         (PLit
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 6 14 6 15
+                              , srcInfoPoints = []
+                              }
+                            (Signless
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/RegularPatterns.hs" 6 14 6 15
+                                 , srcInfoPoints = []
+                                 })
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/RegularPatterns.hs" 6 14 6 15
+                                 , srcInfoPoints = []
+                                 }
+                               1
+                               "1")))
+                      (RPOpt
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 6 15 6 16
+                           , srcInfoPoints = []
+                           })
+                  , RPSeq
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 6 18 6 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RegularPatterns.hs" 6 18 6 20
+                            , SrcSpan "tests/examples/RegularPatterns.hs" 6 22 6 23
+                            , SrcSpan "tests/examples/RegularPatterns.hs" 6 25 6 27
+                            ]
+                        }
+                      [ RPPat
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 6 21 6 22
+                            , srcInfoPoints = []
+                            }
+                          (PLit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 6 21 6 22
+                               , srcInfoPoints = []
+                               }
+                             (Signless
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 6 21 6 22
+                                  , srcInfoPoints = []
+                                  })
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 6 21 6 22
+                                  , srcInfoPoints = []
+                                  }
+                                2
+                                "2"))
+                      , RPPat
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 6 23 6 24
+                            , srcInfoPoints = []
+                            }
+                          (PLit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 6 23 6 24
+                               , srcInfoPoints = []
+                               }
+                             (Signless
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 6 23 6 24
+                                  , srcInfoPoints = []
+                                  })
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 6 23 6 24
+                                  , srcInfoPoints = []
+                                  }
+                                3
+                                "3"))
+                      ]
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RegularPatterns.hs" 6 30 6 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RegularPatterns.hs" 6 30 6 31 ]
+                   }
+                 (List
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RegularPatterns.hs" 6 32 6 35
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RegularPatterns.hs" 6 32 6 33
+                          , SrcSpan "tests/examples/RegularPatterns.hs" 6 34 6 35
+                          ]
+                      }
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RegularPatterns.hs" 6 33 6 34
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/RegularPatterns.hs" 6 33 6 34
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/RegularPatterns.hs" 6 33 6 34
+                                , srcInfoPoints = []
+                                }
+                              "b"))
+                    ]))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RegularPatterns.hs" 7 1 7 43
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 1 7 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PRPat
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/RegularPatterns.hs" 7 3 7 35
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/RegularPatterns.hs" 7 3 7 4
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 7 7 7 8
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 7 34 7 35
+                        ]
+                    }
+                  [ RPOp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 5 7 7
+                        , srcInfoPoints = []
+                        }
+                      (RPPat
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 5 7 6
+                           , srcInfoPoints = []
+                           }
+                         (PLit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 5 7 6
+                              , srcInfoPoints = []
+                              }
+                            (Signless
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 5 7 6
+                                 , srcInfoPoints = []
+                                 })
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 5 7 6
+                                 , srcInfoPoints = []
+                                 }
+                               1
+                               "1")))
+                      (RPPlus
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 7 6 7 7
+                           , srcInfoPoints = []
+                           })
+                  , RPGuard
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 7 9 7 33
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RegularPatterns.hs" 7 9 7 11
+                            , SrcSpan "tests/examples/RegularPatterns.hs" 7 14 7 15
+                            , SrcSpan "tests/examples/RegularPatterns.hs" 7 31 7 33
+                            ]
+                        }
+                      (PVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 7 12 7 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 7 12 7 13
+                              , srcInfoPoints = []
+                              }
+                            "x"))
+                      [ Qualifier
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 30
+                            , srcInfoPoints = []
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 30
+                               , srcInfoPoints = []
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RegularPatterns.hs" 7 16 7 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "x")))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 7 18 7 23
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/RegularPatterns.hs" 7 18 7 19
+                                         , SrcSpan "tests/examples/RegularPatterns.hs" 7 19 7 22
+                                         , SrcSpan "tests/examples/RegularPatterns.hs" 7 22 7 23
+                                         ]
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RegularPatterns.hs" 7 18 7 23
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/RegularPatterns.hs" 7 18 7 19
+                                            , SrcSpan "tests/examples/RegularPatterns.hs" 7 19 7 22
+                                            , SrcSpan "tests/examples/RegularPatterns.hs" 7 22 7 23
+                                            ]
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RegularPatterns.hs" 7 19 7 22
+                                           , srcInfoPoints = []
+                                           }
+                                         "mod")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 7 24 7 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Int
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RegularPatterns.hs" 7 24 7 25
+                                        , srcInfoPoints = []
+                                        }
+                                      2
+                                      "2")))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 7 26 7 28
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 7 26 7 28
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RegularPatterns.hs" 7 26 7 28
+                                        , srcInfoPoints = []
+                                        }
+                                      "==")))
+                             (Lit
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 7 29 7 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Int
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 7 29 7 30
+                                     , srcInfoPoints = []
+                                     }
+                                   0
+                                   "0")))
+                      ]
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RegularPatterns.hs" 7 36 7 43
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RegularPatterns.hs" 7 36 7 37 ]
+                   }
+                 (List
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RegularPatterns.hs" 7 38 7 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RegularPatterns.hs" 7 38 7 39
+                          , SrcSpan "tests/examples/RegularPatterns.hs" 7 42 7 43
+                          ]
+                      }
+                    [ List
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RegularPatterns.hs" 7 39 7 42
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/RegularPatterns.hs" 7 39 7 40
+                              , SrcSpan "tests/examples/RegularPatterns.hs" 7 41 7 42
+                              ]
+                          }
+                        [ Var
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 7 40 7 41
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/RegularPatterns.hs" 7 40 7 41
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/RegularPatterns.hs" 7 40 7 41
+                                    , srcInfoPoints = []
+                                    }
+                                  "x"))
+                        ]
+                    ]))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RegularPatterns.hs" 8 1 8 32
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 1 8 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PRPat
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/RegularPatterns.hs" 8 3 8 26
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/RegularPatterns.hs" 8 3 8 4
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 8 6 8 7
+                        , SrcSpan "tests/examples/RegularPatterns.hs" 8 25 8 26
+                        ]
+                    }
+                  [ RPPat
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 5 8 6
+                        , srcInfoPoints = []
+                        }
+                      (PLit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 5 8 6
+                           , srcInfoPoints = []
+                           }
+                         (Signless
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 5 8 6
+                              , srcInfoPoints = []
+                              })
+                         (Int
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 5 8 6
+                              , srcInfoPoints = []
+                              }
+                            2
+                            "2"))
+                  , RPAs
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RegularPatterns.hs" 8 8 8 23
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RegularPatterns.hs" 8 9 8 10 ]
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 8 8 8 9
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                      (RPOp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RegularPatterns.hs" 8 8 8 24
+                           , srcInfoPoints = []
+                           }
+                         (RPSeq
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 8 10 8 23
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/RegularPatterns.hs" 8 10 8 12
+                                  , SrcSpan "tests/examples/RegularPatterns.hs" 8 17 8 18
+                                  , SrcSpan "tests/examples/RegularPatterns.hs" 8 21 8 23
+                                  ]
+                              }
+                            [ RPCAs
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 8 13 8 17
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/RegularPatterns.hs" 8 14 8 16 ]
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 8 13 8 14
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                                (RPPat
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 8 16 8 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (PWildCard
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RegularPatterns.hs" 8 16 8 17
+                                        , srcInfoPoints = []
+                                        }))
+                            , RPPat
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/RegularPatterns.hs" 8 19 8 20
+                                  , srcInfoPoints = []
+                                  }
+                                (PWildCard
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RegularPatterns.hs" 8 19 8 20
+                                     , srcInfoPoints = []
+                                     })
+                            ])
+                         (RPStar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RegularPatterns.hs" 8 23 8 24
+                              , srcInfoPoints = []
+                              }))
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RegularPatterns.hs" 8 27 8 32
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RegularPatterns.hs" 8 27 8 28 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RegularPatterns.hs" 8 29 8 32
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RegularPatterns.hs" 8 29 8 30
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 8 29 8 30
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 8 29 8 30
+                               , srcInfoPoints = []
+                               }
+                             "b")))
+                    (QConOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RegularPatterns.hs" 8 30 8 31
+                         , srcInfoPoints = []
+                         }
+                       (Special
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 8 30 8 31
+                            , srcInfoPoints = []
+                            }
+                          (Cons
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 8 30 8 31
+                               , srcInfoPoints = []
+                               })))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RegularPatterns.hs" 8 31 8 32
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/RegularPatterns.hs" 8 31 8 32
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/RegularPatterns.hs" 8 31 8 32
+                               , srcInfoPoints = []
+                               }
+                             "a")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 9 1 9 9
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 9 1 9 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 9 3 9 4
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 9 5 9 9
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RegularPatterns.hs" 9 5 9 6 ]
+                   }
+                 (List
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RegularPatterns.hs" 9 7 9 9
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/RegularPatterns.hs" 9 7 9 8
+                          , SrcSpan "tests/examples/RegularPatterns.hs" 9 8 9 9
+                          ]
+                      }
+                    []))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/RegularPatterns.hs.prettyparser.golden b/tests/examples/RegularPatterns.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RegularPatterns.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RegularPatterns.hs.prettyprinter.golden b/tests/examples/RegularPatterns.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RegularPatterns.hs.prettyprinter.golden
@@ -0,0 +1,9 @@
+{-# OPTIONS_GHC -F -pgmFhsx2hs #-}
+{-# LANGUAGE RegularPatterns #-}
+module RegularPatterns where
+
+f :: [Int] -> [[Int]]
+f [0+!, b+, 1?, (| 2, 3 |)] = [b]
+f [1+, (| x | x `mod` 2 == 0 |)] = [[x]]
+f [2, a@(| b@:_, _ |)*] = b : a
+f _ = []
diff --git a/tests/examples/RelaxedDo.hs.parser.golden b/tests/examples/RelaxedDo.hs.parser.golden
--- a/tests/examples/RelaxedDo.hs.parser.golden
+++ b/tests/examples/RelaxedDo.hs.parser.golden
@@ -1,1 +1,878 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 1 15 1, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 1,SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 1,SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 1,SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 1,SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 1,SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 1,SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 1,SrcSpan "tests/examples/RelaxedDo.hs" 15 1 15 1,SrcSpan "tests/examples/RelaxedDo.hs" 15 1 15 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 18, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 7,SrcSpan "tests/examples/RelaxedDo.hs" 2 13 2 18]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 2 8 2 12, srcInfoPoints = []}) "Main") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 42, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 13,SrcSpan "tests/examples/RelaxedDo.hs" 1 39 1 42]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 14 1 38, srcInfoPoints = []}) "NondecreasingIndentation"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 4 8 4 21, srcInfoPoints = []}) "Control.Monad", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 14, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 6 6 6 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 5, srcInfoPoints = []}) "main"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 14, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13,SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13,SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13,SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14]}))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 10 15, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 6 10 15, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 7 6 7 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 8 10 15, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 7 8 7 10,SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 3,SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 10 15, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 10 15, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 16, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7, srcInfoPoints = []}) "when"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 8 8 16, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 8 8 8 9,SrcSpan "tests/examples/RelaxedDo.hs" 8 15 8 16]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 15, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 11, srcInfoPoints = []}) 2 "2")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 14 8 15, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 14 8 15, srcInfoPoints = []}) 1 "1"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18, srcInfoPoints = []}) "$"))) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 19 10 15, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 8 19 8 21,SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 3,SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 3,SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 3,SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 0]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 15, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 15, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11, srcInfoPoints = []}) "putStrLn"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 12 9 15, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 12 9 15, srcInfoPoints = []}) "a" "a"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 15, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 15, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11, srcInfoPoints = []}) "putStrLn"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 12 10 15, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 12 10 15, srcInfoPoints = []}) "b" "b")))]))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 14 58, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 15, srcInfoPoints = []}) "nestedDoBlocks")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 16 14 58, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 12 16 12 17]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 14 58, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25, srcInfoPoints = []}) "getChar"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29, srcInfoPoints = []}) ">>="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 30 14 58, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 12 30 12 31,SrcSpan "tests/examples/RelaxedDo.hs" 14 57 14 58]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 31 14 57, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 12 31 12 32,SrcSpan "tests/examples/RelaxedDo.hs" 12 35 12 37]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 32 12 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 32 12 34, srcInfoPoints = []}) "c1")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 38 14 57, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 12 38 12 40,SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 18,SrcSpan "tests/examples/RelaxedDo.hs" 14 57 14 57]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 14 57, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 14 57, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25, srcInfoPoints = []}) "getChar"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29, srcInfoPoints = []}) ">>="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 30 14 57, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 13 30 13 31,SrcSpan "tests/examples/RelaxedDo.hs" 14 56 14 57]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 31 14 56, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 13 31 13 32,SrcSpan "tests/examples/RelaxedDo.hs" 13 35 13 37]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 32 13 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 32 13 34, srcInfoPoints = []}) "c2")] (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 38 14 56, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 13 38 13 40,SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 18,SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 18,SrcSpan "tests/examples/RelaxedDo.hs" 14 56 14 56]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 56, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 56, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 25, srcInfoPoints = []}) "getChar"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 26 14 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 26 14 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 26 14 29, srcInfoPoints = []}) ">>="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 30 14 56, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 14 30 14 31,SrcSpan "tests/examples/RelaxedDo.hs" 14 55 14 56]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 31 14 55, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 14 31 14 32,SrcSpan "tests/examples/RelaxedDo.hs" 14 35 14 37]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 32 14 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 32 14 34, srcInfoPoints = []}) "c3")] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 38 14 55, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 38 14 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 38 14 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 38 14 44, srcInfoPoints = []}) "return"))) (List (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 45 14 55, srcInfoPoints = [SrcSpan "tests/examples/RelaxedDo.hs" 14 45 14 46,SrcSpan "tests/examples/RelaxedDo.hs" 14 48 14 49,SrcSpan "tests/examples/RelaxedDo.hs" 14 51 14 52,SrcSpan "tests/examples/RelaxedDo.hs" 14 54 14 55]}) [Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 46 14 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 46 14 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 46 14 48, srcInfoPoints = []}) "c1")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 49 14 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 49 14 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 49 14 51, srcInfoPoints = []}) "c2")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 52 14 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 52 14 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 14 52 14 54, srcInfoPoints = []}) "c3"))])))))]))))]))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 1 15 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 15 1 15 1
+            , SrcSpan "tests/examples/RelaxedDo.hs" 15 1 15 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RelaxedDo.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/RelaxedDo.hs" 2 13 2 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 2 8 2 12
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RelaxedDo.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RelaxedDo.hs" 1 39 1 42
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 1 14 1 38
+                , srcInfoPoints = []
+                }
+              "NondecreasingIndentation"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 21
+                , srcInfoPoints = [ SrcSpan "tests/examples/RelaxedDo.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 4 8 4 21
+                  , srcInfoPoints = []
+                  }
+                "Control.Monad"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 14
+            , srcInfoPoints = [ SrcSpan "tests/examples/RelaxedDo.hs" 6 6 6 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 1 6 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 14
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 9 6 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13
+                      , SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13
+                         , SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RelaxedDo.hs" 6 12 6 13
+                            , SrcSpan "tests/examples/RelaxedDo.hs" 6 13 6 14
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 10 15
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 1 7 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 6 10 15
+               , srcInfoPoints = [ SrcSpan "tests/examples/RelaxedDo.hs" 7 6 7 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 7 8 10 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/RelaxedDo.hs" 7 8 7 10
+                      , SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 3
+                      , SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 0
+                      ]
+                  }
+                [ Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 10 15
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 10 15
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 16
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 3 8 7
+                                     , srcInfoPoints = []
+                                     }
+                                   "when")))
+                          (Paren
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 8 8 16
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/RelaxedDo.hs" 8 8 8 9
+                                   , SrcSpan "tests/examples/RelaxedDo.hs" 8 15 8 16
+                                   ]
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 11
+                                     , srcInfoPoints = []
+                                     }
+                                   (Int
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 8 10 8 11
+                                        , srcInfoPoints = []
+                                        }
+                                      2
+                                      "2"))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RelaxedDo.hs" 8 12 8 13
+                                           , srcInfoPoints = []
+                                           }
+                                         ">")))
+                                (Lit
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 14 8 15
+                                     , srcInfoPoints = []
+                                     }
+                                   (Int
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 8 14 8 15
+                                        , srcInfoPoints = []
+                                        }
+                                      1
+                                      "1")))))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 17 8 18
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (Do
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 8 19 10 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/RelaxedDo.hs" 8 19 8 21
+                                , SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 3
+                                , SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 3
+                                , SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 3
+                                , SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 0
+                                ]
+                            }
+                          [ Qualifier
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 15
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RelaxedDo.hs" 9 3 9 11
+                                            , srcInfoPoints = []
+                                            }
+                                          "putStrLn")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RelaxedDo.hs" 9 12 9 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (String
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RelaxedDo.hs" 9 12 9 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "a"
+                                       "a")))
+                          , Qualifier
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 15
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RelaxedDo.hs" 10 3 10 11
+                                            , srcInfoPoints = []
+                                            }
+                                          "putStrLn")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/RelaxedDo.hs" 10 12 10 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (String
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/RelaxedDo.hs" 10 12 10 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "b"
+                                       "b")))
+                          ]))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 14 58
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 15
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 1 12 15
+                  , srcInfoPoints = []
+                  }
+                "nestedDoBlocks"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 16 14 58
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RelaxedDo.hs" 12 16 12 17 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 14 58
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 18 12 25
+                           , srcInfoPoints = []
+                           }
+                         "getChar")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 26 12 29
+                           , srcInfoPoints = []
+                           }
+                         ">>=")))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 30 14 58
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/RelaxedDo.hs" 12 30 12 31
+                         , SrcSpan "tests/examples/RelaxedDo.hs" 14 57 14 58
+                         ]
+                     }
+                   (Lambda
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 31 14 57
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/RelaxedDo.hs" 12 31 12 32
+                            , SrcSpan "tests/examples/RelaxedDo.hs" 12 35 12 37
+                            ]
+                        }
+                      [ PVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 32 12 34
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 32 12 34
+                               , srcInfoPoints = []
+                               }
+                             "c1")
+                      ]
+                      (Do
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 12 38 14 57
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/RelaxedDo.hs" 12 38 12 40
+                               , SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 18
+                               , SrcSpan "tests/examples/RelaxedDo.hs" 14 57 14 57
+                               ]
+                           }
+                         [ Qualifier
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 14 57
+                               , srcInfoPoints = []
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/RelaxedDo.hs" 13 18 14 57
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RelaxedDo.hs" 13 18 13 25
+                                           , srcInfoPoints = []
+                                           }
+                                         "getChar")))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RelaxedDo.hs" 13 26 13 29
+                                           , srcInfoPoints = []
+                                           }
+                                         ">>=")))
+                                (Paren
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/RelaxedDo.hs" 13 30 14 57
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/RelaxedDo.hs" 13 30 13 31
+                                         , SrcSpan "tests/examples/RelaxedDo.hs" 14 56 14 57
+                                         ]
+                                     }
+                                   (Lambda
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/RelaxedDo.hs" 13 31 14 56
+                                        , srcInfoPoints =
+                                            [ SrcSpan "tests/examples/RelaxedDo.hs" 13 31 13 32
+                                            , SrcSpan "tests/examples/RelaxedDo.hs" 13 35 13 37
+                                            ]
+                                        }
+                                      [ PVar
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/RelaxedDo.hs" 13 32 13 34
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RelaxedDo.hs" 13 32 13 34
+                                               , srcInfoPoints = []
+                                               }
+                                             "c2")
+                                      ]
+                                      (Do
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/RelaxedDo.hs" 13 38 14 56
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/RelaxedDo.hs" 13 38 13 40
+                                               , SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 18
+                                               , SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 18
+                                               , SrcSpan "tests/examples/RelaxedDo.hs" 14 56 14 56
+                                               ]
+                                           }
+                                         [ Qualifier
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/RelaxedDo.hs" 14 18 14 56
+                                               , srcInfoPoints = []
+                                               }
+                                             (InfixApp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/RelaxedDo.hs" 14 18 14 56
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RelaxedDo.hs" 14 18 14 25
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/RelaxedDo.hs"
+                                                              14
+                                                              18
+                                                              14
+                                                              25
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/RelaxedDo.hs"
+                                                                 14
+                                                                 18
+                                                                 14
+                                                                 25
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "getChar")))
+                                                (QVarOp
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RelaxedDo.hs" 14 26 14 29
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/RelaxedDo.hs"
+                                                              14
+                                                              26
+                                                              14
+                                                              29
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Symbol
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/RelaxedDo.hs"
+                                                                 14
+                                                                 26
+                                                                 14
+                                                                 29
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         ">>=")))
+                                                (Paren
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/RelaxedDo.hs" 14 30 14 56
+                                                     , srcInfoPoints =
+                                                         [ SrcSpan
+                                                             "tests/examples/RelaxedDo.hs"
+                                                             14
+                                                             30
+                                                             14
+                                                             31
+                                                         , SrcSpan
+                                                             "tests/examples/RelaxedDo.hs"
+                                                             14
+                                                             55
+                                                             14
+                                                             56
+                                                         ]
+                                                     }
+                                                   (Lambda
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/RelaxedDo.hs"
+                                                              14
+                                                              31
+                                                              14
+                                                              55
+                                                        , srcInfoPoints =
+                                                            [ SrcSpan
+                                                                "tests/examples/RelaxedDo.hs"
+                                                                14
+                                                                31
+                                                                14
+                                                                32
+                                                            , SrcSpan
+                                                                "tests/examples/RelaxedDo.hs"
+                                                                14
+                                                                35
+                                                                14
+                                                                37
+                                                            ]
+                                                        }
+                                                      [ PVar
+                                                          SrcSpanInfo
+                                                            { srcInfoSpan =
+                                                                SrcSpan
+                                                                  "tests/examples/RelaxedDo.hs"
+                                                                  14
+                                                                  32
+                                                                  14
+                                                                  34
+                                                            , srcInfoPoints = []
+                                                            }
+                                                          (Ident
+                                                             SrcSpanInfo
+                                                               { srcInfoSpan =
+                                                                   SrcSpan
+                                                                     "tests/examples/RelaxedDo.hs"
+                                                                     14
+                                                                     32
+                                                                     14
+                                                                     34
+                                                               , srcInfoPoints = []
+                                                               }
+                                                             "c3")
+                                                      ]
+                                                      (App
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/RelaxedDo.hs"
+                                                                 14
+                                                                 38
+                                                                 14
+                                                                 55
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         (Var
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/RelaxedDo.hs"
+                                                                    14
+                                                                    38
+                                                                    14
+                                                                    44
+                                                              , srcInfoPoints = []
+                                                              }
+                                                            (UnQual
+                                                               SrcSpanInfo
+                                                                 { srcInfoSpan =
+                                                                     SrcSpan
+                                                                       "tests/examples/RelaxedDo.hs"
+                                                                       14
+                                                                       38
+                                                                       14
+                                                                       44
+                                                                 , srcInfoPoints = []
+                                                                 }
+                                                               (Ident
+                                                                  SrcSpanInfo
+                                                                    { srcInfoSpan =
+                                                                        SrcSpan
+                                                                          "tests/examples/RelaxedDo.hs"
+                                                                          14
+                                                                          38
+                                                                          14
+                                                                          44
+                                                                    , srcInfoPoints = []
+                                                                    }
+                                                                  "return")))
+                                                         (List
+                                                            SrcSpanInfo
+                                                              { srcInfoSpan =
+                                                                  SrcSpan
+                                                                    "tests/examples/RelaxedDo.hs"
+                                                                    14
+                                                                    45
+                                                                    14
+                                                                    55
+                                                              , srcInfoPoints =
+                                                                  [ SrcSpan
+                                                                      "tests/examples/RelaxedDo.hs"
+                                                                      14
+                                                                      45
+                                                                      14
+                                                                      46
+                                                                  , SrcSpan
+                                                                      "tests/examples/RelaxedDo.hs"
+                                                                      14
+                                                                      48
+                                                                      14
+                                                                      49
+                                                                  , SrcSpan
+                                                                      "tests/examples/RelaxedDo.hs"
+                                                                      14
+                                                                      51
+                                                                      14
+                                                                      52
+                                                                  , SrcSpan
+                                                                      "tests/examples/RelaxedDo.hs"
+                                                                      14
+                                                                      54
+                                                                      14
+                                                                      55
+                                                                  ]
+                                                              }
+                                                            [ Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/RelaxedDo.hs"
+                                                                        14
+                                                                        46
+                                                                        14
+                                                                        48
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/RelaxedDo.hs"
+                                                                           14
+                                                                           46
+                                                                           14
+                                                                           48
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/RelaxedDo.hs"
+                                                                              14
+                                                                              46
+                                                                              14
+                                                                              48
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "c1"))
+                                                            , Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/RelaxedDo.hs"
+                                                                        14
+                                                                        49
+                                                                        14
+                                                                        51
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/RelaxedDo.hs"
+                                                                           14
+                                                                           49
+                                                                           14
+                                                                           51
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/RelaxedDo.hs"
+                                                                              14
+                                                                              49
+                                                                              14
+                                                                              51
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "c2"))
+                                                            , Var
+                                                                SrcSpanInfo
+                                                                  { srcInfoSpan =
+                                                                      SrcSpan
+                                                                        "tests/examples/RelaxedDo.hs"
+                                                                        14
+                                                                        52
+                                                                        14
+                                                                        54
+                                                                  , srcInfoPoints = []
+                                                                  }
+                                                                (UnQual
+                                                                   SrcSpanInfo
+                                                                     { srcInfoSpan =
+                                                                         SrcSpan
+                                                                           "tests/examples/RelaxedDo.hs"
+                                                                           14
+                                                                           52
+                                                                           14
+                                                                           54
+                                                                     , srcInfoPoints = []
+                                                                     }
+                                                                   (Ident
+                                                                      SrcSpanInfo
+                                                                        { srcInfoSpan =
+                                                                            SrcSpan
+                                                                              "tests/examples/RelaxedDo.hs"
+                                                                              14
+                                                                              52
+                                                                              14
+                                                                              54
+                                                                        , srcInfoPoints = []
+                                                                        }
+                                                                      "c3"))
+                                                            ])))))
+                                         ]))))
+                         ])))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/RelaxedDo.hs.prettyprinter.golden b/tests/examples/RelaxedDo.hs.prettyprinter.golden
--- a/tests/examples/RelaxedDo.hs.prettyprinter.golden
+++ b/tests/examples/RelaxedDo.hs.prettyprinter.golden
@@ -1,7 +1,7 @@
 {-# LANGUAGE NondecreasingIndentation #-}
 module Main where
 import Control.Monad
- 
+
 main :: IO ()
 main
   = do when (2 > 1) $
diff --git a/tests/examples/RoleAnnotations.hs b/tests/examples/RoleAnnotations.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE RoleAnnotations, PolyKinds, KindSignatures #-}
+
+module Roles where
+
+data T1 a = K1 a
+data T2 a = K2 a
+
+data T5 a = K5 a
+data T6 a = K6
+data T7 a b = K7 b
+
+type role T1 nominal
+type role T2 representational
+type role T3 phantom
+type role T4 nominal _
+type role T5   _
diff --git a/tests/examples/RoleAnnotations.hs.exactprinter.golden b/tests/examples/RoleAnnotations.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RoleAnnotations.hs.parser.golden b/tests/examples/RoleAnnotations.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations.hs.parser.golden
@@ -0,0 +1,640 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 17 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
+            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 19
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/RoleAnnotations.hs" 3 14 3 19
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/RoleAnnotations.hs" 3 8 3 13
+                 , srcInfoPoints = []
+                 }
+               "Roles")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 60
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 29 1 30
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 40 1 41
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 57 1 60
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "RoleAnnotations"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 31 1 40
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 42 1 56
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 5 11 5 12 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
+                     , srcInfoPoints = []
+                     }
+                   "T1"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 15
+                      , srcInfoPoints = []
+                      }
+                    "K1")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 6 11 6 12 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
+                     , srcInfoPoints = []
+                     }
+                   "T2"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 15
+                      , srcInfoPoints = []
+                      }
+                    "K2")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 8 11 8 12 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
+                     , srcInfoPoints = []
+                     }
+                   "T5"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 15
+                      , srcInfoPoints = []
+                      }
+                    "K5")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 9 11 9 12 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 10
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
+                     , srcInfoPoints = []
+                     }
+                   "T6"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
+                      , srcInfoPoints = []
+                      }
+                    "K6")
+                 [])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 10 13 10 14 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 12
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 10
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
+                        , srcInfoPoints = []
+                        }
+                      "T7"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 17
+                      , srcInfoPoints = []
+                      }
+                    "K7")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
+                          , srcInfoPoints = []
+                          }
+                        "b")
+                 ])
+          ]
+          []
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 5
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 12 6 12 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
+                  , srcInfoPoints = []
+                  }
+                "T1"))
+          [ Nominal
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 12 14 12 21
+                , srcInfoPoints = []
+                }
+          ]
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 5
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 13 6 13 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
+                  , srcInfoPoints = []
+                  }
+                "T2"))
+          [ Representational
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 13 14 13 30
+                , srcInfoPoints = []
+                }
+          ]
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 5
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 14 6 14 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
+                  , srcInfoPoints = []
+                  }
+                "T3"))
+          [ Phantom
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 14 14 14 21
+                , srcInfoPoints = []
+                }
+          ]
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 5
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 15 6 15 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
+                  , srcInfoPoints = []
+                  }
+                "T4"))
+          [ Nominal
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 14 15 21
+                , srcInfoPoints = []
+                }
+          , RoleWildcard
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 22 15 23
+                , srcInfoPoints = []
+                }
+          ]
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 5
+                , SrcSpan "tests/examples/RoleAnnotations.hs" 16 6 16 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
+                  , srcInfoPoints = []
+                  }
+                "T5"))
+          [ RoleWildcard
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations.hs" 16 16 16 17
+                , srcInfoPoints = []
+                }
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/RoleAnnotations.hs.prettyparser.golden b/tests/examples/RoleAnnotations.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RoleAnnotations.hs.prettyprinter.golden b/tests/examples/RoleAnnotations.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations.hs.prettyprinter.golden
@@ -0,0 +1,22 @@
+{-# LANGUAGE RoleAnnotations, PolyKinds, KindSignatures #-}
+module Roles where
+
+data T1 a = K1 a
+
+data T2 a = K2 a
+
+data T5 a = K5 a
+
+data T6 a = K6
+
+data T7 a b = K7 b
+
+type role T1 nominal
+
+type role T2 representational
+
+type role T3 phantom
+
+type role T4 nominal _
+
+type role T5 _
diff --git a/tests/examples/RoleAnnotations2.hs b/tests/examples/RoleAnnotations2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations2.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE RoleAnnotations #-}
+
+data Foo a = Foo a
+type role Foo representational
+
+main = print $ foo 1
+
+foo :: Int -> Int
+foo role = 42
diff --git a/tests/examples/RoleAnnotations2.hs.exactprinter.golden b/tests/examples/RoleAnnotations2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RoleAnnotations2.hs.parser.golden b/tests/examples/RoleAnnotations2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations2.hs.parser.golden
@@ -0,0 +1,379 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/RoleAnnotations2.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/RoleAnnotations2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 6 1 6 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 8 1 8 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 9 1 9 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 10 1 10 1
+            , SrcSpan "tests/examples/RoleAnnotations2.hs" 10 1 10 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/RoleAnnotations2.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations2.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "RoleAnnotations"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 3 1 3 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations2.hs" 3 12 3 13 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 3 6 3 11
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 3 6 3 9
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 3 10 3 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 3 10 3 11
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations2.hs" 3 14 3 19
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations2.hs" 3 14 3 19
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations2.hs" 3 14 3 17
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [ TyVar
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations2.hs" 3 18 3 19
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/RoleAnnotations2.hs" 3 18 3 19
+                          , srcInfoPoints = []
+                          }
+                        "a")
+                 ])
+          ]
+          []
+      , RoleAnnotDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 4 1 4 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations2.hs" 4 1 4 5
+                , SrcSpan "tests/examples/RoleAnnotations2.hs" 4 6 4 10
+                ]
+            }
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 4 11 4 14
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 4 11 4 14
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          [ Representational
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations2.hs" 4 15 4 31
+                , srcInfoPoints = []
+                }
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 6 1 6 21
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 6 1 6 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 6 1 6 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 6 6 6 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RoleAnnotations2.hs" 6 6 6 7 ]
+               }
+             (InfixApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 6 8 6 21
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 6 8 6 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 6 8 6 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RoleAnnotations2.hs" 6 8 6 13
+                           , srcInfoPoints = []
+                           }
+                         "print")))
+                (QVarOp
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 6 14 6 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 6 14 6 15
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RoleAnnotations2.hs" 6 14 6 15
+                           , srcInfoPoints = []
+                           }
+                         "$")))
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 6 16 6 21
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 6 16 6 19
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RoleAnnotations2.hs" 6 16 6 19
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/RoleAnnotations2.hs" 6 16 6 19
+                              , srcInfoPoints = []
+                              }
+                            "foo")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 6 20 6 21
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/RoleAnnotations2.hs" 6 20 6 21
+                           , srcInfoPoints = []
+                           }
+                         1
+                         "1")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 8 1 8 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/RoleAnnotations2.hs" 8 5 8 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations2.hs" 8 1 8 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/RoleAnnotations2.hs" 8 8 8 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/RoleAnnotations2.hs" 8 12 8 14 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 8 8 8 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 8 8 8 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 8 8 8 11
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/RoleAnnotations2.hs" 8 15 8 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/RoleAnnotations2.hs" 8 15 8 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/RoleAnnotations2.hs" 8 15 8 18
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/RoleAnnotations2.hs" 9 1 9 14
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/RoleAnnotations2.hs" 9 1 9 14
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations2.hs" 9 1 9 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/RoleAnnotations2.hs" 9 5 9 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/RoleAnnotations2.hs" 9 5 9 9
+                       , srcInfoPoints = []
+                       }
+                     "role")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/RoleAnnotations2.hs" 9 10 9 14
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/RoleAnnotations2.hs" 9 10 9 11 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/RoleAnnotations2.hs" 9 12 9 14
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/RoleAnnotations2.hs" 9 12 9 14
+                         , srcInfoPoints = []
+                         }
+                       42
+                       "42")))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/RoleAnnotations2.hs.prettyparser.golden b/tests/examples/RoleAnnotations2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/RoleAnnotations2.hs.prettyprinter.golden b/tests/examples/RoleAnnotations2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/RoleAnnotations2.hs.prettyprinter.golden
@@ -0,0 +1,9 @@
+{-# LANGUAGE RoleAnnotations #-}
+
+data Foo a = Foo a
+
+type role Foo representational
+main = print $ foo 1
+
+foo :: Int -> Int
+foo role = 42
diff --git a/tests/examples/Rules.hs.parser.golden b/tests/examples/Rules.hs.parser.golden
--- a/tests/examples/Rules.hs.parser.golden
+++ b/tests/examples/Rules.hs.parser.golden
@@ -1,1 +1,321 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 1 1 1,SrcSpan "tests/examples/Rules.hs" 1 1 1 1,SrcSpan "tests/examples/Rules.hs" 1 1 1 1,SrcSpan "tests/examples/Rules.hs" 2 1 2 1,SrcSpan "tests/examples/Rules.hs" 2 1 2 1]}) Nothing [] [] [RulePragmaDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 1 105, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 1 1 10,SrcSpan "tests/examples/Rules.hs" 1 102 1 105]}) [Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 11 1 101, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 11 1 23,SrcSpan "tests/examples/Rules.hs" 1 24 1 30,SrcSpan "tests/examples/Rules.hs" 1 61 1 62,SrcSpan "tests/examples/Rules.hs" 1 78 1 79]}) "head/build" Nothing (Just [TypedRuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 31 1 60, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 31 1 32,SrcSpan "tests/examples/Rules.hs" 1 33 1 35,SrcSpan "tests/examples/Rules.hs" 1 59 1 60]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 32 1 33, srcInfoPoints = []}) "g") (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 35 1 59, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 35 1 41,SrcSpan "tests/examples/Rules.hs" 1 43 1 44]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43, srcInfoPoints = []}) "b")]) Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 59, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 53 1 55]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 53, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 44 1 45,SrcSpan "tests/examples/Rules.hs" 1 52 1 53]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 52, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 46 1 48]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 52, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 49 1 51]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 49, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 49, srcInfoPoints = []}) "b")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 51 1 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 51 1 52, srcInfoPoints = []}) "b"))))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 59, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 56 1 58]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56, srcInfoPoints = []}) "b")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59, srcInfoPoints = []}) "b")))))]) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 77, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67, srcInfoPoints = []}) "head"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 68 1 77, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 68 1 69,SrcSpan "tests/examples/Rules.hs" 1 76 1 77]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 76, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74, srcInfoPoints = []}) "build"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76, srcInfoPoints = []}) "g")))))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 101, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 93, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81, srcInfoPoints = []}) "g"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 82 1 93, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 82 1 83,SrcSpan "tests/examples/Rules.hs" 1 92 1 93]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 83 1 92, srcInfoPoints = [SrcSpan "tests/examples/Rules.hs" 1 83 1 84,SrcSpan "tests/examples/Rules.hs" 1 88 1 90]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85, srcInfoPoints = []}) "x"),PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 86 1 87, srcInfoPoints = []})] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92, srcInfoPoints = []}) "x")))))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101, srcInfoPoints = []}) "badHead"))))]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Rules.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Rules.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Rules.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Rules.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Rules.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ RulePragmaDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 1 1 105
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Rules.hs" 1 1 1 10
+                , SrcSpan "tests/examples/Rules.hs" 1 102 1 105
+                ]
+            }
+          [ Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 11 1 101
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Rules.hs" 1 11 1 23
+                    , SrcSpan "tests/examples/Rules.hs" 1 24 1 30
+                    , SrcSpan "tests/examples/Rules.hs" 1 61 1 62
+                    , SrcSpan "tests/examples/Rules.hs" 1 78 1 79
+                    ]
+                }
+              "head/build"
+              Nothing
+              (Just
+                 [ TypedRuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 31 1 60
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/Rules.hs" 1 31 1 32
+                           , SrcSpan "tests/examples/Rules.hs" 1 33 1 35
+                           , SrcSpan "tests/examples/Rules.hs" 1 59 1 60
+                           ]
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 32 1 33
+                          , srcInfoPoints = []
+                          }
+                        "g")
+                     (TyForall
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 35 1 59
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Rules.hs" 1 35 1 41
+                              , SrcSpan "tests/examples/Rules.hs" 1 43 1 44
+                              ]
+                          }
+                        (Just
+                           [ UnkindedVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 42 1 43
+                                    , srcInfoPoints = []
+                                    }
+                                  "b")
+                           ])
+                        Nothing
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 59
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 53 1 55 ]
+                             }
+                           (TyParen
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 44 1 53
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Rules.hs" 1 44 1 45
+                                    , SrcSpan "tests/examples/Rules.hs" 1 52 1 53
+                                    ]
+                                }
+                              (TyFun
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 52
+                                   , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 46 1 48 ]
+                                   }
+                                 (TyVar
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 45 1 46
+                                         , srcInfoPoints = []
+                                         }
+                                       "a"))
+                                 (TyFun
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 52
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Rules.hs" 1 49 1 51 ]
+                                      }
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 48 1 49
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Rules.hs" 1 48 1 49
+                                            , srcInfoPoints = []
+                                            }
+                                          "b"))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 51 1 52
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Rules.hs" 1 51 1 52
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))))
+                           (TyFun
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 59
+                                , srcInfoPoints = [ SrcSpan "tests/examples/Rules.hs" 1 56 1 58 ]
+                                }
+                              (TyVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 55 1 56
+                                      , srcInfoPoints = []
+                                      }
+                                    "b"))
+                              (TyVar
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 58 1 59
+                                      , srcInfoPoints = []
+                                      }
+                                    "b")))))
+                 ])
+              (App
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 77
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 63 1 67
+                            , srcInfoPoints = []
+                            }
+                          "head")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 68 1 77
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Rules.hs" 1 68 1 69
+                          , SrcSpan "tests/examples/Rules.hs" 1 76 1 77
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 76
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 69 1 74
+                                  , srcInfoPoints = []
+                                  }
+                                "build")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 75 1 76
+                                  , srcInfoPoints = []
+                                  }
+                                "g"))))))
+              (App
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 101
+                   , srcInfoPoints = []
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 93
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 80 1 81
+                               , srcInfoPoints = []
+                               }
+                             "g")))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 82 1 93
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Rules.hs" 1 82 1 83
+                             , SrcSpan "tests/examples/Rules.hs" 1 92 1 93
+                             ]
+                         }
+                       (Lambda
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 83 1 92
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Rules.hs" 1 83 1 84
+                                , SrcSpan "tests/examples/Rules.hs" 1 88 1 90
+                                ]
+                            }
+                          [ PVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 84 1 85
+                                   , srcInfoPoints = []
+                                   }
+                                 "x")
+                          , PWildCard
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 86 1 87
+                                , srcInfoPoints = []
+                                }
+                          ]
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 91 1 92
+                                     , srcInfoPoints = []
+                                     }
+                                   "x"))))))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Rules.hs" 1 94 1 101
+                            , srcInfoPoints = []
+                            }
+                          "badHead"))))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/Rules.hs.prettyprinter.golden b/tests/examples/Rules.hs.prettyprinter.golden
--- a/tests/examples/Rules.hs.prettyprinter.golden
+++ b/tests/examples/Rules.hs.prettyprinter.golden
@@ -1,5 +1,3 @@
-module Main (main) where
- 
 {-# RULES
 "head/build" forall (g :: forall b . (a -> b -> b) -> b -> b) .
              head (build g) = g (\ x _ -> x) badHead
diff --git a/tests/examples/SCCPragmas.hs.parser.golden b/tests/examples/SCCPragmas.hs.parser.golden
--- a/tests/examples/SCCPragmas.hs.parser.golden
+++ b/tests/examples/SCCPragmas.hs.parser.golden
@@ -1,1 +1,78 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 1,SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 1,SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 1,SrcSpan "tests/examples/SCCPragmas.hs" 4 1 4 1,SrcSpan "tests/examples/SCCPragmas.hs" 4 1 4 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 24, srcInfoPoints = [SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 7,SrcSpan "tests/examples/SCCPragmas.hs" 1 19 1 24]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 8 1 18, srcInfoPoints = []}) "SCCPragmas") Nothing Nothing)) [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 3 3 27, srcInfoPoints = [SrcSpan "tests/examples/SCCPragmas.hs" 3 3 3 4]}) (SCCPragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 5 3 27, srcInfoPoints = [SrcSpan "tests/examples/SCCPragmas.hs" 3 13 3 21,SrcSpan "tests/examples/SCCPragmas.hs" 3 22 3 25]}) "wibble" (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 26 3 27, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 26 3 27, srcInfoPoints = []}) 3 "3")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 1
+            , SrcSpan "tests/examples/SCCPragmas.hs" 4 1 4 1
+            , SrcSpan "tests/examples/SCCPragmas.hs" 4 1 4 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/SCCPragmas.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/SCCPragmas.hs" 1 19 1 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 1 8 1 18
+                 , srcInfoPoints = []
+                 }
+               "SCCPragmas")
+            Nothing
+            Nothing))
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 1 3 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 3 3 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/SCCPragmas.hs" 3 3 3 4 ]
+               }
+             (SCCPragma
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 5 3 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SCCPragmas.hs" 3 13 3 21
+                      , SrcSpan "tests/examples/SCCPragmas.hs" 3 22 3 25
+                      ]
+                  }
+                "wibble"
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 26 3 27
+                     , srcInfoPoints = []
+                     }
+                   (Int
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/SCCPragmas.hs" 3 26 3 27
+                        , srcInfoPoints = []
+                        }
+                      3
+                      "3"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/SafeImports1.hs.parser.golden b/tests/examples/SafeImports1.hs.parser.golden
--- a/tests/examples/SafeImports1.hs.parser.golden
+++ b/tests/examples/SafeImports1.hs.parser.golden
@@ -1,1 +1,65 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 1,SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports1.hs" 3 1 3 1,SrcSpan "tests/examples/SafeImports1.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 13,SrcSpan "tests/examples/SafeImports1.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 14 1 25, srcInfoPoints = []}) "SafeImports"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 7,SrcSpan "tests/examples/SafeImports1.hs" 2 8 2 12,SrcSpan "tests/examples/SafeImports1.hs" 2 21 2 23]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 13 2 20, srcInfoPoints = []}) "Prelude", importQualified = False, importSrc = False, importSafe = True, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 24 2 25, srcInfoPoints = []}) "P"), importSpecs = Nothing}] [],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports1.hs" 3 1 3 1
+            , SrcSpan "tests/examples/SafeImports1.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SafeImports1.hs" 1 1 1 13
+                , SrcSpan "tests/examples/SafeImports1.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "SafeImports"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SafeImports1.hs" 2 1 2 7
+                    , SrcSpan "tests/examples/SafeImports1.hs" 2 8 2 12
+                    , SrcSpan "tests/examples/SafeImports1.hs" 2 21 2 23
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 13 2 20
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = True
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/SafeImports1.hs" 2 24 2 25
+                     , srcInfoPoints = []
+                     }
+                   "P")
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/SafeImports1.hs.prettyprinter.golden b/tests/examples/SafeImports1.hs.prettyprinter.golden
--- a/tests/examples/SafeImports1.hs.prettyprinter.golden
+++ b/tests/examples/SafeImports1.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE SafeImports #-}
-module Main (main) where
 import safe Prelude as P
diff --git a/tests/examples/SafeImports2.hs.parser.golden b/tests/examples/SafeImports2.hs.parser.golden
--- a/tests/examples/SafeImports2.hs.parser.golden
+++ b/tests/examples/SafeImports2.hs.parser.golden
@@ -1,1 +1,65 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 1,SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports2.hs" 3 1 3 1,SrcSpan "tests/examples/SafeImports2.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 22, srcInfoPoints = [SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 13,SrcSpan "tests/examples/SafeImports2.hs" 1 19 1 22]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 14 1 18, srcInfoPoints = []}) "Safe"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 7,SrcSpan "tests/examples/SafeImports2.hs" 2 8 2 12,SrcSpan "tests/examples/SafeImports2.hs" 2 21 2 23]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 13 2 20, srcInfoPoints = []}) "Prelude", importQualified = False, importSrc = False, importSafe = True, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 24 2 25, srcInfoPoints = []}) "P"), importSpecs = Nothing}] [],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/SafeImports2.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SafeImports2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/SafeImports2.hs" 1 19 1 22
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 1 14 1 18
+                , srcInfoPoints = []
+                }
+              "Safe"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SafeImports2.hs" 2 1 2 7
+                    , SrcSpan "tests/examples/SafeImports2.hs" 2 8 2 12
+                    , SrcSpan "tests/examples/SafeImports2.hs" 2 21 2 23
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 13 2 20
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = True
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/SafeImports2.hs" 2 24 2 25
+                     , srcInfoPoints = []
+                     }
+                   "P")
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/SafeImports2.hs.prettyprinter.golden b/tests/examples/SafeImports2.hs.prettyprinter.golden
--- a/tests/examples/SafeImports2.hs.prettyprinter.golden
+++ b/tests/examples/SafeImports2.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE Safe #-}
-module Main (main) where
 import safe Prelude as P
diff --git a/tests/examples/SafeImports3.hs.parser.golden b/tests/examples/SafeImports3.hs.parser.golden
--- a/tests/examples/SafeImports3.hs.parser.golden
+++ b/tests/examples/SafeImports3.hs.parser.golden
@@ -1,1 +1,65 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 1,SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1,SrcSpan "tests/examples/SafeImports3.hs" 3 1 3 1,SrcSpan "tests/examples/SafeImports3.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 13,SrcSpan "tests/examples/SafeImports3.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 14 1 25, srcInfoPoints = []}) "Trustworthy"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 25, srcInfoPoints = [SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 7,SrcSpan "tests/examples/SafeImports3.hs" 2 8 2 12,SrcSpan "tests/examples/SafeImports3.hs" 2 21 2 23]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 13 2 20, srcInfoPoints = []}) "Prelude", importQualified = False, importSrc = False, importSafe = True, importPkg = Nothing, importAs = Just (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 24 2 25, srcInfoPoints = []}) "P"), importSpecs = Nothing}] [],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SafeImports3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/SafeImports3.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SafeImports3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/SafeImports3.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "Trustworthy"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 25
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SafeImports3.hs" 2 1 2 7
+                    , SrcSpan "tests/examples/SafeImports3.hs" 2 8 2 12
+                    , SrcSpan "tests/examples/SafeImports3.hs" 2 21 2 23
+                    ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 13 2 20
+                  , srcInfoPoints = []
+                  }
+                "Prelude"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = True
+          , importPkg = Nothing
+          , importAs =
+              Just
+                (ModuleName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/SafeImports3.hs" 2 24 2 25
+                     , srcInfoPoints = []
+                     }
+                   "P")
+          , importSpecs = Nothing
+          }
+      ]
+      []
+  , []
+  )
diff --git a/tests/examples/SafeImports3.hs.prettyprinter.golden b/tests/examples/SafeImports3.hs.prettyprinter.golden
--- a/tests/examples/SafeImports3.hs.prettyprinter.golden
+++ b/tests/examples/SafeImports3.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE Trustworthy #-}
-module Main (main) where
 import safe Prelude as P
diff --git a/tests/examples/ScopedTypeVariables.hs.parser.golden b/tests/examples/ScopedTypeVariables.hs.parser.golden
--- a/tests/examples/ScopedTypeVariables.hs.parser.golden
+++ b/tests/examples/ScopedTypeVariables.hs.parser.golden
@@ -1,1 +1,630 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 13 1, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1,SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 37, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 13,SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 34 1 37]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 14 1 33, srcInfoPoints = []}) "ScopedTypeVariables"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 16, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 6 3 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 5, srcInfoPoints = []}) "test"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 16, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16, srcInfoPoints = []}) "Char")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 6 13, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5, srcInfoPoints = []}) "test")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 6 13, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 4 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 6 13, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 4 10,SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 5,SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 5,SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 25, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 15 5 17]}) (PatTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 14, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 7 5 9]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6, srcInfoPoints = []}) "x")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14, srcInfoPoints = []}) "Char")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25, srcInfoPoints = []}) "getChar"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13, srcInfoPoints = []}) "x"))))])) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 26, srcInfoPoints = []}) (PatTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 16, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 7 9 9]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6, srcInfoPoints = []}) "value")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16, srcInfoPoints = []}) "String")))) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 26, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 18]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26, srcInfoPoints = []}) "Hello" "Hello"))) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 40, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 12 11 14]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 11, srcInfoPoints = []}) "forallTest"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 40, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 21,SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 24 11 25]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23, srcInfoPoints = []}) "x")]) (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30, srcInfoPoints = []}) "x")]))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 40, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 36 11 38]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35, srcInfoPoints = []}) "x")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40, srcInfoPoints = []}) "x")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 11, srcInfoPoints = []}) "forallTest") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 54, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 15]}) (If (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 54, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 18,SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 26 12 30,SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 48 12 52]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 25, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23, srcInfoPoints = []}) "=="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25, srcInfoPoints = []}) "x")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 47, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 32,SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 46 12 47]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 46, srcInfoPoints = [SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 42 12 44]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41, srcInfoPoints = []}) "undefined"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46, srcInfoPoints = []}) "x")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54, srcInfoPoints = []}) "x"))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 13 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1
+            , SrcSpan "tests/examples/ScopedTypeVariables.hs" 13 1 13 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 34 1 37
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 1 14 1 33
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 6 3 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 1 3 5
+                , srcInfoPoints = []
+                }
+              "test"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 16
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 9 3 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 3 12 3 16
+                        , srcInfoPoints = []
+                        }
+                      "Char"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 6 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 1 4 5
+                  , srcInfoPoints = []
+                  }
+                "test"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 6 13
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 6 4 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 6 13
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 4 8 4 10
+                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 5
+                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 5
+                      , SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 0
+                      ]
+                  }
+                [ Generator
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 25
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 15 5 17 ]
+                      }
+                    (PatTypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 7 5 9 ]
+                         }
+                       (PVar
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 5 5 6
+                               , srcInfoPoints = []
+                               }
+                             "x"))
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 10 5 14
+                                  , srcInfoPoints = []
+                                  }
+                                "Char"))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 5 18 5 25
+                               , srcInfoPoints = []
+                               }
+                             "getChar")))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 13
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 5 6 11
+                                  , srcInfoPoints = []
+                                  }
+                                "return")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 6 12 6 13
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                ]))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 26
+            , srcInfoPoints = []
+            }
+          (PatTypeSig
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 16
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 7 9 9 ]
+               }
+             (PVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 1 9 6
+                     , srcInfoPoints = []
+                     }
+                   "value"))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 10 9 16
+                        , srcInfoPoints = []
+                        }
+                      "String"))))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 26
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 17 9 18 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26
+                  , srcInfoPoints = []
+                  }
+                (String
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 9 19 9 26
+                     , srcInfoPoints = []
+                     }
+                   "Hello"
+                   "Hello")))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 12 11 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 1 11 11
+                , srcInfoPoints = []
+                }
+              "forallTest"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 40
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 15 11 21
+                   , SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 24 11 25
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 22 11 23
+                         , srcInfoPoints = []
+                         }
+                       "x")
+                ])
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28
+                                    , srcInfoPoints = []
+                                    }
+                                  "Eq")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30
+                                 , srcInfoPoints = []
+                                 }
+                               "x"))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 36 11 38 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 34 11 35
+                        , srcInfoPoints = []
+                        }
+                      "x"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 39 11 40
+                        , srcInfoPoints = []
+                        }
+                      "x"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 54
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 1 12 11
+                   , srcInfoPoints = []
+                   }
+                 "forallTest")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 12 12 13
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 54
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 14 12 15 ]
+                   }
+                 (If
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 54
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 16 12 18
+                          , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 26 12 30
+                          , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 48 12 52
+                          ]
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 25
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 19 12 20
+                                  , srcInfoPoints = []
+                                  }
+                                "x")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 21 12 23
+                                  , srcInfoPoints = []
+                                  }
+                                "==")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 24 12 25
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 47
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 31 12 32
+                             , SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 46 12 47
+                             ]
+                         }
+                       (ExpTypeSig
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 46
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 42 12 44 ]
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 32 12 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "undefined")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 45 12 46
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/ScopedTypeVariables.hs" 12 53 12 54
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ScopedTypeVariables.hs.prettyprinter.golden b/tests/examples/ScopedTypeVariables.hs.prettyprinter.golden
--- a/tests/examples/ScopedTypeVariables.hs.prettyprinter.golden
+++ b/tests/examples/ScopedTypeVariables.hs.prettyprinter.golden
@@ -1,11 +1,10 @@
 {-# LANGUAGE ScopedTypeVariables #-}
-module Main (main) where
- 
+
 test :: IO Char
 test
   = do x :: Char <- getChar
        return x
 value :: String = "Hello"
- 
+
 forallTest :: forall x . Eq x => x -> x
 forallTest x = if x == x then (undefined :: x) else x
diff --git a/tests/examples/SimpleDeriving.hs.parser.golden b/tests/examples/SimpleDeriving.hs.parser.golden
--- a/tests/examples/SimpleDeriving.hs.parser.golden
+++ b/tests/examples/SimpleDeriving.hs.parser.golden
@@ -1,1 +1,101 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1,SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1,SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1,SrcSpan "tests/examples/SimpleDeriving.hs" 2 1 2 1,SrcSpan "tests/examples/SimpleDeriving.hs" 2 1 2 1]}) Nothing [] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/SimpleDeriving.hs" 1 8 1 9]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 6 1 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 6 1 7, srcInfoPoints = []}) "T")) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11, srcInfoPoints = []}) "T") [])] (Just (Deriving (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 12 1 23, srcInfoPoints = [SrcSpan "tests/examples/SimpleDeriving.hs" 1 12 1 20]}) [IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23, srcInfoPoints = []}) Nothing Nothing (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23, srcInfoPoints = []}) "Eq")))]))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SimpleDeriving.hs" 2 1 2 1
+            , SrcSpan "tests/examples/SimpleDeriving.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SimpleDeriving.hs" 1 8 1 9 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 1 1 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 6 1 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/SimpleDeriving.hs" 1 6 1 7
+                  , srcInfoPoints = []
+                  }
+                "T"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SimpleDeriving.hs" 1 10 1 11
+                      , srcInfoPoints = []
+                      }
+                    "T")
+                 [])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SimpleDeriving.hs" 1 12 1 23
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SimpleDeriving.hs" 1 12 1 20 ]
+                }
+              Nothing
+              [ IRule
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23
+                    , srcInfoPoints = []
+                    }
+                  Nothing
+                  Nothing
+                  (IHCon
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23
+                       , srcInfoPoints = []
+                       }
+                     (UnQual
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/SimpleDeriving.hs" 1 21 1 23
+                             , srcInfoPoints = []
+                             }
+                           "Eq")))
+              ]
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/SimpleDeriving.hs.prettyprinter.golden b/tests/examples/SimpleDeriving.hs.prettyprinter.golden
--- a/tests/examples/SimpleDeriving.hs.prettyprinter.golden
+++ b/tests/examples/SimpleDeriving.hs.prettyprinter.golden
@@ -1,4 +1,1 @@
-module Main (main) where
- 
-data T = T
-       deriving Eq
+data T = T deriving Eq
diff --git a/tests/examples/SingleClassAsst.hs.parser.golden b/tests/examples/SingleClassAsst.hs.parser.golden
--- a/tests/examples/SingleClassAsst.hs.parser.golden
+++ b/tests/examples/SingleClassAsst.hs.parser.golden
@@ -1,1 +1,214 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 1,SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 1,SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 1,SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 1,SrcSpan "tests/examples/SingleClassAsst.hs" 5 1 5 1,SrcSpan "tests/examples/SingleClassAsst.hs" 5 1 5 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 18, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 7,SrcSpan "tests/examples/SingleClassAsst.hs" 1 13 1 18]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 1 8 1 12, srcInfoPoints = []}) "Test") Nothing Nothing)) [] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 24, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 3 5 3 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 4, srcInfoPoints = []}) "foo"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 24, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 17, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 9,SrcSpan "tests/examples/SingleClassAsst.hs" 3 13 3 14,SrcSpan "tests/examples/SingleClassAsst.hs" 3 15 3 17]}) (ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 17, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 9,SrcSpan "tests/examples/SingleClassAsst.hs" 3 13 3 14,SrcSpan "tests/examples/SingleClassAsst.hs" 3 15 3 17]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 12 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 12 3 13, srcInfoPoints = []}) "a")])))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 24, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 3 20 3 22]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 19, srcInfoPoints = []}) "a")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 23 3 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 23 3 24, srcInfoPoints = []}) "a")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 10, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 4, srcInfoPoints = []}) "foo") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 5 4 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 5 4 6, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 7 4 10, srcInfoPoints = [SrcSpan "tests/examples/SingleClassAsst.hs" 4 7 4 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10, srcInfoPoints = []}) "x")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 1
+            , SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 1
+            , SrcSpan "tests/examples/SingleClassAsst.hs" 5 1 5 1
+            , SrcSpan "tests/examples/SingleClassAsst.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/SingleClassAsst.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/SingleClassAsst.hs" 1 13 1 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/SingleClassAsst.hs" 1 8 1 12
+                 , srcInfoPoints = []
+                 }
+               "Test")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SingleClassAsst.hs" 3 5 3 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 3 1 3 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 24
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 9
+                         , SrcSpan "tests/examples/SingleClassAsst.hs" 3 13 3 14
+                         , SrcSpan "tests/examples/SingleClassAsst.hs" 3 15 3 17
+                         ]
+                     }
+                   (ParenA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/SingleClassAsst.hs" 3 8 3 9
+                            , SrcSpan "tests/examples/SingleClassAsst.hs" 3 13 3 14
+                            , SrcSpan "tests/examples/SingleClassAsst.hs" 3 15 3 17
+                            ]
+                        }
+                      (TypeA
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13
+                           , srcInfoPoints = []
+                           }
+                         (TyApp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13
+                              , srcInfoPoints = []
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11
+                                       , srcInfoPoints = []
+                                       }
+                                     "Eq")))
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SingleClassAsst.hs" 3 12 3 13
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/SingleClassAsst.hs" 3 12 3 13
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")))))))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SingleClassAsst.hs" 3 20 3 22 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SingleClassAsst.hs" 3 18 3 19
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SingleClassAsst.hs" 3 23 3 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SingleClassAsst.hs" 3 23 3 24
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 1 4 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 5 4 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/SingleClassAsst.hs" 4 5 4 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SingleClassAsst.hs" 4 7 4 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SingleClassAsst.hs" 4 7 4 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SingleClassAsst.hs" 4 9 4 10
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/SingleClassAsst.hs.prettyprinter.golden b/tests/examples/SingleClassAsst.hs.prettyprinter.golden
--- a/tests/examples/SingleClassAsst.hs.prettyprinter.golden
+++ b/tests/examples/SingleClassAsst.hs.prettyprinter.golden
@@ -1,4 +1,4 @@
 module Test where
- 
+
 foo :: (Eq a) => a -> a
 foo x = x
diff --git a/tests/examples/SpecializeInstance.hs.parser.golden b/tests/examples/SpecializeInstance.hs.parser.golden
--- a/tests/examples/SpecializeInstance.hs.parser.golden
+++ b/tests/examples/SpecializeInstance.hs.parser.golden
@@ -1,1 +1,813 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 1,SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 1]}) Nothing [] [] [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 5 0, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 9,SrcSpan "tests/examples/SpecializeInstance.hs" 1 37 1 42,SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 8,SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 8,SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 8,SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 0]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 36, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15, srcInfoPoints = []}) "Sized")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 16 1 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 16 1 17, srcInfoPoints = []}) "a")]))) (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 36, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26, srcInfoPoints = []}) "Sized"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 27 1 36, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 1 27 1 28,SrcSpan "tests/examples/SpecializeInstance.hs" 1 35 1 36]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 35, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33, srcInfoPoints = []}) "Digit"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 34 1 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 1 34 1 35, srcInfoPoints = []}) "a")))))) (Just [InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 58, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 22,SrcSpan "tests/examples/SpecializeInstance.hs" 2 23 2 31,SrcSpan "tests/examples/SpecializeInstance.hs" 2 55 2 58]}) (InstSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 58, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 22,SrcSpan "tests/examples/SpecializeInstance.hs" 2 23 2 31,SrcSpan "tests/examples/SpecializeInstance.hs" 2 55 2 58]}) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 54, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 54, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37, srcInfoPoints = []}) "Sized"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 38 2 54, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 2 38 2 39,SrcSpan "tests/examples/SpecializeInstance.hs" 2 53 2 54]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 53, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 44, srcInfoPoints = []}) "Digit"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 45 2 53, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 2 45 2 46,SrcSpan "tests/examples/SpecializeInstance.hs" 2 52 2 53]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 46 2 52, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 46 2 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 46 2 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 46 2 50, srcInfoPoints = []}) "Elem"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 51 2 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 2 51 2 52, srcInfoPoints = []}) "a"))))))))),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 58, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 22,SrcSpan "tests/examples/SpecializeInstance.hs" 3 23 3 31,SrcSpan "tests/examples/SpecializeInstance.hs" 3 55 3 58]}) (InstSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 58, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 22,SrcSpan "tests/examples/SpecializeInstance.hs" 3 23 3 31,SrcSpan "tests/examples/SpecializeInstance.hs" 3 55 3 58]}) (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 54, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 54, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37, srcInfoPoints = []}) "Sized"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 38 3 54, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 3 38 3 39,SrcSpan "tests/examples/SpecializeInstance.hs" 3 53 3 54]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 53, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 44, srcInfoPoints = []}) "Digit"))) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 45 3 53, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 3 45 3 46,SrcSpan "tests/examples/SpecializeInstance.hs" 3 52 3 53]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 46 3 52, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 46 3 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 46 3 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 46 3 50, srcInfoPoints = []}) "Node"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 51 3 52, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 3 51 3 52, srcInfoPoints = []}) "a"))))))))),InsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50, srcInfoPoints = []}) (FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 12, srcInfoPoints = []}) "size") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 13 4 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 13 4 15, srcInfoPoints = []}) "xs")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 16 4 50, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 4 16 4 17]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 50, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 47, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 45, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 23, srcInfoPoints = []}) "foldl"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 24 4 45, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 4 24 4 25,SrcSpan "tests/examples/SpecializeInstance.hs" 4 44 4 45]}) (Lambda (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 25 4 44, srcInfoPoints = [SrcSpan "tests/examples/SpecializeInstance.hs" 4 25 4 26,SrcSpan "tests/examples/SpecializeInstance.hs" 4 31 4 33]}) [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 27 4 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 27 4 28, srcInfoPoints = []}) "i"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 29 4 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 29 4 30, srcInfoPoints = []}) "x")] (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 34 4 44, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 34 4 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 34 4 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 34 4 35, srcInfoPoints = []}) "i"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 36 4 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 36 4 37, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 36 4 37, srcInfoPoints = []}) "+"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 38 4 44, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 38 4 42, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 38 4 42, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 38 4 42, srcInfoPoints = []}) "size"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 43 4 44, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 43 4 44, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 43 4 44, srcInfoPoints = []}) "x")))))))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 46 4 47, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 46 4 47, srcInfoPoints = []}) 0 "0"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 48 4 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 48 4 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializeInstance.hs" 4 48 4 50, srcInfoPoints = []}) "xs"))))) Nothing])])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 1
+            , SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ InstDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 5 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 1 1 9
+                , SrcSpan "tests/examples/SpecializeInstance.hs" 1 37 1 42
+                , SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 8
+                , SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 8
+                , SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 8
+                , SrcSpan "tests/examples/SpecializeInstance.hs" 5 1 5 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 36
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15
+                                    , srcInfoPoints = []
+                                    }
+                                  "Sized")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SpecializeInstance.hs" 1 16 1 17
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SpecializeInstance.hs" 1 16 1 17
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 36
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 21 1 26
+                           , srcInfoPoints = []
+                           }
+                         "Sized")))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializeInstance.hs" 1 27 1 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 27 1 28
+                         , SrcSpan "tests/examples/SpecializeInstance.hs" 1 35 1 36
+                         ]
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 35
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SpecializeInstance.hs" 1 28 1 33
+                                 , srcInfoPoints = []
+                                 }
+                               "Digit")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 34 1 35
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SpecializeInstance.hs" 1 34 1 35
+                              , srcInfoPoints = []
+                              }
+                            "a"))))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 58
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 22
+                       , SrcSpan "tests/examples/SpecializeInstance.hs" 2 23 2 31
+                       , SrcSpan "tests/examples/SpecializeInstance.hs" 2 55 2 58
+                       ]
+                   }
+                 (InstSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 58
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializeInstance.hs" 2 8 2 22
+                          , SrcSpan "tests/examples/SpecializeInstance.hs" 2 23 2 31
+                          , SrcSpan "tests/examples/SpecializeInstance.hs" 2 55 2 58
+                          ]
+                      }
+                    (IRule
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 54
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       Nothing
+                       (IHApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 54
+                            , srcInfoPoints = []
+                            }
+                          (IHCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 2 32 2 37
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sized")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializeInstance.hs" 2 38 2 54
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/SpecializeInstance.hs" 2 38 2 39
+                                   , SrcSpan "tests/examples/SpecializeInstance.hs" 2 53 2 54
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 53
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 44
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/SpecializeInstance.hs" 2 39 2 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 2 39 2 44
+                                           , srcInfoPoints = []
+                                           }
+                                         "Digit")))
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 2 45 2 53
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/SpecializeInstance.hs" 2 45 2 46
+                                         , SrcSpan "tests/examples/SpecializeInstance.hs" 2 52 2 53
+                                         ]
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/SpecializeInstance.hs" 2 46 2 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 2 46 2 50
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 2 46 2 50
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/SpecializeInstance.hs"
+                                                       2
+                                                       46
+                                                       2
+                                                       50
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Elem")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 2 51 2 52
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 2 51 2 52
+                                              , srcInfoPoints = []
+                                              }
+                                            "a")))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 58
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 22
+                       , SrcSpan "tests/examples/SpecializeInstance.hs" 3 23 3 31
+                       , SrcSpan "tests/examples/SpecializeInstance.hs" 3 55 3 58
+                       ]
+                   }
+                 (InstSig
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 58
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializeInstance.hs" 3 8 3 22
+                          , SrcSpan "tests/examples/SpecializeInstance.hs" 3 23 3 31
+                          , SrcSpan "tests/examples/SpecializeInstance.hs" 3 55 3 58
+                          ]
+                      }
+                    (IRule
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 54
+                         , srcInfoPoints = []
+                         }
+                       Nothing
+                       Nothing
+                       (IHApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 54
+                            , srcInfoPoints = []
+                            }
+                          (IHCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 3 32 3 37
+                                     , srcInfoPoints = []
+                                     }
+                                   "Sized")))
+                          (TyParen
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializeInstance.hs" 3 38 3 54
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/SpecializeInstance.hs" 3 38 3 39
+                                   , SrcSpan "tests/examples/SpecializeInstance.hs" 3 53 3 54
+                                   ]
+                               }
+                             (TyApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 53
+                                  , srcInfoPoints = []
+                                  }
+                                (TyCon
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 44
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/SpecializeInstance.hs" 3 39 3 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 3 39 3 44
+                                           , srcInfoPoints = []
+                                           }
+                                         "Digit")))
+                                (TyParen
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializeInstance.hs" 3 45 3 53
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/SpecializeInstance.hs" 3 45 3 46
+                                         , SrcSpan "tests/examples/SpecializeInstance.hs" 3 52 3 53
+                                         ]
+                                     }
+                                   (TyApp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/SpecializeInstance.hs" 3 46 3 52
+                                        , srcInfoPoints = []
+                                        }
+                                      (TyCon
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 3 46 3 50
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 3 46 3 50
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan
+                                                       "tests/examples/SpecializeInstance.hs"
+                                                       3
+                                                       46
+                                                       3
+                                                       50
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "Node")))
+                                      (TyVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 3 51 3 52
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 3 51 3 52
+                                              , srcInfoPoints = []
+                                              }
+                                            "a")))))))))
+             , InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 50
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/SpecializeInstance.hs" 4 8 4 12
+                             , srcInfoPoints = []
+                             }
+                           "size")
+                        [ PVar
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/SpecializeInstance.hs" 4 13 4 15
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/SpecializeInstance.hs" 4 13 4 15
+                                 , srcInfoPoints = []
+                                 }
+                               "xs")
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/SpecializeInstance.hs" 4 16 4 50
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/SpecializeInstance.hs" 4 16 4 17 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 50
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 47
+                                   , srcInfoPoints = []
+                                   }
+                                 (App
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/SpecializeInstance.hs" 4 18 4 45
+                                      , srcInfoPoints = []
+                                      }
+                                    (Var
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/SpecializeInstance.hs" 4 18 4 23
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/SpecializeInstance.hs" 4 18 4 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/SpecializeInstance.hs"
+                                                     4
+                                                     18
+                                                     4
+                                                     23
+                                               , srcInfoPoints = []
+                                               }
+                                             "foldl")))
+                                    (Paren
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/SpecializeInstance.hs" 4 24 4 45
+                                         , srcInfoPoints =
+                                             [ SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 4 24 4 25
+                                             , SrcSpan
+                                                 "tests/examples/SpecializeInstance.hs" 4 44 4 45
+                                             ]
+                                         }
+                                       (Lambda
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/SpecializeInstance.hs" 4 25 4 44
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 4 25 4 26
+                                                , SrcSpan
+                                                    "tests/examples/SpecializeInstance.hs" 4 31 4 33
+                                                ]
+                                            }
+                                          [ PVar
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/SpecializeInstance.hs"
+                                                      4
+                                                      27
+                                                      4
+                                                      28
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/SpecializeInstance.hs"
+                                                         4
+                                                         27
+                                                         4
+                                                         28
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "i")
+                                          , PVar
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan
+                                                      "tests/examples/SpecializeInstance.hs"
+                                                      4
+                                                      29
+                                                      4
+                                                      30
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan
+                                                         "tests/examples/SpecializeInstance.hs"
+                                                         4
+                                                         29
+                                                         4
+                                                         30
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "x")
+                                          ]
+                                          (InfixApp
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/SpecializeInstance.hs"
+                                                     4
+                                                     34
+                                                     4
+                                                     44
+                                               , srcInfoPoints = []
+                                               }
+                                             (Var
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/SpecializeInstance.hs"
+                                                        4
+                                                        34
+                                                        4
+                                                        35
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/SpecializeInstance.hs"
+                                                           4
+                                                           34
+                                                           4
+                                                           35
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Ident
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/SpecializeInstance.hs"
+                                                              4
+                                                              34
+                                                              4
+                                                              35
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "i")))
+                                             (QVarOp
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/SpecializeInstance.hs"
+                                                        4
+                                                        36
+                                                        4
+                                                        37
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (UnQual
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/SpecializeInstance.hs"
+                                                           4
+                                                           36
+                                                           4
+                                                           37
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (Symbol
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/SpecializeInstance.hs"
+                                                              4
+                                                              36
+                                                              4
+                                                              37
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      "+")))
+                                             (App
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/SpecializeInstance.hs"
+                                                        4
+                                                        38
+                                                        4
+                                                        44
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/SpecializeInstance.hs"
+                                                           4
+                                                           38
+                                                           4
+                                                           42
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/SpecializeInstance.hs"
+                                                              4
+                                                              38
+                                                              4
+                                                              42
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/SpecializeInstance.hs"
+                                                                 4
+                                                                 38
+                                                                 4
+                                                                 42
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "size")))
+                                                (Var
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/SpecializeInstance.hs"
+                                                           4
+                                                           43
+                                                           4
+                                                           44
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   (UnQual
+                                                      SrcSpanInfo
+                                                        { srcInfoSpan =
+                                                            SrcSpan
+                                                              "tests/examples/SpecializeInstance.hs"
+                                                              4
+                                                              43
+                                                              4
+                                                              44
+                                                        , srcInfoPoints = []
+                                                        }
+                                                      (Ident
+                                                         SrcSpanInfo
+                                                           { srcInfoSpan =
+                                                               SrcSpan
+                                                                 "tests/examples/SpecializeInstance.hs"
+                                                                 4
+                                                                 43
+                                                                 4
+                                                                 44
+                                                           , srcInfoPoints = []
+                                                           }
+                                                         "x"))))))))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/SpecializeInstance.hs" 4 46 4 47
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/SpecializeInstance.hs" 4 46 4 47
+                                         , srcInfoPoints = []
+                                         }
+                                       0
+                                       "0")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/SpecializeInstance.hs" 4 48 4 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/SpecializeInstance.hs" 4 48 4 50
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/SpecializeInstance.hs" 4 48 4 50
+                                         , srcInfoPoints = []
+                                         }
+                                       "xs")))))
+                        Nothing
+                    ])
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/SpecializeInstance.hs.prettyprinter.golden b/tests/examples/SpecializeInstance.hs.prettyprinter.golden
--- a/tests/examples/SpecializeInstance.hs.prettyprinter.golden
+++ b/tests/examples/SpecializeInstance.hs.prettyprinter.golden
@@ -1,8 +1,5 @@
-module Main (main) where
- 
 instance Sized a => Sized (Digit a) where
-         
         {-# SPECIALISE instance Sized (Digit (Elem a)) #-}
-         
+        
         {-# SPECIALISE instance Sized (Digit (Node a)) #-}
         size xs = foldl (\ i x -> i + size x) 0 xs
diff --git a/tests/examples/SpecializePhaseControl.hs.parser.golden b/tests/examples/SpecializePhaseControl.hs.parser.golden
--- a/tests/examples/SpecializePhaseControl.hs.parser.golden
+++ b/tests/examples/SpecializePhaseControl.hs.parser.golden
@@ -1,1 +1,1036 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 16 1, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 9 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 16 1 16 1,SrcSpan "tests/examples/SpecializePhaseControl.hs" 16 1 16 1]}) Nothing [] [] [SpecSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 4 30, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 15,SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 22 1 24,SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 38 2 39,SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 34 3 35,SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 27 4 30]}) (Just (ActiveFrom (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 16 1 19, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 16 1 17,SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 17 1 18,SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 18 1 19]}) 1)) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 20 1 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 20 1 21, srcInfoPoints = []}) "x")) [TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 17 2 19]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 17 2 19]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16, srcInfoPoints = []}) "Integer"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 28 2 30]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27, srcInfoPoints = []}) "Integer"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38, srcInfoPoints = []}) "Integer"))))),TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 17 3 19]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 17 3 19]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16, srcInfoPoints = []}) "Integer"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 24 3 26]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34, srcInfoPoints = []}) "Integer"))))),TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 13 4 15]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 13 4 15]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12, srcInfoPoints = []}) "Int"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 20 4 22]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26, srcInfoPoints = []}) "Int")))))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 3 6 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 2, srcInfoPoints = []}) "x"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 40, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 28, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 7,SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 12 6 13,SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 24 6 25,SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 26 6 28]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10, srcInfoPoints = []}) "Num")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 11 6 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 11 6 12, srcInfoPoints = []}) "a")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 22, srcInfoPoints = []}) "Integral")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 23 6 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 23 6 24, srcInfoPoints = []}) "b")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 31 6 33]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 30, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 36 6 38]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 35, srcInfoPoints = []}) "b")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 39 6 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 39 6 40, srcInfoPoints = []}) "a"))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 3 7 14, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 3 7 4]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14, srcInfoPoints = []}) "undefined")))) Nothing,SpecInlineSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 12 30, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 9 22,SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 31 9 33,SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 38 10 39,SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 34 11 35,SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 27 12 30]}) True (Just (ActiveFrom (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 23 9 28, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 23 9 24,SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 24 9 27,SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 27 9 28]}) 999)) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 29 9 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 29 9 30, srcInfoPoints = []}) "y")) [TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 17 10 19]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 17 10 19]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16, srcInfoPoints = []}) "Integer"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 38, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 28 10 30]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27, srcInfoPoints = []}) "Integer"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38, srcInfoPoints = []}) "Integer"))))),TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 17 11 19]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 17 11 19]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16, srcInfoPoints = []}) "Integer"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 34, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 24 11 26]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34, srcInfoPoints = []}) "Integer"))))),TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 13 12 15]}) Nothing Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 13 12 15]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12, srcInfoPoints = []}) "Int"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 26, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 20 12 22]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26, srcInfoPoints = []}) "Int")))))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 3 14 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 2, srcInfoPoints = []}) "y"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 40, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 28, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 7,SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 12 14 13,SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 24 14 25,SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 26 14 28]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 10, srcInfoPoints = []}) "Num")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 11 14 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 11 14 12, srcInfoPoints = []}) "a")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 22, srcInfoPoints = []}) "Integral")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 23 14 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 23 14 24, srcInfoPoints = []}) "b")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 31 14 33]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 30, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 40, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 36 14 38]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 35, srcInfoPoints = []}) "b")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 39 14 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 39 14 40, srcInfoPoints = []}) "a"))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 2, srcInfoPoints = []}) "y")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 3 15 14, srcInfoPoints = [SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 3 15 4]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14, srcInfoPoints = []}) "undefined")))) Nothing],[Comment True (SrcSpan "tests/examples/SpecializePhaseControl.hs" 5 1 5 24) "# INLINABLE [1] x #",Comment True (SrcSpan "tests/examples/SpecializePhaseControl.hs" 13 1 13 24) "# INLINABLE [1] y #"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 16 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 9 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 16 1 16 1
+            , SrcSpan "tests/examples/SpecializePhaseControl.hs" 16 1 16 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ SpecSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 4 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 1 1 15
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 22 1 24
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 38 2 39
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 34 3 35
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 27 4 30
+                ]
+            }
+          (Just
+             (ActiveFrom
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 16 1 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 16 1 17
+                      , SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 17 1 18
+                      , SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 18 1 19
+                      ]
+                  }
+                1))
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 20 1 21
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 1 20 1 21
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          [ TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 38
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 17 2 19 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 38
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 17 2 19 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 9 2 16
+                            , srcInfoPoints = []
+                            }
+                          "Integer")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 38
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 28 2 30 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 20 2 27
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 2 31 2 38
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))))
+          , TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 17 3 19 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 34
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 17 3 19 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 9 3 16
+                            , srcInfoPoints = []
+                            }
+                          "Integer")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 34
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 24 3 26 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 20 3 23
+                               , srcInfoPoints = []
+                               }
+                             "Int")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 3 27 3 34
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))))
+          , TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 26
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 13 4 15 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 13 4 15 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 9 4 12
+                            , srcInfoPoints = []
+                            }
+                          "Int")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 20 4 22 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 16 4 19
+                               , srcInfoPoints = []
+                               }
+                             "Int")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 4 23 4 26
+                               , srcInfoPoints = []
+                               }
+                             "Int")))))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 3 6 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 1 6 2
+                , srcInfoPoints = []
+                }
+              "x"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 6 6 7
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 12 6 13
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 24 6 25
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 26 6 28
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 11 6 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 11 6 12
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/SpecializePhaseControl.hs" 6 14 6 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Integral")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 23 6 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 23 6 24
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 31 6 33 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 29 6 30
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 36 6 38 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 34 6 35
+                           , srcInfoPoints = []
+                           }
+                         "b"))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 39 6 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 39 6 40
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 1 7 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 3 7 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 3 7 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 7 5 7 14
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      , SpecInlineSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 12 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 1 9 22
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 31 9 33
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 38 10 39
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 34 11 35
+                , SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 27 12 30
+                ]
+            }
+          True
+          (Just
+             (ActiveFrom
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 23 9 28
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 23 9 24
+                      , SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 24 9 27
+                      , SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 27 9 28
+                      ]
+                  }
+                999))
+          (UnQual
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 29 9 30
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 9 29 9 30
+                  , srcInfoPoints = []
+                  }
+                "y"))
+          [ TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 38
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 17 10 19 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 38
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 17 10 19 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 9 10 16
+                            , srcInfoPoints = []
+                            }
+                          "Integer")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 38
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 28 10 30 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 20 10 27
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 10 31 10 38
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))))
+          , TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 34
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 17 11 19 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 34
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 17 11 19 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 9 11 16
+                            , srcInfoPoints = []
+                            }
+                          "Integer")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 34
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 24 11 26 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 20 11 23
+                               , srcInfoPoints = []
+                               }
+                             "Int")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 11 27 11 34
+                               , srcInfoPoints = []
+                               }
+                             "Integer")))))
+          , TyForall
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 26
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 13 12 15 ]
+                }
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 13 12 15 ]
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 9 12 12
+                            , srcInfoPoints = []
+                            }
+                          "Int")))
+                 (TyFun
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 20 12 22 ]
+                      }
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 16 12 19
+                               , srcInfoPoints = []
+                               }
+                             "Int")))
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 12 23 12 26
+                               , srcInfoPoints = []
+                               }
+                             "Int")))))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 40
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 3 14 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 1 14 2
+                , srcInfoPoints = []
+                }
+              "y"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 40
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 6 14 7
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 12 14 13
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 24 14 25
+                         , SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 26 14 28
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/SpecializePhaseControl.hs" 14 7 14 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 11 14 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 11 14 12
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan
+                                           "tests/examples/SpecializePhaseControl.hs" 14 14 14 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Integral")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 23 14 24
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 23 14 24
+                                  , srcInfoPoints = []
+                                  }
+                                "b")))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 40
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 31 14 33 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 29 14 30
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 36 14 38 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 35
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 34 14 35
+                           , srcInfoPoints = []
+                           }
+                         "b"))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 39 14 40
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 39 14 40
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 1 15 2
+                  , srcInfoPoints = []
+                  }
+                "y"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 3 15 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 3 15 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/SpecializePhaseControl.hs" 15 5 15 14
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/SpecializePhaseControl.hs" 5 1 5 24)
+        "# INLINABLE [1] x #"
+    , Comment
+        True
+        (SrcSpan "tests/examples/SpecializePhaseControl.hs" 13 1 13 24)
+        "# INLINABLE [1] y #"
+    ]
+  )
diff --git a/tests/examples/SpecializePhaseControl.hs.prettyprinter.golden b/tests/examples/SpecializePhaseControl.hs.prettyprinter.golden
--- a/tests/examples/SpecializePhaseControl.hs.prettyprinter.golden
+++ b/tests/examples/SpecializePhaseControl.hs.prettyprinter.golden
@@ -1,13 +1,11 @@
-module Main (main) where
- 
 {-# SPECIALISE [1] x :: Integer -> Integer -> Integer,
                  Integer -> Int -> Integer, Int -> Int -> Int #-}
- 
+
 x :: (Num a, Integral b) => a -> b -> a
 x = undefined
- 
+
 {-# SPECIALISE INLINE [999] y :: Integer -> Integer -> Integer,
                  Integer -> Int -> Integer, Int -> Int -> Int #-}
- 
+
 y :: (Num a, Integral b) => a -> b -> a
 y = undefined
diff --git a/tests/examples/StarInType.hs b/tests/examples/StarInType.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/StarInType.hs
@@ -0,0 +1,5 @@
+{-# language TypeOperators, KindSignatures #-}
+data B = B
+data a * b = Foo
+type A = B * B
+main = print 1
diff --git a/tests/examples/StarInType.hs.exactprinter.golden b/tests/examples/StarInType.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/StarInType.hs.exactprinter.golden
@@ -0,0 +1,6 @@
+{-# LANGUAGE TypeOperators, KindSignatures #-}
+data B = B
+data a * b = Foo
+type A = B * B
+main = print 1
+
diff --git a/tests/examples/StarInType.hs.parser.golden b/tests/examples/StarInType.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/StarInType.hs.parser.golden
@@ -0,0 +1,287 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/StarInType.hs" 1 1 1 1
+            , SrcSpan "tests/examples/StarInType.hs" 2 1 2 1
+            , SrcSpan "tests/examples/StarInType.hs" 2 1 2 1
+            , SrcSpan "tests/examples/StarInType.hs" 2 1 2 1
+            , SrcSpan "tests/examples/StarInType.hs" 3 1 3 1
+            , SrcSpan "tests/examples/StarInType.hs" 4 1 4 1
+            , SrcSpan "tests/examples/StarInType.hs" 5 1 5 1
+            , SrcSpan "tests/examples/StarInType.hs" 6 1 6 1
+            , SrcSpan "tests/examples/StarInType.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 1 1 1 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/StarInType.hs" 1 1 1 13
+                , SrcSpan "tests/examples/StarInType.hs" 1 27 1 28
+                , SrcSpan "tests/examples/StarInType.hs" 1 44 1 47
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 1 29 1 43
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 1 2 11
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/StarInType.hs" 2 8 2 9 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 1 2 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 6 2 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 6 2 7
+                  , srcInfoPoints = []
+                  }
+                "B"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 10 2 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 10 2 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 2 10 2 11
+                      , srcInfoPoints = []
+                      }
+                    "B")
+                 [])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 1 3 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/StarInType.hs" 3 12 3 13 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 6 3 11
+               , srcInfoPoints = []
+               }
+             (DHInfix
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 6 3 11
+                  , srcInfoPoints = []
+                  }
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 6 3 7
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 6 3 7
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 8 3 9
+                     , srcInfoPoints = []
+                     }
+                   "*"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 10 3 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 10 3 11
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 14 3 17
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 14 3 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 3 14 3 17
+                      , srcInfoPoints = []
+                      }
+                    "Foo")
+                 [])
+          ]
+          []
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 1 4 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/StarInType.hs" 4 1 4 5
+                , SrcSpan "tests/examples/StarInType.hs" 4 8 4 9
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 6 4 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 6 4 7
+                  , srcInfoPoints = []
+                  }
+                "A"))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 10 4 15
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 10 4 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 10 4 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 10 4 11
+                        , srcInfoPoints = []
+                        }
+                      "B")))
+             (UnpromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 12 4 13
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 12 4 13
+                     , srcInfoPoints = []
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 12 4 13
+                        , srcInfoPoints = []
+                        }
+                      "*")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 14 4 15
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 14 4 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 4 14 4 15
+                        , srcInfoPoints = []
+                        }
+                      "B"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 1 5 15
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 1 5 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 1 5 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 6 5 15
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/StarInType.hs" 5 6 5 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 8 5 15
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 8 5 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 8 5 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 8 5 13
+                           , srcInfoPoints = []
+                           }
+                         "print")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 14 5 15
+                     , srcInfoPoints = []
+                     }
+                   (Int
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/StarInType.hs" 5 14 5 15
+                        , srcInfoPoints = []
+                        }
+                      1
+                      "1"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/StarInType.hs.prettyparser.golden b/tests/examples/StarInType.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/StarInType.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/StarInType.hs.prettyprinter.golden b/tests/examples/StarInType.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/StarInType.hs.prettyprinter.golden
@@ -0,0 +1,8 @@
+{-# LANGUAGE TypeOperators, KindSignatures #-}
+
+data B = B
+
+data a * b = Foo
+
+type A = B * B
+main = print 1
diff --git a/tests/examples/T11727.hs b/tests/examples/T11727.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/T11727.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PatternSynonyms #-}
+
+module T11727 where
+
+pattern A,B :: Int
+pattern A = 5
+pattern B = 5
+
diff --git a/tests/examples/T11727.hs.exactprinter.golden b/tests/examples/T11727.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T11727.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T11727.hs.parser.golden b/tests/examples/T11727.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T11727.hs.parser.golden
@@ -0,0 +1,180 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/T11727.hs" 1 1 1 1
+            , SrcSpan "tests/examples/T11727.hs" 3 1 3 1
+            , SrcSpan "tests/examples/T11727.hs" 3 1 3 1
+            , SrcSpan "tests/examples/T11727.hs" 5 1 5 1
+            , SrcSpan "tests/examples/T11727.hs" 6 1 6 1
+            , SrcSpan "tests/examples/T11727.hs" 7 1 7 1
+            , SrcSpan "tests/examples/T11727.hs" 9 1 9 1
+            , SrcSpan "tests/examples/T11727.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 3 1 3 20
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/T11727.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/T11727.hs" 3 15 3 20
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 3 8 3 14
+                 , srcInfoPoints = []
+                 }
+               "T11727")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T11727.hs" 1 1 1 13
+                , SrcSpan "tests/examples/T11727.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      ]
+      []
+      [ PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 1 5 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T11727.hs" 5 1 5 8
+                , SrcSpan "tests/examples/T11727.hs" 5 10 5 11
+                , SrcSpan "tests/examples/T11727.hs" 5 13 5 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 9 5 10
+                , srcInfoPoints = []
+                }
+              "A"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 11 5 12
+                , srcInfoPoints = []
+                }
+              "B"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 16 5 19
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 16 5 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 16 5 19
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 1 6 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T11727.hs" 6 1 6 8
+                , SrcSpan "tests/examples/T11727.hs" 6 11 6 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 9 6 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 9 6 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 9 6 10
+                     , srcInfoPoints = []
+                     }
+                   "A"))
+             [])
+          (PLit
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 13 6 14
+               , srcInfoPoints = []
+               }
+             (Signless
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 13 6 14
+                  , srcInfoPoints = []
+                  })
+             (Int
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 6 13 6 14
+                  , srcInfoPoints = []
+                  }
+                5
+                "5"))
+          ImplicitBidirectional
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 1 7 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T11727.hs" 7 1 7 8
+                , SrcSpan "tests/examples/T11727.hs" 7 11 7 12
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 9 7 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 9 7 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 9 7 10
+                     , srcInfoPoints = []
+                     }
+                   "B"))
+             [])
+          (PLit
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 13 7 14
+               , srcInfoPoints = []
+               }
+             (Signless
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 13 7 14
+                  , srcInfoPoints = []
+                  })
+             (Int
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 7 13 7 14
+                  , srcInfoPoints = []
+                  }
+                5
+                "5"))
+          ImplicitBidirectional
+      ]
+  , []
+  )
diff --git a/tests/examples/T11727.hs.prettyparser.golden b/tests/examples/T11727.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T11727.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T11727.hs.prettyprinter.golden b/tests/examples/T11727.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T11727.hs.prettyprinter.golden
@@ -0,0 +1,8 @@
+{-# LANGUAGE PatternSynonyms #-}
+module T11727 where
+
+pattern A, B :: Int
+
+pattern A = 5
+
+pattern B = 5
diff --git a/tests/examples/T13050.hs b/tests/examples/T13050.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/T13050.hs
@@ -0,0 +1,7 @@
+module HolesInfix where
+
+f, g, q :: Int -> Int -> Int
+f x y = _ x y
+g x y = x `_` y
+q x y = x `_a` y
+
diff --git a/tests/examples/T13050.hs.exactprinter.golden b/tests/examples/T13050.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T13050.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T13050.hs.parser.golden b/tests/examples/T13050.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T13050.hs.parser.golden
@@ -0,0 +1,439 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/T13050.hs" 1 1 1 1
+            , SrcSpan "tests/examples/T13050.hs" 1 1 1 1
+            , SrcSpan "tests/examples/T13050.hs" 3 1 3 1
+            , SrcSpan "tests/examples/T13050.hs" 4 1 4 1
+            , SrcSpan "tests/examples/T13050.hs" 5 1 5 1
+            , SrcSpan "tests/examples/T13050.hs" 6 1 6 1
+            , SrcSpan "tests/examples/T13050.hs" 8 1 8 1
+            , SrcSpan "tests/examples/T13050.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 1 1 1 24
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/T13050.hs" 1 1 1 7
+                  , SrcSpan "tests/examples/T13050.hs" 1 19 1 24
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 1 8 1 18
+                 , srcInfoPoints = []
+                 }
+               "HolesInfix")
+            Nothing
+            Nothing))
+      []
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 1 3 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T13050.hs" 3 2 3 3
+                , SrcSpan "tests/examples/T13050.hs" 3 5 3 6
+                , SrcSpan "tests/examples/T13050.hs" 3 9 3 11
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 1 3 2
+                , srcInfoPoints = []
+                }
+              "f"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 4 3 5
+                , srcInfoPoints = []
+                }
+              "g"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 7 3 8
+                , srcInfoPoints = []
+                }
+              "q"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 12 3 29
+               , srcInfoPoints = [ SrcSpan "tests/examples/T13050.hs" 3 16 3 18 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 12 3 15
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 12 3 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 12 3 15
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 19 3 29
+                  , srcInfoPoints = [ SrcSpan "tests/examples/T13050.hs" 3 23 3 25 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 19 3 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 19 3 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 19 3 22
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 26 3 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 26 3 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 3 26 3 29
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 1 4 14
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 1 4 14
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 3 4 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 3 4 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 5 4 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 5 4 6
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 7 4 14
+                   , srcInfoPoints = [ SrcSpan "tests/examples/T13050.hs" 4 7 4 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 9 4 14
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 9 4 12
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 9 4 10
+                            , srcInfoPoints = []
+                            }
+                          (Special
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 9 4 10
+                               , srcInfoPoints = []
+                               }
+                             (ExprHole
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 9 4 10
+                                  , srcInfoPoints = []
+                                  })))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 11 4 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 11 4 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 11 4 12
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 13 4 14
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 13 4 14
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 4 13 4 14
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 1 5 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 1 5 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 1 5 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 3 5 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 3 5 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 5 5 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 5 5 6
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 7 5 16
+                   , srcInfoPoints = [ SrcSpan "tests/examples/T13050.hs" 5 7 5 8 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 9 5 16
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 9 5 10
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 9 5 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 9 5 10
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 11 5 14
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/T13050.hs" 5 11 5 12
+                             , SrcSpan "tests/examples/T13050.hs" 5 12 5 13
+                             , SrcSpan "tests/examples/T13050.hs" 5 13 5 14
+                             ]
+                         }
+                       (Special
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 11 5 14
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/T13050.hs" 5 11 5 12
+                                , SrcSpan "tests/examples/T13050.hs" 5 12 5 13
+                                , SrcSpan "tests/examples/T13050.hs" 5 13 5 14
+                                ]
+                            }
+                          (ExprHole
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 12 5 13
+                               , srcInfoPoints = []
+                               })))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 15 5 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 15 5 16
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 5 15 5 16
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 1 6 17
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 1 6 17
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 1 6 2
+                   , srcInfoPoints = []
+                   }
+                 "q")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 3 6 4
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 3 6 4
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 5 6 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 5 6 6
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 7 6 17
+                   , srcInfoPoints = [ SrcSpan "tests/examples/T13050.hs" 6 7 6 8 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 9 6 17
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 9 6 10
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 9 6 10
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 9 6 10
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 11 6 15
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/T13050.hs" 6 11 6 12
+                             , SrcSpan "tests/examples/T13050.hs" 6 12 6 14
+                             , SrcSpan "tests/examples/T13050.hs" 6 14 6 15
+                             ]
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 11 6 15
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/T13050.hs" 6 11 6 12
+                                , SrcSpan "tests/examples/T13050.hs" 6 12 6 14
+                                , SrcSpan "tests/examples/T13050.hs" 6 14 6 15
+                                ]
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 12 6 14
+                               , srcInfoPoints = []
+                               }
+                             "_a")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 16 6 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 16 6 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/T13050.hs" 6 16 6 17
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/T13050.hs.prettyparser.golden b/tests/examples/T13050.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T13050.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T13050.hs.prettyprinter.golden b/tests/examples/T13050.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T13050.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+module HolesInfix where
+
+f, g, q :: Int -> Int -> Int
+f x y = _ x y
+g x y = x `_` y
+q x y = x `_a` y
diff --git a/tests/examples/T326.hs b/tests/examples/T326.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/T326.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE TypeApplications #-}
+module T326 where
+
+(@:) a b = a
diff --git a/tests/examples/T326.hs.exactprinter.golden b/tests/examples/T326.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T326.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T326.hs.parser.golden b/tests/examples/T326.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T326.hs.parser.golden
@@ -0,0 +1,116 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/T326.hs" 1 1 1 1
+            , SrcSpan "tests/examples/T326.hs" 2 1 2 1
+            , SrcSpan "tests/examples/T326.hs" 2 1 2 1
+            , SrcSpan "tests/examples/T326.hs" 4 1 4 1
+            , SrcSpan "tests/examples/T326.hs" 5 1 5 1
+            , SrcSpan "tests/examples/T326.hs" 5 1 5 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 2 1 2 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/T326.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/T326.hs" 2 13 2 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 2 8 2 12
+                 , srcInfoPoints = []
+                 }
+               "T326")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 1 1 1 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/T326.hs" 1 1 1 13
+                , SrcSpan "tests/examples/T326.hs" 1 31 1 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 1 4 13
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 1 4 13
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/T326.hs" 4 1 4 2
+                    , SrcSpan "tests/examples/T326.hs" 4 2 4 4
+                    , SrcSpan "tests/examples/T326.hs" 4 4 4 5
+                    ]
+                }
+              (Symbol
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 2 4 4
+                   , srcInfoPoints = []
+                   }
+                 "@:")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 6 4 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 6 4 7
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 8 4 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 8 4 9
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 10 4 13
+                   , srcInfoPoints = [ SrcSpan "tests/examples/T326.hs" 4 10 4 11 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 12 4 13
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 12 4 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/T326.hs" 4 12 4 13
+                            , srcInfoPoints = []
+                            }
+                          "a"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/T326.hs.prettyparser.golden b/tests/examples/T326.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T326.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/T326.hs.prettyprinter.golden b/tests/examples/T326.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/T326.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE TypeApplications #-}
+module T326 where
+(@:) a b = a
diff --git a/tests/examples/THTSplices.hs.parser.golden b/tests/examples/THTSplices.hs.parser.golden
--- a/tests/examples/THTSplices.hs.parser.golden
+++ b/tests/examples/THTSplices.hs.parser.golden
@@ -1,1 +1,133 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 1 1 1 1,SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1,SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1,SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1,SrcSpan "tests/examples/THTSplices.hs" 3 1 3 1,SrcSpan "tests/examples/THTSplices.hs" 4 1 4 1,SrcSpan "tests/examples/THTSplices.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 1 1 1 13,SrcSpan "tests/examples/THTSplices.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 14 1 29, srcInfoPoints = []}) "TemplateHaskell"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 2 1 2 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 2 8 2 27, srcInfoPoints = []}) "Language.Haskell.TH", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 33, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 6 3 33, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 3 6 3 7]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 33, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 3 18 3 20]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17, srcInfoPoints = []}) "undefined"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 21 3 33, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 3 21 3 23,SrcSpan "tests/examples/THTSplices.hs" 3 32 3 33]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 21 3 33, srcInfoPoints = [SrcSpan "tests/examples/THTSplices.hs" 3 21 3 23,SrcSpan "tests/examples/THTSplices.hs" 3 32 3 33]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32, srcInfoPoints = []}) "undefined"))))))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/THTSplices.hs" 1 1 1 1
+            , SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTSplices.hs" 3 1 3 1
+            , SrcSpan "tests/examples/THTSplices.hs" 4 1 4 1
+            , SrcSpan "tests/examples/THTSplices.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/THTSplices.hs" 1 1 1 13
+                , SrcSpan "tests/examples/THTSplices.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 2 1 2 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/THTSplices.hs" 2 1 2 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 2 8 2 27
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 33
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 1 3 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 6 3 33
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/THTSplices.hs" 3 6 3 7 ]
+               }
+             (ExpTypeSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 33
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/THTSplices.hs" 3 18 3 20 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 8 3 17
+                           , srcInfoPoints = []
+                           }
+                         "undefined")))
+                (TySplice
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 21 3 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/THTSplices.hs" 3 21 3 23
+                         , SrcSpan "tests/examples/THTSplices.hs" 3 32 3 33
+                         ]
+                     }
+                   (ParenSplice
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 21 3 33
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/THTSplices.hs" 3 21 3 23
+                            , SrcSpan "tests/examples/THTSplices.hs" 3 32 3 33
+                            ]
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/THTSplices.hs" 3 23 3 32
+                                 , srcInfoPoints = []
+                                 }
+                               "undefined")))))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/THTSplices.hs.prettyprinter.golden b/tests/examples/THTSplices.hs.prettyprinter.golden
--- a/tests/examples/THTSplices.hs.prettyprinter.golden
+++ b/tests/examples/THTSplices.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
 {-# LANGUAGE TemplateHaskell #-}
-module Main (main) where
 import Language.Haskell.TH
 main = undefined :: $( undefined )
diff --git a/tests/examples/THTypedSplices.hs b/tests/examples/THTypedSplices.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/THTypedSplices.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE TemplateHaskell #-}
+import Language.Haskell.TH
+
+import THTypedSplices.Defs
+
+main = $$justTH ($$([e|| 2 ||]))
diff --git a/tests/examples/THTypedSplices.hs.exactprinter.golden b/tests/examples/THTypedSplices.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/THTypedSplices.hs.exactprinter.golden
@@ -0,0 +1,7 @@
+{-# LANGUAGE TemplateHaskell #-}
+import Language.Haskell.TH
+
+import THTypedSplices.Defs
+
+main = $$justTH ($$([||  2 ||]))
+
diff --git a/tests/examples/THTypedSplices.hs.parser.golden b/tests/examples/THTypedSplices.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/THTypedSplices.hs.parser.golden
@@ -0,0 +1,177 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/THTypedSplices.hs" 1 1 1 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 4 1 4 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 6 1 6 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 7 1 7 1
+            , SrcSpan "tests/examples/THTypedSplices.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/THTypedSplices.hs" 1 1 1 13
+                , SrcSpan "tests/examples/THTypedSplices.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/THTypedSplices.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 2 1 2 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/THTypedSplices.hs" 2 1 2 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 2 8 2 27
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      , ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 4 1 4 27
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/THTypedSplices.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 4 8 4 27
+                  , srcInfoPoints = []
+                  }
+                "THTypedSplices.Defs"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 1 6 33
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 1 6 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 1 6 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 6 6 33
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/THTypedSplices.hs" 6 6 6 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 8 6 33
+                  , srcInfoPoints = []
+                  }
+                (SpliceExp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 8 6 16
+                     , srcInfoPoints = []
+                     }
+                   (TIdSplice
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/THTypedSplices.hs" 6 8 6 16
+                        , srcInfoPoints = []
+                        }
+                      "justTH"))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/THTypedSplices.hs" 6 17 6 33
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/THTypedSplices.hs" 6 17 6 18
+                         , SrcSpan "tests/examples/THTypedSplices.hs" 6 32 6 33
+                         ]
+                     }
+                   (SpliceExp
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/THTypedSplices.hs" 6 18 6 32
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/THTypedSplices.hs" 6 18 6 21
+                            , SrcSpan "tests/examples/THTypedSplices.hs" 6 31 6 32
+                            ]
+                        }
+                      (TParenSplice
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/THTypedSplices.hs" 6 18 6 32
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/THTypedSplices.hs" 6 18 6 21
+                               , SrcSpan "tests/examples/THTypedSplices.hs" 6 31 6 32
+                               ]
+                           }
+                         (BracketExp
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/THTypedSplices.hs" 6 21 6 31
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/THTypedSplices.hs" 6 21 6 25
+                                  , SrcSpan "tests/examples/THTypedSplices.hs" 6 28 6 31
+                                  ]
+                              }
+                            (TExpBracket
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/THTypedSplices.hs" 6 21 6 31
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/THTypedSplices.hs" 6 21 6 25
+                                     , SrcSpan "tests/examples/THTypedSplices.hs" 6 28 6 31
+                                     ]
+                                 }
+                               (Lit
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/THTypedSplices.hs" 6 26 6 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Int
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/THTypedSplices.hs" 6 26 6 27
+                                       , srcInfoPoints = []
+                                       }
+                                     2
+                                     "2")))))))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/THTypedSplices.hs.prettyparser.golden b/tests/examples/THTypedSplices.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/THTypedSplices.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/THTypedSplices.hs.prettyprinter.golden b/tests/examples/THTypedSplices.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/THTypedSplices.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE TemplateHaskell #-}
+import Language.Haskell.TH
+import THTypedSplices.Defs
+main = $$justTH ($$( [|| 2 ||] ))
diff --git a/tests/examples/THTypes.hs.parser.golden b/tests/examples/THTypes.hs.parser.golden
--- a/tests/examples/THTypes.hs.parser.golden
+++ b/tests/examples/THTypes.hs.parser.golden
@@ -1,1 +1,363 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 1 12 1, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 1 1 1 1,SrcSpan "tests/examples/THTypes.hs" 2 1 2 1,SrcSpan "tests/examples/THTypes.hs" 3 1 3 1,SrcSpan "tests/examples/THTypes.hs" 4 1 4 1,SrcSpan "tests/examples/THTypes.hs" 4 1 4 1,SrcSpan "tests/examples/THTypes.hs" 6 1 6 1,SrcSpan "tests/examples/THTypes.hs" 8 1 8 1,SrcSpan "tests/examples/THTypes.hs" 9 1 9 1,SrcSpan "tests/examples/THTypes.hs" 11 1 11 1,SrcSpan "tests/examples/THTypes.hs" 12 1 12 1,SrcSpan "tests/examples/THTypes.hs" 12 1 12 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 4 1 4 7,SrcSpan "tests/examples/THTypes.hs" 4 16 4 21]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 4 8 4 15, srcInfoPoints = []}) "THTypes") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 1 1 35, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 1 1 1 13,SrcSpan "tests/examples/THTypes.hs" 1 32 1 35]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 14 1 31, srcInfoPoints = []}) "FlexibleInstances"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 2 1 2 33, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 2 1 2 13,SrcSpan "tests/examples/THTypes.hs" 2 30 2 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 2 14 2 29, srcInfoPoints = []}) "TemplateHaskell"],LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 3 1 3 29, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 3 1 3 13,SrcSpan "tests/examples/THTypes.hs" 3 26 3 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 3 14 3 25, srcInfoPoints = []}) "QuasiQuotes"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 6 1 6 27, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 6 1 6 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 6 8 6 27, srcInfoPoints = []}) "Language.Haskell.TH", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 1 8 11, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 8 3 8 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 1 8 2, srcInfoPoints = []}) "x"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11, srcInfoPoints = []}) "DecsQ"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 48, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 3 9 48, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 3 9 4]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 5 9 48, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 5 9 8,SrcSpan "tests/examples/THTypes.hs" 9 46 9 48]}) (DeclBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 5 9 48, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 9 9 9,SrcSpan "tests/examples/THTypes.hs" 9 46 9 46,SrcSpan "tests/examples/THTypes.hs" 9 46 9 48]}) [InstDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 9 9 45, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 9 9 17]}) Nothing (IRule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 45, srcInfoPoints = []}) Nothing Nothing (IHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 45, srcInfoPoints = []}) (IHCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 22, srcInfoPoints = []}) "Show"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 23 9 45, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 23 9 25,SrcSpan "tests/examples/THTypes.hs" 9 44 9 45]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 23 9 45, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 23 9 25,SrcSpan "tests/examples/THTypes.hs" 9 44 9 45]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 25 9 44, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 25 9 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 25 9 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 25 9 29, srcInfoPoints = []}) "conT"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 30 9 44, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 9 30 9 31,SrcSpan "tests/examples/THTypes.hs" 9 43 9 44]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 31 9 43, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 31 9 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 31 9 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 31 9 37, srcInfoPoints = []}) "mkName"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 38 9 43, srcInfoPoints = []}) (String (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 38 9 43, srcInfoPoints = []}) "Int" "Int"))))))))) Nothing]))) Nothing,FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 19, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 5, srcInfoPoints = []}) "unit") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 6 11 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 6 11 7, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 8 11 19, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 11 8 11 9]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 10 11 19, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 11 10 11 13,SrcSpan "tests/examples/THTypes.hs" 11 17 11 19]}) (TypeBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 10 11 19, srcInfoPoints = [SrcSpan "tests/examples/THTypes.hs" 11 10 11 13,SrcSpan "tests/examples/THTypes.hs" 11 17 11 19]}) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 14 11 16, srcInfoPoints = []}) (IdSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 14 11 16, srcInfoPoints = []}) "x"))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 1 12 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/THTypes.hs" 1 1 1 1
+            , SrcSpan "tests/examples/THTypes.hs" 2 1 2 1
+            , SrcSpan "tests/examples/THTypes.hs" 3 1 3 1
+            , SrcSpan "tests/examples/THTypes.hs" 4 1 4 1
+            , SrcSpan "tests/examples/THTypes.hs" 4 1 4 1
+            , SrcSpan "tests/examples/THTypes.hs" 6 1 6 1
+            , SrcSpan "tests/examples/THTypes.hs" 8 1 8 1
+            , SrcSpan "tests/examples/THTypes.hs" 9 1 9 1
+            , SrcSpan "tests/examples/THTypes.hs" 11 1 11 1
+            , SrcSpan "tests/examples/THTypes.hs" 12 1 12 1
+            , SrcSpan "tests/examples/THTypes.hs" 12 1 12 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 4 1 4 21
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/THTypes.hs" 4 1 4 7
+                  , SrcSpan "tests/examples/THTypes.hs" 4 16 4 21
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 4 8 4 15
+                 , srcInfoPoints = []
+                 }
+               "THTypes")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 1 1 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/THTypes.hs" 1 1 1 13
+                , SrcSpan "tests/examples/THTypes.hs" 1 32 1 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 1 14 1 31
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 2 1 2 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/THTypes.hs" 2 1 2 13
+                , SrcSpan "tests/examples/THTypes.hs" 2 30 2 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 2 14 2 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 3 1 3 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/THTypes.hs" 3 1 3 13
+                , SrcSpan "tests/examples/THTypes.hs" 3 26 3 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 3 14 3 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 6 1 6 27
+                , srcInfoPoints = [ SrcSpan "tests/examples/THTypes.hs" 6 1 6 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 6 8 6 27
+                  , srcInfoPoints = []
+                  }
+                "Language.Haskell.TH"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 1 8 11
+            , srcInfoPoints = [ SrcSpan "tests/examples/THTypes.hs" 8 3 8 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 1 8 2
+                , srcInfoPoints = []
+                }
+              "x"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 8 6 8 11
+                     , srcInfoPoints = []
+                     }
+                   "DecsQ")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 48
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 1 9 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 3 9 48
+               , srcInfoPoints = [ SrcSpan "tests/examples/THTypes.hs" 9 3 9 4 ]
+               }
+             (BracketExp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 5 9 48
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/THTypes.hs" 9 5 9 8
+                      , SrcSpan "tests/examples/THTypes.hs" 9 46 9 48
+                      ]
+                  }
+                (DeclBracket
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 5 9 48
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/THTypes.hs" 9 9 9 9
+                         , SrcSpan "tests/examples/THTypes.hs" 9 46 9 46
+                         , SrcSpan "tests/examples/THTypes.hs" 9 46 9 48
+                         ]
+                     }
+                   [ InstDecl
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 9 9 45
+                         , srcInfoPoints = [ SrcSpan "tests/examples/THTypes.hs" 9 9 9 17 ]
+                         }
+                       Nothing
+                       (IRule
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 45
+                            , srcInfoPoints = []
+                            }
+                          Nothing
+                          Nothing
+                          (IHApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 45
+                               , srcInfoPoints = []
+                               }
+                             (IHCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 18 9 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/THTypes.hs" 9 18 9 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "Show")))
+                             (TySplice
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 23 9 45
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/THTypes.hs" 9 23 9 25
+                                      , SrcSpan "tests/examples/THTypes.hs" 9 44 9 45
+                                      ]
+                                  }
+                                (ParenSplice
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 9 23 9 45
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/THTypes.hs" 9 23 9 25
+                                         , SrcSpan "tests/examples/THTypes.hs" 9 44 9 45
+                                         ]
+                                     }
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/THTypes.hs" 9 25 9 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Var
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/THTypes.hs" 9 25 9 29
+                                           , srcInfoPoints = []
+                                           }
+                                         (UnQual
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/THTypes.hs" 9 25 9 29
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/THTypes.hs" 9 25 9 29
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "conT")))
+                                      (Paren
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/THTypes.hs" 9 30 9 44
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/THTypes.hs" 9 30 9 31
+                                               , SrcSpan "tests/examples/THTypes.hs" 9 43 9 44
+                                               ]
+                                           }
+                                         (App
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/THTypes.hs" 9 31 9 43
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/THTypes.hs" 9 31 9 37
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/THTypes.hs" 9 31 9 37
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/THTypes.hs" 9 31 9 37
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "mkName")))
+                                            (Lit
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/THTypes.hs" 9 38 9 43
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (String
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/THTypes.hs" 9 38 9 43
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "Int"
+                                                  "Int")))))))))
+                       Nothing
+                   ])))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 19
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 19
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 1 11 5
+                   , srcInfoPoints = []
+                   }
+                 "unit")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 6 11 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 6 11 7
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 8 11 19
+                   , srcInfoPoints = [ SrcSpan "tests/examples/THTypes.hs" 11 8 11 9 ]
+                   }
+                 (BracketExp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 10 11 19
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/THTypes.hs" 11 10 11 13
+                          , SrcSpan "tests/examples/THTypes.hs" 11 17 11 19
+                          ]
+                      }
+                    (TypeBracket
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 10 11 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/THTypes.hs" 11 10 11 13
+                             , SrcSpan "tests/examples/THTypes.hs" 11 17 11 19
+                             ]
+                         }
+                       (TySplice
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 14 11 16
+                            , srcInfoPoints = []
+                            }
+                          (IdSplice
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/THTypes.hs" 11 14 11 16
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/THTypes.hs.prettyprinter.golden b/tests/examples/THTypes.hs.prettyprinter.golden
--- a/tests/examples/THTypes.hs.prettyprinter.golden
+++ b/tests/examples/THTypes.hs.prettyprinter.golden
@@ -3,10 +3,10 @@
 {-# LANGUAGE QuasiQuotes #-}
 module THTypes where
 import Language.Haskell.TH
- 
+
 x :: DecsQ
 x = [d|
-       
+      
       instance Show $( conT (mkName "Int") )
       |]
 unit x = [t| $x |]
diff --git a/tests/examples/TabWhitespace.hs.parser.golden b/tests/examples/TabWhitespace.hs.parser.golden
--- a/tests/examples/TabWhitespace.hs.parser.golden
+++ b/tests/examples/TabWhitespace.hs.parser.golden
@@ -1,1 +1,19 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1, srcInfoPoints = [SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1,SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1]}) Nothing [] [] [],[Comment False (SrcSpan "tests/examples/TabWhitespace.hs" 1 9 1 14) " hi"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TabWhitespace.hs" 2 1 2 1
+            ]
+        }
+      Nothing
+      []
+      []
+      []
+  , [ Comment
+        False (SrcSpan "tests/examples/TabWhitespace.hs" 1 9 1 14) " hi"
+    ]
+  )
diff --git a/tests/examples/TabWhitespace.hs.prettyprinter.golden b/tests/examples/TabWhitespace.hs.prettyprinter.golden
--- a/tests/examples/TabWhitespace.hs.prettyprinter.golden
+++ b/tests/examples/TabWhitespace.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-module Main (main) where
+
diff --git a/tests/examples/TemplateHaskellQuotedNames.hs b/tests/examples/TemplateHaskellQuotedNames.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TemplateHaskellQuotedNames.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE TemplateHaskell #-}
+f = g 'Constructor 'function
+h = g '() '[]
diff --git a/tests/examples/TemplateHaskellQuotedNames.hs.exactprinter.golden b/tests/examples/TemplateHaskellQuotedNames.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TemplateHaskellQuotedNames.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TemplateHaskellQuotedNames.hs.parser.golden b/tests/examples/TemplateHaskellQuotedNames.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TemplateHaskellQuotedNames.hs.parser.golden
@@ -0,0 +1,246 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 29
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 1 2 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 3 2 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 3 2 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 5 2 29
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 5 2 19
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 5 2 6
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 5 2 6
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 5 2 6
+                              , srcInfoPoints = []
+                              }
+                            "g")))
+                   (VarQuote
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 7 2 19
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 7 2 8 ]
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 8 2 19
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 8 2 19
+                              , srcInfoPoints = []
+                              }
+                            "Constructor"))))
+                (VarQuote
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 20 2 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 20 2 21
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 21 2 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 2 21 2 29
+                           , srcInfoPoints = []
+                           }
+                         "function")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 1 3 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 1 3 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 1 3 2
+                  , srcInfoPoints = []
+                  }
+                "h"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 3 3 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 3 3 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 5 3 14
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 5 3 10
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 5 3 6
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 5 3 6
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 5 3 6
+                              , srcInfoPoints = []
+                              }
+                            "g")))
+                   (VarQuote
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 7 3 10
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 7 3 8 ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 8 3 10
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 8 3 9
+                               , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 9 3 10
+                               ]
+                           }
+                         (UnitCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 8 3 10
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 8 3 9
+                                  , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 9 3 10
+                                  ]
+                              }))))
+                (VarQuote
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 11 3 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 11 3 12
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 12 3 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 12 3 13
+                            , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 13 3 14
+                            ]
+                        }
+                      (ListCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 12 3 14
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 12 3 13
+                               , SrcSpan "tests/examples/TemplateHaskellQuotedNames.hs" 3 13 3 14
+                               ]
+                           })))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/TemplateHaskellQuotedNames.hs.prettyparser.golden b/tests/examples/TemplateHaskellQuotedNames.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TemplateHaskellQuotedNames.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TemplateHaskellQuotedNames.hs.prettyprinter.golden b/tests/examples/TemplateHaskellQuotedNames.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TemplateHaskellQuotedNames.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE TemplateHaskell #-}
+f = g 'Constructor 'function
+h = g '() '[]
diff --git a/tests/examples/TensorTests.hs b/tests/examples/TensorTests.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TensorTests.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE ConstraintKinds, FlexibleContexts, DataKinds, NoImplicitPrelude,
+             RebindableSyntax, ScopedTypeVariables, TypeFamilies, TypeOperators,
+             UndecidableInstances #-}
+
+module TensorTests (tensorTests) where
+
+type TMRParams = ( '(,) <$> Tensors) <*> MRCombos
+tmrParams :: Proxy TMRParams
+tmrParams = Proxy
+
+--type ExtParams = ( '(,) <$> Tensors) <*> MRExtCombos
+type TrEmParams = ( '(,) <$> Tensors) <*> MM'RCombos
+tremParams :: Proxy TrEmParams
+tremParams = Proxy
+
+type NormParams = ( '(,) <$> '[RT]) <*> (Filter Liftable MRCombos)
+
+--data Liftable :: TyFun (Factored, *) Bool -> *
+type instance Apply Liftable '(m,zq) = Int64 :== (LiftOf zq)
+
diff --git a/tests/examples/TensorTests.hs.exactprinter.golden b/tests/examples/TensorTests.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TensorTests.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TensorTests.hs.parser.golden b/tests/examples/TensorTests.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TensorTests.hs.parser.golden
@@ -0,0 +1,965 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 1 21 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TensorTests.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TensorTests.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TensorTests.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TensorTests.hs" 7 1 7 1
+            , SrcSpan "tests/examples/TensorTests.hs" 8 1 8 1
+            , SrcSpan "tests/examples/TensorTests.hs" 9 1 9 1
+            , SrcSpan "tests/examples/TensorTests.hs" 12 1 12 1
+            , SrcSpan "tests/examples/TensorTests.hs" 13 1 13 1
+            , SrcSpan "tests/examples/TensorTests.hs" 14 1 14 1
+            , SrcSpan "tests/examples/TensorTests.hs" 16 1 16 1
+            , SrcSpan "tests/examples/TensorTests.hs" 19 1 19 1
+            , SrcSpan "tests/examples/TensorTests.hs" 21 1 21 1
+            , SrcSpan "tests/examples/TensorTests.hs" 21 1 21 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 1 5 39
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/TensorTests.hs" 5 1 5 7
+                  , SrcSpan "tests/examples/TensorTests.hs" 5 34 5 39
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 8 5 19
+                 , srcInfoPoints = []
+                 }
+               "TensorTests")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 20 5 33
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/TensorTests.hs" 5 20 5 21
+                        , SrcSpan "tests/examples/TensorTests.hs" 5 32 5 33
+                        ]
+                    }
+                  [ EVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 21 5 32
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 21 5 32
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 5 21 5 32
+                              , srcInfoPoints = []
+                              }
+                            "tensorTests"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 1 3 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TensorTests.hs" 1 29 1 30
+                , SrcSpan "tests/examples/TensorTests.hs" 1 47 1 48
+                , SrcSpan "tests/examples/TensorTests.hs" 1 58 1 59
+                , SrcSpan "tests/examples/TensorTests.hs" 1 77 1 78
+                , SrcSpan "tests/examples/TensorTests.hs" 2 30 2 31
+                , SrcSpan "tests/examples/TensorTests.hs" 2 51 2 52
+                , SrcSpan "tests/examples/TensorTests.hs" 2 65 2 66
+                , SrcSpan "tests/examples/TensorTests.hs" 2 80 2 81
+                , SrcSpan "tests/examples/TensorTests.hs" 3 35 3 38
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "ConstraintKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 31 1 47
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 49 1 58
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 1 60 1 77
+                , srcInfoPoints = []
+                }
+              "NoImplicitPrelude"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 2 14 2 30
+                , srcInfoPoints = []
+                }
+              "RebindableSyntax"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 2 32 2 51
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 2 53 2 65
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 2 67 2 80
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 3 14 3 34
+                , srcInfoPoints = []
+                }
+              "UndecidableInstances"
+          ]
+      ]
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 1 7 50
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 7 1 7 5
+                , SrcSpan "tests/examples/TensorTests.hs" 7 16 7 17
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 6 7 15
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 6 7 15
+                  , srcInfoPoints = []
+                  }
+                "TMRParams"))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 18 7 50
+               , srcInfoPoints = []
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 18 7 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 7 18 7 19
+                      , SrcSpan "tests/examples/TensorTests.hs" 7 36 7 37
+                      ]
+                  }
+                (TyInfix
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 20 7 36
+                     , srcInfoPoints = []
+                     }
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 20 7 24
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TensorTests.hs" 7 20 7 21 ]
+                        }
+                      (PromotedCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 20 7 24
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TensorTests.hs" 7 20 7 21 ]
+                           }
+                         True
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 21 7 24
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TensorTests.hs" 7 21 7 22
+                                  , SrcSpan "tests/examples/TensorTests.hs" 7 22 7 23
+                                  , SrcSpan "tests/examples/TensorTests.hs" 7 23 7 24
+                                  ]
+                              }
+                            (TupleCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 21 7 24
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/TensorTests.hs" 7 21 7 22
+                                     , SrcSpan "tests/examples/TensorTests.hs" 7 22 7 23
+                                     , SrcSpan "tests/examples/TensorTests.hs" 7 23 7 24
+                                     ]
+                                 }
+                               Boxed
+                               2))))
+                   (UnpromotedName
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 25 7 28
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 25 7 28
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 25 7 28
+                              , srcInfoPoints = []
+                              }
+                            "<$>")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 29 7 36
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 29 7 36
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 29 7 36
+                              , srcInfoPoints = []
+                              }
+                            "Tensors")))))
+             (UnpromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 38 7 41
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 38 7 41
+                     , srcInfoPoints = []
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 38 7 41
+                        , srcInfoPoints = []
+                        }
+                      "<*>")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 42 7 50
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 42 7 50
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 7 42 7 50
+                        , srcInfoPoints = []
+                        }
+                      "MRCombos"))))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 1 8 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 8 11 8 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 1 8 10
+                , srcInfoPoints = []
+                }
+              "tmrParams"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 14 8 29
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 14 8 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 14 8 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 14 8 19
+                        , srcInfoPoints = []
+                        }
+                      "Proxy")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 20 8 29
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 20 8 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 8 20 8 29
+                        , srcInfoPoints = []
+                        }
+                      "TMRParams"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 1 9 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 1 9 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 1 9 10
+                  , srcInfoPoints = []
+                  }
+                "tmrParams"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 11 9 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TensorTests.hs" 9 11 9 12 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 13 9 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 13 9 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 9 13 9 18
+                        , srcInfoPoints = []
+                        }
+                      "Proxy"))))
+          Nothing
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 1 12 53
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 12 1 12 5
+                , SrcSpan "tests/examples/TensorTests.hs" 12 17 12 18
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 6 12 16
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 6 12 16
+                  , srcInfoPoints = []
+                  }
+                "TrEmParams"))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 19 12 53
+               , srcInfoPoints = []
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 19 12 38
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 12 19 12 20
+                      , SrcSpan "tests/examples/TensorTests.hs" 12 37 12 38
+                      ]
+                  }
+                (TyInfix
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 21 12 37
+                     , srcInfoPoints = []
+                     }
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 21 12 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TensorTests.hs" 12 21 12 22 ]
+                        }
+                      (PromotedCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 21 12 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TensorTests.hs" 12 21 12 22 ]
+                           }
+                         True
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 22 12 25
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TensorTests.hs" 12 22 12 23
+                                  , SrcSpan "tests/examples/TensorTests.hs" 12 23 12 24
+                                  , SrcSpan "tests/examples/TensorTests.hs" 12 24 12 25
+                                  ]
+                              }
+                            (TupleCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 22 12 25
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/TensorTests.hs" 12 22 12 23
+                                     , SrcSpan "tests/examples/TensorTests.hs" 12 23 12 24
+                                     , SrcSpan "tests/examples/TensorTests.hs" 12 24 12 25
+                                     ]
+                                 }
+                               Boxed
+                               2))))
+                   (UnpromotedName
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 26 12 29
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 26 12 29
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 26 12 29
+                              , srcInfoPoints = []
+                              }
+                            "<$>")))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 30 12 37
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 30 12 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 30 12 37
+                              , srcInfoPoints = []
+                              }
+                            "Tensors")))))
+             (UnpromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 39 12 42
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 39 12 42
+                     , srcInfoPoints = []
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 39 12 42
+                        , srcInfoPoints = []
+                        }
+                      "<*>")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 43 12 53
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 43 12 53
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 12 43 12 53
+                        , srcInfoPoints = []
+                        }
+                      "MM'RCombos"))))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 1 13 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 13 12 13 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 1 13 11
+                , srcInfoPoints = []
+                }
+              "tremParams"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 15 13 31
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 15 13 20
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 15 13 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 15 13 20
+                        , srcInfoPoints = []
+                        }
+                      "Proxy")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 21 13 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 21 13 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 13 21 13 31
+                        , srcInfoPoints = []
+                        }
+                      "TrEmParams"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 1 14 19
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 1 14 11
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 1 14 11
+                  , srcInfoPoints = []
+                  }
+                "tremParams"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 12 14 19
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TensorTests.hs" 14 12 14 13 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 14 14 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 14 14 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 14 14 14 19
+                        , srcInfoPoints = []
+                        }
+                      "Proxy"))))
+          Nothing
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 1 16 67
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 16 1 16 5
+                , SrcSpan "tests/examples/TensorTests.hs" 16 17 16 18
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 6 16 16
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 6 16 16
+                  , srcInfoPoints = []
+                  }
+                "NormParams"))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 19 16 67
+               , srcInfoPoints = []
+               }
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 19 16 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 16 19 16 20
+                      , SrcSpan "tests/examples/TensorTests.hs" 16 35 16 36
+                      ]
+                  }
+                (TyInfix
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 21 16 35
+                     , srcInfoPoints = []
+                     }
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 21 16 25
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TensorTests.hs" 16 21 16 22 ]
+                        }
+                      (PromotedCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 21 16 25
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TensorTests.hs" 16 21 16 22 ]
+                           }
+                         True
+                         (Special
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 22 16 25
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TensorTests.hs" 16 22 16 23
+                                  , SrcSpan "tests/examples/TensorTests.hs" 16 23 16 24
+                                  , SrcSpan "tests/examples/TensorTests.hs" 16 24 16 25
+                                  ]
+                              }
+                            (TupleCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 22 16 25
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/TensorTests.hs" 16 22 16 23
+                                     , SrcSpan "tests/examples/TensorTests.hs" 16 23 16 24
+                                     , SrcSpan "tests/examples/TensorTests.hs" 16 24 16 25
+                                     ]
+                                 }
+                               Boxed
+                               2))))
+                   (UnpromotedName
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 26 16 29
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 26 16 29
+                           , srcInfoPoints = []
+                           }
+                         (Symbol
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 26 16 29
+                              , srcInfoPoints = []
+                              }
+                            "<$>")))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 30 16 35
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TensorTests.hs" 16 30 16 31
+                            , SrcSpan "tests/examples/TensorTests.hs" 16 34 16 35
+                            ]
+                        }
+                      (PromotedList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 30 16 35
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TensorTests.hs" 16 30 16 31
+                               , SrcSpan "tests/examples/TensorTests.hs" 16 34 16 35
+                               ]
+                           }
+                         True
+                         [ TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 32 16 34
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TensorTests.hs" 16 32 16 34
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/TensorTests.hs" 16 32 16 34
+                                     , srcInfoPoints = []
+                                     }
+                                   "RT"))
+                         ]))))
+             (UnpromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 37 16 40
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 37 16 40
+                     , srcInfoPoints = []
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 37 16 40
+                        , srcInfoPoints = []
+                        }
+                      "<*>")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 41 16 67
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 16 41 16 42
+                      , SrcSpan "tests/examples/TensorTests.hs" 16 66 16 67
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 42 16 66
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 42 16 57
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 42 16 48
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 42 16 48
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 42 16 48
+                                 , srcInfoPoints = []
+                                 }
+                               "Filter")))
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 49 16 57
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 49 16 57
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 49 16 57
+                                 , srcInfoPoints = []
+                                 }
+                               "Liftable"))))
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 58 16 66
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 58 16 66
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 16 58 16 66
+                              , srcInfoPoints = []
+                              }
+                            "MRCombos"))))))
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 1 19 61
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TensorTests.hs" 19 1 19 5
+                , SrcSpan "tests/examples/TensorTests.hs" 19 6 19 14
+                , SrcSpan "tests/examples/TensorTests.hs" 19 38 19 39
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 15 19 37
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 15 19 29
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 15 19 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 15 19 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 15 19 20
+                           , srcInfoPoints = []
+                           }
+                         "Apply")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 21 19 29
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 21 19 29
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 21 19 29
+                           , srcInfoPoints = []
+                           }
+                         "Liftable"))))
+             (TyPromoted
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 30 19 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 19 30 19 31
+                      , SrcSpan "tests/examples/TensorTests.hs" 19 33 19 34
+                      , SrcSpan "tests/examples/TensorTests.hs" 19 36 19 37
+                      ]
+                  }
+                (PromotedTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 30 19 37
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TensorTests.hs" 19 30 19 31
+                         , SrcSpan "tests/examples/TensorTests.hs" 19 33 19 34
+                         , SrcSpan "tests/examples/TensorTests.hs" 19 36 19 37
+                         ]
+                     }
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 32 19 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 32 19 33
+                            , srcInfoPoints = []
+                            }
+                          "m")
+                   , TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 34 19 36
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 34 19 36
+                            , srcInfoPoints = []
+                            }
+                          "zq")
+                   ])))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 40 19 61
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 40 19 45
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 40 19 45
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 40 19 45
+                        , srcInfoPoints = []
+                        }
+                      "Int64")))
+             (UnpromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 46 19 49
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 46 19 49
+                     , srcInfoPoints = []
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 46 19 49
+                        , srcInfoPoints = []
+                        }
+                      ":==")))
+             (TyParen
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 50 19 61
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TensorTests.hs" 19 50 19 51
+                      , SrcSpan "tests/examples/TensorTests.hs" 19 60 19 61
+                      ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 51 19 60
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 51 19 57
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 51 19 57
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 51 19 57
+                              , srcInfoPoints = []
+                              }
+                            "LiftOf")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 58 19 60
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TensorTests.hs" 19 58 19 60
+                           , srcInfoPoints = []
+                           }
+                         "zq")))))
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/TensorTests.hs" 11 1 11 55)
+        "type ExtParams = ( '(,) <$> Tensors) <*> MRExtCombos"
+    , Comment
+        False
+        (SrcSpan "tests/examples/TensorTests.hs" 18 1 18 49)
+        "data Liftable :: TyFun (Factored, *) Bool -> *"
+    ]
+  )
diff --git a/tests/examples/TensorTests.hs.prettyparser.golden b/tests/examples/TensorTests.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TensorTests.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TensorTests.hs.prettyprinter.golden b/tests/examples/TensorTests.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TensorTests.hs.prettyprinter.golden
@@ -0,0 +1,18 @@
+{-# LANGUAGE ConstraintKinds, FlexibleContexts, DataKinds,
+  NoImplicitPrelude, RebindableSyntax, ScopedTypeVariables,
+  TypeFamilies, TypeOperators, UndecidableInstances #-}
+module TensorTests (tensorTests) where
+
+type TMRParams = ('(,) <$> Tensors) <*> MRCombos
+
+tmrParams :: Proxy TMRParams
+tmrParams = Proxy
+
+type TrEmParams = ('(,) <$> Tensors) <*> MM'RCombos
+
+tremParams :: Proxy TrEmParams
+tremParams = Proxy
+
+type NormParams = ('(,) <$> '[RT]) <*> (Filter Liftable MRCombos)
+
+type instance Apply Liftable '(m, zq) = Int64 :== (LiftOf zq)
diff --git a/tests/examples/Testing.hs.parser.golden b/tests/examples/Testing.hs.parser.golden
--- a/tests/examples/Testing.hs.parser.golden
+++ b/tests/examples/Testing.hs.parser.golden
@@ -1,1 +1,89 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/Testing.hs" 2 1 2 1,SrcSpan "tests/examples/Testing.hs" 2 1 2 1,SrcSpan "tests/examples/Testing.hs" 2 1 2 1,SrcSpan "tests/examples/Testing.hs" 3 1 3 1,SrcSpan "tests/examples/Testing.hs" 3 1 3 1]}) Nothing [] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 6 2 17, srcInfoPoints = [SrcSpan "tests/examples/Testing.hs" 2 6 2 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14, srcInfoPoints = []}) "return"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17, srcInfoPoints = [SrcSpan "tests/examples/Testing.hs" 2 15 2 16,SrcSpan "tests/examples/Testing.hs" 2 16 2 17]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17, srcInfoPoints = [SrcSpan "tests/examples/Testing.hs" 2 15 2 16,SrcSpan "tests/examples/Testing.hs" 2 16 2 17]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17, srcInfoPoints = [SrcSpan "tests/examples/Testing.hs" 2 15 2 16,SrcSpan "tests/examples/Testing.hs" 2 16 2 17]})))))) Nothing],[Comment True (SrcSpan "tests/examples/Testing.hs" 1 1 1 46) "# LINE 5 \"templates\\GenericTemplate.hs\" #"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Testing.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Testing.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Testing.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Testing.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Testing.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 1 2 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 6 2 17
+               , srcInfoPoints = [ SrcSpan "tests/examples/Testing.hs" 2 6 2 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 8 2 14
+                           , srcInfoPoints = []
+                           }
+                         "return")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Testing.hs" 2 15 2 16
+                         , SrcSpan "tests/examples/Testing.hs" 2 16 2 17
+                         ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Testing.hs" 2 15 2 16
+                            , SrcSpan "tests/examples/Testing.hs" 2 16 2 17
+                            ]
+                        }
+                      (UnitCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Testing.hs" 2 15 2 17
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Testing.hs" 2 15 2 16
+                               , SrcSpan "tests/examples/Testing.hs" 2 16 2 17
+                               ]
+                           })))))
+          Nothing
+      ]
+  , [ Comment
+        True
+        (SrcSpan "tests/examples/Testing.hs" 1 1 1 46)
+        "# LINE 5 \"templates\\GenericTemplate.hs\" #"
+    ]
+  )
diff --git a/tests/examples/Testing.hs.prettyprinter.golden b/tests/examples/Testing.hs.prettyprinter.golden
--- a/tests/examples/Testing.hs.prettyprinter.golden
+++ b/tests/examples/Testing.hs.prettyprinter.golden
@@ -1,2 +1,1 @@
-module Main (main) where
 main = return ()
diff --git a/tests/examples/TrailingWhere.hs b/tests/examples/TrailingWhere.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere.hs
@@ -0,0 +1,5 @@
+fail = x
+    where
+    broken = 24
+        where
+    x = 413
diff --git a/tests/examples/TrailingWhere.hs.exactprinter.golden b/tests/examples/TrailingWhere.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere.hs.parser.golden b/tests/examples/TrailingWhere.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere.hs.parser.golden
@@ -0,0 +1,148 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 1 6 0
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TrailingWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere.hs" 6 1 6 0
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 1 5 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TrailingWhere.hs" 2 5 2 10 ]
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 1 1 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 1 1 5
+                  , srcInfoPoints = []
+                  }
+                "fail"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 6 1 9
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TrailingWhere.hs" 1 6 1 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 8 1 9
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 8 1 9
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 1 8 1 9
+                        , srcInfoPoints = []
+                        }
+                      "x"))))
+          (Just
+             (BDecls
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 5 5 12
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TrailingWhere.hs" 3 5 3 5
+                      , SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 5
+                      , SrcSpan "tests/examples/TrailingWhere.hs" 6 1 6 0
+                      ]
+                  }
+                [ PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 5 5 5
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/TrailingWhere.hs" 4 9 4 14 ]
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 5 3 11
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 5 3 11
+                            , srcInfoPoints = []
+                            }
+                          "broken"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 12 3 16
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TrailingWhere.hs" 3 12 3 13 ]
+                         }
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 14 3 16
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 3 14 3 16
+                               , srcInfoPoints = []
+                               }
+                             24
+                             "24")))
+                    (Just
+                       (BDecls
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 0 5 5
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 5
+                                , SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 5
+                                , SrcSpan "tests/examples/TrailingWhere.hs" 5 0 5 0
+                                ]
+                            }
+                          []))
+                , PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 12
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 5 5 6
+                            , srcInfoPoints = []
+                            }
+                          "x"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 7 5 12
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TrailingWhere.hs" 5 7 5 8 ]
+                         }
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 9 5 12
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere.hs" 5 9 5 12
+                               , srcInfoPoints = []
+                               }
+                             413
+                             "413")))
+                    Nothing
+                ]))
+      ]
+  , []
+  )
diff --git a/tests/examples/TrailingWhere.hs.prettyparser.golden b/tests/examples/TrailingWhere.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere.hs.prettyprinter.golden b/tests/examples/TrailingWhere.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+fail = x
+  where broken = 24
+          where
+        x = 413
diff --git a/tests/examples/TrailingWhere2.hs b/tests/examples/TrailingWhere2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere2.hs
@@ -0,0 +1,6 @@
+data Baz = Baz
+
+instance Show Baz where
+  show _ = ""
+    where
+  show _ = ""
diff --git a/tests/examples/TrailingWhere2.hs.exactprinter.golden b/tests/examples/TrailingWhere2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere2.hs.parser.golden b/tests/examples/TrailingWhere2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere2.hs.parser.golden
@@ -0,0 +1,231 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 7 0
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TrailingWhere2.hs" 7 1 7 0
+            ]
+        }
+      Nothing
+      []
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 1 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TrailingWhere2.hs" 1 10 1 11 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 1 1 1 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 1 6 1 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 1 6 1 9
+                  , srcInfoPoints = []
+                  }
+                "Baz"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TrailingWhere2.hs" 1 12 1 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/TrailingWhere2.hs" 1 12 1 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/TrailingWhere2.hs" 1 12 1 15
+                      , srcInfoPoints = []
+                      }
+                    "Baz")
+                 [])
+          ]
+          []
+      , InstDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 3 1 7 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TrailingWhere2.hs" 3 1 3 9
+                , SrcSpan "tests/examples/TrailingWhere2.hs" 3 19 3 24
+                , SrcSpan "tests/examples/TrailingWhere2.hs" 4 3 4 3
+                , SrcSpan "tests/examples/TrailingWhere2.hs" 6 3 6 3
+                , SrcSpan "tests/examples/TrailingWhere2.hs" 7 1 7 0
+                ]
+            }
+          Nothing
+          (IRule
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TrailingWhere2.hs" 3 10 3 18
+               , srcInfoPoints = []
+               }
+             Nothing
+             Nothing
+             (IHApp
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TrailingWhere2.hs" 3 10 3 18
+                  , srcInfoPoints = []
+                  }
+                (IHCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TrailingWhere2.hs" 3 10 3 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TrailingWhere2.hs" 3 10 3 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TrailingWhere2.hs" 3 10 3 14
+                           , srcInfoPoints = []
+                           }
+                         "Show")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TrailingWhere2.hs" 3 15 3 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TrailingWhere2.hs" 3 15 3 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TrailingWhere2.hs" 3 15 3 18
+                           , srcInfoPoints = []
+                           }
+                         "Baz")))))
+          (Just
+             [ InsDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 4 3 6 14
+                   , srcInfoPoints = []
+                   }
+                 (FunBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 4 3 6 14
+                      , srcInfoPoints = []
+                      }
+                    [ Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 4 3 6 3
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/TrailingWhere2.hs" 5 5 5 10 ]
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 4 3 4 7
+                             , srcInfoPoints = []
+                             }
+                           "show")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 4 8 4 9
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/TrailingWhere2.hs" 4 10 4 14
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/TrailingWhere2.hs" 4 10 4 11 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/TrailingWhere2.hs" 4 12 4 14
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/TrailingWhere2.hs" 4 12 4 14
+                                   , srcInfoPoints = []
+                                   }
+                                 ""
+                                 "")))
+                        (Just
+                           (BDecls
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 6 0 6 3
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/TrailingWhere2.hs" 6 3 6 3
+                                    , SrcSpan "tests/examples/TrailingWhere2.hs" 6 3 6 3
+                                    , SrcSpan "tests/examples/TrailingWhere2.hs" 6 0 6 0
+                                    ]
+                                }
+                              []))
+                    , Match
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 6 3 6 14
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 6 3 6 7
+                             , srcInfoPoints = []
+                             }
+                           "show")
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere2.hs" 6 8 6 9
+                              , srcInfoPoints = []
+                              }
+                        ]
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/TrailingWhere2.hs" 6 10 6 14
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/TrailingWhere2.hs" 6 10 6 11 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/TrailingWhere2.hs" 6 12 6 14
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/TrailingWhere2.hs" 6 12 6 14
+                                   , srcInfoPoints = []
+                                   }
+                                 ""
+                                 "")))
+                        Nothing
+                    ])
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/TrailingWhere2.hs.prettyparser.golden b/tests/examples/TrailingWhere2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere2.hs.prettyprinter.golden b/tests/examples/TrailingWhere2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere2.hs.prettyprinter.golden
@@ -0,0 +1,6 @@
+data Baz = Baz
+
+instance Show Baz where
+        show _ = ""
+          where
+        show _ = ""
diff --git a/tests/examples/TrailingWhere3.hs b/tests/examples/TrailingWhere3.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere3.hs
@@ -0,0 +1,3 @@
+main = f where
+    f = g where
+    g = putStrLn "hello world"
diff --git a/tests/examples/TrailingWhere3.hs.exactprinter.golden b/tests/examples/TrailingWhere3.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere3.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere3.hs.parser.golden b/tests/examples/TrailingWhere3.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere3.hs.parser.golden
@@ -0,0 +1,178 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 4 0
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TrailingWhere3.hs" 4 1 4 0
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 3 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TrailingWhere3.hs" 1 10 1 15 ]
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 1 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 1 1 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 6 1 9
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TrailingWhere3.hs" 1 6 1 7 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 8 1 9
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 8 1 9
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 1 8 1 9
+                        , srcInfoPoints = []
+                        }
+                      "f"))))
+          (Just
+             (BDecls
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 5 3 31
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TrailingWhere3.hs" 2 5 2 5
+                      , SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 5
+                      , SrcSpan "tests/examples/TrailingWhere3.hs" 4 1 4 0
+                      ]
+                  }
+                [ PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 5 3 5
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/TrailingWhere3.hs" 2 11 2 16 ]
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 5 2 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 5 2 6
+                            , srcInfoPoints = []
+                            }
+                          "f"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 7 2 10
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TrailingWhere3.hs" 2 7 2 8 ]
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 9 2 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 2 9 2 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TrailingWhere3.hs" 2 9 2 10
+                                  , srcInfoPoints = []
+                                  }
+                                "g"))))
+                    (Just
+                       (BDecls
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 0 3 5
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 5
+                                , SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 5
+                                , SrcSpan "tests/examples/TrailingWhere3.hs" 3 0 3 0
+                                ]
+                            }
+                          []))
+                , PatBind
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 31
+                      , srcInfoPoints = []
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 5 3 6
+                            , srcInfoPoints = []
+                            }
+                          "g"))
+                    (UnGuardedRhs
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 7 3 31
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TrailingWhere3.hs" 3 7 3 8 ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 9 3 31
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TrailingWhere3.hs" 3 9 3 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TrailingWhere3.hs" 3 9 3 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/TrailingWhere3.hs" 3 9 3 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "putStrLn")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/TrailingWhere3.hs" 3 18 3 31
+                               , srcInfoPoints = []
+                               }
+                             (String
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TrailingWhere3.hs" 3 18 3 31
+                                  , srcInfoPoints = []
+                                  }
+                                "hello world"
+                                "hello world"))))
+                    Nothing
+                ]))
+      ]
+  , []
+  )
diff --git a/tests/examples/TrailingWhere3.hs.prettyparser.golden b/tests/examples/TrailingWhere3.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere3.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TrailingWhere3.hs.prettyprinter.golden b/tests/examples/TrailingWhere3.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TrailingWhere3.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+main = f
+  where f = g
+          where
+        g = putStrLn "hello world"
diff --git a/tests/examples/TupleSections.hs.parser.golden b/tests/examples/TupleSections.hs.parser.golden
--- a/tests/examples/TupleSections.hs.parser.golden
+++ b/tests/examples/TupleSections.hs.parser.golden
@@ -1,1 +1,138 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/TupleSections.hs" 1 1 1 1,SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1,SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1,SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1,SrcSpan "tests/examples/TupleSections.hs" 4 1 4 1,SrcSpan "tests/examples/TupleSections.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/TupleSections.hs" 1 1 1 13,SrcSpan "tests/examples/TupleSections.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 14 1 27, srcInfoPoints = []}) "TupleSections"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 18, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 4, srcInfoPoints = []}) "foo") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 5 3 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 5 3 6, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 7 3 18, srcInfoPoints = [SrcSpan "tests/examples/TupleSections.hs" 3 7 3 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 18, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 16, srcInfoPoints = []}) (TupleSection (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 14, srcInfoPoints = [SrcSpan "tests/examples/TupleSections.hs" 3 9 3 10,SrcSpan "tests/examples/TupleSections.hs" 3 11 3 12,SrcSpan "tests/examples/TupleSections.hs" 3 12 3 13,SrcSpan "tests/examples/TupleSections.hs" 3 13 3 14]}) Boxed [Just (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 10 3 11, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 10 3 11, srcInfoPoints = []}) 1 "1")),Nothing,Nothing]) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16, srcInfoPoints = []}) "x")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 17 3 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 17 3 18, srcInfoPoints = []}) 3 "3")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TupleSections.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TupleSections.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TupleSections.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TupleSections.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TupleSections.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TupleSections.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TupleSections"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 18
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 18
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 1 3 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 5 3 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 5 3 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 7 3 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/TupleSections.hs" 3 7 3 8 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 18
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 16
+                         , srcInfoPoints = []
+                         }
+                       (TupleSection
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 9 3 14
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TupleSections.hs" 3 9 3 10
+                                , SrcSpan "tests/examples/TupleSections.hs" 3 11 3 12
+                                , SrcSpan "tests/examples/TupleSections.hs" 3 12 3 13
+                                , SrcSpan "tests/examples/TupleSections.hs" 3 13 3 14
+                                ]
+                            }
+                          Boxed
+                          [ Just
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/TupleSections.hs" 3 10 3 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/TupleSections.hs" 3 10 3 11
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "1"))
+                          , Nothing
+                          , Nothing
+                          ])
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TupleSections.hs" 3 15 3 16
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 17 3 18
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TupleSections.hs" 3 17 3 18
+                            , srcInfoPoints = []
+                            }
+                          3
+                          "3"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/TupleSections.hs.prettyprinter.golden b/tests/examples/TupleSections.hs.prettyprinter.golden
--- a/tests/examples/TupleSections.hs.prettyprinter.golden
+++ b/tests/examples/TupleSections.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE TupleSections #-}
-module Main (main) where
 foo x = (1, ,) x 3
diff --git a/tests/examples/TyQuasiQuote.hs b/tests/examples/TyQuasiQuote.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/TyQuasiQuote.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE QuasiQuotes, TemplateHaskell #-}
+f :: [qq| something in here |]
+f = ()
diff --git a/tests/examples/TyQuasiQuote.hs.exactprinter.golden b/tests/examples/TyQuasiQuote.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TyQuasiQuote.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TyQuasiQuote.hs.parser.golden b/tests/examples/TyQuasiQuote.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TyQuasiQuote.hs.parser.golden
@@ -0,0 +1,109 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TyQuasiQuote.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TyQuasiQuote.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 1 1 1 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TyQuasiQuote.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TyQuasiQuote.hs" 1 25 1 26
+                , SrcSpan "tests/examples/TyQuasiQuote.hs" 1 43 1 46
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 1 27 1 42
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 2 1 2 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TyQuasiQuote.hs" 2 3 2 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 2 1 2 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyQuasiQuote
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 2 6 2 31
+               , srcInfoPoints = []
+               }
+             "qq"
+             " something in here ")
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 1 3 7
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 1 3 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 1 3 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 3 3 7
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TyQuasiQuote.hs" 3 3 3 4 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 7
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 6
+                      , SrcSpan "tests/examples/TyQuasiQuote.hs" 3 6 3 7
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 7
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 6
+                         , SrcSpan "tests/examples/TyQuasiQuote.hs" 3 6 3 7
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 7
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TyQuasiQuote.hs" 3 5 3 6
+                            , SrcSpan "tests/examples/TyQuasiQuote.hs" 3 6 3 7
+                            ]
+                        }))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/TyQuasiQuote.hs.prettyparser.golden b/tests/examples/TyQuasiQuote.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TyQuasiQuote.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/TyQuasiQuote.hs.prettyprinter.golden b/tests/examples/TyQuasiQuote.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/TyQuasiQuote.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE QuasiQuotes, TemplateHaskell #-}
+
+f :: [qq| something in here |]
+f = ()
diff --git a/tests/examples/TySplice.hs.parser.golden b/tests/examples/TySplice.hs.parser.golden
--- a/tests/examples/TySplice.hs.parser.golden
+++ b/tests/examples/TySplice.hs.parser.golden
@@ -1,1 +1,191 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 1 1 1 1,SrcSpan "tests/examples/TySplice.hs" 3 1 3 1,SrcSpan "tests/examples/TySplice.hs" 3 1 3 1,SrcSpan "tests/examples/TySplice.hs" 3 1 3 1,SrcSpan "tests/examples/TySplice.hs" 4 1 4 1,SrcSpan "tests/examples/TySplice.hs" 5 1 5 1,SrcSpan "tests/examples/TySplice.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 1 1 1 13,SrcSpan "tests/examples/TySplice.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 14 1 29, srcInfoPoints = []}) "TemplateHaskell"]] [] [SpliceDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 3 1 3 3,SrcSpan "tests/examples/TySplice.hs" 3 13 3 15]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 3 1 3 3,SrcSpan "tests/examples/TySplice.hs" 3 13 3 15]}) (ExpBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 3 1 3 3,SrcSpan "tests/examples/TySplice.hs" 3 13 3 15]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 12, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 3 6 3 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5, srcInfoPoints = []}) "f"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 9 3 12, srcInfoPoints = []}) (IdSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 9 3 12, srcInfoPoints = []}) "ty"))))),SpliceDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 1 4 3,SrcSpan "tests/examples/TySplice.hs" 4 19 4 21]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 1 4 3,SrcSpan "tests/examples/TySplice.hs" 4 19 4 21]}) (ExpBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 1 4 3,SrcSpan "tests/examples/TySplice.hs" 4 19 4 21]}) (ExpTypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 18, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 6 4 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5, srcInfoPoints = []}) "f"))) (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 9 4 18, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 9 4 11,SrcSpan "tests/examples/TySplice.hs" 4 17 4 18]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 9 4 18, srcInfoPoints = [SrcSpan "tests/examples/TySplice.hs" 4 9 4 11,SrcSpan "tests/examples/TySplice.hs" 4 17 4 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 14, srcInfoPoints = []}) "fun"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 15 4 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 15 4 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 15 4 17, srcInfoPoints = []}) "ty")))))))))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TySplice.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TySplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TySplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TySplice.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TySplice.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TySplice.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TySplice.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TySplice.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ SpliceDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice.hs" 3 1 3 3
+                , SrcSpan "tests/examples/TySplice.hs" 3 13 3 15
+                ]
+            }
+          (BracketExp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TySplice.hs" 3 1 3 3
+                   , SrcSpan "tests/examples/TySplice.hs" 3 13 3 15
+                   ]
+               }
+             (ExpBracket
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 1 3 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TySplice.hs" 3 1 3 3
+                      , SrcSpan "tests/examples/TySplice.hs" 3 13 3 15
+                      ]
+                  }
+                (ExpTypeSig
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 12
+                     , srcInfoPoints = [ SrcSpan "tests/examples/TySplice.hs" 3 6 3 8 ]
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 4 3 5
+                              , srcInfoPoints = []
+                              }
+                            "f")))
+                   (TySplice
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 9 3 12
+                        , srcInfoPoints = []
+                        }
+                      (IdSplice
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 3 9 3 12
+                           , srcInfoPoints = []
+                           }
+                         "ty")))))
+      , SpliceDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice.hs" 4 1 4 3
+                , SrcSpan "tests/examples/TySplice.hs" 4 19 4 21
+                ]
+            }
+          (BracketExp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TySplice.hs" 4 1 4 3
+                   , SrcSpan "tests/examples/TySplice.hs" 4 19 4 21
+                   ]
+               }
+             (ExpBracket
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 1 4 21
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TySplice.hs" 4 1 4 3
+                      , SrcSpan "tests/examples/TySplice.hs" 4 19 4 21
+                      ]
+                  }
+                (ExpTypeSig
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 18
+                     , srcInfoPoints = [ SrcSpan "tests/examples/TySplice.hs" 4 6 4 8 ]
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 4 4 5
+                              , srcInfoPoints = []
+                              }
+                            "f")))
+                   (TySplice
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 9 4 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TySplice.hs" 4 9 4 11
+                            , SrcSpan "tests/examples/TySplice.hs" 4 17 4 18
+                            ]
+                        }
+                      (ParenSplice
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 9 4 18
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TySplice.hs" 4 9 4 11
+                               , SrcSpan "tests/examples/TySplice.hs" 4 17 4 18
+                               ]
+                           }
+                         (App
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 17
+                              , srcInfoPoints = []
+                              }
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 14
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 11 4 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/TySplice.hs" 4 11 4 14
+                                       , srcInfoPoints = []
+                                       }
+                                     "fun")))
+                            (Var
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 15 4 17
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice.hs" 4 15 4 17
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/TySplice.hs" 4 15 4 17
+                                       , srcInfoPoints = []
+                                       }
+                                     "ty")))))))))
+      ]
+  , []
+  )
diff --git a/tests/examples/TySplice.hs.prettyprinter.golden b/tests/examples/TySplice.hs.prettyprinter.golden
--- a/tests/examples/TySplice.hs.prettyprinter.golden
+++ b/tests/examples/TySplice.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE TemplateHaskell #-}
-module Main (main) where
- 
+
 [| f :: $ty |]
- 
+
 [| f :: $( fun ty ) |]
diff --git a/tests/examples/TySplice2.hs.parser.golden b/tests/examples/TySplice2.hs.parser.golden
--- a/tests/examples/TySplice2.hs.parser.golden
+++ b/tests/examples/TySplice2.hs.parser.golden
@@ -1,1 +1,129 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 1 1 1 1,SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice2.hs" 3 1 3 1,SrcSpan "tests/examples/TySplice2.hs" 5 1 5 1,SrcSpan "tests/examples/TySplice2.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 1 1 1 13,SrcSpan "tests/examples/TySplice2.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 14 1 29, srcInfoPoints = []}) "TemplateHaskell"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 1 2 20, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 2 4 2 6]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 1 2 3, srcInfoPoints = []}) "t1"] (TySplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 7 2 20, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 2 7 2 9,SrcSpan "tests/examples/TySplice2.hs" 2 19 2 20]}) (ParenSplice (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 7 2 20, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 2 7 2 9,SrcSpan "tests/examples/TySplice2.hs" 2 19 2 20]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 10 2 18, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 2 10 2 13,SrcSpan "tests/examples/TySplice2.hs" 2 16 2 18]}) (TypeBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 10 2 18, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 2 10 2 13,SrcSpan "tests/examples/TySplice2.hs" 2 16 2 18]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16, srcInfoPoints = []}) "Int"))))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 7, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 3, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 3, srcInfoPoints = []}) "t1")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 4 3 7, srcInfoPoints = [SrcSpan "tests/examples/TySplice2.hs" 3 4 3 5]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 6 3 7, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 6 3 7, srcInfoPoints = []}) 1 "1"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TySplice2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice2.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TySplice2.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TySplice2.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TySplice2.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 1 2 20
+            , srcInfoPoints = [ SrcSpan "tests/examples/TySplice2.hs" 2 4 2 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 1 2 3
+                , srcInfoPoints = []
+                }
+              "t1"
+          ]
+          (TySplice
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 7 2 20
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TySplice2.hs" 2 7 2 9
+                   , SrcSpan "tests/examples/TySplice2.hs" 2 19 2 20
+                   ]
+               }
+             (ParenSplice
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 7 2 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TySplice2.hs" 2 7 2 9
+                      , SrcSpan "tests/examples/TySplice2.hs" 2 19 2 20
+                      ]
+                  }
+                (BracketExp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 10 2 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TySplice2.hs" 2 10 2 13
+                         , SrcSpan "tests/examples/TySplice2.hs" 2 16 2 18
+                         ]
+                     }
+                   (TypeBracket
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 10 2 18
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TySplice2.hs" 2 10 2 13
+                            , SrcSpan "tests/examples/TySplice2.hs" 2 16 2 18
+                            ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 2 13 2 16
+                                 , srcInfoPoints = []
+                                 }
+                               "Int")))))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 7
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 3
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 1 3 3
+                  , srcInfoPoints = []
+                  }
+                "t1"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 4 3 7
+               , srcInfoPoints = [ SrcSpan "tests/examples/TySplice2.hs" 3 4 3 5 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice2.hs" 3 6 3 7
+                     , srcInfoPoints = []
+                     }
+                   1
+                   "1")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/TySplice2.hs.prettyprinter.golden b/tests/examples/TySplice2.hs.prettyprinter.golden
--- a/tests/examples/TySplice2.hs.prettyprinter.golden
+++ b/tests/examples/TySplice2.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE TemplateHaskell #-}
-module Main (main) where
- 
+
 t1 :: $( [t| Int |] )
 t1 = 1
diff --git a/tests/examples/TySplice3.hs.parser.golden b/tests/examples/TySplice3.hs.parser.golden
--- a/tests/examples/TySplice3.hs.parser.golden
+++ b/tests/examples/TySplice3.hs.parser.golden
@@ -1,1 +1,46 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 1 3 1, srcInfoPoints = [SrcSpan "tests/examples/TySplice3.hs" 1 1 1 1,SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice3.hs" 3 1 3 1,SrcSpan "tests/examples/TySplice3.hs" 3 1 3 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 1 1 29, srcInfoPoints = [SrcSpan "tests/examples/TySplice3.hs" 1 1 1 13,SrcSpan "tests/examples/TySplice3.hs" 1 26 1 29]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 14 1 25, srcInfoPoints = []}) "QuasiQuotes"]] [] [SpliceDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 2 1 2 12, srcInfoPoints = []}) (QuasiQuote (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 2 1 2 12, srcInfoPoints = []}) "qq" " abc ")],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TySplice3.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice3.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice3.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TySplice3.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 1 1 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice3.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TySplice3.hs" 1 26 1 29
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 1 14 1 25
+                , srcInfoPoints = []
+                }
+              "QuasiQuotes"
+          ]
+      ]
+      []
+      [ SpliceDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 2 1 2 12
+            , srcInfoPoints = []
+            }
+          (QuasiQuote
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice3.hs" 2 1 2 12
+               , srcInfoPoints = []
+               }
+             "qq"
+             " abc ")
+      ]
+  , []
+  )
diff --git a/tests/examples/TySplice3.hs.prettyprinter.golden b/tests/examples/TySplice3.hs.prettyprinter.golden
--- a/tests/examples/TySplice3.hs.prettyprinter.golden
+++ b/tests/examples/TySplice3.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
 {-# LANGUAGE QuasiQuotes #-}
-module Main (main) where
- 
+
 [qq| abc |]
diff --git a/tests/examples/TySplice4.hs.parser.golden b/tests/examples/TySplice4.hs.parser.golden
--- a/tests/examples/TySplice4.hs.parser.golden
+++ b/tests/examples/TySplice4.hs.parser.golden
@@ -1,1 +1,309 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 1 1 1 1,SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1,SrcSpan "tests/examples/TySplice4.hs" 5 1 5 1,SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1,SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 1 33, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 1 1 1 13,SrcSpan "tests/examples/TySplice4.hs" 1 30 1 33]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 14 1 29, srcInfoPoints = []}) "TemplateHaskell"]] [] [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 3 19, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2, srcInfoPoints = []}) "x")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 3 3 19, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 2 3 2 4]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 2 5 2 8,SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9,SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19]}) (DeclBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 2 9 2 9,SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9,SrcSpan "tests/examples/TySplice4.hs" 3 17 3 17,SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 22, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 2 11 2 13]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 10, srcInfoPoints = []}) "f"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 22, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 2 16 2 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22, srcInfoPoints = []}) "Int")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 10, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 13 3 16, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 3 13 3 14]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16, srcInfoPoints = []}) 1 "1"))) Nothing]]))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 36, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2, srcInfoPoints = []}) "y")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 3 5 36, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 3 5 4]}) (BracketExp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 5 5 8,SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24,SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36]}) (DeclBracket (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 9 5 9,SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24,SrcSpan "tests/examples/TySplice4.hs" 5 34 5 34,SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36]}) [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 23, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 12 5 14]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 11, srcInfoPoints = []}) "f2"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 23, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 17 5 19]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23, srcInfoPoints = []}) "Int")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 27, srcInfoPoints = []}) "f2") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 30 5 33, srcInfoPoints = [SrcSpan "tests/examples/TySplice4.hs" 5 30 5 31]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33, srcInfoPoints = []}) 1 "1"))) Nothing]]))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TySplice4.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice4.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TySplice4.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1
+            , SrcSpan "tests/examples/TySplice4.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TySplice4.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TySplice4.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "TemplateHaskell"
+          ]
+      ]
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 3 19
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 1 2 2
+                  , srcInfoPoints = []
+                  }
+                "x"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 3 3 19
+               , srcInfoPoints = [ SrcSpan "tests/examples/TySplice4.hs" 2 3 2 4 ]
+               }
+             (BracketExp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TySplice4.hs" 2 5 2 8
+                      , SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9
+                      , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19
+                      ]
+                  }
+                (DeclBracket
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 5 3 19
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TySplice4.hs" 2 9 2 9
+                         , SrcSpan "tests/examples/TySplice4.hs" 3 9 3 9
+                         , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 17
+                         , SrcSpan "tests/examples/TySplice4.hs" 3 17 3 19
+                         ]
+                     }
+                   [ TypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 22
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TySplice4.hs" 2 11 2 13 ]
+                         }
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 9 2 10
+                             , srcInfoPoints = []
+                             }
+                           "f"
+                       ]
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 22
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TySplice4.hs" 2 16 2 18 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 14 2 15
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 2 19 2 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))))
+                   , FunBind
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16
+                         , srcInfoPoints = []
+                         }
+                       [ Match
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 9 3 10
+                                , srcInfoPoints = []
+                                }
+                              "f")
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 11 3 12
+                                    , srcInfoPoints = []
+                                    }
+                                  "x")
+                           ]
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 13 3 16
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/TySplice4.hs" 3 13 3 14 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/TySplice4.hs" 3 15 3 16
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "1")))
+                           Nothing
+                       ]
+                   ])))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 36
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 1 5 2
+                  , srcInfoPoints = []
+                  }
+                "y"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 3 5 36
+               , srcInfoPoints = [ SrcSpan "tests/examples/TySplice4.hs" 5 3 5 4 ]
+               }
+             (BracketExp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TySplice4.hs" 5 5 5 8
+                      , SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24
+                      , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36
+                      ]
+                  }
+                (DeclBracket
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 5 5 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TySplice4.hs" 5 9 5 9
+                         , SrcSpan "tests/examples/TySplice4.hs" 5 23 5 24
+                         , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 34
+                         , SrcSpan "tests/examples/TySplice4.hs" 5 34 5 36
+                         ]
+                     }
+                   [ TypeSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TySplice4.hs" 5 12 5 14 ]
+                         }
+                       [ Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 9 5 11
+                             , srcInfoPoints = []
+                             }
+                           "f2"
+                       ]
+                       (TyFun
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 23
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TySplice4.hs" 5 17 5 19 ]
+                            }
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 15 5 16
+                                  , srcInfoPoints = []
+                                  }
+                                "a"))
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 20 5 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int"))))
+                   , FunBind
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33
+                         , srcInfoPoints = []
+                         }
+                       [ Match
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 33
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 25 5 27
+                                , srcInfoPoints = []
+                                }
+                              "f2")
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 28 5 29
+                                    , srcInfoPoints = []
+                                    }
+                                  "x")
+                           ]
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 30 5 33
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/TySplice4.hs" 5 30 5 31 ]
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/TySplice4.hs" 5 32 5 33
+                                      , srcInfoPoints = []
+                                      }
+                                    1
+                                    "1")))
+                           Nothing
+                       ]
+                   ])))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/TySplice4.hs.prettyprinter.golden b/tests/examples/TySplice4.hs.prettyprinter.golden
--- a/tests/examples/TySplice4.hs.prettyprinter.golden
+++ b/tests/examples/TySplice4.hs.prettyprinter.golden
@@ -1,10 +1,9 @@
 {-# LANGUAGE TemplateHaskell #-}
-module Main (main) where
 x = [d|
-       
+      
       f :: a -> Int
       f x = 1 |]
 y = [d|
-       
+      
       f2 :: a -> Int
       f2 x = 1 |]
diff --git a/tests/examples/TypeEqualityParen.hs.parser.golden b/tests/examples/TypeEqualityParen.hs.parser.golden
--- a/tests/examples/TypeEqualityParen.hs.parser.golden
+++ b/tests/examples/TypeEqualityParen.hs.parser.golden
@@ -1,1 +1,260 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 4 1 4 1,SrcSpan "tests/examples/TypeEqualityParen.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 13,SrcSpan "tests/examples/TypeEqualityParen.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 37, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 2 3 2 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 2, srcInfoPoints = []}) "f"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 37, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 28, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 7,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 12 2 13,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 24 2 25,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 26 2 28]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10, srcInfoPoints = []}) "Eq")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 11 2 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 11 2 12, srcInfoPoints = []}) "a")],ParenA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 14 2 23, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 2 14 2 15,SrcSpan "tests/examples/TypeEqualityParen.hs" 2 22 2 23]}) (EqualP (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 22, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 2 17 2 18]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 16, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22, srcInfoPoints = []}) "Int"))))])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 37, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 2 31 2 33]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 30, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37, srcInfoPoints = []}) "Int"))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 8, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 2, srcInfoPoints = []}) "f") [PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 3 3 4, srcInfoPoints = []})] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 5 3 8, srcInfoPoints = [SrcSpan "tests/examples/TypeEqualityParen.hs" 3 5 3 6]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 7 3 8, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeEqualityParen.hs" 3 7 3 8, srcInfoPoints = []}) 3 "3"))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TypeEqualityParen.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeEqualityParen.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeEqualityParen.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeEqualityParen.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 37
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 3 2 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeEqualityParen.hs" 2 1 2 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 37
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 6 2 7
+                         , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 12 2 13
+                         , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 24 2 25
+                         , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 26 2 28
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10
+                                     , srcInfoPoints = []
+                                     }
+                                   "Eq")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 11 2 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeEqualityParen.hs" 2 11 2 12
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , ParenA
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/TypeEqualityParen.hs" 2 14 2 23
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 14 2 15
+                             , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 22 2 23
+                             ]
+                         }
+                       (TypeA
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 22
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 17 2 18 ]
+                            }
+                          (TyEquals
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 22
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 17 2 18 ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "a"))
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "Int")))))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 31 2 33 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeEqualityParen.hs" 2 29 2 30
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TypeEqualityParen.hs" 2 34 2 37
+                           , srcInfoPoints = []
+                           }
+                         "Int")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 8
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/TypeEqualityParen.hs" 3 1 3 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/TypeEqualityParen.hs" 3 3 3 4
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/TypeEqualityParen.hs" 3 5 3 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/TypeEqualityParen.hs" 3 5 3 6 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/TypeEqualityParen.hs" 3 7 3 8
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/TypeEqualityParen.hs" 3 7 3 8
+                         , srcInfoPoints = []
+                         }
+                       3
+                       "3")))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeEqualityParen.hs.prettyprinter.golden b/tests/examples/TypeEqualityParen.hs.prettyprinter.golden
--- a/tests/examples/TypeEqualityParen.hs.prettyprinter.golden
+++ b/tests/examples/TypeEqualityParen.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE TypeFamilies #-}
-module Main (main) where
- 
+
 f :: (Eq a, (a ~ Int)) => a -> Int
 f _ = 3
diff --git a/tests/examples/TypeErrorMessage.hs.exactprinter.golden b/tests/examples/TypeErrorMessage.hs.exactprinter.golden
--- a/tests/examples/TypeErrorMessage.hs.exactprinter.golden
+++ b/tests/examples/TypeErrorMessage.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "ExplicitForAll or TypeOperators is not enabled"
+ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "At least one of ExplicitForAll or TypeOperators language extensions needs to be enabled. Please add: {-# LANGUAGE ExplicitForAll #-} or {-# LANGUAGE TypeOperators #-} language pragma at the top of your module."
diff --git a/tests/examples/TypeErrorMessage.hs.parser.golden b/tests/examples/TypeErrorMessage.hs.parser.golden
--- a/tests/examples/TypeErrorMessage.hs.parser.golden
+++ b/tests/examples/TypeErrorMessage.hs.parser.golden
@@ -1,1 +1,3 @@
-ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "ExplicitForAll or TypeOperators is not enabled"
+ParseFailed
+  (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1)
+  "At least one of ExplicitForAll or TypeOperators language extensions needs to be enabled. Please add: {-# LANGUAGE ExplicitForAll #-} or {-# LANGUAGE TypeOperators #-} language pragma at the top of your module."
diff --git a/tests/examples/TypeErrorMessage.hs.prettyparser.golden b/tests/examples/TypeErrorMessage.hs.prettyparser.golden
--- a/tests/examples/TypeErrorMessage.hs.prettyparser.golden
+++ b/tests/examples/TypeErrorMessage.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "ExplicitForAll or TypeOperators is not enabled"
+ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "At least one of ExplicitForAll or TypeOperators language extensions needs to be enabled. Please add: {-# LANGUAGE ExplicitForAll #-} or {-# LANGUAGE TypeOperators #-} language pragma at the top of your module."
diff --git a/tests/examples/TypeErrorMessage.hs.prettyprinter.golden b/tests/examples/TypeErrorMessage.hs.prettyprinter.golden
--- a/tests/examples/TypeErrorMessage.hs.prettyprinter.golden
+++ b/tests/examples/TypeErrorMessage.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "ExplicitForAll or TypeOperators is not enabled"
+ParseFailed (SrcLoc "tests/examples/TypeErrorMessage.hs" 2 1) "At least one of ExplicitForAll or TypeOperators language extensions needs to be enabled. Please add: {-# LANGUAGE ExplicitForAll #-} or {-# LANGUAGE TypeOperators #-} language pragma at the top of your module."
diff --git a/tests/examples/TypeFunctions.hs.parser.golden b/tests/examples/TypeFunctions.hs.parser.golden
--- a/tests/examples/TypeFunctions.hs.parser.golden
+++ b/tests/examples/TypeFunctions.hs.parser.golden
@@ -1,1 +1,244 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 1,SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1,SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1,SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1,SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 1,SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 1,SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1,SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 46, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 13,SrcSpan "tests/examples/TypeFunctions.hs" 1 26 1 27,SrcSpan "tests/examples/TypeFunctions.hs" 1 43 1 46]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 28 1 42, srcInfoPoints = []}) "KindSignatures"]] [] [DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 13, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 3 9 3 10]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8, srcInfoPoints = []}) "Id")) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13, srcInfoPoints = []}) "Id") [])] Nothing,TypeFamDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 37, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 5,SrcSpan "tests/examples/TypeFunctions.hs" 5 6 5 12,SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 35]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 32, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 30, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16, srcInfoPoints = []}) "Rep")) (KindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 30, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 18,SrcSpan "tests/examples/TypeFunctions.hs" 5 20 5 22,SrcSpan "tests/examples/TypeFunctions.hs" 5 29 5 30]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 18 5 19, srcInfoPoints = []}) "f") (KindFn (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 29, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 5 25 5 27]}) (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 24, srcInfoPoints = []})) (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 28 5 29, srcInfoPoints = []}))))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32, srcInfoPoints = []}) "x"))) (Just (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 36 5 37, srcInfoPoints = []}))),TypeInsDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 27, srcInfoPoints = [SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 5,SrcSpan "tests/examples/TypeFunctions.hs" 7 6 7 14,SrcSpan "tests/examples/TypeFunctions.hs" 7 24 7 25]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 23, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 21, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18, srcInfoPoints = []}) "Rep"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21, srcInfoPoints = []}) "Id")))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23, srcInfoPoints = []}) "x"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27, srcInfoPoints = []}) "x"))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1
+            , SrcSpan "tests/examples/TypeFunctions.hs" 8 1 8 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeFunctions.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeFunctions.hs" 1 26 1 27
+                , SrcSpan "tests/examples/TypeFunctions.hs" 1 43 1 46
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 1 28 1 42
+                , srcInfoPoints = []
+                }
+              "KindSignatures"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeFunctions.hs" 3 9 3 10 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 6 3 8
+                  , srcInfoPoints = []
+                  }
+                "Id"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 3 11 3 13
+                      , srcInfoPoints = []
+                      }
+                    "Id")
+                 [])
+          ]
+          []
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeFunctions.hs" 5 1 5 5
+                , SrcSpan "tests/examples/TypeFunctions.hs" 5 6 5 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 32
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 30
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 13 5 16
+                        , srcInfoPoints = []
+                        }
+                      "Rep"))
+                (KindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeFunctions.hs" 5 17 5 18
+                         , SrcSpan "tests/examples/TypeFunctions.hs" 5 20 5 22
+                         , SrcSpan "tests/examples/TypeFunctions.hs" 5 29 5 30
+                         ]
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 18 5 19
+                        , srcInfoPoints = []
+                        }
+                      "f")
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 29
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TypeFunctions.hs" 5 25 5 27 ]
+                        }
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 24
+                           , srcInfoPoints = []
+                           })
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 28 5 29
+                           , srcInfoPoints = []
+                           }))))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 31 5 32
+                     , srcInfoPoints = []
+                     }
+                   "x")))
+          (Just
+             (KindSig
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 37
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 35 ]
+                  }
+                (TyStar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 36 5 37
+                     , srcInfoPoints = []
+                     })))
+          Nothing
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeFunctions.hs" 7 1 7 5
+                , SrcSpan "tests/examples/TypeFunctions.hs" 7 6 7 14
+                , SrcSpan "tests/examples/TypeFunctions.hs" 7 24 7 25
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 23
+               , srcInfoPoints = []
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 21
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 15 7 18
+                           , srcInfoPoints = []
+                           }
+                         "Rep")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 19 7 21
+                           , srcInfoPoints = []
+                           }
+                         "Id"))))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 22 7 23
+                     , srcInfoPoints = []
+                     }
+                   "x")))
+          (TyVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 7 26 7 27
+                  , srcInfoPoints = []
+                  }
+                "x"))
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeFunctions.hs.prettyprinter.golden b/tests/examples/TypeFunctions.hs.prettyprinter.golden
--- a/tests/examples/TypeFunctions.hs.prettyprinter.golden
+++ b/tests/examples/TypeFunctions.hs.prettyprinter.golden
@@ -1,8 +1,7 @@
 {-# LANGUAGE TypeFamilies, KindSignatures #-}
-module Main (main) where
- 
+
 data Id = Id
- 
+
 type family Rep (f :: * -> *) x :: *
- 
+
 type instance Rep Id x = x
diff --git a/tests/examples/TypeInstances.hs.parser.golden b/tests/examples/TypeInstances.hs.parser.golden
--- a/tests/examples/TypeInstances.hs.parser.golden
+++ b/tests/examples/TypeInstances.hs.parser.golden
@@ -1,1 +1,249 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 1,SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1,SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1,SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1,SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 1,SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 30, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 13,SrcSpan "tests/examples/TypeInstances.hs" 1 27 1 30]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 14 1 26, srcInfoPoints = []}) "TypeFamilies"]] [] [ClassDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 1 7 21, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 6,SrcSpan "tests/examples/TypeInstances.hs" 3 17 3 22,SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 3,SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 3,SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 3,SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 0]}) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 16, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 14, srcInfoPoints = []}) "MapType")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 15 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 15 3 16, srcInfoPoints = []}) "v"))) [] (Just [ClsTyFam (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 18, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 7,SrcSpan "tests/examples/TypeInstances.hs" 4 14 4 16]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 11, srcInfoPoints = []}) "Key")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 12 4 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 12 4 13, srcInfoPoints = []}) "v"))) (Just (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 17 4 18, srcInfoPoints = []}))),ClsTyDef (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 34, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 7,SrcSpan "tests/examples/TypeInstances.hs" 5 8 5 16,SrcSpan "tests/examples/TypeInstances.hs" 5 23 5 24]}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 22, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20, srcInfoPoints = []}) "Key"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 21 5 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 21 5 22, srcInfoPoints = []}) "v"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 34, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32, srcInfoPoints = []}) "TileKey"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 33 5 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 33 5 34, srcInfoPoints = []}) "v"))),ClsTyFam (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 21, srcInfoPoints = [SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 7,SrcSpan "tests/examples/TypeInstances.hs" 7 17 7 19]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 16, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 14, srcInfoPoints = []}) "Source")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 15 7 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 15 7 16, srcInfoPoints = []}) "v"))) (Just (KindStar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 20 7 21, srcInfoPoints = []})))])],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 1
+            , SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeInstances.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeInstances.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ ClassDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 1 7 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeInstances.hs" 3 1 3 6
+                , SrcSpan "tests/examples/TypeInstances.hs" 3 17 3 22
+                , SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 3
+                , SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 3
+                , SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 3
+                , SrcSpan "tests/examples/TypeInstances.hs" 8 1 8 0
+                ]
+            }
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 7 3 14
+                     , srcInfoPoints = []
+                     }
+                   "MapType"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 15 3 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 3 15 3 16
+                     , srcInfoPoints = []
+                     }
+                   "v")))
+          []
+          (Just
+             [ ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/TypeInstances.hs" 4 3 4 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 13
+                      , srcInfoPoints = []
+                      }
+                    (DHead
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 11
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 8 4 11
+                            , srcInfoPoints = []
+                            }
+                          "Key"))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 12 4 13
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 12 4 13
+                            , srcInfoPoints = []
+                            }
+                          "v")))
+                 (Just
+                    (KindSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 14 4 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TypeInstances.hs" 4 14 4 16 ]
+                         }
+                       (TyStar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 17 4 18
+                            , srcInfoPoints = []
+                            })))
+                 Nothing
+             , ClsTyDef
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 34
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/TypeInstances.hs" 5 3 5 7
+                       , SrcSpan "tests/examples/TypeInstances.hs" 5 8 5 16
+                       ]
+                   }
+                 (TypeEqn
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 34
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/TypeInstances.hs" 5 23 5 24 ]
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 22
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeInstances.hs" 5 17 5 20
+                                  , srcInfoPoints = []
+                                  }
+                                "Key")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 21 5 22
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 21 5 22
+                               , srcInfoPoints = []
+                               }
+                             "v")))
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 34
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/TypeInstances.hs" 5 25 5 32
+                                  , srcInfoPoints = []
+                                  }
+                                "TileKey")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 33 5 34
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 5 33 5 34
+                               , srcInfoPoints = []
+                               }
+                             "v"))))
+             , ClsTyFam
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 21
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/TypeInstances.hs" 7 3 7 7 ]
+                   }
+                 (DHApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 16
+                      , srcInfoPoints = []
+                      }
+                    (DHead
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 14
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 8 7 14
+                            , srcInfoPoints = []
+                            }
+                          "Source"))
+                    (UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 15 7 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 15 7 16
+                            , srcInfoPoints = []
+                            }
+                          "v")))
+                 (Just
+                    (KindSig
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 17 7 21
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/TypeInstances.hs" 7 17 7 19 ]
+                         }
+                       (TyStar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 20 7 21
+                            , srcInfoPoints = []
+                            })))
+                 Nothing
+             ])
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeInstances.hs.prettyprinter.golden b/tests/examples/TypeInstances.hs.prettyprinter.golden
--- a/tests/examples/TypeInstances.hs.prettyprinter.golden
+++ b/tests/examples/TypeInstances.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
-module Main (main) where
- 
+
 class MapType v where
         type Key v :: *
         type Key v = TileKey v
diff --git a/tests/examples/TypeListCons.hs.parser.golden b/tests/examples/TypeListCons.hs.parser.golden
--- a/tests/examples/TypeListCons.hs.parser.golden
+++ b/tests/examples/TypeListCons.hs.parser.golden
@@ -1,1 +1,426 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 1 8 1, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 1,SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 1,SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 1,SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 1,SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 1,SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 1,SrcSpan "tests/examples/TypeListCons.hs" 8 1 8 1,SrcSpan "tests/examples/TypeListCons.hs" 8 1 8 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 26, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 7,SrcSpan "tests/examples/TypeListCons.hs" 3 21 3 26]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 3 8 3 20, srcInfoPoints = []}) "TypeListCons") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 42, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 13,SrcSpan "tests/examples/TypeListCons.hs" 1 23 1 24,SrcSpan "tests/examples/TypeListCons.hs" 1 39 1 42]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 14 1 23, srcInfoPoints = []}) "DataKinds",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 25 1 38, srcInfoPoints = []}) "TypeOperators"]] [] [TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 24, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 5,SrcSpan "tests/examples/TypeListCons.hs" 5 14 5 15]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 11, srcInfoPoints = []}) "List1")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 12 5 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 12 5 13, srcInfoPoints = []}) "a"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 24, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 20, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 17, srcInfoPoints = []}) "a")) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 20, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 19]}) (PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 20, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 19]}) True (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 19 5 20, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 19 5 20, srcInfoPoints = []})))))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 24, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 22,SrcSpan "tests/examples/TypeListCons.hs" 5 23 5 24]}) (PromotedList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 24, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 22,SrcSpan "tests/examples/TypeListCons.hs" 5 23 5 24]}) True []))),TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 26, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 5,SrcSpan "tests/examples/TypeListCons.hs" 6 16 6 17]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 15, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 11, srcInfoPoints = []}) "List2")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 12 6 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 12 6 13, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 14 6 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 14 6 15, srcInfoPoints = []}) "b"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 26, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 22, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 19, srcInfoPoints = []}) "a")) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 22, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 21]}) (PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 22, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 21]}) True (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 21 6 22, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 21 6 22, srcInfoPoints = []})))))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 26, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 24,SrcSpan "tests/examples/TypeListCons.hs" 6 25 6 26]}) (PromotedList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 26, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 24,SrcSpan "tests/examples/TypeListCons.hs" 6 25 6 26]}) True []))),TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 38, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 5,SrcSpan "tests/examples/TypeListCons.hs" 7 18 7 19]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 17, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 15, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 13, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 11, srcInfoPoints = []}) "List3")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 12 7 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 12 7 13, srcInfoPoints = []}) "a"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 14 7 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 14 7 15, srcInfoPoints = []}) "b"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 16 7 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 16 7 17, srcInfoPoints = []}) "c"))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 38, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 34, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 31, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 29, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 26, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 24, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 21, srcInfoPoints = []}) "a")) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 24, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 23]}) (PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 24, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 23]}) True (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 23 7 24, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 23 7 24, srcInfoPoints = []})))))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 25 7 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 25 7 26, srcInfoPoints = []}) "b"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 29, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 28]}) (PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 29, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 28]}) True (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 28 7 29, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 28 7 29, srcInfoPoints = []})))))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 30 7 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 30 7 31, srcInfoPoints = []}) "c"))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 34, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 33]}) (PromotedCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 34, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 33]}) True (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 33 7 34, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 33 7 34, srcInfoPoints = []})))))) (TyPromoted (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 38, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 36,SrcSpan "tests/examples/TypeListCons.hs" 7 37 7 38]}) (PromotedList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 38, srcInfoPoints = [SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 36,SrcSpan "tests/examples/TypeListCons.hs" 7 37 7 38]}) True [])))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 8 1 8 1
+            , SrcSpan "tests/examples/TypeListCons.hs" 8 1 8 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 26
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/TypeListCons.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/TypeListCons.hs" 3 21 3 26
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 3 8 3 20
+                 , srcInfoPoints = []
+                 }
+               "TypeListCons")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 42
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeListCons.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeListCons.hs" 1 23 1 24
+                , SrcSpan "tests/examples/TypeListCons.hs" 1 39 1 42
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 14 1 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 1 25 1 38
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeListCons.hs" 5 1 5 5
+                , SrcSpan "tests/examples/TypeListCons.hs" 5 14 5 15
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 13
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 6 5 11
+                     , srcInfoPoints = []
+                     }
+                   "List1"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 12 5 13
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 12 5 13
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 24
+               , srcInfoPoints = []
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 16 5 17
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (PromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeListCons.hs" 5 18 5 19 ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 19 5 20
+                     , srcInfoPoints = []
+                     }
+                   (Cons
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 19 5 20
+                        , srcInfoPoints = []
+                        })))
+             (TyPromoted
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 22
+                      , SrcSpan "tests/examples/TypeListCons.hs" 5 23 5 24
+                      ]
+                  }
+                (PromotedList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 24
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeListCons.hs" 5 21 5 22
+                         , SrcSpan "tests/examples/TypeListCons.hs" 5 23 5 24
+                         ]
+                     }
+                   True
+                   [])))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeListCons.hs" 6 1 6 5
+                , SrcSpan "tests/examples/TypeListCons.hs" 6 16 6 17
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 15
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 13
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 6 6 11
+                        , srcInfoPoints = []
+                        }
+                      "List2"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 12 6 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 12 6 13
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 14 6 15
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 14 6 15
+                     , srcInfoPoints = []
+                     }
+                   "b")))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 26
+               , srcInfoPoints = []
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 19
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 18 6 19
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (PromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 22
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeListCons.hs" 6 20 6 21 ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 21 6 22
+                     , srcInfoPoints = []
+                     }
+                   (Cons
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 21 6 22
+                        , srcInfoPoints = []
+                        })))
+             (TyPromoted
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 26
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 24
+                      , SrcSpan "tests/examples/TypeListCons.hs" 6 25 6 26
+                      ]
+                  }
+                (PromotedList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 26
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeListCons.hs" 6 23 6 24
+                         , SrcSpan "tests/examples/TypeListCons.hs" 6 25 6 26
+                         ]
+                     }
+                   True
+                   [])))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 38
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeListCons.hs" 7 1 7 5
+                , SrcSpan "tests/examples/TypeListCons.hs" 7 18 7 19
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 17
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 15
+                  , srcInfoPoints = []
+                  }
+                (DHApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 13
+                     , srcInfoPoints = []
+                     }
+                   (DHead
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 6 7 11
+                           , srcInfoPoints = []
+                           }
+                         "List3"))
+                   (UnkindedVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 12 7 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 12 7 13
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 14 7 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 14 7 15
+                        , srcInfoPoints = []
+                        }
+                      "b")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 16 7 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 16 7 17
+                     , srcInfoPoints = []
+                     }
+                   "c")))
+          (TyInfix
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 38
+               , srcInfoPoints = []
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 21
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 20 7 21
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (PromotedName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeListCons.hs" 7 22 7 23 ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 23 7 24
+                     , srcInfoPoints = []
+                     }
+                   (Cons
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 23 7 24
+                        , srcInfoPoints = []
+                        })))
+             (TyInfix
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 25 7 38
+                  , srcInfoPoints = []
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 25 7 26
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 25 7 26
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (PromotedName
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeListCons.hs" 7 27 7 28 ]
+                     }
+                   (Special
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 28 7 29
+                        , srcInfoPoints = []
+                        }
+                      (Cons
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 28 7 29
+                           , srcInfoPoints = []
+                           })))
+                (TyInfix
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 30 7 38
+                     , srcInfoPoints = []
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 30 7 31
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 30 7 31
+                           , srcInfoPoints = []
+                           }
+                         "c"))
+                   (PromotedName
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 34
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TypeListCons.hs" 7 32 7 33 ]
+                        }
+                      (Special
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 33 7 34
+                           , srcInfoPoints = []
+                           }
+                         (Cons
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 33 7 34
+                              , srcInfoPoints = []
+                              })))
+                   (TyPromoted
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 38
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 36
+                            , SrcSpan "tests/examples/TypeListCons.hs" 7 37 7 38
+                            ]
+                        }
+                      (PromotedList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 38
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TypeListCons.hs" 7 35 7 36
+                               , SrcSpan "tests/examples/TypeListCons.hs" 7 37 7 38
+                               ]
+                           }
+                         True
+                         [])))))
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeListCons.hs.prettyprinter.golden b/tests/examples/TypeListCons.hs.prettyprinter.golden
--- a/tests/examples/TypeListCons.hs.prettyprinter.golden
+++ b/tests/examples/TypeListCons.hs.prettyprinter.golden
@@ -1,8 +1,8 @@
 {-# LANGUAGE DataKinds, TypeOperators #-}
 module TypeListCons where
- 
+
 type List1 a = a ': '[]
- 
+
 type List2 a b = a ': '[]
- 
+
 type List3 a b c = a ': b ': c ': '[]
diff --git a/tests/examples/TypeOperatorAsVariable.hs.parser.golden b/tests/examples/TypeOperatorAsVariable.hs.parser.golden
--- a/tests/examples/TypeOperatorAsVariable.hs.parser.golden
+++ b/tests/examples/TypeOperatorAsVariable.hs.parser.golden
@@ -1,1 +1,159 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 6 1, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 6 1 6 1,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 6 1 6 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 13,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 14 1 27, srcInfoPoints = []}) "TypeOperators"]] [] [TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 17, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 5,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 13 3 14]}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 12, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 7, srcInfoPoints = []}) "T")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 8 3 12, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 8 3 9,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 9 3 11,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 11 3 12]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 9 3 11, srcInfoPoints = []}) "~>"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17]})))),TypeDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 14, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 5,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 10 5 11]}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 6 5 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 6 5 9, srcInfoPoints = []}) "Foo")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13,SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14]}))))],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 6 1 6 1
+            , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      ]
+      []
+      [ TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 1 3 5
+                , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 13 3 14
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 12
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 7
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 6 3 7
+                     , srcInfoPoints = []
+                     }
+                   "T"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 8 3 12
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 8 3 9
+                      , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 9 3 11
+                      , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 11 3 12
+                      ]
+                  }
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 9 3 11
+                     , srcInfoPoints = []
+                     }
+                   "~>")))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16
+                   , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16
+                      , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 15 3 16
+                         , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 3 16 3 17
+                         ]
+                     })))
+      , TypeDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 1 5 5
+                , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 10 5 11
+                ]
+            }
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 6 5 9
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 6 5 9
+                  , srcInfoPoints = []
+                  }
+                "Foo"))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13
+                   , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13
+                      , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 12 5 13
+                         , SrcSpan "tests/examples/TypeOperatorAsVariable.hs" 5 13 5 14
+                         ]
+                     })))
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeOperatorAsVariable.hs.prettyprinter.golden b/tests/examples/TypeOperatorAsVariable.hs.prettyprinter.golden
--- a/tests/examples/TypeOperatorAsVariable.hs.prettyprinter.golden
+++ b/tests/examples/TypeOperatorAsVariable.hs.prettyprinter.golden
@@ -1,6 +1,5 @@
 {-# LANGUAGE TypeOperators #-}
-module Main (main) where
- 
+
 type T (~>) = ()
- 
+
 type Foo = ()
diff --git a/tests/examples/TypeOperatorsTest.hs.parser.golden b/tests/examples/TypeOperatorsTest.hs.parser.golden
--- a/tests/examples/TypeOperatorsTest.hs.parser.golden
+++ b/tests/examples/TypeOperatorsTest.hs.parser.golden
@@ -1,1 +1,242 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1,SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 68, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 13,SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 27 1 28,SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 45 1 46,SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 65 1 68]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 14 1 27, srcInfoPoints = []}) "TypeOperators",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 29 1 45, srcInfoPoints = []}) "FlexibleContexts",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 47 1 64, srcInfoPoints = []}) "FlexibleInstances"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 29, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 3 3 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 2, srcInfoPoints = []}) "f"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 29, srcInfoPoints = []}) Nothing (Just (CxSingle (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22]}) (ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14, srcInfoPoints = []}) "ArrowXml")) [TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18,SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18, srcInfoPoints = []}) "~>"))]))) (TyInfix (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 29, srcInfoPoints = []}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24, srcInfoPoints = []}) "a")) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27, srcInfoPoints = []}) "~>")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29, srcInfoPoints = []}) "a")))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 14, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 14, srcInfoPoints = [SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 4]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14, srcInfoPoints = []}) "undefined")))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1
+            , SrcSpan "tests/examples/TypeOperatorsTest.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 68
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 1 1 13
+                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 27 1 28
+                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 45 1 46
+                , SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 65 1 68
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 29 1 45
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 1 47 1 64
+                , srcInfoPoints = []
+                }
+              "FlexibleInstances"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 3 3 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 1 3 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 29
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14
+                                    , srcInfoPoints = []
+                                    }
+                                  "ArrowXml")))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16
+                                  , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
+                                  , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19
+                                  ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 19
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 15 3 16
+                                     , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
+                                     , SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 18 3 19
+                                     ]
+                                 }
+                               (Symbol
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 16 3 18
+                                    , srcInfoPoints = []
+                                    }
+                                  "~>")))))))
+             (TyInfix
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 29
+                  , srcInfoPoints = []
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 23 3 24
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (UnpromotedName
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
+                        , srcInfoPoints = []
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 25 3 27
+                           , srcInfoPoints = []
+                           }
+                         "~>")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 28 3 29
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 1 4 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 3 4 4 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/TypeOperatorsTest.hs" 4 5 4 14
+                        , srcInfoPoints = []
+                        }
+                      "undefined"))))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/TypeOperatorsTest.hs.prettyprinter.golden b/tests/examples/TypeOperatorsTest.hs.prettyprinter.golden
--- a/tests/examples/TypeOperatorsTest.hs.prettyprinter.golden
+++ b/tests/examples/TypeOperatorsTest.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE TypeOperators, FlexibleContexts, FlexibleInstances #-}
-module Main (main) where
- 
+
 f :: ArrowXml (~>) => a ~> a
 f = undefined
diff --git a/tests/examples/UnboxedSingleton.hs.parser.golden b/tests/examples/UnboxedSingleton.hs.parser.golden
--- a/tests/examples/UnboxedSingleton.hs.parser.golden
+++ b/tests/examples/UnboxedSingleton.hs.parser.golden
@@ -1,1 +1,113 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 1,SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedSingleton.hs" 4 1 4 1,SrcSpan "tests/examples/UnboxedSingleton.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 13,SrcSpan "tests/examples/UnboxedSingleton.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 1 14 1 27, srcInfoPoints = []}) "UnboxedTuples"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 16, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 4, srcInfoPoints = []}) "foo") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 5 3 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 5 3 6, srcInfoPoints = []}) "a")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 7 3 16, srcInfoPoints = [SrcSpan "tests/examples/UnboxedSingleton.hs" 3 7 3 8]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 9 3 16, srcInfoPoints = [SrcSpan "tests/examples/UnboxedSingleton.hs" 3 9 3 11,SrcSpan "tests/examples/UnboxedSingleton.hs" 3 14 3 16]}) Unboxed [Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13, srcInfoPoints = []}) "a"))])) Nothing]],[Comment False (SrcSpan "tests/examples/UnboxedSingleton.hs" 2 1 2 33) " See e.g. GHC.Prim.indexArray#"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedSingleton.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnboxedSingleton.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnboxedSingleton.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnboxedSingleton.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnboxedSingleton.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnboxedTuples"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnboxedSingleton.hs" 3 1 3 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnboxedSingleton.hs" 3 5 3 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnboxedSingleton.hs" 3 5 3 6
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnboxedSingleton.hs" 3 7 3 16
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnboxedSingleton.hs" 3 7 3 8 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnboxedSingleton.hs" 3 9 3 16
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnboxedSingleton.hs" 3 9 3 11
+                          , SrcSpan "tests/examples/UnboxedSingleton.hs" 3 14 3 16
+                          ]
+                      }
+                    Unboxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnboxedSingleton.hs" 3 12 3 13
+                                , srcInfoPoints = []
+                                }
+                              "a"))
+                    ]))
+              Nothing
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/UnboxedSingleton.hs" 2 1 2 33)
+        " See e.g. GHC.Prim.indexArray#"
+    ]
+  )
diff --git a/tests/examples/UnboxedSingleton.hs.prettyprinter.golden b/tests/examples/UnboxedSingleton.hs.prettyprinter.golden
--- a/tests/examples/UnboxedSingleton.hs.prettyprinter.golden
+++ b/tests/examples/UnboxedSingleton.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE UnboxedTuples #-}
-module Main (main) where
-foo a = (#a#)
+foo a = (# a #)
diff --git a/tests/examples/UnboxedTuples.hs.parser.golden b/tests/examples/UnboxedTuples.hs.parser.golden
--- a/tests/examples/UnboxedTuples.hs.parser.golden
+++ b/tests/examples/UnboxedTuples.hs.parser.golden
@@ -1,1 +1,365 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 1,SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1,SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 4 1,SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 1,SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 13,SrcSpan "tests/examples/UnboxedTuples.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 14 1 27, srcInfoPoints = []}) "UnboxedTuples"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 29, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 3 5 3 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 4, srcInfoPoints = []}) "foo"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 29, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 3 15 3 17]}) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 14, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 9,SrcSpan "tests/examples/UnboxedTuples.hs" 3 10 3 11,SrcSpan "tests/examples/UnboxedTuples.hs" 3 13 3 14]}) Boxed [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 9 3 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 9 3 10, srcInfoPoints = []}) "a"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 12 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 12 3 13, srcInfoPoints = []}) "b")]) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 18 3 29, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 3 18 3 20,SrcSpan "tests/examples/UnboxedTuples.hs" 3 23 3 24,SrcSpan "tests/examples/UnboxedTuples.hs" 3 27 3 29]}) Unboxed [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 21 3 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 21 3 22, srcInfoPoints = []}) "b"),TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 25 3 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 25 3 26, srcInfoPoints = []}) "a")])),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 6 30, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 6 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 4 4, srcInfoPoints = []}) "foo") [PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 5 4 11, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 4 5 4 6,SrcSpan "tests/examples/UnboxedTuples.hs" 4 7 4 8,SrcSpan "tests/examples/UnboxedTuples.hs" 4 10 4 11]}) Boxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 6 4 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 6 4 7, srcInfoPoints = []}) "a"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 9 4 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 9 4 10, srcInfoPoints = []}) "b")]] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 12 6 30, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 4 12 4 13]}) (Case (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 3 6 30, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 5 3 5 7,SrcSpan "tests/examples/UnboxedTuples.hs" 5 19 5 21,SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 5,SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 0]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 8 5 18, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 5 8 5 10,SrcSpan "tests/examples/UnboxedTuples.hs" 5 12 5 13,SrcSpan "tests/examples/UnboxedTuples.hs" 5 16 5 18]}) Unboxed [Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12, srcInfoPoints = []}) "b")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15, srcInfoPoints = []}) "a"))]) [Alt (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 30, srcInfoPoints = []}) (PTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 15, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 7,SrcSpan "tests/examples/UnboxedTuples.hs" 6 9 6 10,SrcSpan "tests/examples/UnboxedTuples.hs" 6 13 6 15]}) Unboxed [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 8 6 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 8 6 9, srcInfoPoints = []}) "b"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 11 6 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 11 6 12, srcInfoPoints = []}) "a")]) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 16 6 30, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 6 16 6 18]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 30, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 28, srcInfoPoints = []}) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 21,SrcSpan "tests/examples/UnboxedTuples.hs" 6 22 6 23,SrcSpan "tests/examples/UnboxedTuples.hs" 6 24 6 26]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 21,SrcSpan "tests/examples/UnboxedTuples.hs" 6 22 6 23,SrcSpan "tests/examples/UnboxedTuples.hs" 6 24 6 26]}) (TupleCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26, srcInfoPoints = [SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 21,SrcSpan "tests/examples/UnboxedTuples.hs" 6 22 6 23,SrcSpan "tests/examples/UnboxedTuples.hs" 6 24 6 26]}) Unboxed 2))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28, srcInfoPoints = []}) "b")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30, srcInfoPoints = []}) "a"))))) Nothing])) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 1
+            , SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnboxedTuples.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnboxedTuples.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnboxedTuples"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 29
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnboxedTuples.hs" 3 5 3 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 1 3 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 29
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnboxedTuples.hs" 3 15 3 17 ]
+               }
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnboxedTuples.hs" 3 8 3 9
+                      , SrcSpan "tests/examples/UnboxedTuples.hs" 3 10 3 11
+                      , SrcSpan "tests/examples/UnboxedTuples.hs" 3 13 3 14
+                      ]
+                  }
+                Boxed
+                [ TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 9 3 10
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 9 3 10
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                , TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 12 3 13
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 12 3 13
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                ])
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 18 3 29
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnboxedTuples.hs" 3 18 3 20
+                      , SrcSpan "tests/examples/UnboxedTuples.hs" 3 23 3 24
+                      , SrcSpan "tests/examples/UnboxedTuples.hs" 3 27 3 29
+                      ]
+                  }
+                Unboxed
+                [ TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 21 3 22
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 21 3 22
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                , TyVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 25 3 26
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 3 25 3 26
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 6 30
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 6 30
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 1 4 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PTuple
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 5 4 11
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/UnboxedTuples.hs" 4 5 4 6
+                        , SrcSpan "tests/examples/UnboxedTuples.hs" 4 7 4 8
+                        , SrcSpan "tests/examples/UnboxedTuples.hs" 4 10 4 11
+                        ]
+                    }
+                  Boxed
+                  [ PVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 6 4 7
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 6 4 7
+                           , srcInfoPoints = []
+                           }
+                         "a")
+                  , PVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 9 4 10
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 9 4 10
+                           , srcInfoPoints = []
+                           }
+                         "b")
+                  ]
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 4 12 6 30
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnboxedTuples.hs" 4 12 4 13 ]
+                   }
+                 (Case
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 3 6 30
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnboxedTuples.hs" 5 3 5 7
+                          , SrcSpan "tests/examples/UnboxedTuples.hs" 5 19 5 21
+                          , SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 5
+                          , SrcSpan "tests/examples/UnboxedTuples.hs" 7 1 7 0
+                          ]
+                      }
+                    (Tuple
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 8 5 18
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/UnboxedTuples.hs" 5 8 5 10
+                             , SrcSpan "tests/examples/UnboxedTuples.hs" 5 12 5 13
+                             , SrcSpan "tests/examples/UnboxedTuples.hs" 5 16 5 18
+                             ]
+                         }
+                       Unboxed
+                       [ Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnboxedTuples.hs" 5 11 5 12
+                                   , srcInfoPoints = []
+                                   }
+                                 "b"))
+                       , Var
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnboxedTuples.hs" 5 14 5 15
+                                   , srcInfoPoints = []
+                                   }
+                                 "a"))
+                       ])
+                    [ Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 30
+                          , srcInfoPoints = []
+                          }
+                        (PTuple
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 15
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/UnboxedTuples.hs" 6 5 6 7
+                                 , SrcSpan "tests/examples/UnboxedTuples.hs" 6 9 6 10
+                                 , SrcSpan "tests/examples/UnboxedTuples.hs" 6 13 6 15
+                                 ]
+                             }
+                           Unboxed
+                           [ PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 8 6 9
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/UnboxedTuples.hs" 6 8 6 9
+                                    , srcInfoPoints = []
+                                    }
+                                  "b")
+                           , PVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 11 6 12
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/UnboxedTuples.hs" 6 11 6 12
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           ])
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 16 6 30
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/UnboxedTuples.hs" 6 16 6 18 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 30
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 28
+                                   , srcInfoPoints = []
+                                   }
+                                 (Con
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 21
+                                          , SrcSpan "tests/examples/UnboxedTuples.hs" 6 22 6 23
+                                          , SrcSpan "tests/examples/UnboxedTuples.hs" 6 24 6 26
+                                          ]
+                                      }
+                                    (Special
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 21
+                                             , SrcSpan "tests/examples/UnboxedTuples.hs" 6 22 6 23
+                                             , SrcSpan "tests/examples/UnboxedTuples.hs" 6 24 6 26
+                                             ]
+                                         }
+                                       (TupleCon
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/UnboxedTuples.hs" 6 19 6 26
+                                            , srcInfoPoints =
+                                                [ SrcSpan
+                                                    "tests/examples/UnboxedTuples.hs" 6 19 6 21
+                                                , SrcSpan
+                                                    "tests/examples/UnboxedTuples.hs" 6 22 6 23
+                                                , SrcSpan
+                                                    "tests/examples/UnboxedTuples.hs" 6 24 6 26
+                                                ]
+                                            }
+                                          Unboxed
+                                          2)))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/UnboxedTuples.hs" 6 27 6 28
+                                            , srcInfoPoints = []
+                                            }
+                                          "b"))))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnboxedTuples.hs" 6 29 6 30
+                                         , srcInfoPoints = []
+                                         }
+                                       "a")))))
+                        Nothing
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnboxedTuples.hs.prettyprinter.golden b/tests/examples/UnboxedTuples.hs.prettyprinter.golden
--- a/tests/examples/UnboxedTuples.hs.prettyprinter.golden
+++ b/tests/examples/UnboxedTuples.hs.prettyprinter.golden
@@ -1,7 +1,6 @@
 {-# LANGUAGE UnboxedTuples #-}
-module Main (main) where
- 
-foo :: (a, b) -> (#b, a#)
+
+foo :: (a, b) -> (# b, a #)
 foo (a, b)
-  = case (#b, a#) of
-        (#b, a#) -> (#,#) b a
+  = case (# b, a #) of
+        (# b, a #) -> (# , #) b a
diff --git a/tests/examples/Unicode.hs.parser.golden b/tests/examples/Unicode.hs.parser.golden
--- a/tests/examples/Unicode.hs.parser.golden
+++ b/tests/examples/Unicode.hs.parser.golden
@@ -1,1 +1,7749 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 1 119 1, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 1 1 1 1,SrcSpan "tests/examples/Unicode.hs" 2 1 2 1,SrcSpan "tests/examples/Unicode.hs" 2 1 2 1,SrcSpan "tests/examples/Unicode.hs" 4 1 4 1,SrcSpan "tests/examples/Unicode.hs" 6 1 6 1,SrcSpan "tests/examples/Unicode.hs" 7 1 7 1,SrcSpan "tests/examples/Unicode.hs" 17 1 17 1,SrcSpan "tests/examples/Unicode.hs" 18 1 18 1,SrcSpan "tests/examples/Unicode.hs" 25 1 25 1,SrcSpan "tests/examples/Unicode.hs" 26 1 26 1,SrcSpan "tests/examples/Unicode.hs" 33 1 33 1,SrcSpan "tests/examples/Unicode.hs" 34 1 34 1,SrcSpan "tests/examples/Unicode.hs" 43 1 43 1,SrcSpan "tests/examples/Unicode.hs" 44 1 44 1,SrcSpan "tests/examples/Unicode.hs" 53 1 53 1,SrcSpan "tests/examples/Unicode.hs" 54 1 54 1,SrcSpan "tests/examples/Unicode.hs" 63 1 63 1,SrcSpan "tests/examples/Unicode.hs" 64 1 64 1,SrcSpan "tests/examples/Unicode.hs" 74 1 74 1,SrcSpan "tests/examples/Unicode.hs" 75 1 75 1,SrcSpan "tests/examples/Unicode.hs" 76 1 76 1,SrcSpan "tests/examples/Unicode.hs" 82 1 82 1,SrcSpan "tests/examples/Unicode.hs" 83 1 83 1,SrcSpan "tests/examples/Unicode.hs" 84 1 84 1,SrcSpan "tests/examples/Unicode.hs" 86 1 86 1,SrcSpan "tests/examples/Unicode.hs" 87 1 87 1,SrcSpan "tests/examples/Unicode.hs" 88 1 88 1,SrcSpan "tests/examples/Unicode.hs" 89 1 89 1,SrcSpan "tests/examples/Unicode.hs" 90 1 90 1,SrcSpan "tests/examples/Unicode.hs" 92 1 92 1,SrcSpan "tests/examples/Unicode.hs" 93 1 93 1,SrcSpan "tests/examples/Unicode.hs" 94 1 94 1,SrcSpan "tests/examples/Unicode.hs" 95 1 95 1,SrcSpan "tests/examples/Unicode.hs" 99 1 99 1,SrcSpan "tests/examples/Unicode.hs" 100 1 100 1,SrcSpan "tests/examples/Unicode.hs" 101 1 101 1,SrcSpan "tests/examples/Unicode.hs" 102 1 102 1,SrcSpan "tests/examples/Unicode.hs" 103 1 103 1,SrcSpan "tests/examples/Unicode.hs" 105 1 105 1,SrcSpan "tests/examples/Unicode.hs" 119 1 119 1,SrcSpan "tests/examples/Unicode.hs" 119 1 119 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 2 1 2 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 2 1 2 7,SrcSpan "tests/examples/Unicode.hs" 2 13 2 18]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 2 8 2 12, srcInfoPoints = []}) "Main") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 1 1 1 13,SrcSpan "tests/examples/Unicode.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 14 1 27, srcInfoPoints = []}) "UnicodeSyntax"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 4 1 4 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 4 8 4 26, srcInfoPoints = []}) "System.Environment", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Nothing}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 1 6 14, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 6 6 6 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 1 6 5, srcInfoPoints = []}) "main"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 14, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 6 12 6 13,SrcSpan "tests/examples/Unicode.hs" 6 13 6 14]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 6 12 6 13,SrcSpan "tests/examples/Unicode.hs" 6 13 6 14]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 6 12 6 13,SrcSpan "tests/examples/Unicode.hs" 6 13 6 14]}))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 15 32, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 7 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 7 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 6 15 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 7 6 7 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 8 15 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 7 8 7 10,SrcSpan "tests/examples/Unicode.hs" 8 3 8 3,SrcSpan "tests/examples/Unicode.hs" 9 3 9 3,SrcSpan "tests/examples/Unicode.hs" 10 3 10 3,SrcSpan "tests/examples/Unicode.hs" 11 3 11 3,SrcSpan "tests/examples/Unicode.hs" 12 3 12 3,SrcSpan "tests/examples/Unicode.hs" 13 3 13 3,SrcSpan "tests/examples/Unicode.hs" 14 3 14 3,SrcSpan "tests/examples/Unicode.hs" 15 3 15 3,SrcSpan "tests/examples/Unicode.hs" 17 1 17 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 15, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 8 6 8 7]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 5, srcInfoPoints = []}) "as")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15, srcInfoPoints = []}) "getArgs"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 13, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 13, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10, srcInfoPoints = []}) "$"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13, srcInfoPoints = []}) "as")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15, srcInfoPoints = []}) "test"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 31 10 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 31 10 32, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16, srcInfoPoints = []}) "test2"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 31 11 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 31 11 32, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22, srcInfoPoints = []}) "testRewrite"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 31 12 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 31 12 32, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29, srcInfoPoints = []}) "testRewriteReverse"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 31 13 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 31 13 32, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23, srcInfoPoints = []}) "testRewrite2"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 31 14 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 31 14 32, srcInfoPoints = []}) 0 "0")))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 32, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 32, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30, srcInfoPoints = []}) "testRewriteReverse2"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 31 15 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 31 15 32, srcInfoPoints = []}) 0 "0"))))])) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 1 17 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 17 6 17 8]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 1 17 5, srcInfoPoints = []}) "test"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 17 11 17 12]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 10, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17, srcInfoPoints = []}) "Bool")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 23 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 19 3 19 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 23 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 19 3 19 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 18 5, srcInfoPoints = []}) "test") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 6 18 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 6 18 7, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 8 18 12, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 18 8 18 9]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12, srcInfoPoints = []}) "pi")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 23 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 20 5 20 5,SrcSpan "tests/examples/Unicode.hs" 21 5 21 5,SrcSpan "tests/examples/Unicode.hs" 22 5 22 5,SrcSpan "tests/examples/Unicode.hs" 23 5 23 5,SrcSpan "tests/examples/Unicode.hs" 25 1 25 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 6, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 8 20 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 20 8 20 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 19, srcInfoPoints = []}) "replicate"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 20 20 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 20 20 24, srcInfoPoints = []}) 2000 "2000"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 25 20 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 25 20 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 25 20 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 8 21 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 21 8 21 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 25 21 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 25 21 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 25 21 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 7, srcInfoPoints = []}) "pf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 8 22 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 22 8 22 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 11, srcInfoPoints = []}) "f"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 12 22 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 12 22 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 12 22 14, srcInfoPoints = []}) "|>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 15 22 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 15 22 18, srcInfoPoints = []}) 300 "300")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 7, srcInfoPoints = []}) "pi")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 8 23 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 23 8 23 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 11, srcInfoPoints = []}) "i"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 12 23 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 12 23 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 12 23 14, srcInfoPoints = []}) "|>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 15 23 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 15 23 18, srcInfoPoints = []}) 300 "300")))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 1 25 25, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 25 7 25 9]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 1 25 6, srcInfoPoints = []}) "test2"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 25, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 25 12 25 13]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 11, srcInfoPoints = []}) "a")) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 14 25 25, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 25 14 25 15,SrcSpan "tests/examples/Unicode.hs" 25 19 25 20,SrcSpan "tests/examples/Unicode.hs" 25 24 25 25]}) Boxed [TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19, srcInfoPoints = []}) "Bool")),TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24, srcInfoPoints = []}) "Bool"))])),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 31 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 27 3 27 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 31 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 27 3 27 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 26 6, srcInfoPoints = []}) "test2") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 7 26 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 7 26 8, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 9 26 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 26 9 26 10]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 11 26 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 26 11 26 12,SrcSpan "tests/examples/Unicode.hs" 26 14 26 15,SrcSpan "tests/examples/Unicode.hs" 26 17 26 18]}) Boxed [Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14, srcInfoPoints = []}) "pf")),Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17, srcInfoPoints = []}) "pi"))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 31 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 28 5 28 5,SrcSpan "tests/examples/Unicode.hs" 29 5 29 5,SrcSpan "tests/examples/Unicode.hs" 30 5 30 5,SrcSpan "tests/examples/Unicode.hs" 31 5 31 5,SrcSpan "tests/examples/Unicode.hs" 33 1 33 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 6, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 8 28 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 28 8 28 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 19, srcInfoPoints = []}) "replicate"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 20 28 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 20 28 24, srcInfoPoints = []}) 2000 "2000"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 25 28 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 25 28 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 25 28 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 8 29 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 29 8 29 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 25 29 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 25 29 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 25 29 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 7, srcInfoPoints = []}) "pf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 8 30 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 30 8 30 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 11, srcInfoPoints = []}) "f"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 12 30 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 12 30 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 12 30 14, srcInfoPoints = []}) "|>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 15 30 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 15 30 18, srcInfoPoints = []}) 300 "300")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 7, srcInfoPoints = []}) "pi")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 8 31 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 31 8 31 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 11, srcInfoPoints = []}) "i"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 12 31 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 12 31 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 12 31 14, srcInfoPoints = []}) "|>"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 15 31 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 15 31 18, srcInfoPoints = []}) 300 "300")))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 1 33 24, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 33 13 33 15]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 1 33 12, srcInfoPoints = []}) "testRewrite"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 24, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 33 18 33 19]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 17, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24, srcInfoPoints = []}) "Bool")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 41 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 35 3 35 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 41 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 35 3 35 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 34 12, srcInfoPoints = []}) "testRewrite") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 13 34 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 13 34 14, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 15 34 19, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 34 15 34 16]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19, srcInfoPoints = []}) "pi")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 41 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 36 5 36 5,SrcSpan "tests/examples/Unicode.hs" 37 5 37 5,SrcSpan "tests/examples/Unicode.hs" 38 5 38 5,SrcSpan "tests/examples/Unicode.hs" 39 5 39 5,SrcSpan "tests/examples/Unicode.hs" 40 5 40 5,SrcSpan "tests/examples/Unicode.hs" 41 5 41 5,SrcSpan "tests/examples/Unicode.hs" 43 1 43 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 6, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 8 36 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 36 8 36 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 19, srcInfoPoints = []}) "replicate"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 20 36 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 20 36 24, srcInfoPoints = []}) 2000 "2000"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 25 36 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 25 36 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 25 36 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 8 37 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 37 8 37 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 25 37 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 25 37 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 25 37 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 7, srcInfoPoints = []}) "lf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 8 38 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 38 8 38 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 17 38 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 17 38 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 17 38 18, srcInfoPoints = []}) "f"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 7, srcInfoPoints = []}) "li")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 8 39 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 39 8 39 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 17 39 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 17 39 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 17 39 18, srcInfoPoints = []}) "i"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 7, srcInfoPoints = []}) "pf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 8 40 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 40 8 40 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 12, srcInfoPoints = []}) "lf"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 13 40 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 13 40 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 13 40 14, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 15 40 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 15 40 18, srcInfoPoints = []}) 300 "300")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 7, srcInfoPoints = []}) "pi")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 8 41 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 41 8 41 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 12, srcInfoPoints = []}) "li"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 13 41 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 13 41 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 13 41 14, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 15 41 18, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 15 41 18, srcInfoPoints = []}) 300 "300")))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 1 43 31, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 43 20 43 22]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 1 43 19, srcInfoPoints = []}) "testRewriteReverse"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 31, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 43 25 43 26]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 24, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31, srcInfoPoints = []}) "Bool")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 51 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 45 3 45 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 51 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 45 3 45 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 44 19, srcInfoPoints = []}) "testRewriteReverse") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 20 44 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 20 44 21, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 22 44 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 44 22 44 23]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26, srcInfoPoints = []}) "pi")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 51 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 46 5 46 5,SrcSpan "tests/examples/Unicode.hs" 47 5 47 5,SrcSpan "tests/examples/Unicode.hs" 48 5 48 5,SrcSpan "tests/examples/Unicode.hs" 49 5 49 5,SrcSpan "tests/examples/Unicode.hs" 50 5 50 5,SrcSpan "tests/examples/Unicode.hs" 51 5 51 5,SrcSpan "tests/examples/Unicode.hs" 53 1 53 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 6, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 8 46 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 46 8 46 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 19, srcInfoPoints = []}) "replicate"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 20 46 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 20 46 24, srcInfoPoints = []}) 2000 "2000"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 25 46 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 25 46 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 25 46 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 8 47 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 47 8 47 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 25 47 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 25 47 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 25 47 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 7, srcInfoPoints = []}) "lf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 8 48 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 48 8 48 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 17 48 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 17 48 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 17 48 18, srcInfoPoints = []}) "f"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 7, srcInfoPoints = []}) "li")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 8 49 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 49 8 49 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 17 49 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 17 49 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 17 49 18, srcInfoPoints = []}) "i"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 7, srcInfoPoints = []}) "pf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 8 50 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 50 8 50 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 10 50 18, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 10 50 13, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 10 50 13, srcInfoPoints = []}) 300 "300")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 14 50 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 14 50 15, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 14 50 15, srcInfoPoints = []}) "\8804"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 16 50 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 16 50 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 16 50 18, srcInfoPoints = []}) "lf"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 7, srcInfoPoints = []}) "pi")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 8 51 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 51 8 51 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 10 51 18, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 10 51 13, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 10 51 13, srcInfoPoints = []}) 300 "300")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 14 51 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 14 51 15, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 14 51 15, srcInfoPoints = []}) "\8804"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 16 51 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 16 51 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 16 51 18, srcInfoPoints = []}) "li"))))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 1 53 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 53 14 53 16]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 1 53 13, srcInfoPoints = []}) "testRewrite2"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 53 19 53 20]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 18, srcInfoPoints = []}) "a")) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 21 53 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 53 21 53 22,SrcSpan "tests/examples/Unicode.hs" 53 26 53 27,SrcSpan "tests/examples/Unicode.hs" 53 31 53 32]}) Boxed [TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26, srcInfoPoints = []}) "Bool")),TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31, srcInfoPoints = []}) "Bool"))])),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 57 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 55 3 55 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 57 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 55 3 55 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 54 13, srcInfoPoints = []}) "testRewrite2") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 14 54 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 14 54 15, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 16 54 49, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 54 16 54 17]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 18 54 49, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 54 18 54 19,SrcSpan "tests/examples/Unicode.hs" 54 33 54 34,SrcSpan "tests/examples/Unicode.hs" 54 48 54 49]}) Boxed [InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 33, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 27, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 25, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 25, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 26 54 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 26 54 27, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 26 54 27, srcInfoPoints = []}) "i")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 30 54 33, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 30 54 33, srcInfoPoints = []}) 300 "300")),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 48, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 37, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 37, srcInfoPoints = []}) 300 "300")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39, srcInfoPoints = []}) ">"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 48, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 46, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 47 54 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 47 54 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 47 54 48, srcInfoPoints = []}) "i"))))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 57 5 57 5,SrcSpan "tests/examples/Unicode.hs" 63 1 63 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 8 57 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 57 8 57 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 25 57 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 25 57 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 25 57 26, srcInfoPoints = []}) "x"))))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 1 63 39, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 63 21 63 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 1 63 20, srcInfoPoints = []}) "testRewriteReverse2"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 39, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 63 26 63 27]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 25, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 25, srcInfoPoints = []}) "a")) (TyTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 28 63 39, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 63 28 63 29,SrcSpan "tests/examples/Unicode.hs" 63 33 63 34,SrcSpan "tests/examples/Unicode.hs" 63 38 63 39]}) Boxed [TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33, srcInfoPoints = []}) "Bool")),TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38, srcInfoPoints = []}) "Bool"))])),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 71 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 65 3 65 8]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 71 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 65 3 65 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 64 20, srcInfoPoints = []}) "testRewriteReverse2") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 21 64 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 21 64 22, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 23 64 56, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 64 23 64 24]}) (Tuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 25 64 56, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 64 25 64 26,SrcSpan "tests/examples/Unicode.hs" 64 41 64 42,SrcSpan "tests/examples/Unicode.hs" 64 55 64 56]}) Boxed [InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 41, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 30, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 30, srcInfoPoints = []}) 2000 "2000")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32, srcInfoPoints = []}) "<"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 39, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 40 64 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 40 64 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 40 64 41, srcInfoPoints = []}) "i")))),InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 55, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 50, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 48, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 48, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 48, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 49 64 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 49 64 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 49 64 50, srcInfoPoints = []}) "i")))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52, srcInfoPoints = []}) ">"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 53 64 55, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 53 64 55, srcInfoPoints = []}) 20 "20"))])) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 71 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 66 5 66 5,SrcSpan "tests/examples/Unicode.hs" 67 5 67 5,SrcSpan "tests/examples/Unicode.hs" 68 5 68 5,SrcSpan "tests/examples/Unicode.hs" 69 5 69 5,SrcSpan "tests/examples/Unicode.hs" 70 5 70 5,SrcSpan "tests/examples/Unicode.hs" 71 5 71 5,SrcSpan "tests/examples/Unicode.hs" 74 1 74 0]}) [PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 6, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 8 66 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 66 8 66 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 26, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 19, srcInfoPoints = []}) "replicate"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 20 66 24, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 20 66 24, srcInfoPoints = []}) 2000 "2000"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 25 66 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 25 66 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 25 66 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 26, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 6, srcInfoPoints = []}) "i")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 8 67 26, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 67 8 67 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 26, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 16, srcInfoPoints = []}) "repeat"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 25 67 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 25 67 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 25 67 26, srcInfoPoints = []}) "x"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 7, srcInfoPoints = []}) "lf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 8 68 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 68 8 68 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 17 68 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 17 68 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 17 68 18, srcInfoPoints = []}) "f"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 18, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 7, srcInfoPoints = []}) "li")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 8 69 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 69 8 69 9]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 18, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 16, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 17 69 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 17 69 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 17 69 18, srcInfoPoints = []}) "i"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 20, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 7, srcInfoPoints = []}) "pf")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 8 70 20, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 70 8 70 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 10 70 20, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 10 70 14, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 10 70 14, srcInfoPoints = []}) 2000 "2000")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 15 70 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 15 70 17, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 15 70 17, srcInfoPoints = []}) "=="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 18 70 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 18 70 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 18 70 20, srcInfoPoints = []}) "lf"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 7, srcInfoPoints = []}) "pi")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 8 71 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 71 8 71 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 12, srcInfoPoints = []}) "lf"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 13 71 14, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 13 71 14, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 13 71 14, srcInfoPoints = []}) "\8805"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 15 71 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 15 71 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 15 71 17, srcInfoPoints = []}) "li"))))) Nothing]))],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 1 74 68, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 10 74 12]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 1 74 9, srcInfoPoints = []}) "lengthOP"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 13 74 68, srcInfoPoints = []}) Nothing (Just (CxTuple (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 13 74 29, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 13 74 14,SrcSpan "tests/examples/Unicode.hs" 74 19 74 20,SrcSpan "tests/examples/Unicode.hs" 74 26 74 27,SrcSpan "tests/examples/Unicode.hs" 74 28 74 29]}) [ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17, srcInfoPoints = []}) "Num")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 18 74 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 18 74 19, srcInfoPoints = []}) "a")],ClassA (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24, srcInfoPoints = []}) "Ord")) [TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 25 74 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 25 74 26, srcInfoPoints = []}) "a")]])) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 68, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 35 74 36]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34, srcInfoPoints = []}) "Bool"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 37 74 68, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 52 74 53]}) (TyParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 37 74 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 37 74 38,SrcSpan "tests/examples/Unicode.hs" 74 50 74 51]}) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 50, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 40 74 41]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 39, srcInfoPoints = []}) "a")) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 50, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 44 74 45]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 43, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 43, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 46 74 50, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 46 74 50, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 46 74 50, srcInfoPoints = []}) "Bool")))))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 54 74 68, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 58 74 59]}) (TyList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 54 74 57, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 54 74 55,SrcSpan "tests/examples/Unicode.hs" 74 56 74 57]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 55 74 56, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 55 74 56, srcInfoPoints = []}) "b"))) (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 68, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 74 62 74 63]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 61, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 61, srcInfoPoints = []}) "a")) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68, srcInfoPoints = []}) "Bool")))))))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 80 24, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 75 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 75 9, srcInfoPoints = []}) "lengthOP") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 10 75 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 10 75 11, srcInfoPoints = []}) "v"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 12 75 15, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 75 12 75 13,SrcSpan "tests/examples/Unicode.hs" 75 13 75 14,SrcSpan "tests/examples/Unicode.hs" 75 14 75 15]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 13 75 14, srcInfoPoints = []}) "\8860"),PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 16 75 18, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 75 16 75 17,SrcSpan "tests/examples/Unicode.hs" 75 17 75 18]}) [],PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 20 75 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 20 75 21, srcInfoPoints = []}) "n")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 22 75 29, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 75 22 75 23]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 29, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 25, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 25, srcInfoPoints = []}) 0 "0")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27, srcInfoPoints = []}) "\8860"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29, srcInfoPoints = []}) "n"))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 1 80 24, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 77 3 77 8]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 1 76 9, srcInfoPoints = []}) "lengthOP") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 10 76 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 10 76 11, srcInfoPoints = []}) "v"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 12 76 15, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 76 12 76 13,SrcSpan "tests/examples/Unicode.hs" 76 13 76 14,SrcSpan "tests/examples/Unicode.hs" 76 14 76 15]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 13 76 14, srcInfoPoints = []}) "\8860"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 16 76 19, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 16 76 19, srcInfoPoints = []}) "xxs"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 20 76 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 20 76 21, srcInfoPoints = []}) "n")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 22 76 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 76 22 76 23]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 32, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 30, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26, srcInfoPoints = []}) "co"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30, srcInfoPoints = []}) "xxs")))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 31 76 32, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 31 76 32, srcInfoPoints = []}) 0 "0")))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 80 24, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 78 5 78 5,SrcSpan "tests/examples/Unicode.hs" 80 5 80 5,SrcSpan "tests/examples/Unicode.hs" 82 1 82 0]}) [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 80 24, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 79 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 78 7, srcInfoPoints = []}) "co") [PParen (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 8 78 14, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 78 8 78 9,SrcSpan "tests/examples/Unicode.hs" 78 13 78 14]}) (PInfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 9 78 13, srcInfoPoints = []}) (PWildCard (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 9 78 10, srcInfoPoints = []})) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 10 78 11, srcInfoPoints = []}) (Cons (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 10 78 11, srcInfoPoints = []}))) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 11 78 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 11 78 13, srcInfoPoints = []}) "xs"))),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 15 78 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 15 78 16, srcInfoPoints = []}) "c")] (GuardedRhss (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 17 79 32, srcInfoPoints = []}) [GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 17 78 42, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 78 17 78 18,SrcSpan "tests/examples/Unicode.hs" 78 29 78 30]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 19 78 24, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 19 78 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 19 78 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 19 78 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 19 78 20, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 21 78 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 21 78 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 21 78 22, srcInfoPoints = []}) ">"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 23 78 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 23 78 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 23 78 24, srcInfoPoints = []}) "c"))))] (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 31 78 42, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 31 78 36, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 31 78 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 31 78 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 31 78 33, srcInfoPoints = []}) "co"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 34 78 36, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 34 78 36, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 34 78 36, srcInfoPoints = []}) "xs")))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 37 78 42, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 78 37 78 38,SrcSpan "tests/examples/Unicode.hs" 78 41 78 42]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 38 78 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 38 78 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 38 78 39, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 38 78 39, srcInfoPoints = []}) "c"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 39 78 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 39 78 40, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 39 78 40, srcInfoPoints = []}) "+"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 40 78 41, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 40 78 41, srcInfoPoints = []}) 1 "1"))))),GuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 17 79 32, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 79 17 79 18,SrcSpan "tests/examples/Unicode.hs" 79 29 79 30]}) [Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 19 79 28, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 19 79 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 19 79 28, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 19 79 28, srcInfoPoints = []}) "otherwise")))] (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 31 79 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 31 79 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 31 79 32, srcInfoPoints = []}) "v")))]) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 5 80 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 5 80 7, srcInfoPoints = []}) "co") [PList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 8 80 10, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 80 8 80 9,SrcSpan "tests/examples/Unicode.hs" 80 9 80 10]}) [],PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 15 80 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 15 80 16, srcInfoPoints = []}) "c")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 17 80 24, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 80 17 80 18]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 19 80 24, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 19 80 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 19 80 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 19 80 20, srcInfoPoints = []}) "c"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 21 80 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 21 80 22, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 21 80 22, srcInfoPoints = []}) "\8860"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 23 80 24, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 23 80 24, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 23 80 24, srcInfoPoints = []}) "n"))))) Nothing]]))],PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 1 82 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 1 82 4, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 82 1 82 2,SrcSpan "tests/examples/Unicode.hs" 82 2 82 3,SrcSpan "tests/examples/Unicode.hs" 82 3 82 4]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 2 82 3, srcInfoPoints = []}) "\8803")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 5 82 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 82 5 82 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 7 82 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 82 7 82 8,SrcSpan "tests/examples/Unicode.hs" 82 8 82 10,SrcSpan "tests/examples/Unicode.hs" 82 10 82 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 7 82 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 82 7 82 8,SrcSpan "tests/examples/Unicode.hs" 82 8 82 10,SrcSpan "tests/examples/Unicode.hs" 82 10 82 11]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 8 82 10, srcInfoPoints = []}) "==")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 1 83 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 1 83 4, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 83 1 83 2,SrcSpan "tests/examples/Unicode.hs" 83 2 83 3,SrcSpan "tests/examples/Unicode.hs" 83 3 83 4]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 2 83 3, srcInfoPoints = []}) "\8804")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 5 83 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 83 5 83 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 7 83 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 83 7 83 8,SrcSpan "tests/examples/Unicode.hs" 83 8 83 10,SrcSpan "tests/examples/Unicode.hs" 83 10 83 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 7 83 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 83 7 83 8,SrcSpan "tests/examples/Unicode.hs" 83 8 83 10,SrcSpan "tests/examples/Unicode.hs" 83 10 83 11]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 8 83 10, srcInfoPoints = []}) "<=")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 1 84 11, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 1 84 4, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 84 1 84 2,SrcSpan "tests/examples/Unicode.hs" 84 2 84 3,SrcSpan "tests/examples/Unicode.hs" 84 3 84 4]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 2 84 3, srcInfoPoints = []}) "\8805")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 5 84 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 84 5 84 6]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 7 84 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 84 7 84 8,SrcSpan "tests/examples/Unicode.hs" 84 8 84 10,SrcSpan "tests/examples/Unicode.hs" 84 10 84 11]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 7 84 11, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 84 7 84 8,SrcSpan "tests/examples/Unicode.hs" 84 8 84 10,SrcSpan "tests/examples/Unicode.hs" 84 10 84 11]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 8 84 10, srcInfoPoints = []}) ">=")))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 1 86 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 1 86 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 86 1 86 2,SrcSpan "tests/examples/Unicode.hs" 86 2 86 4,SrcSpan "tests/examples/Unicode.hs" 86 4 86 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 2 86 4, srcInfoPoints = []}) "|\8803")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 7 86 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 86 7 86 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 24 86 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 86 24 86 25,SrcSpan "tests/examples/Unicode.hs" 86 25 86 26,SrcSpan "tests/examples/Unicode.hs" 86 26 86 27]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 24 86 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 86 24 86 25,SrcSpan "tests/examples/Unicode.hs" 86 25 86 26,SrcSpan "tests/examples/Unicode.hs" 86 26 86 27]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 25 86 26, srcInfoPoints = []}) "\8803"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 1 87 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 1 87 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 87 1 87 2,SrcSpan "tests/examples/Unicode.hs" 87 2 87 4,SrcSpan "tests/examples/Unicode.hs" 87 4 87 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 2 87 4, srcInfoPoints = []}) "|<")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 7 87 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 87 7 87 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 24 87 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 87 24 87 25,SrcSpan "tests/examples/Unicode.hs" 87 25 87 26,SrcSpan "tests/examples/Unicode.hs" 87 26 87 27]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 24 87 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 87 24 87 25,SrcSpan "tests/examples/Unicode.hs" 87 25 87 26,SrcSpan "tests/examples/Unicode.hs" 87 26 87 27]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 25 87 26, srcInfoPoints = []}) "<"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 1 88 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 1 88 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 88 1 88 2,SrcSpan "tests/examples/Unicode.hs" 88 2 88 4,SrcSpan "tests/examples/Unicode.hs" 88 4 88 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 2 88 4, srcInfoPoints = []}) "|\8804")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 7 88 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 88 7 88 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 24 88 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 88 24 88 25,SrcSpan "tests/examples/Unicode.hs" 88 25 88 26,SrcSpan "tests/examples/Unicode.hs" 88 26 88 27]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 24 88 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 88 24 88 25,SrcSpan "tests/examples/Unicode.hs" 88 25 88 26,SrcSpan "tests/examples/Unicode.hs" 88 26 88 27]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 25 88 26, srcInfoPoints = []}) "\8804"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 1 89 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 1 89 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 89 1 89 2,SrcSpan "tests/examples/Unicode.hs" 89 2 89 4,SrcSpan "tests/examples/Unicode.hs" 89 4 89 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 2 89 4, srcInfoPoints = []}) "|>")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 7 89 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 89 7 89 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22, srcInfoPoints = []}) "True")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 24 89 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 89 24 89 25,SrcSpan "tests/examples/Unicode.hs" 89 25 89 26,SrcSpan "tests/examples/Unicode.hs" 89 26 89 27]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 24 89 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 89 24 89 25,SrcSpan "tests/examples/Unicode.hs" 89 25 89 26,SrcSpan "tests/examples/Unicode.hs" 89 26 89 27]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 25 89 26, srcInfoPoints = []}) ">"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 1 90 27, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 1 90 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 90 1 90 2,SrcSpan "tests/examples/Unicode.hs" 90 2 90 4,SrcSpan "tests/examples/Unicode.hs" 90 4 90 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 2 90 4, srcInfoPoints = []}) "|\8805")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 7 90 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 90 7 90 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 27, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22, srcInfoPoints = []}) "True")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 24 90 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 90 24 90 25,SrcSpan "tests/examples/Unicode.hs" 90 25 90 26,SrcSpan "tests/examples/Unicode.hs" 90 26 90 27]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 24 90 27, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 90 24 90 25,SrcSpan "tests/examples/Unicode.hs" 90 25 90 26,SrcSpan "tests/examples/Unicode.hs" 90 26 90 27]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 25 90 26, srcInfoPoints = []}) "\8805"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 1 92 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 1 92 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 92 1 92 2,SrcSpan "tests/examples/Unicode.hs" 92 2 92 4,SrcSpan "tests/examples/Unicode.hs" 92 4 92 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 2 92 4, srcInfoPoints = []}) "|=")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 7 92 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 92 7 92 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 24 92 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 92 24 92 25,SrcSpan "tests/examples/Unicode.hs" 92 25 92 27,SrcSpan "tests/examples/Unicode.hs" 92 27 92 28]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 24 92 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 92 24 92 25,SrcSpan "tests/examples/Unicode.hs" 92 25 92 27,SrcSpan "tests/examples/Unicode.hs" 92 27 92 28]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 25 92 27, srcInfoPoints = []}) "=="))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 1 93 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 1 93 6, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 93 1 93 2,SrcSpan "tests/examples/Unicode.hs" 93 2 93 5,SrcSpan "tests/examples/Unicode.hs" 93 5 93 6]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 2 93 5, srcInfoPoints = []}) "|==")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 7 93 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 93 7 93 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 24 93 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 93 24 93 25,SrcSpan "tests/examples/Unicode.hs" 93 25 93 27,SrcSpan "tests/examples/Unicode.hs" 93 27 93 28]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 24 93 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 93 24 93 25,SrcSpan "tests/examples/Unicode.hs" 93 25 93 27,SrcSpan "tests/examples/Unicode.hs" 93 27 93 28]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 25 93 27, srcInfoPoints = []}) "=="))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 1 94 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 1 94 6, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 94 1 94 2,SrcSpan "tests/examples/Unicode.hs" 94 2 94 5,SrcSpan "tests/examples/Unicode.hs" 94 5 94 6]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 2 94 5, srcInfoPoints = []}) "|<=")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 7 94 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 94 7 94 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 24 94 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 94 24 94 25,SrcSpan "tests/examples/Unicode.hs" 94 25 94 27,SrcSpan "tests/examples/Unicode.hs" 94 27 94 28]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 24 94 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 94 24 94 25,SrcSpan "tests/examples/Unicode.hs" 94 25 94 27,SrcSpan "tests/examples/Unicode.hs" 94 27 94 28]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 25 94 27, srcInfoPoints = []}) "<="))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 1 95 28, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 1 95 6, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 95 1 95 2,SrcSpan "tests/examples/Unicode.hs" 95 2 95 5,SrcSpan "tests/examples/Unicode.hs" 95 5 95 6]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 2 95 5, srcInfoPoints = []}) "|>=")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 7 95 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 95 7 95 8]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 28, srcInfoPoints = []}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 23, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17, srcInfoPoints = []}) "lengthOP"))) (Con (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23, srcInfoPoints = []}) "False")))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 24 95 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 95 24 95 25,SrcSpan "tests/examples/Unicode.hs" 95 25 95 27,SrcSpan "tests/examples/Unicode.hs" 95 27 95 28]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 24 95 28, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 95 24 95 25,SrcSpan "tests/examples/Unicode.hs" 95 25 95 27,SrcSpan "tests/examples/Unicode.hs" 95 27 95 28]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 25 95 27, srcInfoPoints = []}) ">="))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 1 99 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 1 99 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 99 1 99 2,SrcSpan "tests/examples/Unicode.hs" 99 2 99 4,SrcSpan "tests/examples/Unicode.hs" 99 4 99 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 2 99 4, srcInfoPoints = []}) "\8803|")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 6 99 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 99 6 99 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 13 99 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 99 13 99 14,SrcSpan "tests/examples/Unicode.hs" 99 14 99 16,SrcSpan "tests/examples/Unicode.hs" 99 16 99 17]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 13 99 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 99 13 99 14,SrcSpan "tests/examples/Unicode.hs" 99 14 99 16,SrcSpan "tests/examples/Unicode.hs" 99 16 99 17]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 14 99 16, srcInfoPoints = []}) "|\8803"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 1 100 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 1 100 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 100 1 100 2,SrcSpan "tests/examples/Unicode.hs" 100 2 100 4,SrcSpan "tests/examples/Unicode.hs" 100 4 100 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 2 100 4, srcInfoPoints = []}) "<|")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 6 100 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 100 6 100 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 13 100 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 100 13 100 14,SrcSpan "tests/examples/Unicode.hs" 100 14 100 16,SrcSpan "tests/examples/Unicode.hs" 100 16 100 17]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 13 100 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 100 13 100 14,SrcSpan "tests/examples/Unicode.hs" 100 14 100 16,SrcSpan "tests/examples/Unicode.hs" 100 16 100 17]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 14 100 16, srcInfoPoints = []}) "|\8805"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 1 101 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 1 101 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 101 1 101 2,SrcSpan "tests/examples/Unicode.hs" 101 2 101 4,SrcSpan "tests/examples/Unicode.hs" 101 4 101 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 2 101 4, srcInfoPoints = []}) "\8804|")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 6 101 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 101 6 101 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 13 101 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 101 13 101 14,SrcSpan "tests/examples/Unicode.hs" 101 14 101 16,SrcSpan "tests/examples/Unicode.hs" 101 16 101 17]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 13 101 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 101 13 101 14,SrcSpan "tests/examples/Unicode.hs" 101 14 101 16,SrcSpan "tests/examples/Unicode.hs" 101 16 101 17]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 14 101 16, srcInfoPoints = []}) "|>"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 1 102 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 1 102 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 102 1 102 2,SrcSpan "tests/examples/Unicode.hs" 102 2 102 4,SrcSpan "tests/examples/Unicode.hs" 102 4 102 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 2 102 4, srcInfoPoints = []}) ">|")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 6 102 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 102 6 102 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 13 102 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 102 13 102 14,SrcSpan "tests/examples/Unicode.hs" 102 14 102 16,SrcSpan "tests/examples/Unicode.hs" 102 16 102 17]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 13 102 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 102 13 102 14,SrcSpan "tests/examples/Unicode.hs" 102 14 102 16,SrcSpan "tests/examples/Unicode.hs" 102 16 102 17]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 14 102 16, srcInfoPoints = []}) "|\8804"))))) Nothing,PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 1 103 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 1 103 5, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 103 1 103 2,SrcSpan "tests/examples/Unicode.hs" 103 2 103 4,SrcSpan "tests/examples/Unicode.hs" 103 4 103 5]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 2 103 4, srcInfoPoints = []}) "\8805|")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 6 103 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 103 6 103 7]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12, srcInfoPoints = []}) "flip"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 13 103 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 103 13 103 14,SrcSpan "tests/examples/Unicode.hs" 103 14 103 16,SrcSpan "tests/examples/Unicode.hs" 103 16 103 17]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 13 103 17, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 103 13 103 14,SrcSpan "tests/examples/Unicode.hs" 103 14 103 16,SrcSpan "tests/examples/Unicode.hs" 103 16 103 17]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 14 103 16, srcInfoPoints = []}) "|<"))))) Nothing,RulePragmaDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 105 1 118 6, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 105 1 105 10,SrcSpan "tests/examples/Unicode.hs" 118 3 118 6]}) [Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 1 107 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 107 1 107 10,SrcSpan "tests/examples/Unicode.hs" 107 11 107 17,SrcSpan "tests/examples/Unicode.hs" 107 22 107 23,SrcSpan "tests/examples/Unicode.hs" 107 42 107 43]}) "xs |\8803 n" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 18 107 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 18 107 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 21 107 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 21 107 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 25 107 41, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 25 107 36, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 107 25 107 26,SrcSpan "tests/examples/Unicode.hs" 107 35 107 36]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35, srcInfoPoints = []}) "xs"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39, srcInfoPoints = []}) "=="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41, srcInfoPoints = []}) "n")))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49, srcInfoPoints = []}) "|\8803"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 1 108 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 108 1 108 10,SrcSpan "tests/examples/Unicode.hs" 108 11 108 17,SrcSpan "tests/examples/Unicode.hs" 108 22 108 23,SrcSpan "tests/examples/Unicode.hs" 108 42 108 43]}) "xs |< n" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 18 108 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 18 108 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 21 108 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 21 108 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 25 108 41, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 25 108 36, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 108 25 108 26,SrcSpan "tests/examples/Unicode.hs" 108 35 108 36]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35, srcInfoPoints = []}) "xs"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38, srcInfoPoints = []}) "<"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41, srcInfoPoints = []}) "n")))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49, srcInfoPoints = []}) "|<"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 1 109 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 109 1 109 10,SrcSpan "tests/examples/Unicode.hs" 109 11 109 17,SrcSpan "tests/examples/Unicode.hs" 109 22 109 23,SrcSpan "tests/examples/Unicode.hs" 109 42 109 43]}) "xs |\8804 n" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 18 109 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 18 109 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 21 109 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 21 109 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 25 109 41, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 25 109 36, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 109 25 109 26,SrcSpan "tests/examples/Unicode.hs" 109 35 109 36]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35, srcInfoPoints = []}) "xs"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39, srcInfoPoints = []}) "<="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41, srcInfoPoints = []}) "n")))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49, srcInfoPoints = []}) "|\8804"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 1 110 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 110 1 110 10,SrcSpan "tests/examples/Unicode.hs" 110 11 110 17,SrcSpan "tests/examples/Unicode.hs" 110 22 110 23,SrcSpan "tests/examples/Unicode.hs" 110 42 110 43]}) "xs |> n" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 18 110 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 18 110 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 21 110 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 21 110 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 25 110 41, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 25 110 36, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 110 25 110 26,SrcSpan "tests/examples/Unicode.hs" 110 35 110 36]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35, srcInfoPoints = []}) "xs"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38, srcInfoPoints = []}) ">"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41, srcInfoPoints = []}) "n")))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49, srcInfoPoints = []}) "|>"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 1 111 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 111 1 111 10,SrcSpan "tests/examples/Unicode.hs" 111 11 111 17,SrcSpan "tests/examples/Unicode.hs" 111 22 111 23,SrcSpan "tests/examples/Unicode.hs" 111 42 111 43]}) "xs |\8805 n" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 18 111 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 18 111 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 21 111 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 21 111 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 25 111 41, srcInfoPoints = []}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 25 111 36, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 111 25 111 26,SrcSpan "tests/examples/Unicode.hs" 111 35 111 36]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 35, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35, srcInfoPoints = []}) "xs"))))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39, srcInfoPoints = []}) ">="))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41, srcInfoPoints = []}) "n")))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49, srcInfoPoints = []}) "|\8805"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 1 113 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 113 1 113 10,SrcSpan "tests/examples/Unicode.hs" 113 11 113 17,SrcSpan "tests/examples/Unicode.hs" 113 22 113 23,SrcSpan "tests/examples/Unicode.hs" 113 42 113 43]}) "n \8803| xs" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 18 113 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 18 113 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 21 113 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 21 113 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29, srcInfoPoints = []}) "=="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 30 113 41, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 113 30 113 31,SrcSpan "tests/examples/Unicode.hs" 113 40 113 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40, srcInfoPoints = []}) "xs")))))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49, srcInfoPoints = []}) "|\8803"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 1 114 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 114 1 114 10,SrcSpan "tests/examples/Unicode.hs" 114 11 114 17,SrcSpan "tests/examples/Unicode.hs" 114 22 114 23,SrcSpan "tests/examples/Unicode.hs" 114 42 114 43]}) "n <| xs" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 18 114 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 18 114 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 21 114 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 21 114 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28, srcInfoPoints = []}) "<"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 30 114 41, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 114 30 114 31,SrcSpan "tests/examples/Unicode.hs" 114 40 114 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40, srcInfoPoints = []}) "xs")))))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49, srcInfoPoints = []}) "|\8805"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 1 115 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 115 1 115 10,SrcSpan "tests/examples/Unicode.hs" 115 11 115 17,SrcSpan "tests/examples/Unicode.hs" 115 22 115 23,SrcSpan "tests/examples/Unicode.hs" 115 42 115 43]}) "n \8804| xs" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 18 115 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 18 115 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 21 115 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 21 115 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29, srcInfoPoints = []}) "<="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 30 115 41, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 115 30 115 31,SrcSpan "tests/examples/Unicode.hs" 115 40 115 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40, srcInfoPoints = []}) "xs")))))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49, srcInfoPoints = []}) "|>"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 1 116 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 116 1 116 10,SrcSpan "tests/examples/Unicode.hs" 116 11 116 17,SrcSpan "tests/examples/Unicode.hs" 116 22 116 23,SrcSpan "tests/examples/Unicode.hs" 116 42 116 43]}) "n >| xs" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 18 116 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 18 116 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 21 116 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 21 116 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28, srcInfoPoints = []}) ">"))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 30 116 41, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 116 30 116 31,SrcSpan "tests/examples/Unicode.hs" 116 40 116 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40, srcInfoPoints = []}) "xs")))))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49, srcInfoPoints = []}) "|\8804"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51, srcInfoPoints = []}) "n")))),Rule (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 1 117 51, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 117 1 117 10,SrcSpan "tests/examples/Unicode.hs" 117 11 117 17,SrcSpan "tests/examples/Unicode.hs" 117 22 117 23,SrcSpan "tests/examples/Unicode.hs" 117 42 117 43]}) "n \8805| xs" Nothing (Just [RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 18 117 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 18 117 20, srcInfoPoints = []}) "xs"),RuleVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 21 117 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 21 117 22, srcInfoPoints = []}) "n")]) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 41, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26, srcInfoPoints = []}) "n"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29, srcInfoPoints = []}) ">="))) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 30 117 41, srcInfoPoints = [SrcSpan "tests/examples/Unicode.hs" 117 30 117 31,SrcSpan "tests/examples/Unicode.hs" 117 40 117 41]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 40, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37, srcInfoPoints = []}) "length"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40, srcInfoPoints = []}) "xs")))))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 51, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46, srcInfoPoints = []}) "xs"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49, srcInfoPoints = []}) "|<"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51, srcInfoPoints = []}) "n"))))]],[Comment False (SrcSpan "tests/examples/Unicode.hs" 56 1 56 28) "    f  = replicate 2000 x",Comment False (SrcSpan "tests/examples/Unicode.hs" 58 1 58 20) "    lf = length f",Comment False (SrcSpan "tests/examples/Unicode.hs" 59 1 59 20) "    li = length i",Comment False (SrcSpan "tests/examples/Unicode.hs" 60 1 60 20) "    pf = lf > 300",Comment False (SrcSpan "tests/examples/Unicode.hs" 61 1 61 20) "    pi = li > 300",Comment False (SrcSpan "tests/examples/Unicode.hs" 98 1 98 7) " \8803\8804\8805",Comment False (SrcSpan "tests/examples/Unicode.hs" 106 1 106 10) " length"])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 1 119 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Unicode.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Unicode.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Unicode.hs" 2 1 2 1
+            , SrcSpan "tests/examples/Unicode.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Unicode.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Unicode.hs" 7 1 7 1
+            , SrcSpan "tests/examples/Unicode.hs" 17 1 17 1
+            , SrcSpan "tests/examples/Unicode.hs" 18 1 18 1
+            , SrcSpan "tests/examples/Unicode.hs" 25 1 25 1
+            , SrcSpan "tests/examples/Unicode.hs" 26 1 26 1
+            , SrcSpan "tests/examples/Unicode.hs" 33 1 33 1
+            , SrcSpan "tests/examples/Unicode.hs" 34 1 34 1
+            , SrcSpan "tests/examples/Unicode.hs" 43 1 43 1
+            , SrcSpan "tests/examples/Unicode.hs" 44 1 44 1
+            , SrcSpan "tests/examples/Unicode.hs" 53 1 53 1
+            , SrcSpan "tests/examples/Unicode.hs" 54 1 54 1
+            , SrcSpan "tests/examples/Unicode.hs" 63 1 63 1
+            , SrcSpan "tests/examples/Unicode.hs" 64 1 64 1
+            , SrcSpan "tests/examples/Unicode.hs" 74 1 74 1
+            , SrcSpan "tests/examples/Unicode.hs" 75 1 75 1
+            , SrcSpan "tests/examples/Unicode.hs" 76 1 76 1
+            , SrcSpan "tests/examples/Unicode.hs" 82 1 82 1
+            , SrcSpan "tests/examples/Unicode.hs" 83 1 83 1
+            , SrcSpan "tests/examples/Unicode.hs" 84 1 84 1
+            , SrcSpan "tests/examples/Unicode.hs" 86 1 86 1
+            , SrcSpan "tests/examples/Unicode.hs" 87 1 87 1
+            , SrcSpan "tests/examples/Unicode.hs" 88 1 88 1
+            , SrcSpan "tests/examples/Unicode.hs" 89 1 89 1
+            , SrcSpan "tests/examples/Unicode.hs" 90 1 90 1
+            , SrcSpan "tests/examples/Unicode.hs" 92 1 92 1
+            , SrcSpan "tests/examples/Unicode.hs" 93 1 93 1
+            , SrcSpan "tests/examples/Unicode.hs" 94 1 94 1
+            , SrcSpan "tests/examples/Unicode.hs" 95 1 95 1
+            , SrcSpan "tests/examples/Unicode.hs" 99 1 99 1
+            , SrcSpan "tests/examples/Unicode.hs" 100 1 100 1
+            , SrcSpan "tests/examples/Unicode.hs" 101 1 101 1
+            , SrcSpan "tests/examples/Unicode.hs" 102 1 102 1
+            , SrcSpan "tests/examples/Unicode.hs" 103 1 103 1
+            , SrcSpan "tests/examples/Unicode.hs" 105 1 105 1
+            , SrcSpan "tests/examples/Unicode.hs" 119 1 119 1
+            , SrcSpan "tests/examples/Unicode.hs" 119 1 119 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 2 1 2 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Unicode.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/Unicode.hs" 2 13 2 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 2 8 2 12
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Unicode.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 4 1 4 26
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 4 8 4 26
+                  , srcInfoPoints = []
+                  }
+                "System.Environment"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 1 6 14
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 6 6 6 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 1 6 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 14
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 9 6 11
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 6 12 6 13
+                      , SrcSpan "tests/examples/Unicode.hs" 6 13 6 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 6 12 6 13
+                         , SrcSpan "tests/examples/Unicode.hs" 6 13 6 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 6 12 6 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 6 12 6 13
+                            , SrcSpan "tests/examples/Unicode.hs" 6 13 6 14
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 15 32
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 7 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 1 7 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 6 15 32
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 7 6 7 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 7 8 15 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 7 8 7 10
+                      , SrcSpan "tests/examples/Unicode.hs" 8 3 8 3
+                      , SrcSpan "tests/examples/Unicode.hs" 9 3 9 3
+                      , SrcSpan "tests/examples/Unicode.hs" 10 3 10 3
+                      , SrcSpan "tests/examples/Unicode.hs" 11 3 11 3
+                      , SrcSpan "tests/examples/Unicode.hs" 12 3 12 3
+                      , SrcSpan "tests/examples/Unicode.hs" 13 3 13 3
+                      , SrcSpan "tests/examples/Unicode.hs" 14 3 14 3
+                      , SrcSpan "tests/examples/Unicode.hs" 15 3 15 3
+                      , SrcSpan "tests/examples/Unicode.hs" 17 1 17 0
+                      ]
+                  }
+                [ Generator
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 15
+                      , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 8 6 8 7 ]
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 5
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 3 8 5
+                            , srcInfoPoints = []
+                            }
+                          "as"))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 8 8 8 15
+                               , srcInfoPoints = []
+                               }
+                             "getArgs")))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 13
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 13
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 3 9 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 9 9 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 9 11 9 13
+                                  , srcInfoPoints = []
+                                  }
+                                "as"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 3 10 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 9 10 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 11 10 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "test")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 31 10 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 10 31 10 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 3 11 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 9 11 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 11 11 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "test2")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 31 11 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 11 31 11 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 3 12 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 9 12 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 11 12 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "testRewrite")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 31 12 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 12 31 12 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 3 13 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 9 13 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 11 13 29
+                                     , srcInfoPoints = []
+                                     }
+                                   "testRewriteReverse")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 31 13 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 13 31 13 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 3 14 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 9 14 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 11 14 23
+                                     , srcInfoPoints = []
+                                     }
+                                   "testRewrite2")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 31 14 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 14 31 14 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 32
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 32
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 3 15 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 9 15 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 32
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 11 15 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "testRewriteReverse2")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 31 15 32
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 15 31 15 32
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 1 17 17
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 17 6 17 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 1 17 5
+                , srcInfoPoints = []
+                }
+              "test"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 17 11 17 12 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 9 17 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 17 13 17 17
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 23 18
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 19 3 19 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 23 18
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 19 3 19 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 1 18 5
+                   , srcInfoPoints = []
+                   }
+                 "test")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 6 18 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 6 18 7
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 8 18 12
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 18 8 18 9 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 18 10 18 12
+                            , srcInfoPoints = []
+                            }
+                          "pi"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 23 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 20 5 20 5
+                          , SrcSpan "tests/examples/Unicode.hs" 21 5 21 5
+                          , SrcSpan "tests/examples/Unicode.hs" 22 5 22 5
+                          , SrcSpan "tests/examples/Unicode.hs" 23 5 23 5
+                          , SrcSpan "tests/examples/Unicode.hs" 25 1 25 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 5 20 6
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 8 20 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 20 8 20 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 26
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 10 20 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 20 10 20 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 20 10 20 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 20 10 20 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "replicate")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 20 20 20 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 20 20 20 24
+                                         , srcInfoPoints = []
+                                         }
+                                       2000
+                                       "2000")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 20 25 20 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 20 25 20 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 20 25 20 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 5 21 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 8 21 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 21 8 21 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 10 21 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 21 10 21 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 21 10 21 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 21 25 21 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 21 25 21 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 21 25 21 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 5 22 7
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 8 22 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 22 8 22 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 10 22 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 22 10 22 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 22 10 22 11
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 12 22 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 22 12 22 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 22 12 22 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "|>")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 22 15 22 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 22 15 22 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 5 23 7
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 8 23 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 23 8 23 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 10 23 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 23 10 23 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 23 10 23 11
+                                         , srcInfoPoints = []
+                                         }
+                                       "i")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 12 23 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 23 12 23 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 23 12 23 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "|>")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 23 15 23 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 23 15 23 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 1 25 25
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 25 7 25 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 1 25 6
+                , srcInfoPoints = []
+                }
+              "test2"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 25
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 25 12 25 13 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 10 25 11
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 14 25 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 25 14 25 15
+                      , SrcSpan "tests/examples/Unicode.hs" 25 19 25 20
+                      , SrcSpan "tests/examples/Unicode.hs" 25 24 25 25
+                      ]
+                  }
+                Boxed
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 15 25 19
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 25 20 25 24
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 31 18
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 27 3 27 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 31 18
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 27 3 27 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 1 26 6
+                   , srcInfoPoints = []
+                   }
+                 "test2")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 7 26 8
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 7 26 8
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 9 26 18
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 26 9 26 10 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 11 26 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 26 11 26 12
+                          , SrcSpan "tests/examples/Unicode.hs" 26 14 26 15
+                          , SrcSpan "tests/examples/Unicode.hs" 26 17 26 18
+                          ]
+                      }
+                    Boxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 12 26 14
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 26 15 26 17
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 31 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 28 5 28 5
+                          , SrcSpan "tests/examples/Unicode.hs" 29 5 29 5
+                          , SrcSpan "tests/examples/Unicode.hs" 30 5 30 5
+                          , SrcSpan "tests/examples/Unicode.hs" 31 5 31 5
+                          , SrcSpan "tests/examples/Unicode.hs" 33 1 33 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 5 28 6
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 8 28 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 28 8 28 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 26
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 10 28 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 28 10 28 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 28 10 28 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 28 10 28 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "replicate")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 28 20 28 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 28 20 28 24
+                                         , srcInfoPoints = []
+                                         }
+                                       2000
+                                       "2000")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 28 25 28 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 28 25 28 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 28 25 28 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 5 29 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 8 29 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 29 8 29 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 10 29 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 29 10 29 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 29 10 29 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 29 25 29 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 29 25 29 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 29 25 29 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 5 30 7
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 8 30 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 30 8 30 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 10 30 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 30 10 30 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 30 10 30 11
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 12 30 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 30 12 30 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 30 12 30 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "|>")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 30 15 30 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 30 15 30 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 5 31 7
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 8 31 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 31 8 31 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 10 31 11
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 31 10 31 11
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 31 10 31 11
+                                         , srcInfoPoints = []
+                                         }
+                                       "i")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 12 31 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 31 12 31 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 31 12 31 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "|>")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 31 15 31 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 31 15 31 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 1 33 24
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 33 13 33 15 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 1 33 12
+                , srcInfoPoints = []
+                }
+              "testRewrite"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 24
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 33 18 33 19 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 16 33 17
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 33 20 33 24
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 41 18
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 35 3 35 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 41 18
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 35 3 35 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 1 34 12
+                   , srcInfoPoints = []
+                   }
+                 "testRewrite")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 13 34 14
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 13 34 14
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 15 34 19
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 34 15 34 16 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 34 17 34 19
+                            , srcInfoPoints = []
+                            }
+                          "pi"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 41 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 36 5 36 5
+                          , SrcSpan "tests/examples/Unicode.hs" 37 5 37 5
+                          , SrcSpan "tests/examples/Unicode.hs" 38 5 38 5
+                          , SrcSpan "tests/examples/Unicode.hs" 39 5 39 5
+                          , SrcSpan "tests/examples/Unicode.hs" 40 5 40 5
+                          , SrcSpan "tests/examples/Unicode.hs" 41 5 41 5
+                          , SrcSpan "tests/examples/Unicode.hs" 43 1 43 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 5 36 6
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 8 36 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 36 8 36 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 26
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 10 36 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 36 10 36 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 36 10 36 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 36 10 36 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "replicate")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 36 20 36 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 36 20 36 24
+                                         , srcInfoPoints = []
+                                         }
+                                       2000
+                                       "2000")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 36 25 36 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 36 25 36 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 36 25 36 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 5 37 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 8 37 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 37 8 37 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 10 37 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 37 10 37 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 37 10 37 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 37 25 37 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 37 25 37 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 37 25 37 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 5 38 7
+                                , srcInfoPoints = []
+                                }
+                              "lf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 8 38 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 38 8 38 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 10 38 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 38 10 38 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 38 10 38 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 38 17 38 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 38 17 38 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 38 17 38 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 5 39 7
+                                , srcInfoPoints = []
+                                }
+                              "li"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 8 39 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 39 8 39 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 10 39 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 39 10 39 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 39 10 39 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 39 17 39 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 39 17 39 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 39 17 39 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "i")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 5 40 7
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 8 40 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 40 8 40 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 10 40 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 40 10 40 12
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 40 10 40 12
+                                         , srcInfoPoints = []
+                                         }
+                                       "lf")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 13 40 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 40 13 40 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 40 13 40 14
+                                         , srcInfoPoints = []
+                                         }
+                                       ">")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 40 15 40 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 40 15 40 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 5 41 7
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 8 41 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 41 8 41 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 10 41 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 41 10 41 12
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 41 10 41 12
+                                         , srcInfoPoints = []
+                                         }
+                                       "li")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 13 41 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 41 13 41 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 41 13 41 14
+                                         , srcInfoPoints = []
+                                         }
+                                       ">")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 41 15 41 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 41 15 41 18
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 1 43 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 43 20 43 22 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 1 43 19
+                , srcInfoPoints = []
+                }
+              "testRewriteReverse"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 31
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 43 25 43 26 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 24
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 23 43 24
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 43 27 43 31
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 51 18
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 45 3 45 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 51 18
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 45 3 45 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 1 44 19
+                   , srcInfoPoints = []
+                   }
+                 "testRewriteReverse")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 20 44 21
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 20 44 21
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 22 44 26
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 44 22 44 23 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 44 24 44 26
+                            , srcInfoPoints = []
+                            }
+                          "pi"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 51 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 46 5 46 5
+                          , SrcSpan "tests/examples/Unicode.hs" 47 5 47 5
+                          , SrcSpan "tests/examples/Unicode.hs" 48 5 48 5
+                          , SrcSpan "tests/examples/Unicode.hs" 49 5 49 5
+                          , SrcSpan "tests/examples/Unicode.hs" 50 5 50 5
+                          , SrcSpan "tests/examples/Unicode.hs" 51 5 51 5
+                          , SrcSpan "tests/examples/Unicode.hs" 53 1 53 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 5 46 6
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 8 46 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 46 8 46 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 26
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 10 46 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 46 10 46 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 46 10 46 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 46 10 46 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "replicate")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 46 20 46 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 46 20 46 24
+                                         , srcInfoPoints = []
+                                         }
+                                       2000
+                                       "2000")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 46 25 46 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 46 25 46 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 46 25 46 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 5 47 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 8 47 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 47 8 47 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 10 47 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 47 10 47 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 47 10 47 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 47 25 47 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 47 25 47 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 47 25 47 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 5 48 7
+                                , srcInfoPoints = []
+                                }
+                              "lf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 8 48 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 48 8 48 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 10 48 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 48 10 48 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 48 10 48 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 48 17 48 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 48 17 48 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 48 17 48 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 5 49 7
+                                , srcInfoPoints = []
+                                }
+                              "li"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 8 49 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 49 8 49 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 10 49 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 49 10 49 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 49 10 49 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 49 17 49 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 49 17 49 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 49 17 49 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "i")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 5 50 7
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 8 50 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 50 8 50 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 10 50 18
+                                , srcInfoPoints = []
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 10 50 13
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 50 10 50 13
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 14 50 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 50 14 50 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 50 14 50 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "\8804")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 50 16 50 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 50 16 50 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 50 16 50 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "lf")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 5 51 7
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 8 51 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 51 8 51 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 10 51 18
+                                , srcInfoPoints = []
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 10 51 13
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 51 10 51 13
+                                      , srcInfoPoints = []
+                                      }
+                                    300
+                                    "300"))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 14 51 15
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 51 14 51 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 51 14 51 15
+                                         , srcInfoPoints = []
+                                         }
+                                       "\8804")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 51 16 51 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 51 16 51 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 51 16 51 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "li")))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 1 53 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 53 14 53 16 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 1 53 13
+                , srcInfoPoints = []
+                }
+              "testRewrite2"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 32
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 53 19 53 20 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 17 53 18
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 21 53 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 53 21 53 22
+                      , SrcSpan "tests/examples/Unicode.hs" 53 26 53 27
+                      , SrcSpan "tests/examples/Unicode.hs" 53 31 53 32
+                      ]
+                  }
+                Boxed
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 22 53 26
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 53 27 53 31
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 57 26
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 55 3 55 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 57 26
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 55 3 55 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 1 54 13
+                   , srcInfoPoints = []
+                   }
+                 "testRewrite2")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 14 54 15
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 14 54 15
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 16 54 49
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 54 16 54 17 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 18 54 49
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 54 18 54 19
+                          , SrcSpan "tests/examples/Unicode.hs" 54 33 54 34
+                          , SrcSpan "tests/examples/Unicode.hs" 54 48 54 49
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 33
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 27
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 25
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 19 54 25
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 54 19 54 25
+                                      , srcInfoPoints = []
+                                      }
+                                    "length")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 26 54 27
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 26 54 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 54 26 54 27
+                                      , srcInfoPoints = []
+                                      }
+                                    "i"))))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 28 54 29
+                                   , srcInfoPoints = []
+                                   }
+                                 ">")))
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 30 54 33
+                             , srcInfoPoints = []
+                             }
+                           (Int
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 30 54 33
+                                , srcInfoPoints = []
+                                }
+                              300
+                              "300"))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 48
+                          , srcInfoPoints = []
+                          }
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 37
+                             , srcInfoPoints = []
+                             }
+                           (Int
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 34 54 37
+                                , srcInfoPoints = []
+                                }
+                              300
+                              "300"))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 38 54 39
+                                   , srcInfoPoints = []
+                                   }
+                                 ">")))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 48
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 46
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 40 54 46
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 54 40 54 46
+                                      , srcInfoPoints = []
+                                      }
+                                    "length")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 47 54 48
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 54 47 54 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 54 47 54 48
+                                      , srcInfoPoints = []
+                                      }
+                                    "i"))))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 57 5 57 5
+                          , SrcSpan "tests/examples/Unicode.hs" 63 1 63 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 5 57 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 8 57 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 57 8 57 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 10 57 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 57 10 57 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 57 10 57 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 57 25 57 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 57 25 57 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 57 25 57 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 1 63 39
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 63 21 63 23 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 1 63 20
+                , srcInfoPoints = []
+                }
+              "testRewriteReverse2"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 39
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 63 26 63 27 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 25
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 24 63 25
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyTuple
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 28 63 39
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 63 28 63 29
+                      , SrcSpan "tests/examples/Unicode.hs" 63 33 63 34
+                      , SrcSpan "tests/examples/Unicode.hs" 63 38 63 39
+                      ]
+                  }
+                Boxed
+                [ TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 29 63 33
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                , TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 63 34 63 38
+                            , srcInfoPoints = []
+                            }
+                          "Bool"))
+                ]))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 71 17
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 65 3 65 8 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 71 17
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 65 3 65 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 1 64 20
+                   , srcInfoPoints = []
+                   }
+                 "testRewriteReverse2")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 21 64 22
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 21 64 22
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 23 64 56
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 64 23 64 24 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 25 64 56
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 64 25 64 26
+                          , SrcSpan "tests/examples/Unicode.hs" 64 41 64 42
+                          , SrcSpan "tests/examples/Unicode.hs" 64 55 64 56
+                          ]
+                      }
+                    Boxed
+                    [ InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 41
+                          , srcInfoPoints = []
+                          }
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 30
+                             , srcInfoPoints = []
+                             }
+                           (Int
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 26 64 30
+                                , srcInfoPoints = []
+                                }
+                              2000
+                              "2000"))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 31 64 32
+                                   , srcInfoPoints = []
+                                   }
+                                 "<")))
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 41
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 39
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 33 64 39
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 64 33 64 39
+                                      , srcInfoPoints = []
+                                      }
+                                    "length")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 40 64 41
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 40 64 41
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 64 40 64 41
+                                      , srcInfoPoints = []
+                                      }
+                                    "i"))))
+                    , InfixApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 55
+                          , srcInfoPoints = []
+                          }
+                        (App
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 50
+                             , srcInfoPoints = []
+                             }
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 48
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 42 64 48
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 64 42 64 48
+                                      , srcInfoPoints = []
+                                      }
+                                    "length")))
+                           (Var
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 49 64 50
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 49 64 50
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 64 49 64 50
+                                      , srcInfoPoints = []
+                                      }
+                                    "i"))))
+                        (QVarOp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52
+                                , srcInfoPoints = []
+                                }
+                              (Symbol
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 51 64 52
+                                   , srcInfoPoints = []
+                                   }
+                                 ">")))
+                        (Lit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 53 64 55
+                             , srcInfoPoints = []
+                             }
+                           (Int
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 64 53 64 55
+                                , srcInfoPoints = []
+                                }
+                              20
+                              "20"))
+                    ]))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 71 17
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 66 5 66 5
+                          , SrcSpan "tests/examples/Unicode.hs" 67 5 67 5
+                          , SrcSpan "tests/examples/Unicode.hs" 68 5 68 5
+                          , SrcSpan "tests/examples/Unicode.hs" 69 5 69 5
+                          , SrcSpan "tests/examples/Unicode.hs" 70 5 70 5
+                          , SrcSpan "tests/examples/Unicode.hs" 71 5 71 5
+                          , SrcSpan "tests/examples/Unicode.hs" 74 1 74 0
+                          ]
+                      }
+                    [ PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 5 66 6
+                                , srcInfoPoints = []
+                                }
+                              "f"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 8 66 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 66 8 66 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 26
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 10 66 24
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 66 10 66 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 66 10 66 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 66 10 66 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "replicate")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 66 20 66 24
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 66 20 66 24
+                                         , srcInfoPoints = []
+                                         }
+                                       2000
+                                       "2000")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 66 25 66 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 66 25 66 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 66 25 66 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 26
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 5 67 6
+                                , srcInfoPoints = []
+                                }
+                              "i"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 8 67 26
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 67 8 67 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 26
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 10 67 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 67 10 67 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 67 10 67 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "repeat")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 67 25 67 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 67 25 67 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 67 25 67 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "x")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 5 68 7
+                                , srcInfoPoints = []
+                                }
+                              "lf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 8 68 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 68 8 68 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 10 68 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 68 10 68 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 68 10 68 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 68 17 68 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 68 17 68 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 68 17 68 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 18
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 5 69 7
+                                , srcInfoPoints = []
+                                }
+                              "li"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 8 69 18
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 69 8 69 9 ]
+                             }
+                           (App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 18
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 10 69 16
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 69 10 69 16
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 69 10 69 16
+                                         , srcInfoPoints = []
+                                         }
+                                       "length")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 69 17 69 18
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 69 17 69 18
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 69 17 69 18
+                                         , srcInfoPoints = []
+                                         }
+                                       "i")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 20
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 5 70 7
+                                , srcInfoPoints = []
+                                }
+                              "pf"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 8 70 20
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 70 8 70 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 10 70 20
+                                , srcInfoPoints = []
+                                }
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 10 70 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 70 10 70 14
+                                      , srcInfoPoints = []
+                                      }
+                                    2000
+                                    "2000"))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 15 70 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 70 15 70 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 70 15 70 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "==")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 70 18 70 20
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 70 18 70 20
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 70 18 70 20
+                                         , srcInfoPoints = []
+                                         }
+                                       "lf")))))
+                        Nothing
+                    , PatBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 17
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 7
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 5 71 7
+                                , srcInfoPoints = []
+                                }
+                              "pi"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 8 71 17
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 71 8 71 9 ]
+                             }
+                           (InfixApp
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 17
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 10 71 12
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 71 10 71 12
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 71 10 71 12
+                                         , srcInfoPoints = []
+                                         }
+                                       "lf")))
+                              (QVarOp
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 13 71 14
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 71 13 71 14
+                                      , srcInfoPoints = []
+                                      }
+                                    (Symbol
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 71 13 71 14
+                                         , srcInfoPoints = []
+                                         }
+                                       "\8805")))
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 71 15 71 17
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/Unicode.hs" 71 15 71 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 71 15 71 17
+                                         , srcInfoPoints = []
+                                         }
+                                       "li")))))
+                        Nothing
+                    ]))
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 1 74 68
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 74 10 74 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 1 74 9
+                , srcInfoPoints = []
+                }
+              "lengthOP"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 13 74 68
+               , srcInfoPoints = []
+               }
+             Nothing
+             (Just
+                (CxTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 13 74 29
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 74 13 74 14
+                         , SrcSpan "tests/examples/Unicode.hs" 74 19 74 20
+                         , SrcSpan "tests/examples/Unicode.hs" 74 26 74 27
+                         , SrcSpan "tests/examples/Unicode.hs" 74 28 74 29
+                         ]
+                     }
+                   [ TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "Num")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 18 74 19
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 18 74 19
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   , TypeA
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26
+                         , srcInfoPoints = []
+                         }
+                       (TyApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26
+                            , srcInfoPoints = []
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24
+                                     , srcInfoPoints = []
+                                     }
+                                   "Ord")))
+                          (TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 25 74 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 25 74 26
+                                  , srcInfoPoints = []
+                                  }
+                                "a")))
+                   ]))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 68
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 74 35 74 36 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 30 74 34
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 37 74 68
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 74 52 74 53 ]
+                     }
+                   (TyParen
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 37 74 51
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 74 37 74 38
+                            , SrcSpan "tests/examples/Unicode.hs" 74 50 74 51
+                            ]
+                        }
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 50
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Unicode.hs" 74 40 74 41 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 39
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 38 74 39
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyFun
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 50
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Unicode.hs" 74 44 74 45 ]
+                              }
+                            (TyVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 43
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 42 74 43
+                                    , srcInfoPoints = []
+                                    }
+                                  "a"))
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 46 74 50
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 46 74 50
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Unicode.hs" 74 46 74 50
+                                       , srcInfoPoints = []
+                                       }
+                                     "Bool"))))))
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 54 74 68
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 74 58 74 59 ]
+                        }
+                      (TyList
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 54 74 57
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Unicode.hs" 74 54 74 55
+                               , SrcSpan "tests/examples/Unicode.hs" 74 56 74 57
+                               ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 55 74 56
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 55 74 56
+                                 , srcInfoPoints = []
+                                 }
+                               "b")))
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 68
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Unicode.hs" 74 62 74 63 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 61
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 60 74 61
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 64 74 68
+                                    , srcInfoPoints = []
+                                    }
+                                  "Bool"))))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 80 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 75 29
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 1 75 9
+                   , srcInfoPoints = []
+                   }
+                 "lengthOP")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 10 75 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 10 75 11
+                       , srcInfoPoints = []
+                       }
+                     "v")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 12 75 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Unicode.hs" 75 12 75 13
+                        , SrcSpan "tests/examples/Unicode.hs" 75 13 75 14
+                        , SrcSpan "tests/examples/Unicode.hs" 75 14 75 15
+                        ]
+                    }
+                  (Symbol
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 13 75 14
+                       , srcInfoPoints = []
+                       }
+                     "\8860")
+              , PList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 16 75 18
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Unicode.hs" 75 16 75 17
+                        , SrcSpan "tests/examples/Unicode.hs" 75 17 75 18
+                        ]
+                    }
+                  []
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 20 75 21
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 20 75 21
+                       , srcInfoPoints = []
+                       }
+                     "n")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 22 75 29
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 75 22 75 23 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 29
+                      , srcInfoPoints = []
+                      }
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 25
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 24 75 25
+                            , srcInfoPoints = []
+                            }
+                          0
+                          "0"))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 26 75 27
+                               , srcInfoPoints = []
+                               }
+                             "\8860")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 75 28 75 29
+                               , srcInfoPoints = []
+                               }
+                             "n")))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 1 80 24
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 77 3 77 8 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 1 76 9
+                   , srcInfoPoints = []
+                   }
+                 "lengthOP")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 10 76 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 10 76 11
+                       , srcInfoPoints = []
+                       }
+                     "v")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 12 76 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Unicode.hs" 76 12 76 13
+                        , SrcSpan "tests/examples/Unicode.hs" 76 13 76 14
+                        , SrcSpan "tests/examples/Unicode.hs" 76 14 76 15
+                        ]
+                    }
+                  (Symbol
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 13 76 14
+                       , srcInfoPoints = []
+                       }
+                     "\8860")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 16 76 19
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 16 76 19
+                       , srcInfoPoints = []
+                       }
+                     "xxs")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 20 76 21
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 20 76 21
+                       , srcInfoPoints = []
+                       }
+                     "n")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 22 76 32
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode.hs" 76 22 76 23 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 32
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 30
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 24 76 26
+                                  , srcInfoPoints = []
+                                  }
+                                "co")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 27 76 30
+                                  , srcInfoPoints = []
+                                  }
+                                "xxs"))))
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 31 76 32
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 76 31 76 32
+                            , srcInfoPoints = []
+                            }
+                          0
+                          "0"))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 80 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 78 5 78 5
+                          , SrcSpan "tests/examples/Unicode.hs" 80 5 80 5
+                          , SrcSpan "tests/examples/Unicode.hs" 82 1 82 0
+                          ]
+                      }
+                    [ FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 80 24
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 79 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 5 78 7
+                                 , srcInfoPoints = []
+                                 }
+                               "co")
+                            [ PParen
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 8 78 14
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Unicode.hs" 78 8 78 9
+                                      , SrcSpan "tests/examples/Unicode.hs" 78 13 78 14
+                                      ]
+                                  }
+                                (PInfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 9 78 13
+                                     , srcInfoPoints = []
+                                     }
+                                   (PWildCard
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Unicode.hs" 78 9 78 10
+                                        , srcInfoPoints = []
+                                        })
+                                   (Special
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Unicode.hs" 78 10 78 11
+                                        , srcInfoPoints = []
+                                        }
+                                      (Cons
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Unicode.hs" 78 10 78 11
+                                           , srcInfoPoints = []
+                                           }))
+                                   (PVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Unicode.hs" 78 11 78 13
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Unicode.hs" 78 11 78 13
+                                           , srcInfoPoints = []
+                                           }
+                                         "xs")))
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 15 78 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 15 78 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "c")
+                            ]
+                            (GuardedRhss
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 17 79 32
+                                 , srcInfoPoints = []
+                                 }
+                               [ GuardedRhs
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 78 17 78 42
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Unicode.hs" 78 17 78 18
+                                         , SrcSpan "tests/examples/Unicode.hs" 78 29 78 30
+                                         ]
+                                     }
+                                   [ Qualifier
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 78 19 78 24
+                                         , srcInfoPoints = []
+                                         }
+                                       (InfixApp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 78 19 78 24
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Unicode.hs" 78 19 78 20
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Unicode.hs" 78 19 78 20
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Unicode.hs" 78 19 78 20
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "n")))
+                                          (QVarOp
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Unicode.hs" 78 21 78 22
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Unicode.hs" 78 21 78 22
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Symbol
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Unicode.hs" 78 21 78 22
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   ">")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Unicode.hs" 78 23 78 24
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Unicode.hs" 78 23 78 24
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/Unicode.hs" 78 23 78 24
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "c"))))
+                                   ]
+                                   (App
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Unicode.hs" 78 31 78 42
+                                        , srcInfoPoints = []
+                                        }
+                                      (App
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Unicode.hs" 78 31 78 36
+                                           , srcInfoPoints = []
+                                           }
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Unicode.hs" 78 31 78 33
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Unicode.hs" 78 31 78 33
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Unicode.hs" 78 31 78 33
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "co")))
+                                         (Var
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Unicode.hs" 78 34 78 36
+                                              , srcInfoPoints = []
+                                              }
+                                            (UnQual
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Unicode.hs" 78 34 78 36
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Ident
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Unicode.hs" 78 34 78 36
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  "xs"))))
+                                      (Paren
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Unicode.hs" 78 37 78 42
+                                           , srcInfoPoints =
+                                               [ SrcSpan "tests/examples/Unicode.hs" 78 37 78 38
+                                               , SrcSpan "tests/examples/Unicode.hs" 78 41 78 42
+                                               ]
+                                           }
+                                         (InfixApp
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Unicode.hs" 78 38 78 41
+                                              , srcInfoPoints = []
+                                              }
+                                            (Var
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Unicode.hs" 78 38 78 39
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Unicode.hs" 78 38 78 39
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Ident
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Unicode.hs" 78 38 78 39
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "c")))
+                                            (QVarOp
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Unicode.hs" 78 39 78 40
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (UnQual
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Unicode.hs" 78 39 78 40
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  (Symbol
+                                                     SrcSpanInfo
+                                                       { srcInfoSpan =
+                                                           SrcSpan
+                                                             "tests/examples/Unicode.hs" 78 39 78 40
+                                                       , srcInfoPoints = []
+                                                       }
+                                                     "+")))
+                                            (Lit
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Unicode.hs" 78 40 78 41
+                                                 , srcInfoPoints = []
+                                                 }
+                                               (Int
+                                                  SrcSpanInfo
+                                                    { srcInfoSpan =
+                                                        SrcSpan
+                                                          "tests/examples/Unicode.hs" 78 40 78 41
+                                                    , srcInfoPoints = []
+                                                    }
+                                                  1
+                                                  "1")))))
+                               , GuardedRhs
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 79 17 79 32
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Unicode.hs" 79 17 79 18
+                                         , SrcSpan "tests/examples/Unicode.hs" 79 29 79 30
+                                         ]
+                                     }
+                                   [ Qualifier
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Unicode.hs" 79 19 79 28
+                                         , srcInfoPoints = []
+                                         }
+                                       (Var
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Unicode.hs" 79 19 79 28
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Unicode.hs" 79 19 79 28
+                                               , srcInfoPoints = []
+                                               }
+                                             (Ident
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/Unicode.hs" 79 19 79 28
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "otherwise")))
+                                   ]
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/Unicode.hs" 79 31 79 32
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Unicode.hs" 79 31 79 32
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Unicode.hs" 79 31 79 32
+                                              , srcInfoPoints = []
+                                              }
+                                            "v")))
+                               ])
+                            Nothing
+                        , Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 5 80 24
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 5 80 7
+                                 , srcInfoPoints = []
+                                 }
+                               "co")
+                            [ PList
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 8 80 10
+                                  , srcInfoPoints =
+                                      [ SrcSpan "tests/examples/Unicode.hs" 80 8 80 9
+                                      , SrcSpan "tests/examples/Unicode.hs" 80 9 80 10
+                                      ]
+                                  }
+                                []
+                            , PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 15 80 16
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 15 80 16
+                                     , srcInfoPoints = []
+                                     }
+                                   "c")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 17 80 24
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Unicode.hs" 80 17 80 18 ]
+                                 }
+                               (InfixApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 80 19 80 24
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Unicode.hs" 80 19 80 20
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Unicode.hs" 80 19 80 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Unicode.hs" 80 19 80 20
+                                             , srcInfoPoints = []
+                                             }
+                                           "c")))
+                                  (QVarOp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Unicode.hs" 80 21 80 22
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Unicode.hs" 80 21 80 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (Symbol
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Unicode.hs" 80 21 80 22
+                                             , srcInfoPoints = []
+                                             }
+                                           "\8860")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/Unicode.hs" 80 23 80 24
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Unicode.hs" 80 23 80 24
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Unicode.hs" 80 23 80 24
+                                             , srcInfoPoints = []
+                                             }
+                                           "n")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 1 82 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 1 82 4
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 82 1 82 2
+                   , SrcSpan "tests/examples/Unicode.hs" 82 2 82 3
+                   , SrcSpan "tests/examples/Unicode.hs" 82 3 82 4
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 2 82 3
+                  , srcInfoPoints = []
+                  }
+                "\8803"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 5 82 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 82 5 82 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 7 82 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 82 7 82 8
+                      , SrcSpan "tests/examples/Unicode.hs" 82 8 82 10
+                      , SrcSpan "tests/examples/Unicode.hs" 82 10 82 11
+                      ]
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 7 82 11
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 82 7 82 8
+                         , SrcSpan "tests/examples/Unicode.hs" 82 8 82 10
+                         , SrcSpan "tests/examples/Unicode.hs" 82 10 82 11
+                         ]
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 82 8 82 10
+                        , srcInfoPoints = []
+                        }
+                      "=="))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 1 83 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 1 83 4
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 83 1 83 2
+                   , SrcSpan "tests/examples/Unicode.hs" 83 2 83 3
+                   , SrcSpan "tests/examples/Unicode.hs" 83 3 83 4
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 2 83 3
+                  , srcInfoPoints = []
+                  }
+                "\8804"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 5 83 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 83 5 83 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 7 83 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 83 7 83 8
+                      , SrcSpan "tests/examples/Unicode.hs" 83 8 83 10
+                      , SrcSpan "tests/examples/Unicode.hs" 83 10 83 11
+                      ]
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 7 83 11
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 83 7 83 8
+                         , SrcSpan "tests/examples/Unicode.hs" 83 8 83 10
+                         , SrcSpan "tests/examples/Unicode.hs" 83 10 83 11
+                         ]
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 83 8 83 10
+                        , srcInfoPoints = []
+                        }
+                      "<="))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 1 84 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 1 84 4
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 84 1 84 2
+                   , SrcSpan "tests/examples/Unicode.hs" 84 2 84 3
+                   , SrcSpan "tests/examples/Unicode.hs" 84 3 84 4
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 2 84 3
+                  , srcInfoPoints = []
+                  }
+                "\8805"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 5 84 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 84 5 84 6 ]
+               }
+             (Var
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 7 84 11
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Unicode.hs" 84 7 84 8
+                      , SrcSpan "tests/examples/Unicode.hs" 84 8 84 10
+                      , SrcSpan "tests/examples/Unicode.hs" 84 10 84 11
+                      ]
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 7 84 11
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 84 7 84 8
+                         , SrcSpan "tests/examples/Unicode.hs" 84 8 84 10
+                         , SrcSpan "tests/examples/Unicode.hs" 84 10 84 11
+                         ]
+                     }
+                   (Symbol
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 84 8 84 10
+                        , srcInfoPoints = []
+                        }
+                      ">="))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 1 86 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 1 86 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 86 1 86 2
+                   , SrcSpan "tests/examples/Unicode.hs" 86 2 86 4
+                   , SrcSpan "tests/examples/Unicode.hs" 86 4 86 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 2 86 4
+                  , srcInfoPoints = []
+                  }
+                "|\8803"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 7 86 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 86 7 86 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 9 86 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 18 86 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 24 86 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 86 24 86 25
+                         , SrcSpan "tests/examples/Unicode.hs" 86 25 86 26
+                         , SrcSpan "tests/examples/Unicode.hs" 86 26 86 27
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 24 86 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 86 24 86 25
+                            , SrcSpan "tests/examples/Unicode.hs" 86 25 86 26
+                            , SrcSpan "tests/examples/Unicode.hs" 86 26 86 27
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 86 25 86 26
+                           , srcInfoPoints = []
+                           }
+                         "\8803")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 1 87 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 1 87 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 87 1 87 2
+                   , SrcSpan "tests/examples/Unicode.hs" 87 2 87 4
+                   , SrcSpan "tests/examples/Unicode.hs" 87 4 87 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 2 87 4
+                  , srcInfoPoints = []
+                  }
+                "|<"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 7 87 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 87 7 87 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 9 87 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 18 87 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 24 87 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 87 24 87 25
+                         , SrcSpan "tests/examples/Unicode.hs" 87 25 87 26
+                         , SrcSpan "tests/examples/Unicode.hs" 87 26 87 27
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 24 87 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 87 24 87 25
+                            , SrcSpan "tests/examples/Unicode.hs" 87 25 87 26
+                            , SrcSpan "tests/examples/Unicode.hs" 87 26 87 27
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 87 25 87 26
+                           , srcInfoPoints = []
+                           }
+                         "<")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 1 88 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 1 88 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 88 1 88 2
+                   , SrcSpan "tests/examples/Unicode.hs" 88 2 88 4
+                   , SrcSpan "tests/examples/Unicode.hs" 88 4 88 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 2 88 4
+                  , srcInfoPoints = []
+                  }
+                "|\8804"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 7 88 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 88 7 88 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 9 88 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 18 88 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 24 88 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 88 24 88 25
+                         , SrcSpan "tests/examples/Unicode.hs" 88 25 88 26
+                         , SrcSpan "tests/examples/Unicode.hs" 88 26 88 27
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 24 88 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 88 24 88 25
+                            , SrcSpan "tests/examples/Unicode.hs" 88 25 88 26
+                            , SrcSpan "tests/examples/Unicode.hs" 88 26 88 27
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 88 25 88 26
+                           , srcInfoPoints = []
+                           }
+                         "\8804")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 1 89 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 1 89 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 89 1 89 2
+                   , SrcSpan "tests/examples/Unicode.hs" 89 2 89 4
+                   , SrcSpan "tests/examples/Unicode.hs" 89 4 89 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 2 89 4
+                  , srcInfoPoints = []
+                  }
+                "|>"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 7 89 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 89 7 89 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 22
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 9 89 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 18 89 22
+                              , srcInfoPoints = []
+                              }
+                            "True"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 24 89 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 89 24 89 25
+                         , SrcSpan "tests/examples/Unicode.hs" 89 25 89 26
+                         , SrcSpan "tests/examples/Unicode.hs" 89 26 89 27
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 24 89 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 89 24 89 25
+                            , SrcSpan "tests/examples/Unicode.hs" 89 25 89 26
+                            , SrcSpan "tests/examples/Unicode.hs" 89 26 89 27
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 89 25 89 26
+                           , srcInfoPoints = []
+                           }
+                         ">")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 1 90 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 1 90 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 90 1 90 2
+                   , SrcSpan "tests/examples/Unicode.hs" 90 2 90 4
+                   , SrcSpan "tests/examples/Unicode.hs" 90 4 90 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 2 90 4
+                  , srcInfoPoints = []
+                  }
+                "|\8805"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 7 90 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 90 7 90 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 22
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 9 90 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 18 90 22
+                              , srcInfoPoints = []
+                              }
+                            "True"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 24 90 27
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 90 24 90 25
+                         , SrcSpan "tests/examples/Unicode.hs" 90 25 90 26
+                         , SrcSpan "tests/examples/Unicode.hs" 90 26 90 27
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 24 90 27
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 90 24 90 25
+                            , SrcSpan "tests/examples/Unicode.hs" 90 25 90 26
+                            , SrcSpan "tests/examples/Unicode.hs" 90 26 90 27
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 90 25 90 26
+                           , srcInfoPoints = []
+                           }
+                         "\8805")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 1 92 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 1 92 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 92 1 92 2
+                   , SrcSpan "tests/examples/Unicode.hs" 92 2 92 4
+                   , SrcSpan "tests/examples/Unicode.hs" 92 4 92 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 2 92 4
+                  , srcInfoPoints = []
+                  }
+                "|="))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 7 92 28
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 92 7 92 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 28
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 9 92 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 18 92 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 24 92 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 92 24 92 25
+                         , SrcSpan "tests/examples/Unicode.hs" 92 25 92 27
+                         , SrcSpan "tests/examples/Unicode.hs" 92 27 92 28
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 24 92 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 92 24 92 25
+                            , SrcSpan "tests/examples/Unicode.hs" 92 25 92 27
+                            , SrcSpan "tests/examples/Unicode.hs" 92 27 92 28
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 92 25 92 27
+                           , srcInfoPoints = []
+                           }
+                         "==")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 1 93 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 1 93 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 93 1 93 2
+                   , SrcSpan "tests/examples/Unicode.hs" 93 2 93 5
+                   , SrcSpan "tests/examples/Unicode.hs" 93 5 93 6
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 2 93 5
+                  , srcInfoPoints = []
+                  }
+                "|=="))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 7 93 28
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 93 7 93 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 28
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 9 93 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 18 93 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 24 93 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 93 24 93 25
+                         , SrcSpan "tests/examples/Unicode.hs" 93 25 93 27
+                         , SrcSpan "tests/examples/Unicode.hs" 93 27 93 28
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 24 93 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 93 24 93 25
+                            , SrcSpan "tests/examples/Unicode.hs" 93 25 93 27
+                            , SrcSpan "tests/examples/Unicode.hs" 93 27 93 28
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 93 25 93 27
+                           , srcInfoPoints = []
+                           }
+                         "==")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 1 94 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 1 94 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 94 1 94 2
+                   , SrcSpan "tests/examples/Unicode.hs" 94 2 94 5
+                   , SrcSpan "tests/examples/Unicode.hs" 94 5 94 6
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 2 94 5
+                  , srcInfoPoints = []
+                  }
+                "|<="))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 7 94 28
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 94 7 94 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 28
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 9 94 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 18 94 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 24 94 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 94 24 94 25
+                         , SrcSpan "tests/examples/Unicode.hs" 94 25 94 27
+                         , SrcSpan "tests/examples/Unicode.hs" 94 27 94 28
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 24 94 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 94 24 94 25
+                            , SrcSpan "tests/examples/Unicode.hs" 94 25 94 27
+                            , SrcSpan "tests/examples/Unicode.hs" 94 27 94 28
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 94 25 94 27
+                           , srcInfoPoints = []
+                           }
+                         "<=")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 1 95 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 1 95 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 95 1 95 2
+                   , SrcSpan "tests/examples/Unicode.hs" 95 2 95 5
+                   , SrcSpan "tests/examples/Unicode.hs" 95 5 95 6
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 2 95 5
+                  , srcInfoPoints = []
+                  }
+                "|>="))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 7 95 28
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 95 7 95 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 28
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 23
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 9 95 17
+                              , srcInfoPoints = []
+                              }
+                            "lengthOP")))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 18 95 23
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 24 95 28
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 95 24 95 25
+                         , SrcSpan "tests/examples/Unicode.hs" 95 25 95 27
+                         , SrcSpan "tests/examples/Unicode.hs" 95 27 95 28
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 24 95 28
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 95 24 95 25
+                            , SrcSpan "tests/examples/Unicode.hs" 95 25 95 27
+                            , SrcSpan "tests/examples/Unicode.hs" 95 27 95 28
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 95 25 95 27
+                           , srcInfoPoints = []
+                           }
+                         ">=")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 1 99 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 1 99 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 99 1 99 2
+                   , SrcSpan "tests/examples/Unicode.hs" 99 2 99 4
+                   , SrcSpan "tests/examples/Unicode.hs" 99 4 99 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 2 99 4
+                  , srcInfoPoints = []
+                  }
+                "\8803|"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 6 99 17
+               , srcInfoPoints = [ SrcSpan "tests/examples/Unicode.hs" 99 6 99 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 8 99 12
+                           , srcInfoPoints = []
+                           }
+                         "flip")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 13 99 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 99 13 99 14
+                         , SrcSpan "tests/examples/Unicode.hs" 99 14 99 16
+                         , SrcSpan "tests/examples/Unicode.hs" 99 16 99 17
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 13 99 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 99 13 99 14
+                            , SrcSpan "tests/examples/Unicode.hs" 99 14 99 16
+                            , SrcSpan "tests/examples/Unicode.hs" 99 16 99 17
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 99 14 99 16
+                           , srcInfoPoints = []
+                           }
+                         "|\8803")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 1 100 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 1 100 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 100 1 100 2
+                   , SrcSpan "tests/examples/Unicode.hs" 100 2 100 4
+                   , SrcSpan "tests/examples/Unicode.hs" 100 4 100 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 2 100 4
+                  , srcInfoPoints = []
+                  }
+                "<|"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 6 100 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 100 6 100 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 8 100 12
+                           , srcInfoPoints = []
+                           }
+                         "flip")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 13 100 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 100 13 100 14
+                         , SrcSpan "tests/examples/Unicode.hs" 100 14 100 16
+                         , SrcSpan "tests/examples/Unicode.hs" 100 16 100 17
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 13 100 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 100 13 100 14
+                            , SrcSpan "tests/examples/Unicode.hs" 100 14 100 16
+                            , SrcSpan "tests/examples/Unicode.hs" 100 16 100 17
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 100 14 100 16
+                           , srcInfoPoints = []
+                           }
+                         "|\8805")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 1 101 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 1 101 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 101 1 101 2
+                   , SrcSpan "tests/examples/Unicode.hs" 101 2 101 4
+                   , SrcSpan "tests/examples/Unicode.hs" 101 4 101 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 2 101 4
+                  , srcInfoPoints = []
+                  }
+                "\8804|"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 6 101 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 101 6 101 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 8 101 12
+                           , srcInfoPoints = []
+                           }
+                         "flip")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 13 101 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 101 13 101 14
+                         , SrcSpan "tests/examples/Unicode.hs" 101 14 101 16
+                         , SrcSpan "tests/examples/Unicode.hs" 101 16 101 17
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 13 101 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 101 13 101 14
+                            , SrcSpan "tests/examples/Unicode.hs" 101 14 101 16
+                            , SrcSpan "tests/examples/Unicode.hs" 101 16 101 17
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 101 14 101 16
+                           , srcInfoPoints = []
+                           }
+                         "|>")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 1 102 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 1 102 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 102 1 102 2
+                   , SrcSpan "tests/examples/Unicode.hs" 102 2 102 4
+                   , SrcSpan "tests/examples/Unicode.hs" 102 4 102 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 2 102 4
+                  , srcInfoPoints = []
+                  }
+                ">|"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 6 102 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 102 6 102 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 8 102 12
+                           , srcInfoPoints = []
+                           }
+                         "flip")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 13 102 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 102 13 102 14
+                         , SrcSpan "tests/examples/Unicode.hs" 102 14 102 16
+                         , SrcSpan "tests/examples/Unicode.hs" 102 16 102 17
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 13 102 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 102 13 102 14
+                            , SrcSpan "tests/examples/Unicode.hs" 102 14 102 16
+                            , SrcSpan "tests/examples/Unicode.hs" 102 16 102 17
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 102 14 102 16
+                           , srcInfoPoints = []
+                           }
+                         "|\8804")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 1 103 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 1 103 5
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 103 1 103 2
+                   , SrcSpan "tests/examples/Unicode.hs" 103 2 103 4
+                   , SrcSpan "tests/examples/Unicode.hs" 103 4 103 5
+                   ]
+               }
+             (Symbol
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 2 103 4
+                  , srcInfoPoints = []
+                  }
+                "\8805|"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 6 103 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Unicode.hs" 103 6 103 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 8 103 12
+                           , srcInfoPoints = []
+                           }
+                         "flip")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 13 103 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Unicode.hs" 103 13 103 14
+                         , SrcSpan "tests/examples/Unicode.hs" 103 14 103 16
+                         , SrcSpan "tests/examples/Unicode.hs" 103 16 103 17
+                         ]
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 13 103 17
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Unicode.hs" 103 13 103 14
+                            , SrcSpan "tests/examples/Unicode.hs" 103 14 103 16
+                            , SrcSpan "tests/examples/Unicode.hs" 103 16 103 17
+                            ]
+                        }
+                      (Symbol
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 103 14 103 16
+                           , srcInfoPoints = []
+                           }
+                         "|<")))))
+          Nothing
+      , RulePragmaDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 105 1 118 6
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode.hs" 105 1 105 10
+                , SrcSpan "tests/examples/Unicode.hs" 118 3 118 6
+                ]
+            }
+          [ Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 1 107 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 107 1 107 10
+                    , SrcSpan "tests/examples/Unicode.hs" 107 11 107 17
+                    , SrcSpan "tests/examples/Unicode.hs" 107 22 107 23
+                    , SrcSpan "tests/examples/Unicode.hs" 107 42 107 43
+                    ]
+                }
+              "xs |\8803 n"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 18 107 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 18 107 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 21 107 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 21 107 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 25 107 41
+                   , srcInfoPoints = []
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 25 107 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 107 25 107 26
+                          , SrcSpan "tests/examples/Unicode.hs" 107 35 107 36
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 35
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 26 107 32
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 33 107 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs")))))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 37 107 39
+                            , srcInfoPoints = []
+                            }
+                          "==")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 40 107 41
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 44 107 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 47 107 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8803")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 107 50 107 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 1 108 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 108 1 108 10
+                    , SrcSpan "tests/examples/Unicode.hs" 108 11 108 17
+                    , SrcSpan "tests/examples/Unicode.hs" 108 22 108 23
+                    , SrcSpan "tests/examples/Unicode.hs" 108 42 108 43
+                    ]
+                }
+              "xs |< n"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 18 108 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 18 108 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 21 108 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 21 108 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 25 108 41
+                   , srcInfoPoints = []
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 25 108 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 108 25 108 26
+                          , SrcSpan "tests/examples/Unicode.hs" 108 35 108 36
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 35
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 26 108 32
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 33 108 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs")))))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 37 108 38
+                            , srcInfoPoints = []
+                            }
+                          "<")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 40 108 41
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 44 108 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 47 108 49
+                            , srcInfoPoints = []
+                            }
+                          "|<")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 108 50 108 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 1 109 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 109 1 109 10
+                    , SrcSpan "tests/examples/Unicode.hs" 109 11 109 17
+                    , SrcSpan "tests/examples/Unicode.hs" 109 22 109 23
+                    , SrcSpan "tests/examples/Unicode.hs" 109 42 109 43
+                    ]
+                }
+              "xs |\8804 n"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 18 109 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 18 109 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 21 109 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 21 109 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 25 109 41
+                   , srcInfoPoints = []
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 25 109 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 109 25 109 26
+                          , SrcSpan "tests/examples/Unicode.hs" 109 35 109 36
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 35
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 26 109 32
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 33 109 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs")))))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 37 109 39
+                            , srcInfoPoints = []
+                            }
+                          "<=")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 40 109 41
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 44 109 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 47 109 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8804")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 109 50 109 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 1 110 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 110 1 110 10
+                    , SrcSpan "tests/examples/Unicode.hs" 110 11 110 17
+                    , SrcSpan "tests/examples/Unicode.hs" 110 22 110 23
+                    , SrcSpan "tests/examples/Unicode.hs" 110 42 110 43
+                    ]
+                }
+              "xs |> n"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 18 110 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 18 110 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 21 110 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 21 110 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 25 110 41
+                   , srcInfoPoints = []
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 25 110 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 110 25 110 26
+                          , SrcSpan "tests/examples/Unicode.hs" 110 35 110 36
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 35
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 26 110 32
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 33 110 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs")))))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 37 110 38
+                            , srcInfoPoints = []
+                            }
+                          ">")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 40 110 41
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 44 110 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 47 110 49
+                            , srcInfoPoints = []
+                            }
+                          "|>")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 110 50 110 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 1 111 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 111 1 111 10
+                    , SrcSpan "tests/examples/Unicode.hs" 111 11 111 17
+                    , SrcSpan "tests/examples/Unicode.hs" 111 22 111 23
+                    , SrcSpan "tests/examples/Unicode.hs" 111 42 111 43
+                    ]
+                }
+              "xs |\8805 n"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 18 111 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 18 111 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 21 111 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 21 111 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 25 111 41
+                   , srcInfoPoints = []
+                   }
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 25 111 36
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 111 25 111 26
+                          , SrcSpan "tests/examples/Unicode.hs" 111 35 111 36
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 35
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 26 111 32
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 33 111 35
+                                  , srcInfoPoints = []
+                                  }
+                                "xs")))))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 37 111 39
+                            , srcInfoPoints = []
+                            }
+                          ">=")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 40 111 41
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 44 111 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 47 111 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8805")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 111 50 111 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 1 113 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 113 1 113 10
+                    , SrcSpan "tests/examples/Unicode.hs" 113 11 113 17
+                    , SrcSpan "tests/examples/Unicode.hs" 113 22 113 23
+                    , SrcSpan "tests/examples/Unicode.hs" 113 42 113 43
+                    ]
+                }
+              "n \8803| xs"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 18 113 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 18 113 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 21 113 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 21 113 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 41
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 25 113 26
+                            , srcInfoPoints = []
+                            }
+                          "n")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 27 113 29
+                            , srcInfoPoints = []
+                            }
+                          "==")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 30 113 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 113 30 113 31
+                          , SrcSpan "tests/examples/Unicode.hs" 113 40 113 41
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 31 113 37
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 38 113 40
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 44 113 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 47 113 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8803")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 113 50 113 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 1 114 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 114 1 114 10
+                    , SrcSpan "tests/examples/Unicode.hs" 114 11 114 17
+                    , SrcSpan "tests/examples/Unicode.hs" 114 22 114 23
+                    , SrcSpan "tests/examples/Unicode.hs" 114 42 114 43
+                    ]
+                }
+              "n <| xs"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 18 114 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 18 114 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 21 114 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 21 114 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 41
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 25 114 26
+                            , srcInfoPoints = []
+                            }
+                          "n")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 27 114 28
+                            , srcInfoPoints = []
+                            }
+                          "<")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 30 114 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 114 30 114 31
+                          , SrcSpan "tests/examples/Unicode.hs" 114 40 114 41
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 31 114 37
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 38 114 40
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 44 114 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 47 114 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8805")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 114 50 114 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 1 115 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 115 1 115 10
+                    , SrcSpan "tests/examples/Unicode.hs" 115 11 115 17
+                    , SrcSpan "tests/examples/Unicode.hs" 115 22 115 23
+                    , SrcSpan "tests/examples/Unicode.hs" 115 42 115 43
+                    ]
+                }
+              "n \8804| xs"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 18 115 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 18 115 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 21 115 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 21 115 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 41
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 25 115 26
+                            , srcInfoPoints = []
+                            }
+                          "n")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 27 115 29
+                            , srcInfoPoints = []
+                            }
+                          "<=")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 30 115 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 115 30 115 31
+                          , SrcSpan "tests/examples/Unicode.hs" 115 40 115 41
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 31 115 37
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 38 115 40
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 44 115 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 47 115 49
+                            , srcInfoPoints = []
+                            }
+                          "|>")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 115 50 115 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 1 116 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 116 1 116 10
+                    , SrcSpan "tests/examples/Unicode.hs" 116 11 116 17
+                    , SrcSpan "tests/examples/Unicode.hs" 116 22 116 23
+                    , SrcSpan "tests/examples/Unicode.hs" 116 42 116 43
+                    ]
+                }
+              "n >| xs"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 18 116 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 18 116 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 21 116 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 21 116 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 41
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 25 116 26
+                            , srcInfoPoints = []
+                            }
+                          "n")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 27 116 28
+                            , srcInfoPoints = []
+                            }
+                          ">")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 30 116 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 116 30 116 31
+                          , SrcSpan "tests/examples/Unicode.hs" 116 40 116 41
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 31 116 37
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 38 116 40
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 44 116 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 47 116 49
+                            , srcInfoPoints = []
+                            }
+                          "|\8804")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 116 50 116 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          , Rule
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 1 117 51
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Unicode.hs" 117 1 117 10
+                    , SrcSpan "tests/examples/Unicode.hs" 117 11 117 17
+                    , SrcSpan "tests/examples/Unicode.hs" 117 22 117 23
+                    , SrcSpan "tests/examples/Unicode.hs" 117 42 117 43
+                    ]
+                }
+              "n \8805| xs"
+              Nothing
+              (Just
+                 [ RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 18 117 20
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 18 117 20
+                          , srcInfoPoints = []
+                          }
+                        "xs")
+                 , RuleVar
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 21 117 22
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 21 117 22
+                          , srcInfoPoints = []
+                          }
+                        "n")
+                 ])
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 41
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 25 117 26
+                            , srcInfoPoints = []
+                            }
+                          "n")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 27 117 29
+                            , srcInfoPoints = []
+                            }
+                          ">=")))
+                 (Paren
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 30 117 41
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Unicode.hs" 117 30 117 31
+                          , SrcSpan "tests/examples/Unicode.hs" 117 40 117 41
+                          ]
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 40
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 31 117 37
+                                  , srcInfoPoints = []
+                                  }
+                                "length")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 38 117 40
+                                  , srcInfoPoints = []
+                                  }
+                                "xs"))))))
+              (InfixApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 51
+                   , srcInfoPoints = []
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 44 117 46
+                            , srcInfoPoints = []
+                            }
+                          "xs")))
+                 (QVarOp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49
+                         , srcInfoPoints = []
+                         }
+                       (Symbol
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 47 117 49
+                            , srcInfoPoints = []
+                            }
+                          "|<")))
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 117 50 117 51
+                            , srcInfoPoints = []
+                            }
+                          "n"))))
+          ]
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 56 1 56 28)
+        "    f  = replicate 2000 x"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 58 1 58 20)
+        "    lf = length f"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 59 1 59 20)
+        "    li = length i"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 60 1 60 20)
+        "    pf = lf > 300"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 61 1 61 20)
+        "    pi = li > 300"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Unicode.hs" 98 1 98 7)
+        " \8803\8804\8805"
+    , Comment
+        False (SrcSpan "tests/examples/Unicode.hs" 106 1 106 10) " length"
+    ]
+  )
diff --git a/tests/examples/Unicode.hs.prettyprinter.golden b/tests/examples/Unicode.hs.prettyprinter.golden
--- a/tests/examples/Unicode.hs.prettyprinter.golden
+++ b/tests/examples/Unicode.hs.prettyprinter.golden
@@ -1,7 +1,7 @@
 {-# LANGUAGE UnicodeSyntax #-}
 module Main where
 import System.Environment
- 
+
 main :: IO ()
 main
   = do as <- getArgs
@@ -12,21 +12,21 @@
        print $ testRewriteReverse 0
        print $ testRewrite2 0
        print $ testRewriteReverse2 0
- 
+
 test :: a -> Bool
 test x = pi
   where f = replicate 2000 x
         i = repeat x
         pf = f |> 300
         pi = i |> 300
- 
+
 test2 :: a -> (Bool, Bool)
 test2 x = (pf, pi)
   where f = replicate 2000 x
         i = repeat x
         pf = f |> 300
         pi = i |> 300
- 
+
 testRewrite :: a -> Bool
 testRewrite x = pi
   where f = replicate 2000 x
@@ -35,7 +35,7 @@
         li = length i
         pf = lf > 300
         pi = li > 300
- 
+
 testRewriteReverse :: a -> Bool
 testRewriteReverse x = pi
   where f = replicate 2000 x
@@ -44,11 +44,11 @@
         li = length i
         pf = 300 d lf
         pi = 300 d li
- 
+
 testRewrite2 :: a -> (Bool, Bool)
 testRewrite2 x = (length i > 300, 300 > length i)
   where i = repeat x
- 
+
 testRewriteReverse2 :: a -> (Bool, Bool)
 testRewriteReverse2 x = (2000 < length i, length i > 20)
   where f = replicate 2000 x
@@ -57,7 +57,7 @@
         li = length i
         pf = 2000 == lf
         pi = lf e li
- 
+
 lengthOP ::
            (Num a, Ord a) => Bool -> (a -> a -> Bool) -> [b] -> a -> Bool
 lengthOP v () [] n = 0  n
@@ -83,7 +83,7 @@
 (d|) = flip (|>)
 (>|) = flip (|d)
 (e|) = flip (|<)
- 
+
 {-# RULES
 "xs |\8803 n" forall xs n . (length xs) == n = xs |c n
 "xs |< n" forall xs n . (length xs) < n = xs |< n
diff --git a/tests/examples/Unicode2.hs.parser.golden b/tests/examples/Unicode2.hs.parser.golden
--- a/tests/examples/Unicode2.hs.parser.golden
+++ b/tests/examples/Unicode2.hs.parser.golden
@@ -1,1 +1,134 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/Unicode2.hs" 1 1 1 1,SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1,SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1,SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1,SrcSpan "tests/examples/Unicode2.hs" 4 1 4 1,SrcSpan "tests/examples/Unicode2.hs" 4 1 4 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 1 1 31, srcInfoPoints = [SrcSpan "tests/examples/Unicode2.hs" 1 1 1 13,SrcSpan "tests/examples/Unicode2.hs" 1 28 1 31]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 14 1 27, srcInfoPoints = []}) "UnicodeSyntax"]] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 23, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 9, srcInfoPoints = []}) "lengthOP") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 10 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 10 3 11, srcInfoPoints = []}) "n"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 12 3 15, srcInfoPoints = [SrcSpan "tests/examples/Unicode2.hs" 3 12 3 13,SrcSpan "tests/examples/Unicode2.hs" 3 13 3 14,SrcSpan "tests/examples/Unicode2.hs" 3 14 3 15]}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 13 3 14, srcInfoPoints = []}) "\8860")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 16 3 23, srcInfoPoints = [SrcSpan "tests/examples/Unicode2.hs" 3 16 3 17]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 23, srcInfoPoints = []}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 19, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 19, srcInfoPoints = []}) 0 "0")) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21, srcInfoPoints = []}) "\8860"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23, srcInfoPoints = []}) "n"))))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Unicode2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unicode2.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unicode2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Unicode2.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unicode2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Unicode2.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 23
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 23
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 1 3 9
+                   , srcInfoPoints = []
+                   }
+                 "lengthOP")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 10 3 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 10 3 11
+                       , srcInfoPoints = []
+                       }
+                     "n")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 12 3 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Unicode2.hs" 3 12 3 13
+                        , SrcSpan "tests/examples/Unicode2.hs" 3 13 3 14
+                        , SrcSpan "tests/examples/Unicode2.hs" 3 14 3 15
+                        ]
+                    }
+                  (Symbol
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 13 3 14
+                       , srcInfoPoints = []
+                       }
+                     "\8860")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 16 3 23
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Unicode2.hs" 3 16 3 17 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 23
+                      , srcInfoPoints = []
+                      }
+                    (Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 19
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 18 3 19
+                            , srcInfoPoints = []
+                            }
+                          0
+                          "0"))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 20 3 21
+                               , srcInfoPoints = []
+                               }
+                             "\8860")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode2.hs" 3 22 3 23
+                               , srcInfoPoints = []
+                               }
+                             "n")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/Unicode2.hs.prettyprinter.golden b/tests/examples/Unicode2.hs.prettyprinter.golden
--- a/tests/examples/Unicode2.hs.prettyprinter.golden
+++ b/tests/examples/Unicode2.hs.prettyprinter.golden
@@ -1,3 +1,2 @@
 {-# LANGUAGE UnicodeSyntax #-}
-module Main (main) where
 lengthOP n () = 0  n
diff --git a/tests/examples/UnicodeArrow.hs b/tests/examples/UnicodeArrow.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeArrow.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+arrowTest ∷ String →   String
+arrowTest input =
+    case input of
+      "hello" → "world"
+      "world" → "hello"
+      otherwise → "unknow"
diff --git a/tests/examples/UnicodeArrow.hs.exactprinter.golden b/tests/examples/UnicodeArrow.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeArrow.hs.exactprinter.golden
@@ -0,0 +1,9 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+arrowTest ::String ->  String
+arrowTest input =
+    case input of
+      "hello" ->"world"
+      "world" ->"hello"
+      otherwise ->"unknow"
+
diff --git a/tests/examples/UnicodeArrow.hs.parser.golden b/tests/examples/UnicodeArrow.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeArrow.hs.parser.golden
@@ -0,0 +1,271 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeArrow.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 9 1 9 1
+            , SrcSpan "tests/examples/UnicodeArrow.hs" 9 1 9 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeArrow.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnicodeArrow.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 1 3 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeArrow.hs" 3 11 3 12 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 1 3 10
+                , srcInfoPoints = []
+                }
+              "arrowTest"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 13 3 30
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeArrow.hs" 3 20 3 21 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 13 3 19
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 13 3 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 13 3 19
+                        , srcInfoPoints = []
+                        }
+                      "String")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 24 3 30
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 24 3 30
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 3 24 3 30
+                        , srcInfoPoints = []
+                        }
+                      "String"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 1 8 27
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 1 8 27
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 1 4 10
+                   , srcInfoPoints = []
+                   }
+                 "arrowTest")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 11 4 16
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 11 4 16
+                       , srcInfoPoints = []
+                       }
+                     "input")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 4 17 8 27
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeArrow.hs" 4 17 4 18 ]
+                   }
+                 (Case
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 5 5 8 27
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeArrow.hs" 5 5 5 9
+                          , SrcSpan "tests/examples/UnicodeArrow.hs" 5 16 5 18
+                          , SrcSpan "tests/examples/UnicodeArrow.hs" 6 7 6 7
+                          , SrcSpan "tests/examples/UnicodeArrow.hs" 7 7 7 7
+                          , SrcSpan "tests/examples/UnicodeArrow.hs" 8 7 8 7
+                          , SrcSpan "tests/examples/UnicodeArrow.hs" 9 1 9 0
+                          ]
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 5 10 5 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 5 10 5 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 5 10 5 15
+                               , srcInfoPoints = []
+                               }
+                             "input")))
+                    [ Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 7 6 24
+                          , srcInfoPoints = []
+                          }
+                        (PLit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 7 6 14
+                             , srcInfoPoints = []
+                             }
+                           (Signless
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 7 6 14
+                                , srcInfoPoints = []
+                                })
+                           (String
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 7 6 14
+                                , srcInfoPoints = []
+                                }
+                              "hello"
+                              "hello"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 15 6 24
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/UnicodeArrow.hs" 6 15 6 16 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 6 17 6 24
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeArrow.hs" 6 17 6 24
+                                   , srcInfoPoints = []
+                                   }
+                                 "world"
+                                 "world")))
+                        Nothing
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 7 7 24
+                          , srcInfoPoints = []
+                          }
+                        (PLit
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 7 7 14
+                             , srcInfoPoints = []
+                             }
+                           (Signless
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 7 7 14
+                                , srcInfoPoints = []
+                                })
+                           (String
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 7 7 14
+                                , srcInfoPoints = []
+                                }
+                              "world"
+                              "world"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 15 7 24
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/UnicodeArrow.hs" 7 15 7 16 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 7 17 7 24
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeArrow.hs" 7 17 7 24
+                                   , srcInfoPoints = []
+                                   }
+                                 "hello"
+                                 "hello")))
+                        Nothing
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 8 7 8 27
+                          , srcInfoPoints = []
+                          }
+                        (PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 8 7 8 16
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 8 7 8 16
+                                , srcInfoPoints = []
+                                }
+                              "otherwise"))
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 8 17 8 27
+                             , srcInfoPoints =
+                                 [ SrcSpan "tests/examples/UnicodeArrow.hs" 8 17 8 18 ]
+                             }
+                           (Lit
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/UnicodeArrow.hs" 8 19 8 27
+                                , srcInfoPoints = []
+                                }
+                              (String
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeArrow.hs" 8 19 8 27
+                                   , srcInfoPoints = []
+                                   }
+                                 "unknow"
+                                 "unknow")))
+                        Nothing
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeArrow.hs.prettyparser.golden b/tests/examples/UnicodeArrow.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeArrow.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeArrow.hs.prettyprinter.golden b/tests/examples/UnicodeArrow.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeArrow.hs.prettyprinter.golden
@@ -0,0 +1,8 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+arrowTest :: String -> String
+arrowTest input
+  = case input of
+        "hello" -> "world"
+        "world" -> "hello"
+        otherwise -> "unknow"
diff --git a/tests/examples/UnicodeIdents.hs b/tests/examples/UnicodeIdents.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeIdents.hs
@@ -0,0 +1,2 @@
+猫 = ()
+自乗 x = x * x
diff --git a/tests/examples/UnicodeIdents.hs.exactprinter.golden b/tests/examples/UnicodeIdents.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeIdents.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeIdents.hs.parser.golden b/tests/examples/UnicodeIdents.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeIdents.hs.parser.golden
@@ -0,0 +1,155 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 3 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeIdents.hs" 2 1 2 1
+            , SrcSpan "tests/examples/UnicodeIdents.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeIdents.hs" 3 1 3 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 7
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 1 1 2
+                  , srcInfoPoints = []
+                  }
+                "\29483"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 3 1 7
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeIdents.hs" 1 3 1 4 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 7
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 6
+                      , SrcSpan "tests/examples/UnicodeIdents.hs" 1 6 1 7
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 7
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 6
+                         , SrcSpan "tests/examples/UnicodeIdents.hs" 1 6 1 7
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 7
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/UnicodeIdents.hs" 1 5 1 6
+                            , SrcSpan "tests/examples/UnicodeIdents.hs" 1 6 1 7
+                            ]
+                        }))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 1 2 13
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 1 2 13
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 1 2 3
+                   , srcInfoPoints = []
+                   }
+                 "\33258\20055")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 4 2 5
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 4 2 5
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 6 2 13
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeIdents.hs" 2 6 2 7 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 8 2 13
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 8 2 9
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 8 2 9
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 8 2 9
+                               , srcInfoPoints = []
+                               }
+                             "x")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 10 2 11
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 10 2 11
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 10 2 11
+                               , srcInfoPoints = []
+                               }
+                             "*")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 12 2 13
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 12 2 13
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeIdents.hs" 2 12 2 13
+                               , srcInfoPoints = []
+                               }
+                             "x")))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeIdents.hs.prettyparser.golden b/tests/examples/UnicodeIdents.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeIdents.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeIdents.hs.prettyprinter.golden b/tests/examples/UnicodeIdents.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeIdents.hs.prettyprinter.golden
@@ -0,0 +1,2 @@
++ = ()
+êW x = x * x
diff --git a/tests/examples/UnicodeRelation.hs b/tests/examples/UnicodeRelation.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeRelation.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+import Prelude.Unicode
+
+testAnd ∷ Int → Int → Bool
+testAnd a b =
+    let b₁ = a ≤ 3
+        b₂ = b ≥ 5
+    in b₁ ∧ b₂
+
+testOr ∷ Int → Int → Int → Int → Int → Bool
+testOr a b c d e =
+    let b₁ = a ≤ 3
+        b₂ = b ≢ 5
+        b₃ = c ≮ 5
+        b₄ = d ≯ 6
+        b₅ = e ∈ [1,2,3,4]
+        b₆ = e ∉ [5,6,7,8]
+    in b₁ ∨ b₂ ∨ b₃ ∨ b₄ ∨ b₅ ∨ b₆
diff --git a/tests/examples/UnicodeRelation.hs.exactprinter.golden b/tests/examples/UnicodeRelation.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeRelation.hs.exactprinter.golden
@@ -0,0 +1,20 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+import Prelude.Unicode
+
+testAnd ::Int ->Int ->Bool
+testAnd a b =
+    let b = a d 3
+        b = b e 5
+    in b ' b
+
+testOr ::Int ->Int ->Int ->Int ->Int ->Bool
+testOr a b c d e =
+    let b = a d 3
+        b = b b 5
+        b = c n 5
+        b = d o 6
+        b = e  [1,2,3,4]
+        b = e 	 [5,6,7,8]
+    in b ( b ( b ( b ( b ( b
+
diff --git a/tests/examples/UnicodeRelation.hs.parser.golden b/tests/examples/UnicodeRelation.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeRelation.hs.parser.golden
@@ -0,0 +1,1637 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/UnicodeRelation.hs" 1 1 20 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeRelation.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 5 1 5 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 6 1 6 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 11 1 11 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 12 1 12 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 20 1 20 1
+            , SrcSpan "tests/examples/UnicodeRelation.hs" 20 1 20 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeRelation.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeRelation.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnicodeRelation.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeRelation.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeRelation.hs" 3 1 3 23
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 3 1 3 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeRelation.hs" 3 8 3 23
+                  , srcInfoPoints = []
+                  }
+                "Prelude.Unicode"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeRelation.hs" 5 1 5 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeRelation.hs" 5 9 5 10 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeRelation.hs" 5 1 5 8
+                , srcInfoPoints = []
+                }
+              "testAnd"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeRelation.hs" 5 11 5 27
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeRelation.hs" 5 15 5 16 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeRelation.hs" 5 11 5 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 5 11 5 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 5 11 5 14
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeRelation.hs" 5 17 5 27
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeRelation.hs" 5 21 5 22 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 5 17 5 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 5 17 5 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 5 17 5 20
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 5 23 5 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 5 23 5 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 5 23 5 27
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeRelation.hs" 6 1 9 15
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeRelation.hs" 6 1 9 15
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeRelation.hs" 6 1 6 8
+                   , srcInfoPoints = []
+                   }
+                 "testAnd")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 6 9 6 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 6 9 6 10
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 6 11 6 12
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 6 11 6 12
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeRelation.hs" 6 13 9 15
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeRelation.hs" 6 13 6 14 ]
+                   }
+                 (Let
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeRelation.hs" 7 5 9 15
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeRelation.hs" 7 5 7 8
+                          , SrcSpan "tests/examples/UnicodeRelation.hs" 9 5 9 7
+                          ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeRelation.hs" 7 9 8 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/UnicodeRelation.hs" 7 9 7 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 8 9 8 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 9 5 9 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 7 9 7 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 7 9 7 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 7 9 7 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8321"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 7 12 7 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 7 12 7 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 7 14 7 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 7 14 7 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 7 14 7 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 7 14 7 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "a")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 7 16 7 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 7 16 7 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 7 16 7 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8804")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 7 18 7 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 7 18 7 19
+                                         , srcInfoPoints = []
+                                         }
+                                       3
+                                       "3"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 8 9 8 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 8 9 8 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 8 9 8 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8322"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 8 12 8 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 8 12 8 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 8 14 8 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 8 14 8 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 8 14 8 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 8 14 8 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 8 16 8 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 8 16 8 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 8 16 8 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8805")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 8 18 8 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 8 18 8 19
+                                         , srcInfoPoints = []
+                                         }
+                                       5
+                                       "5"))))
+                           Nothing
+                       ])
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeRelation.hs" 9 8 9 15
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 9 8 9 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 9 8 9 10
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 9 8 9 10
+                                  , srcInfoPoints = []
+                                  }
+                                "b\8321")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 9 11 9 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 9 11 9 12
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 9 11 9 12
+                                  , srcInfoPoints = []
+                                  }
+                                "\8743")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 9 13 9 15
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 9 13 9 15
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 9 13 9 15
+                                  , srcInfoPoints = []
+                                  }
+                                "b\8322"))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeRelation.hs" 11 1 11 44
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 8 11 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeRelation.hs" 11 1 11 7
+                , srcInfoPoints = []
+                }
+              "testOr"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeRelation.hs" 11 10 11 44
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 14 11 15 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeRelation.hs" 11 10 11 13
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 11 10 11 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 11 10 11 13
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeRelation.hs" 11 16 11 44
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 20 11 21 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 11 16 11 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 11 16 11 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 11 16 11 19
+                           , srcInfoPoints = []
+                           }
+                         "Int")))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeRelation.hs" 11 22 11 44
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 26 11 27 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 11 22 11 25
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 11 22 11 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/UnicodeRelation.hs" 11 22 11 25
+                              , srcInfoPoints = []
+                              }
+                            "Int")))
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeRelation.hs" 11 28 11 44
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 32 11 33 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 11 28 11 31
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/UnicodeRelation.hs" 11 28 11 31
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/UnicodeRelation.hs" 11 28 11 31
+                                 , srcInfoPoints = []
+                                 }
+                               "Int")))
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeRelation.hs" 11 34 11 44
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/UnicodeRelation.hs" 11 38 11 39 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/UnicodeRelation.hs" 11 34 11 37
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/UnicodeRelation.hs" 11 34 11 37
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/UnicodeRelation.hs" 11 34 11 37
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan =
+                                  SrcSpan "tests/examples/UnicodeRelation.hs" 11 40 11 44
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan =
+                                     SrcSpan "tests/examples/UnicodeRelation.hs" 11 40 11 44
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan =
+                                        SrcSpan "tests/examples/UnicodeRelation.hs" 11 40 11 44
+                                    , srcInfoPoints = []
+                                    }
+                                  "Bool"))))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeRelation.hs" 12 1 19 35
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeRelation.hs" 12 1 19 35
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeRelation.hs" 12 1 12 7
+                   , srcInfoPoints = []
+                   }
+                 "testOr")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 12 8 12 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 12 8 12 9
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 12 10 12 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 12 10 12 11
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 12 12 12 13
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 12 12 12 13
+                       , srcInfoPoints = []
+                       }
+                     "c")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 12 14 12 15
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 12 14 12 15
+                       , srcInfoPoints = []
+                       }
+                     "d")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeRelation.hs" 12 16 12 17
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeRelation.hs" 12 16 12 17
+                       , srcInfoPoints = []
+                       }
+                     "e")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeRelation.hs" 12 18 19 35
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeRelation.hs" 12 18 12 19 ]
+                   }
+                 (Let
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeRelation.hs" 13 5 19 35
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeRelation.hs" 13 5 13 8
+                          , SrcSpan "tests/examples/UnicodeRelation.hs" 19 5 19 7
+                          ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeRelation.hs" 13 9 18 27
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/UnicodeRelation.hs" 13 9 13 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 14 9 14 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 15 9 15 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 16 9 16 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 17 9 17 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 18 9 18 9
+                             , SrcSpan "tests/examples/UnicodeRelation.hs" 19 5 19 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 13 9 13 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 13 9 13 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 13 9 13 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8321"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 13 12 13 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 13 12 13 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 13 14 13 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 13 14 13 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 13 14 13 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 13 14 13 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "a")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 13 16 13 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 13 16 13 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 13 16 13 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8804")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 13 18 13 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 13 18 13 19
+                                         , srcInfoPoints = []
+                                         }
+                                       3
+                                       "3"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 14 9 14 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 14 9 14 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 14 9 14 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8322"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 14 12 14 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 14 12 14 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 14 14 14 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 14 14 14 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 14 14 14 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 14 14 14 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 14 16 14 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 14 16 14 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 14 16 14 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8802")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 14 18 14 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 14 18 14 19
+                                         , srcInfoPoints = []
+                                         }
+                                       5
+                                       "5"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 15 9 15 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 15 9 15 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 15 9 15 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8323"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 15 12 15 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 15 12 15 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 15 14 15 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 15 14 15 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 15 14 15 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 15 14 15 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "c")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 15 16 15 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 15 16 15 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 15 16 15 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8814")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 15 18 15 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 15 18 15 19
+                                         , srcInfoPoints = []
+                                         }
+                                       5
+                                       "5"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 16 9 16 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 16 9 16 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 16 9 16 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8324"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 16 12 16 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 16 12 16 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 16 14 16 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 16 14 16 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 16 14 16 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 16 14 16 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "d")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 16 16 16 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 16 16 16 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 16 16 16 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8815")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 16 18 16 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 16 18 16 19
+                                         , srcInfoPoints = []
+                                         }
+                                       6
+                                       "6"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 17 9 17 27
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 17 9 17 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 17 9 17 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8325"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 17 12 17 27
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 17 12 17 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 17 14 17 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 17 14 17 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 17 14 17 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 17 14 17 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "e")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 17 16 17 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 17 16 17 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 17 16 17 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8712")))
+                                 (List
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 17 18 17 27
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/UnicodeRelation.hs" 17 18 17 19
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 17 20 17 21
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 17 22 17 23
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 17 24 17 25
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 17 26 17 27
+                                          ]
+                                      }
+                                    [ Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 17 19 17 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 17 19 17 20
+                                             , srcInfoPoints = []
+                                             }
+                                           1
+                                           "1")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 17 21 17 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 17 21 17 22
+                                             , srcInfoPoints = []
+                                             }
+                                           2
+                                           "2")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 17 23 17 24
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 17 23 17 24
+                                             , srcInfoPoints = []
+                                             }
+                                           3
+                                           "3")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 17 25 17 26
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 17 25 17 26
+                                             , srcInfoPoints = []
+                                             }
+                                           4
+                                           "4")
+                                    ])))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeRelation.hs" 18 9 18 27
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 18 9 18 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 18 9 18 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\8326"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeRelation.hs" 18 12 18 27
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeRelation.hs" 18 12 18 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeRelation.hs" 18 14 18 27
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 18 14 18 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 18 14 18 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 18 14 18 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "e")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 18 16 18 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/UnicodeRelation.hs" 18 16 18 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeRelation.hs" 18 16 18 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\8713")))
+                                 (List
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeRelation.hs" 18 18 18 27
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/UnicodeRelation.hs" 18 18 18 19
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 18 20 18 21
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 18 22 18 23
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 18 24 18 25
+                                          , SrcSpan "tests/examples/UnicodeRelation.hs" 18 26 18 27
+                                          ]
+                                      }
+                                    [ Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 18 19 18 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 18 19 18 20
+                                             , srcInfoPoints = []
+                                             }
+                                           5
+                                           "5")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 18 21 18 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 18 21 18 22
+                                             , srcInfoPoints = []
+                                             }
+                                           6
+                                           "6")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 18 23 18 24
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 18 23 18 24
+                                             , srcInfoPoints = []
+                                             }
+                                           7
+                                           "7")
+                                    , Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan
+                                                "tests/examples/UnicodeRelation.hs" 18 25 18 26
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan
+                                                   "tests/examples/UnicodeRelation.hs" 18 25 18 26
+                                             , srcInfoPoints = []
+                                             }
+                                           8
+                                           "8")
+                                    ])))
+                           Nothing
+                       ])
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 35
+                         , srcInfoPoints = []
+                         }
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 30
+                            , srcInfoPoints = []
+                            }
+                          (InfixApp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 25
+                               , srcInfoPoints = []
+                               }
+                             (InfixApp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 20
+                                  , srcInfoPoints = []
+                                  }
+                                (InfixApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 15
+                                     , srcInfoPoints = []
+                                     }
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 8 19 10
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/UnicodeRelation.hs" 19 8 19 10
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/UnicodeRelation.hs" 19 8 19 10
+                                              , srcInfoPoints = []
+                                              }
+                                            "b\8321")))
+                                   (QVarOp
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 11 19 12
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/UnicodeRelation.hs" 19 11 19 12
+                                           , srcInfoPoints = []
+                                           }
+                                         (Symbol
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/UnicodeRelation.hs" 19 11 19 12
+                                              , srcInfoPoints = []
+                                              }
+                                            "\8744")))
+                                   (Var
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 13 19 15
+                                        , srcInfoPoints = []
+                                        }
+                                      (UnQual
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/UnicodeRelation.hs" 19 13 19 15
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan
+                                                    "tests/examples/UnicodeRelation.hs" 19 13 19 15
+                                              , srcInfoPoints = []
+                                              }
+                                            "b\8322"))))
+                                (QVarOp
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 16 19 17
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 16 19 17
+                                        , srcInfoPoints = []
+                                        }
+                                      (Symbol
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/UnicodeRelation.hs" 19 16 19 17
+                                           , srcInfoPoints = []
+                                           }
+                                         "\8744")))
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 18 19 20
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 18 19 20
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan
+                                                 "tests/examples/UnicodeRelation.hs" 19 18 19 20
+                                           , srcInfoPoints = []
+                                           }
+                                         "b\8323"))))
+                             (QVarOp
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 21 19 22
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 21 19 22
+                                     , srcInfoPoints = []
+                                     }
+                                   (Symbol
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 21 19 22
+                                        , srcInfoPoints = []
+                                        }
+                                      "\8744")))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 23 19 25
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 23 19 25
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan =
+                                            SrcSpan "tests/examples/UnicodeRelation.hs" 19 23 19 25
+                                        , srcInfoPoints = []
+                                        }
+                                      "b\8324"))))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 19 26 19 27
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 26 19 27
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 26 19 27
+                                     , srcInfoPoints = []
+                                     }
+                                   "\8744")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 19 28 19 30
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 28 19 30
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeRelation.hs" 19 28 19 30
+                                     , srcInfoPoints = []
+                                     }
+                                   "b\8325"))))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 19 31 19 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 19 31 19 32
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 31 19 32
+                                  , srcInfoPoints = []
+                                  }
+                                "\8744")))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeRelation.hs" 19 33 19 35
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeRelation.hs" 19 33 19 35
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeRelation.hs" 19 33 19 35
+                                  , srcInfoPoints = []
+                                  }
+                                "b\8326"))))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeRelation.hs.prettyparser.golden b/tests/examples/UnicodeRelation.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeRelation.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeRelation.hs.prettyprinter.golden b/tests/examples/UnicodeRelation.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeRelation.hs.prettyprinter.golden
@@ -0,0 +1,18 @@
+{-# LANGUAGE UnicodeSyntax #-}
+import Prelude.Unicode
+
+testAnd :: Int -> Int -> Bool
+testAnd a b
+  = let b = a d 3
+        b = b e 5
+      in b ' b
+
+testOr :: Int -> Int -> Int -> Int -> Int -> Bool
+testOr a b c d e
+  = let b = a d 3
+        b = b b 5
+        b = c n 5
+        b = d o 6
+        b = e  [1, 2, 3, 4]
+        b = e 	 [5, 6, 7, 8]
+      in b ( b ( b ( b ( b ( b
diff --git a/tests/examples/UnicodeSubscript.hs b/tests/examples/UnicodeSubscript.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSubscript.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE UnicodeSyntax #-}
+module Main where
+
+data Point = Point
+    { pointX, pointY ∷ Double
+    , name           ∷ String
+    } deriving (Show)
+
+distance ∷ Point → Point → Double
+distance x y =
+    let t₁ = (pointX x - pointX y)^2
+        t₂ = (pointY x - pointY y)^2
+    in sqrt $ t₁ + t₂
diff --git a/tests/examples/UnicodeSubscript.hs.exactprinter.golden b/tests/examples/UnicodeSubscript.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSubscript.hs.exactprinter.golden
@@ -0,0 +1,14 @@
+{-# LANGUAGE UnicodeSyntax #-}
+module Main where
+
+data Point = Point
+    { pointX, pointY ::Double
+    , name           ::String
+    } deriving (Show)
+
+distance ::Point ->Point ->Double
+distance x y =
+    let t = (pointX x - pointX y)^2
+        t = (pointY x - pointY y)^2
+    in sqrt $ t + t
+
diff --git a/tests/examples/UnicodeSubscript.hs.parser.golden b/tests/examples/UnicodeSubscript.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSubscript.hs.parser.golden
@@ -0,0 +1,1036 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/UnicodeSubscript.hs" 1 1 14 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeSubscript.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 2 1 2 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 2 1 2 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 9 1 9 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 10 1 10 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 14 1 14 1
+            , SrcSpan "tests/examples/UnicodeSubscript.hs" 14 1 14 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan =
+                  SrcSpan "tests/examples/UnicodeSubscript.hs" 2 1 2 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/UnicodeSubscript.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/UnicodeSubscript.hs" 2 13 2 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan =
+                     SrcSpan "tests/examples/UnicodeSubscript.hs" 2 8 2 12
+                 , srcInfoPoints = []
+                 }
+               "Main")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSubscript.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSubscript.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnicodeSubscript.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSubscript.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      []
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSubscript.hs" 4 1 7 22
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSubscript.hs" 4 12 4 13 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSubscript.hs" 4 1 4 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSubscript.hs" 4 6 4 11
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSubscript.hs" 4 6 4 11
+                  , srcInfoPoints = []
+                  }
+                "Point"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSubscript.hs" 4 14 7 6
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/UnicodeSubscript.hs" 5 5 5 6
+                    , SrcSpan "tests/examples/UnicodeSubscript.hs" 6 5 6 6
+                    , SrcSpan "tests/examples/UnicodeSubscript.hs" 7 5 7 6
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSubscript.hs" 4 14 7 6
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeSubscript.hs" 5 5 5 6
+                       , SrcSpan "tests/examples/UnicodeSubscript.hs" 6 5 6 6
+                       , SrcSpan "tests/examples/UnicodeSubscript.hs" 7 5 7 6
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSubscript.hs" 4 14 4 19
+                      , srcInfoPoints = []
+                      }
+                    "Point")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSubscript.hs" 5 7 5 30
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/UnicodeSubscript.hs" 5 13 5 14
+                           , SrcSpan "tests/examples/UnicodeSubscript.hs" 5 22 5 23
+                           ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSubscript.hs" 5 7 5 13
+                           , srcInfoPoints = []
+                           }
+                         "pointX"
+                     , Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSubscript.hs" 5 15 5 21
+                           , srcInfoPoints = []
+                           }
+                         "pointY"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/UnicodeSubscript.hs" 5 24 5 30
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSubscript.hs" 5 24 5 30
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 5 24 5 30
+                                , srcInfoPoints = []
+                                }
+                              "Double")))
+                 , FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSubscript.hs" 6 7 6 30
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/UnicodeSubscript.hs" 6 22 6 23 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSubscript.hs" 6 7 6 11
+                           , srcInfoPoints = []
+                           }
+                         "name"
+                     ]
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/UnicodeSubscript.hs" 6 24 6 30
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSubscript.hs" 6 24 6 30
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 6 24 6 30
+                                , srcInfoPoints = []
+                                }
+                              "String")))
+                 ])
+          ]
+          [ Deriving
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSubscript.hs" 7 7 7 22
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/UnicodeSubscript.hs" 7 7 7 15 ]
+                }
+              Nothing
+              [ IParen
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeSubscript.hs" 7 16 7 22
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/UnicodeSubscript.hs" 7 16 7 17
+                        , SrcSpan "tests/examples/UnicodeSubscript.hs" 7 21 7 22
+                        ]
+                    }
+                  (IRule
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSubscript.hs" 7 17 7 21
+                       , srcInfoPoints = []
+                       }
+                     Nothing
+                     Nothing
+                     (IHCon
+                        SrcSpanInfo
+                          { srcInfoSpan =
+                              SrcSpan "tests/examples/UnicodeSubscript.hs" 7 17 7 21
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSubscript.hs" 7 17 7 21
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 7 17 7 21
+                                , srcInfoPoints = []
+                                }
+                              "Show"))))
+              ]
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSubscript.hs" 9 1 9 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSubscript.hs" 9 10 9 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSubscript.hs" 9 1 9 9
+                , srcInfoPoints = []
+                }
+              "distance"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSubscript.hs" 9 12 9 34
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeSubscript.hs" 9 18 9 19 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSubscript.hs" 9 12 9 17
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSubscript.hs" 9 12 9 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSubscript.hs" 9 12 9 17
+                        , srcInfoPoints = []
+                        }
+                      "Point")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSubscript.hs" 9 20 9 34
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeSubscript.hs" 9 26 9 27 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSubscript.hs" 9 20 9 25
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSubscript.hs" 9 20 9 25
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSubscript.hs" 9 20 9 25
+                           , srcInfoPoints = []
+                           }
+                         "Point")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSubscript.hs" 9 28 9 34
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSubscript.hs" 9 28 9 34
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSubscript.hs" 9 28 9 34
+                           , srcInfoPoints = []
+                           }
+                         "Double")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSubscript.hs" 10 1 13 22
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSubscript.hs" 10 1 13 22
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSubscript.hs" 10 1 10 9
+                   , srcInfoPoints = []
+                   }
+                 "distance")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeSubscript.hs" 10 10 10 11
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSubscript.hs" 10 10 10 11
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeSubscript.hs" 10 12 10 13
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSubscript.hs" 10 12 10 13
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSubscript.hs" 10 14 13 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeSubscript.hs" 10 14 10 15 ]
+                   }
+                 (Let
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSubscript.hs" 11 5 13 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeSubscript.hs" 11 5 11 8
+                          , SrcSpan "tests/examples/UnicodeSubscript.hs" 13 5 13 7
+                          ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSubscript.hs" 11 9 12 37
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/UnicodeSubscript.hs" 11 9 11 9
+                             , SrcSpan "tests/examples/UnicodeSubscript.hs" 12 9 12 9
+                             , SrcSpan "tests/examples/UnicodeSubscript.hs" 13 5 13 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSubscript.hs" 11 9 11 37
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 11 9 11 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSubscript.hs" 11 9 11 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "t\8321"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 11 12 11 37
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeSubscript.hs" 11 12 11 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSubscript.hs" 11 14 11 37
+                                   , srcInfoPoints = []
+                                   }
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 11 14 11 35
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/UnicodeSubscript.hs" 11 14 11 15
+                                          , SrcSpan "tests/examples/UnicodeSubscript.hs" 11 34 11 35
+                                          ]
+                                      }
+                                    (InfixApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 11 15 11 34
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 11 15 11 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     11
+                                                     15
+                                                     11
+                                                     21
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        11
+                                                        15
+                                                        11
+                                                        21
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           11
+                                                           15
+                                                           11
+                                                           21
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "pointX")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     11
+                                                     22
+                                                     11
+                                                     23
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        11
+                                                        22
+                                                        11
+                                                        23
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           11
+                                                           22
+                                                           11
+                                                           23
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "x"))))
+                                       (QVarOp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 11 24 11 25
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     11
+                                                     24
+                                                     11
+                                                     25
+                                               , srcInfoPoints = []
+                                               }
+                                             (Symbol
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        11
+                                                        24
+                                                        11
+                                                        25
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "-")))
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 11 26 11 34
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     11
+                                                     26
+                                                     11
+                                                     32
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        11
+                                                        26
+                                                        11
+                                                        32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           11
+                                                           26
+                                                           11
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "pointX")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     11
+                                                     33
+                                                     11
+                                                     34
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        11
+                                                        33
+                                                        11
+                                                        34
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           11
+                                                           33
+                                                           11
+                                                           34
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "y"))))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 11 35 11 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 11 35 11 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 11 35 11 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "^")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 11 36 11 37
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 11 36 11 37
+                                         , srcInfoPoints = []
+                                         }
+                                       2
+                                       "2"))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSubscript.hs" 12 9 12 37
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 12 9 12 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSubscript.hs" 12 9 12 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "t\8322"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSubscript.hs" 12 12 12 37
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeSubscript.hs" 12 12 12 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSubscript.hs" 12 14 12 37
+                                   , srcInfoPoints = []
+                                   }
+                                 (Paren
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 12 14 12 35
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/UnicodeSubscript.hs" 12 14 12 15
+                                          , SrcSpan "tests/examples/UnicodeSubscript.hs" 12 34 12 35
+                                          ]
+                                      }
+                                    (InfixApp
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 12 15 12 34
+                                         , srcInfoPoints = []
+                                         }
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 12 15 12 23
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     12
+                                                     15
+                                                     12
+                                                     21
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        12
+                                                        15
+                                                        12
+                                                        21
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           12
+                                                           15
+                                                           12
+                                                           21
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "pointY")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     12
+                                                     22
+                                                     12
+                                                     23
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        12
+                                                        22
+                                                        12
+                                                        23
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           12
+                                                           22
+                                                           12
+                                                           23
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "x"))))
+                                       (QVarOp
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 12 24 12 25
+                                            , srcInfoPoints = []
+                                            }
+                                          (UnQual
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     12
+                                                     24
+                                                     12
+                                                     25
+                                               , srcInfoPoints = []
+                                               }
+                                             (Symbol
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        12
+                                                        24
+                                                        12
+                                                        25
+                                                  , srcInfoPoints = []
+                                                  }
+                                                "-")))
+                                       (App
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 12 26 12 34
+                                            , srcInfoPoints = []
+                                            }
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     12
+                                                     26
+                                                     12
+                                                     32
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        12
+                                                        26
+                                                        12
+                                                        32
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           12
+                                                           26
+                                                           12
+                                                           32
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "pointY")))
+                                          (Var
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan
+                                                     "tests/examples/UnicodeSubscript.hs"
+                                                     12
+                                                     33
+                                                     12
+                                                     34
+                                               , srcInfoPoints = []
+                                               }
+                                             (UnQual
+                                                SrcSpanInfo
+                                                  { srcInfoSpan =
+                                                      SrcSpan
+                                                        "tests/examples/UnicodeSubscript.hs"
+                                                        12
+                                                        33
+                                                        12
+                                                        34
+                                                  , srcInfoPoints = []
+                                                  }
+                                                (Ident
+                                                   SrcSpanInfo
+                                                     { srcInfoSpan =
+                                                         SrcSpan
+                                                           "tests/examples/UnicodeSubscript.hs"
+                                                           12
+                                                           33
+                                                           12
+                                                           34
+                                                     , srcInfoPoints = []
+                                                     }
+                                                   "y"))))))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 12 35 12 36
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 12 35 12 36
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSubscript.hs" 12 35 12 36
+                                            , srcInfoPoints = []
+                                            }
+                                          "^")))
+                                 (Lit
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSubscript.hs" 12 36 12 37
+                                      , srcInfoPoints = []
+                                      }
+                                    (Int
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSubscript.hs" 12 36 12 37
+                                         , srcInfoPoints = []
+                                         }
+                                       2
+                                       "2"))))
+                           Nothing
+                       ])
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSubscript.hs" 13 8 13 22
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSubscript.hs" 13 8 13 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSubscript.hs" 13 8 13 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSubscript.hs" 13 8 13 12
+                                  , srcInfoPoints = []
+                                  }
+                                "sqrt")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSubscript.hs" 13 13 13 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSubscript.hs" 13 13 13 14
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSubscript.hs" 13 13 13 14
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSubscript.hs" 13 15 13 22
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSubscript.hs" 13 15 13 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSubscript.hs" 13 15 13 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSubscript.hs" 13 15 13 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "t\8321")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSubscript.hs" 13 18 13 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSubscript.hs" 13 18 13 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSubscript.hs" 13 18 13 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "+")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSubscript.hs" 13 20 13 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSubscript.hs" 13 20 13 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSubscript.hs" 13 20 13 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "t\8322")))))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeSubscript.hs.prettyparser.golden b/tests/examples/UnicodeSubscript.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSubscript.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeSubscript.hs.prettyprinter.golden b/tests/examples/UnicodeSubscript.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSubscript.hs.prettyprinter.golden
@@ -0,0 +1,11 @@
+{-# LANGUAGE UnicodeSyntax #-}
+module Main where
+
+data Point = Point{pointX, pointY :: Double, name :: String}
+               deriving (Show)
+
+distance :: Point -> Point -> Double
+distance x y
+  = let t = (pointX x - pointX y) ^ 2
+        t = (pointY x - pointY y) ^ 2
+      in sqrt $ t + t
diff --git a/tests/examples/UnicodeSuperscript.hs b/tests/examples/UnicodeSuperscript.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSuperscript.hs
@@ -0,0 +1,7 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+dumy ∷ Double → Double → Double
+dumy a b =
+    let a² = a ★ a
+        b² = b ★ b
+    in sqrt $ a² + b²
diff --git a/tests/examples/UnicodeSuperscript.hs.exactprinter.golden b/tests/examples/UnicodeSuperscript.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSuperscript.hs.exactprinter.golden
@@ -0,0 +1,8 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+dumy ::Double ->Double ->Double
+dumy a b =
+    let a² = a  a
+        b² = b  b
+    in sqrt $ a² + b²
+
diff --git a/tests/examples/UnicodeSuperscript.hs.parser.golden b/tests/examples/UnicodeSuperscript.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSuperscript.hs.parser.golden
@@ -0,0 +1,498 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 1 8 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 8 1 8 1
+            , SrcSpan "tests/examples/UnicodeSuperscript.hs" 8 1 8 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 1 1 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 28 1 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 1 3 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 6 3 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 1 3 5
+                , srcInfoPoints = []
+                }
+              "dumy"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 8 3 32
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 15 3 16 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 8 3 14
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 8 3 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 8 3 14
+                        , srcInfoPoints = []
+                        }
+                      "Double")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 17 3 32
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 24 3 25 ]
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 17 3 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 17 3 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 17 3 23
+                           , srcInfoPoints = []
+                           }
+                         "Double")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 26 3 32
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 26 3 32
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan =
+                               SrcSpan "tests/examples/UnicodeSuperscript.hs" 3 26 3 32
+                           , srcInfoPoints = []
+                           }
+                         "Double")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 1 7 22
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 1 7 22
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 1 4 5
+                   , srcInfoPoints = []
+                   }
+                 "dumy")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 6 4 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 6 4 7
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan =
+                        SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 8 4 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan =
+                           SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 8 4 9
+                       , srcInfoPoints = []
+                       }
+                     "b")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 10 7 22
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 4 10 4 11 ]
+                   }
+                 (Let
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 5 7 22
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 5 5 8
+                          , SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 5 7 7
+                          ]
+                      }
+                    (BDecls
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 9 6 19
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 9 5 9
+                             , SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 9 6 9
+                             , SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 5 7 0
+                             ]
+                         }
+                       [ PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 9 5 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 9 5 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 9 5 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "a\178"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 12 5 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 12 5 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 14 5 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 14 5 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 5 14 5 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 5 14 5 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "a")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 16 5 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 5 16 5 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 5 16 5 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\9733")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 5 18 5 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 5 18 5 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 5 18 5 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "a")))))
+                           Nothing
+                       , PatBind
+                           SrcSpanInfo
+                             { srcInfoSpan =
+                                 SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 9 6 19
+                             , srcInfoPoints = []
+                             }
+                           (PVar
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 9 6 11
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 9 6 11
+                                   , srcInfoPoints = []
+                                   }
+                                 "b\178"))
+                           (UnGuardedRhs
+                              SrcSpanInfo
+                                { srcInfoSpan =
+                                    SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 12 6 19
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 12 6 13 ]
+                                }
+                              (InfixApp
+                                 SrcSpanInfo
+                                   { srcInfoSpan =
+                                       SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 14 6 19
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 14 6 15
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 6 14 6 15
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 6 14 6 15
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))
+                                 (QVarOp
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 16 6 17
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 6 16 6 17
+                                         , srcInfoPoints = []
+                                         }
+                                       (Symbol
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 6 16 6 17
+                                            , srcInfoPoints = []
+                                            }
+                                          "\9733")))
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan =
+                                          SrcSpan "tests/examples/UnicodeSuperscript.hs" 6 18 6 19
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan
+                                               "tests/examples/UnicodeSuperscript.hs" 6 18 6 19
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan
+                                                  "tests/examples/UnicodeSuperscript.hs" 6 18 6 19
+                                            , srcInfoPoints = []
+                                            }
+                                          "b")))))
+                           Nothing
+                       ])
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 8 7 22
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 8 7 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 8 7 12
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 8 7 12
+                                  , srcInfoPoints = []
+                                  }
+                                "sqrt")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 13 7 14
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 13 7 14
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 13 7 14
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (InfixApp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 15 7 22
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 15 7 17
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 15 7 17
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 15 7 17
+                                     , srcInfoPoints = []
+                                     }
+                                   "a\178")))
+                          (QVarOp
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 18 7 19
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 18 7 19
+                                  , srcInfoPoints = []
+                                  }
+                                (Symbol
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 18 7 19
+                                     , srcInfoPoints = []
+                                     }
+                                   "+")))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 20 7 22
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 20 7 22
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSuperscript.hs" 7 20 7 22
+                                     , srcInfoPoints = []
+                                     }
+                                   "b\178")))))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeSuperscript.hs.prettyparser.golden b/tests/examples/UnicodeSuperscript.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSuperscript.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/UnicodeSuperscript.hs.prettyprinter.golden b/tests/examples/UnicodeSuperscript.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/UnicodeSuperscript.hs.prettyprinter.golden
@@ -0,0 +1,7 @@
+{-# LANGUAGE UnicodeSyntax #-}
+
+dumy :: Double -> Double -> Double
+dumy a b
+  = let a² = a  a
+        b² = b  b
+      in sqrt $ a² + b²
diff --git a/tests/examples/UnicodeSyntax.hs.parser.golden b/tests/examples/UnicodeSyntax.hs.parser.golden
--- a/tests/examples/UnicodeSyntax.hs.parser.golden
+++ b/tests/examples/UnicodeSyntax.hs.parser.golden
@@ -1,1 +1,678 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 16 1, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 16 1 16 1,SrcSpan "tests/examples/UnicodeSyntax.hs" 16 1 16 1]}) (Just (ModuleHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 27, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 7,SrcSpan "tests/examples/UnicodeSyntax.hs" 2 22 2 27]}) (ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 2 8 2 21, srcInfoPoints = []}) "UnicodeSyntax") Nothing Nothing)) [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 47, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 13,SrcSpan "tests/examples/UnicodeSyntax.hs" 1 27 1 28,SrcSpan "tests/examples/UnicodeSyntax.hs" 1 44 1 47]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 14 1 27, srcInfoPoints = []}) "UnicodeSyntax",Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 29 1 43, srcInfoPoints = []}) "ExplicitForAll"]] [ImportDecl {importAnn = SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 36, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 7]}, importModule = ModuleName (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 8 4 26, srcInfoPoints = []}) "System.Environment", importQualified = False, importSrc = False, importSafe = False, importPkg = Nothing, importAs = Nothing, importSpecs = Just (ImportSpecList (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 27 4 36, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 4 27 4 28,SrcSpan "tests/examples/UnicodeSyntax.hs" 4 35 4 36]}) False [IVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 28 4 35, srcInfoPoints = []}) (NoNamespace (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 28 4 35, srcInfoPoints = []})) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 28 4 35, srcInfoPoints = []}) "getArgs")])}] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 13, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 6 6 6 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 5, srcInfoPoints = []}) "main"] (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 13, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10, srcInfoPoints = []}) "IO"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12,SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13]}) (Special (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12,SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13]}) (UnitCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12,SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13]}))))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 9 17, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 5, srcInfoPoints = []}) "main")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 6 9 17, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 7 6 7 7]}) (Do (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 8 9 17, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 7 8 7 10,SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 3,SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 3,SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 0]}) [Generator (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 15, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 8 6 8 7]}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 5, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 5, srcInfoPoints = []}) "as")) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15, srcInfoPoints = []}) "getArgs"))),Qualifier (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 17, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8, srcInfoPoints = []}) "print"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10, srcInfoPoints = []}) "$"))) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 17, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15, srcInfoPoints = []}) "test"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 16 9 17, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 16 9 17, srcInfoPoints = []}) 0 "0"))))])) Nothing,TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 18, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 11 6 11 7]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 5, srcInfoPoints = []}) "test"] (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 18, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 11 12 11 13]}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11, srcInfoPoints = []}) "Int"))) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18, srcInfoPoints = []}) "Bool")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 20, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 5, srcInfoPoints = []}) "test") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 6 12 7, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 6 12 7, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 8 12 20, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 12 8 12 9]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 20, srcInfoPoints = []}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 13, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12, srcInfoPoints = []}) "*"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 12 12 13, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 12 12 13, srcInfoPoints = []}) 5 "5"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16, srcInfoPoints = []}) "=="))) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 20, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18, srcInfoPoints = []}) "x"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19, srcInfoPoints = []}) (Symbol (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19, srcInfoPoints = []}) "+"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 19 12 20, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 19 12 20, srcInfoPoints = []}) 8 "8"))))) Nothing],TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 18, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 14 5 14 6]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 4, srcInfoPoints = []}) "id1"] (TyForall (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 7 14 18, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 14 7 14 8,SrcSpan "tests/examples/UnicodeSyntax.hs" 14 11 14 12]}) (Just [UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 9 14 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 9 14 10, srcInfoPoints = []}) "a")]) Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 18, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 14 15 14 16]}) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 14, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 14, srcInfoPoints = []}) "a")) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 17 14 18, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 17 14 18, srcInfoPoints = []}) "a")))),FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 10, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 4, srcInfoPoints = []}) "id1") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 5 15 6, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 5 15 6, srcInfoPoints = []}) "x")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 7 15 10, srcInfoPoints = [SrcSpan "tests/examples/UnicodeSyntax.hs" 15 7 15 8]}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10, srcInfoPoints = []}) "x")))) Nothing]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 16 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 16 1 16 1
+            , SrcSpan "tests/examples/UnicodeSyntax.hs" 16 1 16 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 27
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/UnicodeSyntax.hs" 2 1 2 7
+                  , SrcSpan "tests/examples/UnicodeSyntax.hs" 2 22 2 27
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 2 8 2 21
+                 , srcInfoPoints = []
+                 }
+               "UnicodeSyntax")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 47
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSyntax.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnicodeSyntax.hs" 1 27 1 28
+                , SrcSpan "tests/examples/UnicodeSyntax.hs" 1 44 1 47
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 14 1 27
+                , srcInfoPoints = []
+                }
+              "UnicodeSyntax"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 1 29 1 43
+                , srcInfoPoints = []
+                }
+              "ExplicitForAll"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 36
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/UnicodeSyntax.hs" 4 1 4 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 8 4 26
+                  , srcInfoPoints = []
+                  }
+                "System.Environment"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs =
+              Just
+                (ImportSpecList
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 27 4 36
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/UnicodeSyntax.hs" 4 27 4 28
+                         , SrcSpan "tests/examples/UnicodeSyntax.hs" 4 35 4 36
+                         ]
+                     }
+                   False
+                   [ IVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 28 4 35
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 4 28 4 35
+                            , srcInfoPoints = []
+                            }
+                          "getArgs")
+                   ])
+          }
+      ]
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 13
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSyntax.hs" 6 6 6 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 1 6 5
+                , srcInfoPoints = []
+                }
+              "main"
+          ]
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 13
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 8 6 10
+                        , srcInfoPoints = []
+                        }
+                      "IO")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12
+                      , SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12
+                         , SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 13
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/UnicodeSyntax.hs" 6 11 6 12
+                            , SrcSpan "tests/examples/UnicodeSyntax.hs" 6 12 6 13
+                            ]
+                        }))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 9 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 1 7 5
+                  , srcInfoPoints = []
+                  }
+                "main"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 6 9 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeSyntax.hs" 7 6 7 7 ]
+               }
+             (Do
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 7 8 9 17
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeSyntax.hs" 7 8 7 10
+                      , SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 3
+                      , SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 3
+                      , SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 0
+                      ]
+                  }
+                [ Generator
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 15
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/UnicodeSyntax.hs" 8 6 8 7 ]
+                      }
+                    (PVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 5
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 3 8 5
+                            , srcInfoPoints = []
+                            }
+                          "as"))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 8 8 8 15
+                               , srcInfoPoints = []
+                               }
+                             "getArgs")))
+                , Qualifier
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 17
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 17
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 3 9 8
+                                  , srcInfoPoints = []
+                                  }
+                                "print")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 9 9 10
+                                  , srcInfoPoints = []
+                                  }
+                                "$")))
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 17
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/UnicodeSyntax.hs" 9 11 9 15
+                                     , srcInfoPoints = []
+                                     }
+                                   "test")))
+                          (Lit
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 9 16 9 17
+                               , srcInfoPoints = []
+                               }
+                             (Int
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 9 16 9 17
+                                  , srcInfoPoints = []
+                                  }
+                                0
+                                "0"))))
+                ]))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSyntax.hs" 11 6 11 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 11 1 11 5
+                , srcInfoPoints = []
+                }
+              "test"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeSyntax.hs" 11 12 11 13 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSyntax.hs" 11 8 11 11
+                        , srcInfoPoints = []
+                        }
+                      "Int")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSyntax.hs" 11 14 11 18
+                        , srcInfoPoints = []
+                        }
+                      "Bool"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 20
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 20
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 1 12 5
+                   , srcInfoPoints = []
+                   }
+                 "test")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 6 12 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 12 6 12 7
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSyntax.hs" 12 8 12 20
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeSyntax.hs" 12 8 12 9 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 20
+                      , srcInfoPoints = []
+                      }
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 13
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 12 10 12 11
+                                  , srcInfoPoints = []
+                                  }
+                                "x")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 12 11 12 12
+                                  , srcInfoPoints = []
+                                  }
+                                "*")))
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 12 12 13
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 12 12 13
+                               , srcInfoPoints = []
+                               }
+                             5
+                             "5")))
+                    (QVarOp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16
+                            , srcInfoPoints = []
+                            }
+                          (Symbol
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 14 12 16
+                               , srcInfoPoints = []
+                               }
+                             "==")))
+                    (InfixApp
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 20
+                         , srcInfoPoints = []
+                         }
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 12 17 12 18
+                                  , srcInfoPoints = []
+                                  }
+                                "x")))
+                       (QVarOp
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19
+                               , srcInfoPoints = []
+                               }
+                             (Symbol
+                                SrcSpanInfo
+                                  { srcInfoSpan =
+                                      SrcSpan "tests/examples/UnicodeSyntax.hs" 12 18 12 19
+                                  , srcInfoPoints = []
+                                  }
+                                "+")))
+                       (Lit
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 12 19 12 20
+                            , srcInfoPoints = []
+                            }
+                          (Int
+                             SrcSpanInfo
+                               { srcInfoSpan =
+                                   SrcSpan "tests/examples/UnicodeSyntax.hs" 12 19 12 20
+                               , srcInfoPoints = []
+                               }
+                             8
+                             "8")))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnicodeSyntax.hs" 14 5 14 6 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 14 1 14 4
+                , srcInfoPoints = []
+                }
+              "id1"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnicodeSyntax.hs" 14 7 14 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnicodeSyntax.hs" 14 7 14 8
+                   , SrcSpan "tests/examples/UnicodeSyntax.hs" 14 11 14 12
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSyntax.hs" 14 9 14 10
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSyntax.hs" 14 9 14 10
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 18
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/UnicodeSyntax.hs" 14 15 14 16 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 14
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSyntax.hs" 14 13 14 14
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnicodeSyntax.hs" 14 17 14 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/UnicodeSyntax.hs" 14 17 14 18
+                        , srcInfoPoints = []
+                        }
+                      "a"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 1 15 4
+                   , srcInfoPoints = []
+                   }
+                 "id1")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 5 15 6
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/UnicodeSyntax.hs" 15 5 15 6
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/UnicodeSyntax.hs" 15 7 15 10
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/UnicodeSyntax.hs" 15 7 15 8 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/UnicodeSyntax.hs" 15 9 15 10
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/UnicodeSyntax.hs.prettyprinter.golden b/tests/examples/UnicodeSyntax.hs.prettyprinter.golden
--- a/tests/examples/UnicodeSyntax.hs.prettyprinter.golden
+++ b/tests/examples/UnicodeSyntax.hs.prettyprinter.golden
@@ -1,14 +1,14 @@
 {-# LANGUAGE UnicodeSyntax, ExplicitForAll #-}
 module UnicodeSyntax where
 import System.Environment (getArgs)
- 
+
 main :: IO ()
 main
   = do as <- getArgs
        print $ test 0
- 
+
 test :: Int -> Bool
 test x = x * 5 == x + 8
- 
+
 id1 :: forall a . a -> a
 id1 x = x
diff --git a/tests/examples/UnindentedPragmaClose.hs.parser.golden b/tests/examples/UnindentedPragmaClose.hs.parser.golden
--- a/tests/examples/UnindentedPragmaClose.hs.parser.golden
+++ b/tests/examples/UnindentedPragmaClose.hs.parser.golden
@@ -1,1 +1,114 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 5 1, srcInfoPoints = [SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 1 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 5 1 5 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 5 1 5 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 2 4, srcInfoPoints = [SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 1 13,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 2 1 2 1,SrcSpan "tests/examples/UnindentedPragmaClose.hs" 2 1 2 4]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 14 1 35, srcInfoPoints = []}) "MultiParamTypeClasses"]] [] [TypeSig (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 9, srcInfoPoints = [SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 3 3 5]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 2, srcInfoPoints = []}) "f"] (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9, srcInfoPoints = []}) "Int"))),PatBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 6, srcInfoPoints = []}) (PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 2, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 2, srcInfoPoints = []}) "f")) (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 3 4 6, srcInfoPoints = [SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 3 4 4]}) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 5 4 6, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 5 4 6, srcInfoPoints = []}) 4 "4"))) Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan =
+            SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 1 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 5 1 5 1
+            , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 2 4
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 1 1 13
+                , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 2 1 2 1
+                , SrcSpan "tests/examples/UnindentedPragmaClose.hs" 2 1 2 4
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnindentedPragmaClose.hs" 1 14 1 35
+                , srcInfoPoints = []
+                }
+              "MultiParamTypeClasses"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 9
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 3 3 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 1 3 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnindentedPragmaClose.hs" 3 6 3 9
+                     , srcInfoPoints = []
+                     }
+                   "Int")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 6
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 1 4 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 3 4 6
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 3 4 4 ]
+               }
+             (Lit
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 5 4 6
+                  , srcInfoPoints = []
+                  }
+                (Int
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/UnindentedPragmaClose.hs" 4 5 4 6
+                     , srcInfoPoints = []
+                     }
+                   4
+                   "4")))
+          Nothing
+      ]
+  , []
+  )
diff --git a/tests/examples/UnindentedPragmaClose.hs.prettyprinter.golden b/tests/examples/UnindentedPragmaClose.hs.prettyprinter.golden
--- a/tests/examples/UnindentedPragmaClose.hs.prettyprinter.golden
+++ b/tests/examples/UnindentedPragmaClose.hs.prettyprinter.golden
@@ -1,5 +1,4 @@
 {-# LANGUAGE MultiParamTypeClasses #-}
-module Main (main) where
- 
+
 f :: Int
 f = 4
diff --git a/tests/examples/Unpack.hs.parser.golden b/tests/examples/Unpack.hs.parser.golden
--- a/tests/examples/Unpack.hs.parser.golden
+++ b/tests/examples/Unpack.hs.parser.golden
@@ -1,1 +1,274 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 1 7 1, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 1 1 1 1,SrcSpan "tests/examples/Unpack.hs" 3 1 3 1,SrcSpan "tests/examples/Unpack.hs" 3 1 3 1,SrcSpan "tests/examples/Unpack.hs" 3 1 3 1,SrcSpan "tests/examples/Unpack.hs" 6 1 6 1,SrcSpan "tests/examples/Unpack.hs" 7 1 7 1,SrcSpan "tests/examples/Unpack.hs" 7 1 7 1]}) Nothing [LanguagePragma (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 1 1 23, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 1 1 1 13,SrcSpan "tests/examples/Unpack.hs" 1 20 1 23]}) [Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 14 1 19, srcInfoPoints = []}) "GADTs"]] [] [GDataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 1 6 0, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 3 18 3 23,SrcSpan "tests/examples/Unpack.hs" 4 9 4 9,SrcSpan "tests/examples/Unpack.hs" 6 1 6 0]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 1 3 5, srcInfoPoints = []})) Nothing (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 17, srcInfoPoints = []}) (DHApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 15, srcInfoPoints = []}) (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 13, srcInfoPoints = []}) "CmmNode")) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 14 3 15, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 14 3 15, srcInfoPoints = []}) "e"))) (UnkindedVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 16 3 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 16 3 17, srcInfoPoints = []}) "x"))) Nothing [GadtDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 9 4 55, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 4 18 4 20]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 9 4 17, srcInfoPoints = []}) "CmmEntry") Nothing (TyFun (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 55, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 4 41 4 43]}) (TyBang (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 40, srcInfoPoints = []}) (UnpackedTy (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 37, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 4 21 4 31,SrcSpan "tests/examples/Unpack.hs" 4 32 4 35,SrcSpan "tests/examples/Unpack.hs" 4 36 4 37]})) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40, srcInfoPoints = []}) "Int")))) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 55, srcInfoPoints = []}) (TyApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 53, srcInfoPoints = []}) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51, srcInfoPoints = []}) "CmmNode"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 52 4 53, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 52 4 53, srcInfoPoints = []}) "e"))) (TyVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 54 4 55, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 54 4 55, srcInfoPoints = []}) "x"))))] Nothing,DataDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 1 6 33, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 6 9 6 10]}) (DataType (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 1 6 5, srcInfoPoints = []})) Nothing (DHead (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 6 6 8, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 6 6 8, srcInfoPoints = []}) "UI")) [QualConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 33, srcInfoPoints = []}) Nothing Nothing (ConDecl (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 13, srcInfoPoints = []}) "UI") [TyBang (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 14 6 33, srcInfoPoints = []}) (UnpackedTy (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 14 6 30, srcInfoPoints = [SrcSpan "tests/examples/Unpack.hs" 6 14 6 24,SrcSpan "tests/examples/Unpack.hs" 6 25 6 28,SrcSpan "tests/examples/Unpack.hs" 6 29 6 30]})) (TyCon (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33, srcInfoPoints = []}) "Int")))])] Nothing],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 1 7 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Unpack.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Unpack.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unpack.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unpack.hs" 3 1 3 1
+            , SrcSpan "tests/examples/Unpack.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Unpack.hs" 7 1 7 1
+            , SrcSpan "tests/examples/Unpack.hs" 7 1 7 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 1 1 23
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unpack.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Unpack.hs" 1 20 1 23
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 1 14 1 19
+                , srcInfoPoints = []
+                }
+              "GADTs"
+          ]
+      ]
+      []
+      [ GDataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 1 6 0
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Unpack.hs" 3 18 3 23
+                , SrcSpan "tests/examples/Unpack.hs" 4 9 4 9
+                , SrcSpan "tests/examples/Unpack.hs" 6 1 6 0
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 1 3 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 17
+               , srcInfoPoints = []
+               }
+             (DHApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 15
+                  , srcInfoPoints = []
+                  }
+                (DHead
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 13
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 6 3 13
+                        , srcInfoPoints = []
+                        }
+                      "CmmNode"))
+                (UnkindedVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 14 3 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 14 3 15
+                        , srcInfoPoints = []
+                        }
+                      "e")))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 16 3 17
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 3 16 3 17
+                     , srcInfoPoints = []
+                     }
+                   "x")))
+          Nothing
+          [ GadtDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 9 4 55
+                , srcInfoPoints = [ SrcSpan "tests/examples/Unpack.hs" 4 18 4 20 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 9 4 17
+                   , srcInfoPoints = []
+                   }
+                 "CmmEntry")
+              Nothing
+              Nothing
+              Nothing
+              (TyFun
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 55
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Unpack.hs" 4 41 4 43 ]
+                   }
+                 (TyBang
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 40
+                      , srcInfoPoints = []
+                      }
+                    (BangedTy
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 36 4 37
+                         , srcInfoPoints = []
+                         })
+                    (Unpack
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 35
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Unpack.hs" 4 21 4 31
+                             , SrcSpan "tests/examples/Unpack.hs" 4 32 4 35
+                             ]
+                         })
+                    (TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 37 4 40
+                               , srcInfoPoints = []
+                               }
+                             "Int"))))
+                 (TyApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 55
+                      , srcInfoPoints = []
+                      }
+                    (TyApp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 53
+                         , srcInfoPoints = []
+                         }
+                       (TyCon
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 44 4 51
+                                  , srcInfoPoints = []
+                                  }
+                                "CmmNode")))
+                       (TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 52 4 53
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 52 4 53
+                               , srcInfoPoints = []
+                               }
+                             "e")))
+                    (TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 54 4 55
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 54 4 55
+                            , srcInfoPoints = []
+                            }
+                          "x"))))
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 1 6 33
+            , srcInfoPoints = [ SrcSpan "tests/examples/Unpack.hs" 6 9 6 10 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 1 6 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 6 6 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 6 6 8
+                  , srcInfoPoints = []
+                  }
+                "UI"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 33
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 33
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 11 6 13
+                      , srcInfoPoints = []
+                      }
+                    "UI")
+                 [ TyBang
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 14 6 33
+                       , srcInfoPoints = []
+                       }
+                     (BangedTy
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 29 6 30
+                          , srcInfoPoints = []
+                          })
+                     (Unpack
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 14 6 28
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Unpack.hs" 6 14 6 24
+                              , SrcSpan "tests/examples/Unpack.hs" 6 25 6 28
+                              ]
+                          })
+                     (TyCon
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 6 30 6 33
+                                , srcInfoPoints = []
+                                }
+                              "Int")))
+                 ])
+          ]
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/Unpack.hs.prettyprinter.golden b/tests/examples/Unpack.hs.prettyprinter.golden
--- a/tests/examples/Unpack.hs.prettyprinter.golden
+++ b/tests/examples/Unpack.hs.prettyprinter.golden
@@ -1,7 +1,6 @@
 {-# LANGUAGE GADTs #-}
-module Main (main) where
- 
+
 data CmmNode e x where
         CmmEntry :: {-# UNPACK #-} !Int -> CmmNode e x
- 
+
 data UI = UI {-# UNPACK #-} !Int
diff --git a/tests/examples/ViewPatterns.hs b/tests/examples/ViewPatterns.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/ViewPatterns.hs
@@ -0,0 +1,5 @@
+{-# LANGUAGE ViewPatterns #-}
+f (id -> Just _) "" = ""
+
+g (id -> True) = False
+
diff --git a/tests/examples/ViewPatterns.hs.exactprinter.golden b/tests/examples/ViewPatterns.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ViewPatterns.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ViewPatterns.hs.parser.golden b/tests/examples/ViewPatterns.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ViewPatterns.hs.parser.golden
@@ -0,0 +1,229 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 1 1 6 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/ViewPatterns.hs" 1 1 1 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 4 1 4 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 6 1 6 1
+            , SrcSpan "tests/examples/ViewPatterns.hs" 6 1 6 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/ViewPatterns.hs" 1 1 1 13
+                , SrcSpan "tests/examples/ViewPatterns.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "ViewPatterns"
+          ]
+      ]
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 25
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 25
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 1 2 2
+                   , srcInfoPoints = []
+                   }
+                 "f")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 3 2 17
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ViewPatterns.hs" 2 3 2 4
+                        , SrcSpan "tests/examples/ViewPatterns.hs" 2 16 2 17
+                        ]
+                    }
+                  (PViewPat
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 4 2 16
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/ViewPatterns.hs" 2 7 2 9 ]
+                       }
+                     (Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 4 2 6
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 4 2 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 4 2 6
+                                , srcInfoPoints = []
+                                }
+                              "id")))
+                     (PApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 10 2 16
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 10 2 14
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 10 2 14
+                                , srcInfoPoints = []
+                                }
+                              "Just"))
+                        [ PWildCard
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 15 2 16
+                              , srcInfoPoints = []
+                              }
+                        ]))
+              , PLit
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 18 2 20
+                    , srcInfoPoints = []
+                    }
+                  (Signless
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 18 2 20
+                       , srcInfoPoints = []
+                       })
+                  (String
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 18 2 20
+                       , srcInfoPoints = []
+                       }
+                     ""
+                     "")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 21 2 25
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ViewPatterns.hs" 2 21 2 22 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 23 2 25
+                      , srcInfoPoints = []
+                      }
+                    (String
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 2 23 2 25
+                         , srcInfoPoints = []
+                         }
+                       ""
+                       "")))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 1 4 23
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 1 4 23
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 1 4 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 3 4 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/ViewPatterns.hs" 4 3 4 4
+                        , SrcSpan "tests/examples/ViewPatterns.hs" 4 14 4 15
+                        ]
+                    }
+                  (PViewPat
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 4 4 14
+                       , srcInfoPoints =
+                           [ SrcSpan "tests/examples/ViewPatterns.hs" 4 7 4 9 ]
+                       }
+                     (Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 4 4 6
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 4 4 6
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 4 4 6
+                                , srcInfoPoints = []
+                                }
+                              "id")))
+                     (PApp
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 10 4 14
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 10 4 14
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 10 4 14
+                                , srcInfoPoints = []
+                                }
+                              "True"))
+                        []))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 16 4 23
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/ViewPatterns.hs" 4 16 4 17 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 18 4 23
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 18 4 23
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/ViewPatterns.hs" 4 18 4 23
+                            , srcInfoPoints = []
+                            }
+                          "False"))))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/ViewPatterns.hs.prettyparser.golden b/tests/examples/ViewPatterns.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ViewPatterns.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/ViewPatterns.hs.prettyprinter.golden b/tests/examples/ViewPatterns.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/ViewPatterns.hs.prettyprinter.golden
@@ -0,0 +1,3 @@
+{-# LANGUAGE ViewPatterns #-}
+f (id -> Just _) "" = ""
+g (id -> True) = False
diff --git a/tests/examples/Vta1.hs b/tests/examples/Vta1.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta1.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE TypeApplications, ScopedTypeVariables, PolyKinds,
+             TypeFamilies, RankNTypes,
+             FlexibleContexts #-}
+-- tests about visible type application
+
+module Vta1 where
+
+quad :: a -> b -> c -> d -> (a, b, c, d)
+quad = (,,,)
+
+silly = quad @_ @Bool @Char @_ 5 True 'a' "Hello"
+
+pairup_nosig x y = (x, y)
+
+pairup_sig :: a -> b -> (a,b)
+pairup_sig u w = (u, w)
+
+answer_sig = pairup_sig @Bool @Int False 7 --
+-- (False, 7) :: (Bool, Int)
+
+answer_read = show (read @Int "3") -- "3" :: String
+answer_show = show @Integer (read "5") -- "5" :: String
+answer_showread = show @Int (read @Int "7") -- "7" :: String
+
+intcons a = (:) @Int a
+
+intpair x y = pairup_sig @Int x y
+
+answer_pairup = pairup_sig @Int 5 True -- (5, True) :: (Int, Bool)
+answer_intpair = intpair 1 "hello" -- (1, "hello") :: (Int, String)
+answer_intcons = intcons 7 []      -- [7] :: [Int]
+
+type family F a
+type instance F Char = Bool
+
+g :: F a -> a
+g _ = undefined
+
+f :: Char
+f = g True
+
+answer = g @Char False
+
+mapSame :: forall b. (forall a. a -> a) -> [b] -> [b]
+mapSame _ [] = []
+mapSame fun (x:xs) = fun @b x : (mapSame @b fun xs)
+
+pair :: forall a. a-> (forall b. b -> (a, b))
+pair x y = (x, y)
+
+b = pair @Int 3 @Bool True
+c = mapSame id [1,2,3]
+d = pair 3 @Bool True
+
+pairnum :: forall a. Num a => forall b. b -> (a, b)
+pairnum = pair 3
+
+e = (pair 3 :: forall a. Num a => forall b. b -> (a, b)) @Int @Bool True
+h = pairnum @Int @Bool True
+
+data First (a :: * -> *) = F
+data Proxy (a :: k) = P -- This expands to P (kind variable) (type variable)
+data Three (a :: * -> k -> *) = T
+
+foo :: Proxy a -> Int
+foo _ = 0
+
+first :: First a -> Int
+first _ = 0
+
+fTest = first F
+fMaybe = first @Maybe F
+
+test = foo P
+bar = foo @Bool P -- should work
+
+too :: Three a -> Int
+too _ = 3
+
+threeBase = too T
+threeOk = too @Either T
+
+blah = Nothing @Int
+
+newtype N = MkN { unMkN :: forall a. Show a => a -> String }
+
+n = MkN show
+
+boo = unMkN n @Bool
+
+boo2 :: forall (a :: * -> *) . Proxy a -> Bool
+boo2 _ = False
+
+base = boo2 P
+bar'= boo2 @Maybe P -- should work
diff --git a/tests/examples/Vta1.hs.exactprinter.golden b/tests/examples/Vta1.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta1.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Vta1.hs.parser.golden b/tests/examples/Vta1.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta1.hs.parser.golden
@@ -0,0 +1,5436 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 1 1 96 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Vta1.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Vta1.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Vta1.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Vta1.hs" 8 1 8 1
+            , SrcSpan "tests/examples/Vta1.hs" 9 1 9 1
+            , SrcSpan "tests/examples/Vta1.hs" 11 1 11 1
+            , SrcSpan "tests/examples/Vta1.hs" 13 1 13 1
+            , SrcSpan "tests/examples/Vta1.hs" 15 1 15 1
+            , SrcSpan "tests/examples/Vta1.hs" 16 1 16 1
+            , SrcSpan "tests/examples/Vta1.hs" 18 1 18 1
+            , SrcSpan "tests/examples/Vta1.hs" 21 1 21 1
+            , SrcSpan "tests/examples/Vta1.hs" 22 1 22 1
+            , SrcSpan "tests/examples/Vta1.hs" 23 1 23 1
+            , SrcSpan "tests/examples/Vta1.hs" 25 1 25 1
+            , SrcSpan "tests/examples/Vta1.hs" 27 1 27 1
+            , SrcSpan "tests/examples/Vta1.hs" 29 1 29 1
+            , SrcSpan "tests/examples/Vta1.hs" 30 1 30 1
+            , SrcSpan "tests/examples/Vta1.hs" 31 1 31 1
+            , SrcSpan "tests/examples/Vta1.hs" 33 1 33 1
+            , SrcSpan "tests/examples/Vta1.hs" 34 1 34 1
+            , SrcSpan "tests/examples/Vta1.hs" 36 1 36 1
+            , SrcSpan "tests/examples/Vta1.hs" 37 1 37 1
+            , SrcSpan "tests/examples/Vta1.hs" 39 1 39 1
+            , SrcSpan "tests/examples/Vta1.hs" 40 1 40 1
+            , SrcSpan "tests/examples/Vta1.hs" 42 1 42 1
+            , SrcSpan "tests/examples/Vta1.hs" 44 1 44 1
+            , SrcSpan "tests/examples/Vta1.hs" 45 1 45 1
+            , SrcSpan "tests/examples/Vta1.hs" 46 1 46 1
+            , SrcSpan "tests/examples/Vta1.hs" 48 1 48 1
+            , SrcSpan "tests/examples/Vta1.hs" 49 1 49 1
+            , SrcSpan "tests/examples/Vta1.hs" 51 1 51 1
+            , SrcSpan "tests/examples/Vta1.hs" 52 1 52 1
+            , SrcSpan "tests/examples/Vta1.hs" 53 1 53 1
+            , SrcSpan "tests/examples/Vta1.hs" 55 1 55 1
+            , SrcSpan "tests/examples/Vta1.hs" 56 1 56 1
+            , SrcSpan "tests/examples/Vta1.hs" 58 1 58 1
+            , SrcSpan "tests/examples/Vta1.hs" 59 1 59 1
+            , SrcSpan "tests/examples/Vta1.hs" 61 1 61 1
+            , SrcSpan "tests/examples/Vta1.hs" 62 1 62 1
+            , SrcSpan "tests/examples/Vta1.hs" 63 1 63 1
+            , SrcSpan "tests/examples/Vta1.hs" 65 1 65 1
+            , SrcSpan "tests/examples/Vta1.hs" 66 1 66 1
+            , SrcSpan "tests/examples/Vta1.hs" 68 1 68 1
+            , SrcSpan "tests/examples/Vta1.hs" 69 1 69 1
+            , SrcSpan "tests/examples/Vta1.hs" 71 1 71 1
+            , SrcSpan "tests/examples/Vta1.hs" 72 1 72 1
+            , SrcSpan "tests/examples/Vta1.hs" 74 1 74 1
+            , SrcSpan "tests/examples/Vta1.hs" 75 1 75 1
+            , SrcSpan "tests/examples/Vta1.hs" 77 1 77 1
+            , SrcSpan "tests/examples/Vta1.hs" 78 1 78 1
+            , SrcSpan "tests/examples/Vta1.hs" 80 1 80 1
+            , SrcSpan "tests/examples/Vta1.hs" 81 1 81 1
+            , SrcSpan "tests/examples/Vta1.hs" 83 1 83 1
+            , SrcSpan "tests/examples/Vta1.hs" 85 1 85 1
+            , SrcSpan "tests/examples/Vta1.hs" 87 1 87 1
+            , SrcSpan "tests/examples/Vta1.hs" 89 1 89 1
+            , SrcSpan "tests/examples/Vta1.hs" 91 1 91 1
+            , SrcSpan "tests/examples/Vta1.hs" 92 1 92 1
+            , SrcSpan "tests/examples/Vta1.hs" 94 1 94 1
+            , SrcSpan "tests/examples/Vta1.hs" 95 1 95 1
+            , SrcSpan "tests/examples/Vta1.hs" 96 1 96 1
+            , SrcSpan "tests/examples/Vta1.hs" 96 1 96 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 6 1 6 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Vta1.hs" 6 1 6 7
+                  , SrcSpan "tests/examples/Vta1.hs" 6 13 6 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 6 8 6 12
+                 , srcInfoPoints = []
+                 }
+               "Vta1")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 1 1 3 34
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Vta1.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Vta1.hs" 1 30 1 31
+                , SrcSpan "tests/examples/Vta1.hs" 1 51 1 52
+                , SrcSpan "tests/examples/Vta1.hs" 1 62 1 63
+                , SrcSpan "tests/examples/Vta1.hs" 2 26 2 27
+                , SrcSpan "tests/examples/Vta1.hs" 2 38 2 39
+                , SrcSpan "tests/examples/Vta1.hs" 3 31 3 34
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 1 14 1 30
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 1 32 1 51
+                , srcInfoPoints = []
+                }
+              "ScopedTypeVariables"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 1 53 1 62
+                , srcInfoPoints = []
+                }
+              "PolyKinds"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 2 14 2 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 2 28 2 38
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 3 14 3 30
+                , srcInfoPoints = []
+                }
+              "FlexibleContexts"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 1 8 41
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 8 6 8 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 1 8 5
+                , srcInfoPoints = []
+                }
+              "quad"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 9 8 41
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 8 11 8 13 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 9 8 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 9 8 10
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 14 8 41
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 8 16 8 18 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 14 8 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 14 8 15
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 19 8 41
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 8 21 8 23 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 19 8 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 19 8 20
+                           , srcInfoPoints = []
+                           }
+                         "c"))
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 24 8 41
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 8 26 8 28 ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 24 8 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 24 8 25
+                              , srcInfoPoints = []
+                              }
+                            "d"))
+                      (TyTuple
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 29 8 41
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Vta1.hs" 8 29 8 30
+                               , SrcSpan "tests/examples/Vta1.hs" 8 31 8 32
+                               , SrcSpan "tests/examples/Vta1.hs" 8 34 8 35
+                               , SrcSpan "tests/examples/Vta1.hs" 8 37 8 38
+                               , SrcSpan "tests/examples/Vta1.hs" 8 40 8 41
+                               ]
+                           }
+                         Boxed
+                         [ TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 30 8 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 30 8 31
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         , TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 33 8 34
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 33 8 34
+                                  , srcInfoPoints = []
+                                  }
+                                "b")
+                         , TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 36 8 37
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 36 8 37
+                                  , srcInfoPoints = []
+                                  }
+                                "c")
+                         , TyVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 39 8 40
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 8 39 8 40
+                                  , srcInfoPoints = []
+                                  }
+                                "d")
+                         ])))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 1 9 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 1 9 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 1 9 5
+                  , srcInfoPoints = []
+                  }
+                "quad"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 6 9 13
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 9 6 9 7 ]
+               }
+             (Con
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 8 9 13
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Vta1.hs" 9 8 9 9
+                      , SrcSpan "tests/examples/Vta1.hs" 9 9 9 10
+                      , SrcSpan "tests/examples/Vta1.hs" 9 10 9 11
+                      , SrcSpan "tests/examples/Vta1.hs" 9 11 9 12
+                      , SrcSpan "tests/examples/Vta1.hs" 9 12 9 13
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 8 9 13
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 9 8 9 9
+                         , SrcSpan "tests/examples/Vta1.hs" 9 9 9 10
+                         , SrcSpan "tests/examples/Vta1.hs" 9 10 9 11
+                         , SrcSpan "tests/examples/Vta1.hs" 9 11 9 12
+                         , SrcSpan "tests/examples/Vta1.hs" 9 12 9 13
+                         ]
+                     }
+                   (TupleCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 9 8 9 13
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 9 8 9 9
+                            , SrcSpan "tests/examples/Vta1.hs" 9 9 9 10
+                            , SrcSpan "tests/examples/Vta1.hs" 9 10 9 11
+                            , SrcSpan "tests/examples/Vta1.hs" 9 11 9 12
+                            , SrcSpan "tests/examples/Vta1.hs" 9 12 9 13
+                            ]
+                        }
+                      Boxed
+                      4))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 1 11 50
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 1 11 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 1 11 6
+                  , srcInfoPoints = []
+                  }
+                "silly"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 7 11 50
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 11 7 11 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 50
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 42
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 38
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 33
+                           , srcInfoPoints = []
+                           }
+                         (App
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 31
+                              , srcInfoPoints = []
+                              }
+                            (App
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 28
+                                 , srcInfoPoints = []
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 22
+                                    , srcInfoPoints = []
+                                    }
+                                  (App
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 9 11 16
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 11 9 11 13
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 11 9 11 13
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta1.hs" 11 9 11 13
+                                                , srcInfoPoints = []
+                                                }
+                                              "quad")))
+                                     (TypeApp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 11 14 11 16
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Vta1.hs" 11 14 11 15 ]
+                                          }
+                                        (TyWildCard
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 11 15 11 16
+                                             , srcInfoPoints = []
+                                             }
+                                           Nothing)))
+                                  (TypeApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 17 11 22
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Vta1.hs" 11 17 11 18 ]
+                                       }
+                                     (TyCon
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 11 18 11 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 11 18 11 22
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta1.hs" 11 18 11 22
+                                                , srcInfoPoints = []
+                                                }
+                                              "Bool")))))
+                               (TypeApp
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 23 11 28
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Vta1.hs" 11 23 11 24 ]
+                                    }
+                                  (TyCon
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 24 11 28
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 11 24 11 28
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 11 24 11 28
+                                             , srcInfoPoints = []
+                                             }
+                                           "Char")))))
+                            (TypeApp
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 29 11 31
+                                 , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 11 29 11 30 ]
+                                 }
+                               (TyWildCard
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 30 11 31
+                                    , srcInfoPoints = []
+                                    }
+                                  Nothing)))
+                         (Lit
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 32 11 33
+                              , srcInfoPoints = []
+                              }
+                            (Int
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 32 11 33
+                                 , srcInfoPoints = []
+                                 }
+                               5
+                               "5")))
+                      (Con
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 34 11 38
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 34 11 38
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 34 11 38
+                                 , srcInfoPoints = []
+                                 }
+                               "True"))))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 39 11 42
+                        , srcInfoPoints = []
+                        }
+                      (Char
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 39 11 42
+                           , srcInfoPoints = []
+                           }
+                         'a'
+                         "a")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 43 11 50
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 11 43 11 50
+                        , srcInfoPoints = []
+                        }
+                      "Hello"
+                      "Hello"))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 1 13 26
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 1 13 26
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 1 13 13
+                   , srcInfoPoints = []
+                   }
+                 "pairup_nosig")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 14 13 15
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 14 13 15
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 16 13 17
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 16 13 17
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 18 13 26
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 13 18 13 19 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 20 13 26
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta1.hs" 13 20 13 21
+                          , SrcSpan "tests/examples/Vta1.hs" 13 22 13 23
+                          , SrcSpan "tests/examples/Vta1.hs" 13 25 13 26
+                          ]
+                      }
+                    Boxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 21 13 22
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 21 13 22
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 21 13 22
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 24 13 25
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 24 13 25
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 13 24 13 25
+                                , srcInfoPoints = []
+                                }
+                              "y"))
+                    ]))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 1 15 30
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 15 12 15 14 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 1 15 11
+                , srcInfoPoints = []
+                }
+              "pairup_sig"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 15 15 30
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 15 17 15 19 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 15 15 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 15 15 16
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 20 15 30
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 15 22 15 24 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 20 15 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 20 15 21
+                        , srcInfoPoints = []
+                        }
+                      "b"))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 25 15 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 15 25 15 26
+                         , SrcSpan "tests/examples/Vta1.hs" 15 27 15 28
+                         , SrcSpan "tests/examples/Vta1.hs" 15 29 15 30
+                         ]
+                     }
+                   Boxed
+                   [ TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 26 15 27
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 26 15 27
+                            , srcInfoPoints = []
+                            }
+                          "a")
+                   , TyVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 28 15 29
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 15 28 15 29
+                            , srcInfoPoints = []
+                            }
+                          "b")
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 1 16 24
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 1 16 24
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 1 16 11
+                   , srcInfoPoints = []
+                   }
+                 "pairup_sig")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 12 16 13
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 12 16 13
+                       , srcInfoPoints = []
+                       }
+                     "u")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 14 16 15
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 14 16 15
+                       , srcInfoPoints = []
+                       }
+                     "w")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 16 16 24
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 16 16 16 17 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 18 16 24
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta1.hs" 16 18 16 19
+                          , SrcSpan "tests/examples/Vta1.hs" 16 20 16 21
+                          , SrcSpan "tests/examples/Vta1.hs" 16 23 16 24
+                          ]
+                      }
+                    Boxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 19 16 20
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 19 16 20
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 19 16 20
+                                , srcInfoPoints = []
+                                }
+                              "u"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 22 16 23
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 22 16 23
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 16 22 16 23
+                                , srcInfoPoints = []
+                                }
+                              "w"))
+                    ]))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 1 18 43
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 1 18 11
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 1 18 11
+                  , srcInfoPoints = []
+                  }
+                "answer_sig"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 12 18 43
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 18 12 18 13 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 43
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 41
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 35
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 30
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 24
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 24
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 14 18 24
+                                    , srcInfoPoints = []
+                                    }
+                                  "pairup_sig")))
+                         (TypeApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 25 18 30
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 18 25 18 26 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 26 18 30
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 26 18 30
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 26 18 30
+                                       , srcInfoPoints = []
+                                       }
+                                     "Bool")))))
+                      (TypeApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 31 18 35
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 18 31 18 32 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 32 18 35
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 32 18 35
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 32 18 35
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))))
+                   (Con
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 36 18 41
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 36 18 41
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 36 18 41
+                              , srcInfoPoints = []
+                              }
+                            "False"))))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 42 18 43
+                     , srcInfoPoints = []
+                     }
+                   (Int
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 18 42 18 43
+                        , srcInfoPoints = []
+                        }
+                      7
+                      "7"))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 1 21 35
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 1 21 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 1 21 12
+                  , srcInfoPoints = []
+                  }
+                "answer_read"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 13 21 35
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 21 13 21 14 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 15 21 35
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 15 21 19
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 15 21 19
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 15 21 19
+                           , srcInfoPoints = []
+                           }
+                         "show")))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 20 21 35
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 21 20 21 21
+                         , SrcSpan "tests/examples/Vta1.hs" 21 34 21 35
+                         ]
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 21 21 34
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 21 21 30
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 21 21 25
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 21 21 25
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 21 21 25
+                                    , srcInfoPoints = []
+                                    }
+                                  "read")))
+                         (TypeApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 26 21 30
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 21 26 21 27 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 27 21 30
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 27 21 30
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 27 21 30
+                                       , srcInfoPoints = []
+                                       }
+                                     "Int")))))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 31 21 34
+                           , srcInfoPoints = []
+                           }
+                         (String
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 21 31 21 34
+                              , srcInfoPoints = []
+                              }
+                            "3"
+                            "3"))))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 1 22 39
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 1 22 12
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 1 22 12
+                  , srcInfoPoints = []
+                  }
+                "answer_show"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 13 22 39
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 22 13 22 14 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 15 22 39
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 15 22 28
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 15 22 19
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 15 22 19
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 15 22 19
+                              , srcInfoPoints = []
+                              }
+                            "show")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 20 22 28
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 22 20 22 21 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 21 22 28
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 21 22 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 21 22 28
+                                 , srcInfoPoints = []
+                                 }
+                               "Integer")))))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 29 22 39
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 22 29 22 30
+                         , SrcSpan "tests/examples/Vta1.hs" 22 38 22 39
+                         ]
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 30 22 38
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 30 22 34
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 30 22 34
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 30 22 34
+                                 , srcInfoPoints = []
+                                 }
+                               "read")))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 35 22 38
+                           , srcInfoPoints = []
+                           }
+                         (String
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 22 35 22 38
+                              , srcInfoPoints = []
+                              }
+                            "5"
+                            "5"))))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 1 23 44
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 1 23 16
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 1 23 16
+                  , srcInfoPoints = []
+                  }
+                "answer_showread"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 17 23 44
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 23 17 23 18 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 19 23 44
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 19 23 28
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 19 23 23
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 19 23 23
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 19 23 23
+                              , srcInfoPoints = []
+                              }
+                            "show")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 24 23 28
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 23 24 23 25 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 25 23 28
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 25 23 28
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 25 23 28
+                                 , srcInfoPoints = []
+                                 }
+                               "Int")))))
+                (Paren
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 29 23 44
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 23 29 23 30
+                         , SrcSpan "tests/examples/Vta1.hs" 23 43 23 44
+                         ]
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 30 23 43
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 30 23 39
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 30 23 34
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 30 23 34
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 30 23 34
+                                    , srcInfoPoints = []
+                                    }
+                                  "read")))
+                         (TypeApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 35 23 39
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 23 35 23 36 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 36 23 39
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 36 23 39
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 36 23 39
+                                       , srcInfoPoints = []
+                                       }
+                                     "Int")))))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 40 23 43
+                           , srcInfoPoints = []
+                           }
+                         (String
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 23 40 23 43
+                              , srcInfoPoints = []
+                              }
+                            "7"
+                            "7"))))))
+          Nothing
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 1 25 23
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 1 25 23
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 1 25 8
+                   , srcInfoPoints = []
+                   }
+                 "intcons")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 9 25 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 9 25 10
+                       , srcInfoPoints = []
+                       }
+                     "a")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 11 25 23
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 25 11 25 12 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 13 25 23
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 13 25 21
+                         , srcInfoPoints = []
+                         }
+                       (Con
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 13 25 16
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Vta1.hs" 25 13 25 14
+                                , SrcSpan "tests/examples/Vta1.hs" 25 14 25 15
+                                , SrcSpan "tests/examples/Vta1.hs" 25 15 25 16
+                                ]
+                            }
+                          (Special
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 13 25 16
+                               , srcInfoPoints =
+                                   [ SrcSpan "tests/examples/Vta1.hs" 25 13 25 14
+                                   , SrcSpan "tests/examples/Vta1.hs" 25 14 25 15
+                                   , SrcSpan "tests/examples/Vta1.hs" 25 15 25 16
+                                   ]
+                               }
+                             (Cons
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 14 25 15
+                                  , srcInfoPoints = []
+                                  })))
+                       (TypeApp
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 17 25 21
+                            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 25 17 25 18 ]
+                            }
+                          (TyCon
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 18 25 21
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 18 25 21
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 18 25 21
+                                     , srcInfoPoints = []
+                                     }
+                                   "Int")))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 22 25 23
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 22 25 23
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 25 22 25 23
+                               , srcInfoPoints = []
+                               }
+                             "a")))))
+              Nothing
+          ]
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 1 27 34
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 1 27 34
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 1 27 8
+                   , srcInfoPoints = []
+                   }
+                 "intpair")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 9 27 10
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 9 27 10
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 11 27 12
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 11 27 12
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 13 27 34
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 27 13 27 14 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 34
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 32
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 30
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 15 27 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "pairup_sig")))
+                          (TypeApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 26 27 30
+                               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 27 26 27 27 ]
+                               }
+                             (TyCon
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 27 27 30
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 27 27 30
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 27 27 30
+                                        , srcInfoPoints = []
+                                        }
+                                      "Int")))))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 31 27 32
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 31 27 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 31 27 32
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 33 27 34
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 33 27 34
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 27 33 27 34
+                               , srcInfoPoints = []
+                               }
+                             "y")))))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 1 29 39
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 1 29 14
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 1 29 14
+                  , srcInfoPoints = []
+                  }
+                "answer_pairup"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 15 29 39
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 29 15 29 16 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 39
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 34
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 32
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 27
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 17 29 27
+                                 , srcInfoPoints = []
+                                 }
+                               "pairup_sig")))
+                      (TypeApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 28 29 32
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 29 28 29 29 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 29 29 32
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 29 29 32
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 29 29 32
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 33 29 34
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 33 29 34
+                           , srcInfoPoints = []
+                           }
+                         5
+                         "5")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 35 29 39
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 35 29 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 29 35 29 39
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 1 30 35
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 1 30 15
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 1 30 15
+                  , srcInfoPoints = []
+                  }
+                "answer_intpair"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 16 30 35
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 30 16 30 17 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 18 30 35
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 18 30 27
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 18 30 25
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 18 30 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 18 30 25
+                              , srcInfoPoints = []
+                              }
+                            "intpair")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 26 30 27
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 26 30 27
+                           , srcInfoPoints = []
+                           }
+                         1
+                         "1")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 28 30 35
+                     , srcInfoPoints = []
+                     }
+                   (String
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 30 28 30 35
+                        , srcInfoPoints = []
+                        }
+                      "hello"
+                      "hello"))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 1 31 30
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 1 31 15
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 1 31 15
+                  , srcInfoPoints = []
+                  }
+                "answer_intcons"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 16 31 30
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 31 16 31 17 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 18 31 30
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 18 31 27
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 18 31 25
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 18 31 25
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 18 31 25
+                              , srcInfoPoints = []
+                              }
+                            "intcons")))
+                   (Lit
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 26 31 27
+                        , srcInfoPoints = []
+                        }
+                      (Int
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 26 31 27
+                           , srcInfoPoints = []
+                           }
+                         7
+                         "7")))
+                (List
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 31 28 31 30
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 31 28 31 29
+                         , SrcSpan "tests/examples/Vta1.hs" 31 29 31 30
+                         ]
+                     }
+                   [])))
+          Nothing
+      , TypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 1 33 16
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Vta1.hs" 33 1 33 5
+                , SrcSpan "tests/examples/Vta1.hs" 33 6 33 12
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 13 33 16
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 13 33 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 13 33 14
+                     , srcInfoPoints = []
+                     }
+                   "F"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 15 33 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 33 15 33 16
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          Nothing
+          Nothing
+      , TypeInsDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 1 34 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Vta1.hs" 34 1 34 5
+                , SrcSpan "tests/examples/Vta1.hs" 34 6 34 14
+                , SrcSpan "tests/examples/Vta1.hs" 34 22 34 23
+                ]
+            }
+          (TyApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 15 34 21
+               , srcInfoPoints = []
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 15 34 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 15 34 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 15 34 16
+                        , srcInfoPoints = []
+                        }
+                      "F")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 17 34 21
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 17 34 21
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 17 34 21
+                        , srcInfoPoints = []
+                        }
+                      "Char"))))
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 24 34 28
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 24 34 28
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 34 24 34 28
+                     , srcInfoPoints = []
+                     }
+                   "Bool")))
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 1 36 14
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 36 3 36 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 1 36 2
+                , srcInfoPoints = []
+                }
+              "g"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 6 36 14
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 36 10 36 12 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 6 36 9
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 6 36 7
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 6 36 7
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 6 36 7
+                           , srcInfoPoints = []
+                           }
+                         "F")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 8 36 9
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 8 36 9
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 13 36 14
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 36 13 36 14
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 1 37 16
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 1 37 16
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 1 37 2
+                   , srcInfoPoints = []
+                   }
+                 "g")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 3 37 4
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 5 37 16
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 37 5 37 6 ]
+                   }
+                 (Var
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 7 37 16
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 7 37 16
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 37 7 37 16
+                            , srcInfoPoints = []
+                            }
+                          "undefined"))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 39 1 39 10
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 39 3 39 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 39 1 39 2
+                , srcInfoPoints = []
+                }
+              "f"
+          ]
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 39 6 39 10
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 39 6 39 10
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 39 6 39 10
+                     , srcInfoPoints = []
+                     }
+                   "Char")))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 1 40 11
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 1 40 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 1 40 2
+                  , srcInfoPoints = []
+                  }
+                "f"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 3 40 11
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 40 3 40 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 5 40 11
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 5 40 6
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 5 40 6
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 5 40 6
+                           , srcInfoPoints = []
+                           }
+                         "g")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 7 40 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 7 40 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 40 7 40 11
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 1 42 23
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 1 42 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 1 42 7
+                  , srcInfoPoints = []
+                  }
+                "answer"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 8 42 23
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 42 8 42 9 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 10 42 23
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 10 42 17
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 10 42 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 10 42 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 10 42 11
+                              , srcInfoPoints = []
+                              }
+                            "g")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 12 42 17
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 42 12 42 13 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 13 42 17
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 13 42 17
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 13 42 17
+                                 , srcInfoPoints = []
+                                 }
+                               "Char")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 18 42 23
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 18 42 23
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 42 18 42 23
+                           , srcInfoPoints = []
+                           }
+                         "False")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 1 44 54
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 44 9 44 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 1 44 8
+                , srcInfoPoints = []
+                }
+              "mapSame"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 12 44 54
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Vta1.hs" 44 12 44 18
+                   , SrcSpan "tests/examples/Vta1.hs" 44 20 44 21
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 19 44 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 19 44 20
+                         , srcInfoPoints = []
+                         }
+                       "b")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 22 44 54
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 44 41 44 43 ]
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 22 44 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 44 22 44 23
+                         , SrcSpan "tests/examples/Vta1.hs" 44 39 44 40
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 23 44 39
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 44 23 44 29
+                            , SrcSpan "tests/examples/Vta1.hs" 44 31 44 32
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 30 44 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 30 44 31
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         ])
+                      Nothing
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 33 44 39
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 44 35 44 37 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 33 44 34
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 33 44 34
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 38 44 39
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 38 44 39
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 44 44 54
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 44 48 44 50 ]
+                     }
+                   (TyList
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 44 44 47
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 44 44 44 45
+                            , SrcSpan "tests/examples/Vta1.hs" 44 46 44 47
+                            ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 45 44 46
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 45 44 46
+                              , srcInfoPoints = []
+                              }
+                            "b")))
+                   (TyList
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 51 44 54
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 44 51 44 52
+                            , SrcSpan "tests/examples/Vta1.hs" 44 53 44 54
+                            ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 52 44 53
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 44 52 44 53
+                              , srcInfoPoints = []
+                              }
+                            "b"))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 1 46 52
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 1 45 18
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 1 45 8
+                   , srcInfoPoints = []
+                   }
+                 "mapSame")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 9 45 10
+                    , srcInfoPoints = []
+                    }
+              , PList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 11 45 13
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Vta1.hs" 45 11 45 12
+                        , SrcSpan "tests/examples/Vta1.hs" 45 12 45 13
+                        ]
+                    }
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 14 45 18
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 45 14 45 15 ]
+                   }
+                 (List
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 45 16 45 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta1.hs" 45 16 45 17
+                          , SrcSpan "tests/examples/Vta1.hs" 45 17 45 18
+                          ]
+                      }
+                    []))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 1 46 52
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 1 46 8
+                   , srcInfoPoints = []
+                   }
+                 "mapSame")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 9 46 12
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 9 46 12
+                       , srcInfoPoints = []
+                       }
+                     "fun")
+              , PParen
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 13 46 19
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/Vta1.hs" 46 13 46 14
+                        , SrcSpan "tests/examples/Vta1.hs" 46 18 46 19
+                        ]
+                    }
+                  (PInfixApp
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 14 46 18
+                       , srcInfoPoints = []
+                       }
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 14 46 15
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 14 46 15
+                             , srcInfoPoints = []
+                             }
+                           "x"))
+                     (Special
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 15 46 16
+                          , srcInfoPoints = []
+                          }
+                        (Cons
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 15 46 16
+                             , srcInfoPoints = []
+                             }))
+                     (PVar
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 16 46 18
+                          , srcInfoPoints = []
+                          }
+                        (Ident
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 16 46 18
+                             , srcInfoPoints = []
+                             }
+                           "xs")))
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 20 46 52
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 46 20 46 21 ]
+                   }
+                 (InfixApp
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 52
+                      , srcInfoPoints = []
+                      }
+                    (App
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 30
+                         , srcInfoPoints = []
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 28
+                            , srcInfoPoints = []
+                            }
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 25
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 25
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 22 46 25
+                                     , srcInfoPoints = []
+                                     }
+                                   "fun")))
+                          (TypeApp
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 26 46 28
+                               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 46 26 46 27 ]
+                               }
+                             (TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 27 46 28
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 27 46 28
+                                     , srcInfoPoints = []
+                                     }
+                                   "b"))))
+                       (Var
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 29 46 30
+                            , srcInfoPoints = []
+                            }
+                          (UnQual
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 29 46 30
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 29 46 30
+                                  , srcInfoPoints = []
+                                  }
+                                "x"))))
+                    (QConOp
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 31 46 32
+                         , srcInfoPoints = []
+                         }
+                       (Special
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 31 46 32
+                            , srcInfoPoints = []
+                            }
+                          (Cons
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 31 46 32
+                               , srcInfoPoints = []
+                               })))
+                    (Paren
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 33 46 52
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Vta1.hs" 46 33 46 34
+                             , SrcSpan "tests/examples/Vta1.hs" 46 51 46 52
+                             ]
+                         }
+                       (App
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 34 46 51
+                            , srcInfoPoints = []
+                            }
+                          (App
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 34 46 48
+                               , srcInfoPoints = []
+                               }
+                             (App
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 34 46 44
+                                  , srcInfoPoints = []
+                                  }
+                                (Var
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 34 46 41
+                                     , srcInfoPoints = []
+                                     }
+                                   (UnQual
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 34 46 41
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Vta1.hs" 46 34 46 41
+                                           , srcInfoPoints = []
+                                           }
+                                         "mapSame")))
+                                (TypeApp
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 42 46 44
+                                     , srcInfoPoints =
+                                         [ SrcSpan "tests/examples/Vta1.hs" 46 42 46 43 ]
+                                     }
+                                   (TyVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 43 46 44
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Vta1.hs" 46 43 46 44
+                                           , srcInfoPoints = []
+                                           }
+                                         "b"))))
+                             (Var
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 45 46 48
+                                  , srcInfoPoints = []
+                                  }
+                                (UnQual
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 45 46 48
+                                     , srcInfoPoints = []
+                                     }
+                                   (Ident
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 45 46 48
+                                        , srcInfoPoints = []
+                                        }
+                                      "fun"))))
+                          (Var
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 49 46 51
+                               , srcInfoPoints = []
+                               }
+                             (UnQual
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 49 46 51
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 46 49 46 51
+                                     , srcInfoPoints = []
+                                     }
+                                   "xs")))))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 1 48 46
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 48 6 48 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 1 48 5
+                , srcInfoPoints = []
+                }
+              "pair"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 9 48 46
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Vta1.hs" 48 9 48 15
+                   , SrcSpan "tests/examples/Vta1.hs" 48 17 48 18
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 16 48 17
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 16 48 17
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 19 48 46
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 48 20 48 22 ]
+                  }
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 19 48 20
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 19 48 20
+                        , srcInfoPoints = []
+                        }
+                      "a"))
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 23 48 46
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 48 23 48 24
+                         , SrcSpan "tests/examples/Vta1.hs" 48 45 48 46
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 24 48 45
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 48 24 48 30
+                            , SrcSpan "tests/examples/Vta1.hs" 48 32 48 33
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 31 48 32
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 31 48 32
+                                  , srcInfoPoints = []
+                                  }
+                                "b")
+                         ])
+                      Nothing
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 34 48 45
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 48 36 48 38 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 34 48 35
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 34 48 35
+                                 , srcInfoPoints = []
+                                 }
+                               "b"))
+                         (TyTuple
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 39 48 45
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/Vta1.hs" 48 39 48 40
+                                  , SrcSpan "tests/examples/Vta1.hs" 48 41 48 42
+                                  , SrcSpan "tests/examples/Vta1.hs" 48 44 48 45
+                                  ]
+                              }
+                            Boxed
+                            [ TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 40 48 41
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 40 48 41
+                                     , srcInfoPoints = []
+                                     }
+                                   "a")
+                            , TyVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 43 48 44
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 48 43 48 44
+                                     , srcInfoPoints = []
+                                     }
+                                   "b")
+                            ]))))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 1 49 18
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 1 49 18
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 1 49 5
+                   , srcInfoPoints = []
+                   }
+                 "pair")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 6 49 7
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 6 49 7
+                       , srcInfoPoints = []
+                       }
+                     "x")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 8 49 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 8 49 9
+                       , srcInfoPoints = []
+                       }
+                     "y")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 10 49 18
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 49 10 49 11 ]
+                   }
+                 (Tuple
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 12 49 18
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta1.hs" 49 12 49 13
+                          , SrcSpan "tests/examples/Vta1.hs" 49 14 49 15
+                          , SrcSpan "tests/examples/Vta1.hs" 49 17 49 18
+                          ]
+                      }
+                    Boxed
+                    [ Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 13 49 14
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 13 49 14
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 13 49 14
+                                , srcInfoPoints = []
+                                }
+                              "x"))
+                    , Var
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 16 49 17
+                          , srcInfoPoints = []
+                          }
+                        (UnQual
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 16 49 17
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 49 16 49 17
+                                , srcInfoPoints = []
+                                }
+                              "y"))
+                    ]))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 1 51 27
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 1 51 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 1 51 2
+                  , srcInfoPoints = []
+                  }
+                "b"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 3 51 27
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 51 3 51 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 27
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 22
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 16
+                        , srcInfoPoints = []
+                        }
+                      (App
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 14
+                           , srcInfoPoints = []
+                           }
+                         (Var
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 9
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 9
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 5 51 9
+                                    , srcInfoPoints = []
+                                    }
+                                  "pair")))
+                         (TypeApp
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 10 51 14
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 51 10 51 11 ]
+                              }
+                            (TyCon
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 11 51 14
+                                 , srcInfoPoints = []
+                                 }
+                               (UnQual
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 11 51 14
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 11 51 14
+                                       , srcInfoPoints = []
+                                       }
+                                     "Int")))))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 15 51 16
+                           , srcInfoPoints = []
+                           }
+                         (Int
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 15 51 16
+                              , srcInfoPoints = []
+                              }
+                            3
+                            "3")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 17 51 22
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 51 17 51 18 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 18 51 22
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 18 51 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 18 51 22
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 23 51 27
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 23 51 27
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 51 23 51 27
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 1 52 23
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 1 52 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 1 52 2
+                  , srcInfoPoints = []
+                  }
+                "c"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 3 52 23
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 52 3 52 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 5 52 23
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 5 52 15
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 5 52 12
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 5 52 12
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 5 52 12
+                              , srcInfoPoints = []
+                              }
+                            "mapSame")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 13 52 15
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 13 52 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 13 52 15
+                              , srcInfoPoints = []
+                              }
+                            "id"))))
+                (List
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 16 52 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta1.hs" 52 16 52 17
+                         , SrcSpan "tests/examples/Vta1.hs" 52 18 52 19
+                         , SrcSpan "tests/examples/Vta1.hs" 52 20 52 21
+                         , SrcSpan "tests/examples/Vta1.hs" 52 22 52 23
+                         ]
+                     }
+                   [ Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 17 52 18
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 17 52 18
+                            , srcInfoPoints = []
+                            }
+                          1
+                          "1")
+                   , Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 19 52 20
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 19 52 20
+                            , srcInfoPoints = []
+                            }
+                          2
+                          "2")
+                   , Lit
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 21 52 22
+                         , srcInfoPoints = []
+                         }
+                       (Int
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 52 21 52 22
+                            , srcInfoPoints = []
+                            }
+                          3
+                          "3")
+                   ])))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 1 53 22
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 1 53 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 1 53 2
+                  , srcInfoPoints = []
+                  }
+                "d"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 3 53 22
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 53 3 53 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 22
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 17
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 11
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 9
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 9
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 5 53 9
+                                 , srcInfoPoints = []
+                                 }
+                               "pair")))
+                      (Lit
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 10 53 11
+                           , srcInfoPoints = []
+                           }
+                         (Int
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 10 53 11
+                              , srcInfoPoints = []
+                              }
+                            3
+                            "3")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 12 53 17
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 53 12 53 13 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 13 53 17
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 13 53 17
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 13 53 17
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 18 53 22
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 18 53 22
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 53 18 53 22
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 1 55 52
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 9 55 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 1 55 8
+                , srcInfoPoints = []
+                }
+              "pairnum"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 12 55 52
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Vta1.hs" 55 12 55 18
+                   , SrcSpan "tests/examples/Vta1.hs" 55 20 55 21
+                   ]
+               }
+             (Just
+                [ UnkindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 19 55 20
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 19 55 20
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                ])
+             (Just
+                (CxSingle
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]
+                        }
+                      (TyApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 25
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 25
+                                    , srcInfoPoints = []
+                                    }
+                                  "Num")))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 26 55 27
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 26 55 27
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))))))
+             (TyForall
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 31 55 52
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Vta1.hs" 55 31 55 37
+                      , SrcSpan "tests/examples/Vta1.hs" 55 39 55 40
+                      ]
+                  }
+                (Just
+                   [ UnkindedVar
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 38 55 39
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 38 55 39
+                            , srcInfoPoints = []
+                            }
+                          "b")
+                   ])
+                Nothing
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 41 55 52
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 43 55 45 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 41 55 42
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 41 55 42
+                           , srcInfoPoints = []
+                           }
+                         "b"))
+                   (TyTuple
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 46 55 52
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta1.hs" 55 46 55 47
+                            , SrcSpan "tests/examples/Vta1.hs" 55 48 55 49
+                            , SrcSpan "tests/examples/Vta1.hs" 55 51 55 52
+                            ]
+                        }
+                      Boxed
+                      [ TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 47 55 48
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 47 55 48
+                               , srcInfoPoints = []
+                               }
+                             "a")
+                      , TyVar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 50 55 51
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 50 55 51
+                               , srcInfoPoints = []
+                               }
+                             "b")
+                      ]))))
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 1 56 17
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 1 56 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 1 56 8
+                  , srcInfoPoints = []
+                  }
+                "pairnum"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 9 56 17
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 56 9 56 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 11 56 17
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 11 56 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 11 56 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 11 56 15
+                           , srcInfoPoints = []
+                           }
+                         "pair")))
+                (Lit
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 16 56 17
+                     , srcInfoPoints = []
+                     }
+                   (Int
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 56 16 56 17
+                        , srcInfoPoints = []
+                        }
+                      3
+                      "3"))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 1 58 73
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 1 58 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 1 58 2
+                  , srcInfoPoints = []
+                  }
+                "e"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 3 58 73
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 58 3 58 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 5 58 73
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 5 58 68
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 5 58 62
+                        , srcInfoPoints = []
+                        }
+                      (Paren
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 5 58 57
+                           , srcInfoPoints =
+                               [ SrcSpan "tests/examples/Vta1.hs" 58 5 58 6
+                               , SrcSpan "tests/examples/Vta1.hs" 58 56 58 57
+                               ]
+                           }
+                         (ExpTypeSig
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 6 58 56
+                              , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 58 13 58 15 ]
+                              }
+                            (App
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 6 58 12
+                                 , srcInfoPoints = []
+                                 }
+                               (Var
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 6 58 10
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 6 58 10
+                                       , srcInfoPoints = []
+                                       }
+                                     (Ident
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 58 6 58 10
+                                          , srcInfoPoints = []
+                                          }
+                                        "pair")))
+                               (Lit
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 11 58 12
+                                    , srcInfoPoints = []
+                                    }
+                                  (Int
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 11 58 12
+                                       , srcInfoPoints = []
+                                       }
+                                     3
+                                     "3")))
+                            (TyForall
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 16 58 56
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/Vta1.hs" 58 16 58 22
+                                     , SrcSpan "tests/examples/Vta1.hs" 58 24 58 25
+                                     ]
+                                 }
+                               (Just
+                                  [ UnkindedVar
+                                      SrcSpanInfo
+                                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 23 58 24
+                                        , srcInfoPoints = []
+                                        }
+                                      (Ident
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Vta1.hs" 58 23 58 24
+                                           , srcInfoPoints = []
+                                           }
+                                         "a")
+                                  ])
+                               (Just
+                                  (CxSingle
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 26 58 34
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]
+                                       }
+                                     (TypeA
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 58 26 58 34
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]
+                                          }
+                                        (TyApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 58 26 58 34
+                                             , srcInfoPoints =
+                                                 [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]
+                                             }
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta1.hs" 58 26 58 34
+                                                , srcInfoPoints =
+                                                    [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan "tests/examples/Vta1.hs" 58 26 58 29
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Vta1.hs" 58 26 58 29
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "Num")))
+                                           (TyVar
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta1.hs" 58 30 58 31
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan "tests/examples/Vta1.hs" 58 30 58 31
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "a"))))))
+                               (TyForall
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 35 58 56
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/Vta1.hs" 58 35 58 41
+                                        , SrcSpan "tests/examples/Vta1.hs" 58 43 58 44
+                                        ]
+                                    }
+                                  (Just
+                                     [ UnkindedVar
+                                         SrcSpanInfo
+                                           { srcInfoSpan =
+                                               SrcSpan "tests/examples/Vta1.hs" 58 42 58 43
+                                           , srcInfoPoints = []
+                                           }
+                                         (Ident
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Vta1.hs" 58 42 58 43
+                                              , srcInfoPoints = []
+                                              }
+                                            "b")
+                                     ])
+                                  Nothing
+                                  (TyFun
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 45 58 56
+                                       , srcInfoPoints =
+                                           [ SrcSpan "tests/examples/Vta1.hs" 58 47 58 49 ]
+                                       }
+                                     (TyVar
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 58 45 58 46
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta1.hs" 58 45 58 46
+                                             , srcInfoPoints = []
+                                             }
+                                           "b"))
+                                     (TyTuple
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta1.hs" 58 50 58 56
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/Vta1.hs" 58 50 58 51
+                                              , SrcSpan "tests/examples/Vta1.hs" 58 52 58 53
+                                              , SrcSpan "tests/examples/Vta1.hs" 58 55 58 56
+                                              ]
+                                          }
+                                        Boxed
+                                        [ TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Vta1.hs" 58 51 58 52
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Vta1.hs" 58 51 58 52
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "a")
+                                        , TyVar
+                                            SrcSpanInfo
+                                              { srcInfoSpan =
+                                                  SrcSpan "tests/examples/Vta1.hs" 58 54 58 55
+                                              , srcInfoPoints = []
+                                              }
+                                            (Ident
+                                               SrcSpanInfo
+                                                 { srcInfoSpan =
+                                                     SrcSpan "tests/examples/Vta1.hs" 58 54 58 55
+                                                 , srcInfoPoints = []
+                                                 }
+                                               "b")
+                                        ]))))))
+                      (TypeApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 58 58 62
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 58 58 58 59 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 59 58 62
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 59 58 62
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 59 58 62
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 63 58 68
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 58 63 58 64 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 64 58 68
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 64 58 68
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 64 58 68
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 69 58 73
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 69 58 73
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 58 69 58 73
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 1 59 28
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 1 59 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 1 59 2
+                  , srcInfoPoints = []
+                  }
+                "h"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 3 59 28
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 59 3 59 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 28
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 23
+                     , srcInfoPoints = []
+                     }
+                   (App
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 17
+                        , srcInfoPoints = []
+                        }
+                      (Var
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 12
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 12
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 5 59 12
+                                 , srcInfoPoints = []
+                                 }
+                               "pairnum")))
+                      (TypeApp
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 13 59 17
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 59 13 59 14 ]
+                           }
+                         (TyCon
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 14 59 17
+                              , srcInfoPoints = []
+                              }
+                            (UnQual
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 14 59 17
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 14 59 17
+                                    , srcInfoPoints = []
+                                    }
+                                  "Int")))))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 18 59 23
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 59 18 59 19 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 19 59 23
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 19 59 23
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 19 59 23
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 24 59 28
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 24 59 28
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 59 24 59 28
+                           , srcInfoPoints = []
+                           }
+                         "True")))))
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 1 61 29
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 61 26 61 27 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 1 61 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 6 61 25
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 6 61 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 6 61 11
+                     , srcInfoPoints = []
+                     }
+                   "First"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 12 61 25
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Vta1.hs" 61 12 61 13
+                      , SrcSpan "tests/examples/Vta1.hs" 61 15 61 17
+                      , SrcSpan "tests/examples/Vta1.hs" 61 24 61 25
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 13 61 14
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 18 61 24
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 61 20 61 22 ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 18 61 19
+                        , srcInfoPoints = []
+                        })
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 23 61 24
+                        , srcInfoPoints = []
+                        }))))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 28 61 29
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 28 61 29
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 28 61 29
+                      , srcInfoPoints = []
+                      }
+                    "F")
+                 [])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 1 62 24
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 62 21 62 22 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 1 62 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 6 62 20
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 6 62 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 6 62 11
+                     , srcInfoPoints = []
+                     }
+                   "Proxy"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 12 62 20
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Vta1.hs" 62 12 62 13
+                      , SrcSpan "tests/examples/Vta1.hs" 62 15 62 17
+                      , SrcSpan "tests/examples/Vta1.hs" 62 19 62 20
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 13 62 14
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 18 62 19
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 18 62 19
+                        , srcInfoPoints = []
+                        }
+                      "k"))))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 23 62 24
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 23 62 24
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 23 62 24
+                      , srcInfoPoints = []
+                      }
+                    "P")
+                 [])
+          ]
+          []
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 1 63 34
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 63 31 63 32 ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 1 63 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 6 63 30
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 6 63 11
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 6 63 11
+                     , srcInfoPoints = []
+                     }
+                   "Three"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 12 63 30
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/Vta1.hs" 63 12 63 13
+                      , SrcSpan "tests/examples/Vta1.hs" 63 15 63 17
+                      , SrcSpan "tests/examples/Vta1.hs" 63 29 63 30
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 13 63 14
+                     , srcInfoPoints = []
+                     }
+                   "a")
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 18 63 29
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 63 20 63 22 ]
+                     }
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 18 63 19
+                        , srcInfoPoints = []
+                        })
+                   (TyFun
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 23 63 29
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 63 25 63 27 ]
+                        }
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 23 63 24
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 23 63 24
+                              , srcInfoPoints = []
+                              }
+                            "k"))
+                      (TyStar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 28 63 29
+                           , srcInfoPoints = []
+                           })))))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 33 63 34
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 33 63 34
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 33 63 34
+                      , srcInfoPoints = []
+                      }
+                    "T")
+                 [])
+          ]
+          []
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 1 65 22
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 65 5 65 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 1 65 4
+                , srcInfoPoints = []
+                }
+              "foo"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 8 65 22
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 65 16 65 18 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 8 65 15
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 8 65 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 8 65 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 8 65 13
+                           , srcInfoPoints = []
+                           }
+                         "Proxy")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 14 65 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 14 65 15
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 19 65 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 19 65 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 65 19 65 22
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 1 66 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 1 66 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 1 66 4
+                   , srcInfoPoints = []
+                   }
+                 "foo")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 5 66 6
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 7 66 10
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 66 7 66 8 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 9 66 10
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 66 9 66 10
+                         , srcInfoPoints = []
+                         }
+                       0
+                       "0")))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 1 68 24
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 68 7 68 9 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 1 68 6
+                , srcInfoPoints = []
+                }
+              "first"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 10 68 24
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 68 18 68 20 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 10 68 17
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 10 68 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 10 68 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 10 68 15
+                           , srcInfoPoints = []
+                           }
+                         "First")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 16 68 17
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 16 68 17
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 21 68 24
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 21 68 24
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 68 21 68 24
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 1 69 12
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 1 69 12
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 1 69 6
+                   , srcInfoPoints = []
+                   }
+                 "first")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 7 69 8
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 9 69 12
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 69 9 69 10 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 11 69 12
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 69 11 69 12
+                         , srcInfoPoints = []
+                         }
+                       0
+                       "0")))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 1 71 16
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 1 71 6
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 1 71 6
+                  , srcInfoPoints = []
+                  }
+                "fTest"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 7 71 16
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 71 7 71 8 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 9 71 16
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 9 71 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 9 71 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 9 71 14
+                           , srcInfoPoints = []
+                           }
+                         "first")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 15 71 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 15 71 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 71 15 71 16
+                           , srcInfoPoints = []
+                           }
+                         "F")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 1 72 24
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 1 72 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 1 72 7
+                  , srcInfoPoints = []
+                  }
+                "fMaybe"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 8 72 24
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 72 8 72 9 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 10 72 24
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 10 72 22
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 10 72 15
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 10 72 15
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 10 72 15
+                              , srcInfoPoints = []
+                              }
+                            "first")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 16 72 22
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 72 16 72 17 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 17 72 22
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 17 72 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 17 72 22
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 23 72 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 23 72 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 72 23 72 24
+                           , srcInfoPoints = []
+                           }
+                         "F")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 1 74 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 1 74 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 1 74 5
+                  , srcInfoPoints = []
+                  }
+                "test"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 6 74 13
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 74 6 74 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 8 74 13
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 8 74 11
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 8 74 11
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 8 74 11
+                           , srcInfoPoints = []
+                           }
+                         "foo")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 12 74 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 12 74 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 74 12 74 13
+                           , srcInfoPoints = []
+                           }
+                         "P")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 1 75 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 1 75 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 1 75 4
+                  , srcInfoPoints = []
+                  }
+                "bar"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 5 75 18
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 75 5 75 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 7 75 18
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 7 75 16
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 7 75 10
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 7 75 10
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 7 75 10
+                              , srcInfoPoints = []
+                              }
+                            "foo")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 11 75 16
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 75 11 75 12 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 12 75 16
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 12 75 16
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 12 75 16
+                                 , srcInfoPoints = []
+                                 }
+                               "Bool")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 17 75 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 17 75 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 75 17 75 18
+                           , srcInfoPoints = []
+                           }
+                         "P")))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 1 77 22
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 77 5 77 7 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 1 77 4
+                , srcInfoPoints = []
+                }
+              "too"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 8 77 22
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 77 16 77 18 ]
+               }
+             (TyApp
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 8 77 15
+                  , srcInfoPoints = []
+                  }
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 8 77 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 8 77 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 8 77 13
+                           , srcInfoPoints = []
+                           }
+                         "Three")))
+                (TyVar
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 14 77 15
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 14 77 15
+                        , srcInfoPoints = []
+                        }
+                      "a")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 19 77 22
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 19 77 22
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 77 19 77 22
+                        , srcInfoPoints = []
+                        }
+                      "Int"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 1 78 10
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 1 78 10
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 1 78 4
+                   , srcInfoPoints = []
+                   }
+                 "too")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 5 78 6
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 7 78 10
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 78 7 78 8 ]
+                   }
+                 (Lit
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 9 78 10
+                      , srcInfoPoints = []
+                      }
+                    (Int
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 78 9 78 10
+                         , srcInfoPoints = []
+                         }
+                       3
+                       "3")))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 1 80 18
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 1 80 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 1 80 10
+                  , srcInfoPoints = []
+                  }
+                "threeBase"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 11 80 18
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 80 11 80 12 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 13 80 18
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 13 80 16
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 13 80 16
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 13 80 16
+                           , srcInfoPoints = []
+                           }
+                         "too")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 17 80 18
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 17 80 18
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 80 17 80 18
+                           , srcInfoPoints = []
+                           }
+                         "T")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 1 81 24
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 1 81 8
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 1 81 8
+                  , srcInfoPoints = []
+                  }
+                "threeOk"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 9 81 24
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 81 9 81 10 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 11 81 24
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 11 81 22
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 11 81 14
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 11 81 14
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 11 81 14
+                              , srcInfoPoints = []
+                              }
+                            "too")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 15 81 22
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 81 15 81 16 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 16 81 22
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 16 81 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 16 81 22
+                                 , srcInfoPoints = []
+                                 }
+                               "Either")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 23 81 24
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 23 81 24
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 81 23 81 24
+                           , srcInfoPoints = []
+                           }
+                         "T")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 1 83 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 1 83 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 1 83 5
+                  , srcInfoPoints = []
+                  }
+                "blah"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 6 83 20
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 83 6 83 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 8 83 20
+                  , srcInfoPoints = []
+                  }
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 8 83 15
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 8 83 15
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 8 83 15
+                           , srcInfoPoints = []
+                           }
+                         "Nothing")))
+                (TypeApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 16 83 20
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 83 16 83 17 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 17 83 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 17 83 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 83 17 83 20
+                              , srcInfoPoints = []
+                              }
+                            "Int"))))))
+          Nothing
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 1 85 61
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 85 11 85 12 ]
+            }
+          (NewType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 1 85 8
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 9 85 10
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 9 85 10
+                  , srcInfoPoints = []
+                  }
+                "N"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 13 85 61
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/Vta1.hs" 85 17 85 18
+                    , SrcSpan "tests/examples/Vta1.hs" 85 60 85 61
+                    ]
+                }
+              Nothing
+              Nothing
+              (RecDecl
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 13 85 61
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/Vta1.hs" 85 17 85 18
+                       , SrcSpan "tests/examples/Vta1.hs" 85 60 85 61
+                       ]
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 13 85 16
+                      , srcInfoPoints = []
+                      }
+                    "MkN")
+                 [ FieldDecl
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 19 85 59
+                       , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 85 25 85 27 ]
+                       }
+                     [ Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 19 85 24
+                           , srcInfoPoints = []
+                           }
+                         "unMkN"
+                     ]
+                     (TyForall
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 28 85 59
+                          , srcInfoPoints =
+                              [ SrcSpan "tests/examples/Vta1.hs" 85 28 85 34
+                              , SrcSpan "tests/examples/Vta1.hs" 85 36 85 37
+                              ]
+                          }
+                        (Just
+                           [ UnkindedVar
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 35 85 36
+                                 , srcInfoPoints = []
+                                 }
+                               (Ident
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 35 85 36
+                                    , srcInfoPoints = []
+                                    }
+                                  "a")
+                           ])
+                        (Just
+                           (CxSingle
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47
+                                , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]
+                                }
+                              (TypeA
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]
+                                   }
+                                 (TyApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Vta1.hs" 85 38 85 47
+                                         , srcInfoPoints =
+                                             [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Vta1.hs" 85 38 85 42
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Vta1.hs" 85 38 85 42
+                                               , srcInfoPoints = []
+                                               }
+                                             "Show")))
+                                    (TyVar
+                                       SrcSpanInfo
+                                         { srcInfoSpan =
+                                             SrcSpan "tests/examples/Vta1.hs" 85 43 85 44
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Vta1.hs" 85 43 85 44
+                                            , srcInfoPoints = []
+                                            }
+                                          "a"))))))
+                        (TyFun
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 48 85 59
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 85 50 85 52 ]
+                             }
+                           (TyVar
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 48 85 49
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 48 85 49
+                                   , srcInfoPoints = []
+                                   }
+                                 "a"))
+                           (TyCon
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 53 85 59
+                                , srcInfoPoints = []
+                                }
+                              (UnQual
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 53 85 59
+                                   , srcInfoPoints = []
+                                   }
+                                 (Ident
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 53 85 59
+                                      , srcInfoPoints = []
+                                      }
+                                    "String")))))
+                 ])
+          ]
+          []
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 1 87 13
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 1 87 2
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 1 87 2
+                  , srcInfoPoints = []
+                  }
+                "n"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 3 87 13
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 87 3 87 4 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 5 87 13
+                  , srcInfoPoints = []
+                  }
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 5 87 8
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 5 87 8
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 5 87 8
+                           , srcInfoPoints = []
+                           }
+                         "MkN")))
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 9 87 13
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 9 87 13
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 87 9 87 13
+                           , srcInfoPoints = []
+                           }
+                         "show")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 1 89 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 1 89 4
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 1 89 4
+                  , srcInfoPoints = []
+                  }
+                "boo"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 5 89 20
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 89 5 89 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 7 89 20
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 7 89 14
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 7 89 12
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 7 89 12
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 7 89 12
+                              , srcInfoPoints = []
+                              }
+                            "unMkN")))
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 13 89 14
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 13 89 14
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 13 89 14
+                              , srcInfoPoints = []
+                              }
+                            "n"))))
+                (TypeApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 15 89 20
+                     , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 89 15 89 16 ]
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 16 89 20
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 16 89 20
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 89 16 89 20
+                              , srcInfoPoints = []
+                              }
+                            "Bool"))))))
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 1 91 47
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 91 6 91 8 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 1 91 5
+                , srcInfoPoints = []
+                }
+              "boo2"
+          ]
+          (TyForall
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 9 91 47
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/Vta1.hs" 91 9 91 15
+                   , SrcSpan "tests/examples/Vta1.hs" 91 30 91 31
+                   ]
+               }
+             (Just
+                [ KindedVar
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 16 91 29
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta1.hs" 91 16 91 17
+                          , SrcSpan "tests/examples/Vta1.hs" 91 19 91 21
+                          , SrcSpan "tests/examples/Vta1.hs" 91 28 91 29
+                          ]
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 17 91 18
+                         , srcInfoPoints = []
+                         }
+                       "a")
+                    (TyFun
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 22 91 28
+                         , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 91 24 91 26 ]
+                         }
+                       (TyStar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 22 91 23
+                            , srcInfoPoints = []
+                            })
+                       (TyStar
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 27 91 28
+                            , srcInfoPoints = []
+                            }))
+                ])
+             Nothing
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 32 91 47
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 91 40 91 42 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 32 91 39
+                     , srcInfoPoints = []
+                     }
+                   (TyCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 32 91 37
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 32 91 37
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 32 91 37
+                              , srcInfoPoints = []
+                              }
+                            "Proxy")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 38 91 39
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 38 91 39
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 43 91 47
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 43 91 47
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 43 91 47
+                           , srcInfoPoints = []
+                           }
+                         "Bool")))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 1 92 15
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 1 92 15
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 1 92 5
+                   , srcInfoPoints = []
+                   }
+                 "boo2")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 6 92 7
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 8 92 15
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 92 8 92 9 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 10 92 15
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 10 92 15
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 92 10 92 15
+                            , srcInfoPoints = []
+                            }
+                          "False"))))
+              Nothing
+          ]
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 1 94 14
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 1 94 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 1 94 5
+                  , srcInfoPoints = []
+                  }
+                "base"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 6 94 14
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 94 6 94 7 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 8 94 14
+                  , srcInfoPoints = []
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 8 94 12
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 8 94 12
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 8 94 12
+                           , srcInfoPoints = []
+                           }
+                         "boo2")))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 13 94 14
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 13 94 14
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 94 13 94 14
+                           , srcInfoPoints = []
+                           }
+                         "P")))))
+          Nothing
+      , PatBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 1 95 20
+            , srcInfoPoints = []
+            }
+          (PVar
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 1 95 5
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 1 95 5
+                  , srcInfoPoints = []
+                  }
+                "bar'"))
+          (UnGuardedRhs
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 5 95 20
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 95 5 95 6 ]
+               }
+             (App
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 7 95 20
+                  , srcInfoPoints = []
+                  }
+                (App
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 7 95 18
+                     , srcInfoPoints = []
+                     }
+                   (Var
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 7 95 11
+                        , srcInfoPoints = []
+                        }
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 7 95 11
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 7 95 11
+                              , srcInfoPoints = []
+                              }
+                            "boo2")))
+                   (TypeApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 12 95 18
+                        , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 95 12 95 13 ]
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 13 95 18
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 13 95 18
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 13 95 18
+                                 , srcInfoPoints = []
+                                 }
+                               "Maybe")))))
+                (Con
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 19 95 20
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 19 95 20
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 95 19 95 20
+                           , srcInfoPoints = []
+                           }
+                         "P")))))
+          Nothing
+      ]
+  , [ Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 4 1 4 40)
+        " tests about visible type application"
+    , Comment False (SrcSpan "tests/examples/Vta1.hs" 18 44 18 46) ""
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 19 1 19 29)
+        " (False, 7) :: (Bool, Int)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 21 36 21 52)
+        " \"3\" :: String"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 22 40 22 56)
+        " \"5\" :: String"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 23 45 23 61)
+        " \"7\" :: String"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 29 40 29 67)
+        " (5, True) :: (Int, Bool)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 30 36 30 68)
+        " (1, \"hello\") :: (Int, String)"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 31 36 31 51)
+        " [7] :: [Int]"
+    , Comment
+        False
+        (SrcSpan "tests/examples/Vta1.hs" 62 25 62 77)
+        " This expands to P (kind variable) (type variable)"
+    , Comment
+        False (SrcSpan "tests/examples/Vta1.hs" 75 19 75 33) " should work"
+    , Comment
+        False (SrcSpan "tests/examples/Vta1.hs" 95 21 95 35) " should work"
+    ]
+  )
diff --git a/tests/examples/Vta1.hs.prettyparser.golden b/tests/examples/Vta1.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta1.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Vta1.hs.prettyprinter.golden b/tests/examples/Vta1.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta1.hs.prettyprinter.golden
@@ -0,0 +1,79 @@
+{-# LANGUAGE TypeApplications, ScopedTypeVariables, PolyKinds,
+  TypeFamilies, RankNTypes, FlexibleContexts #-}
+module Vta1 where
+
+quad :: a -> b -> c -> d -> (a, b, c, d)
+quad = (,,,)
+silly = quad @_ @Bool @Char @_ 5 True 'a' "Hello"
+pairup_nosig x y = (x, y)
+
+pairup_sig :: a -> b -> (a, b)
+pairup_sig u w = (u, w)
+answer_sig = pairup_sig @Bool @Int False 7
+answer_read = show (read @Int "3")
+answer_show = show @Integer (read "5")
+answer_showread = show @Int (read @Int "7")
+intcons a = (:) @Int a
+intpair x y = pairup_sig @Int x y
+answer_pairup = pairup_sig @Int 5 True
+answer_intpair = intpair 1 "hello"
+answer_intcons = intcons 7 []
+
+type family F a
+
+type instance F Char = Bool
+
+g :: F a -> a
+g _ = undefined
+
+f :: Char
+f = g True
+answer = g @Char False
+
+mapSame :: forall b . (forall a . a -> a) -> [b] -> [b]
+mapSame _ [] = []
+mapSame fun (x : xs) = fun @b x : (mapSame @b fun xs)
+
+pair :: forall a . a -> (forall b . b -> (a, b))
+pair x y = (x, y)
+b = pair @Int 3 @Bool True
+c = mapSame id [1, 2, 3]
+d = pair 3 @Bool True
+
+pairnum :: forall a . Num a => forall b . b -> (a, b)
+pairnum = pair 3
+e = (pair 3 :: forall a . Num a => forall b . b -> (a, b)) @Int
+      @Bool
+      True
+h = pairnum @Int @Bool True
+
+data First (a :: * -> *) = F
+
+data Proxy (a :: k) = P
+
+data Three (a :: * -> k -> *) = T
+
+foo :: Proxy a -> Int
+foo _ = 0
+
+first :: First a -> Int
+first _ = 0
+fTest = first F
+fMaybe = first @Maybe F
+test = foo P
+bar = foo @Bool P
+
+too :: Three a -> Int
+too _ = 3
+threeBase = too T
+threeOk = too @Either T
+blah = Nothing @Int
+
+newtype N = MkN{unMkN :: forall a . Show a => a -> String}
+n = MkN show
+boo = unMkN n @Bool
+
+boo2 :: forall (a :: * -> *) . Proxy a -> Bool
+boo2 _ = False
+base = boo2 P
+bar' = boo2 @Maybe P
diff --git a/tests/examples/Vta2.hs b/tests/examples/Vta2.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta2.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE RankNTypes, TypeApplications #-}
+
+
+module Vta2 where
+
+checkIf :: Bool -> (forall a. a -> a) -> (Bool, Int)
+checkIf _ = if True
+            then \f -> (f True, f 5)
+            else \f -> (f False, f @Int 3)
+
+checkCase :: Bool -> (forall a. a -> a) -> (Bool, Int)
+checkCase _ = case True of
+                True -> \f -> (f True, f 5)
+                False -> \f -> (f False, f @Int 3)
diff --git a/tests/examples/Vta2.hs.exactprinter.golden b/tests/examples/Vta2.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta2.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Vta2.hs.parser.golden b/tests/examples/Vta2.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta2.hs.parser.golden
@@ -0,0 +1,992 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 1 1 15 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/Vta2.hs" 1 1 1 1
+            , SrcSpan "tests/examples/Vta2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Vta2.hs" 4 1 4 1
+            , SrcSpan "tests/examples/Vta2.hs" 6 1 6 1
+            , SrcSpan "tests/examples/Vta2.hs" 7 1 7 1
+            , SrcSpan "tests/examples/Vta2.hs" 11 1 11 1
+            , SrcSpan "tests/examples/Vta2.hs" 12 1 12 1
+            , SrcSpan "tests/examples/Vta2.hs" 15 1 15 1
+            , SrcSpan "tests/examples/Vta2.hs" 15 1 15 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 4 1 4 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/Vta2.hs" 4 1 4 7
+                  , SrcSpan "tests/examples/Vta2.hs" 4 13 4 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 4 8 4 12
+                 , srcInfoPoints = []
+                 }
+               "Vta2")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 1 1 1 46
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/Vta2.hs" 1 1 1 13
+                , SrcSpan "tests/examples/Vta2.hs" 1 24 1 25
+                , SrcSpan "tests/examples/Vta2.hs" 1 43 1 46
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 1 26 1 42
+                , srcInfoPoints = []
+                }
+              "TypeApplications"
+          ]
+      ]
+      []
+      [ TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 1 6 53
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 6 9 6 11 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 1 6 8
+                , srcInfoPoints = []
+                }
+              "checkIf"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 12 6 53
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 6 17 6 19 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 12 6 16
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 12 6 16
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 12 6 16
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 20 6 53
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 6 39 6 41 ]
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 20 6 38
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta2.hs" 6 20 6 21
+                         , SrcSpan "tests/examples/Vta2.hs" 6 37 6 38
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 21 6 37
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta2.hs" 6 21 6 27
+                            , SrcSpan "tests/examples/Vta2.hs" 6 29 6 30
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 28 6 29
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 28 6 29
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         ])
+                      Nothing
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 31 6 37
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 6 33 6 35 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 31 6 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 31 6 32
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 36 6 37
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 36 6 37
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 42 6 53
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta2.hs" 6 42 6 43
+                         , SrcSpan "tests/examples/Vta2.hs" 6 47 6 48
+                         , SrcSpan "tests/examples/Vta2.hs" 6 52 6 53
+                         ]
+                     }
+                   Boxed
+                   [ TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 43 6 47
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 43 6 47
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 43 6 47
+                               , srcInfoPoints = []
+                               }
+                             "Bool"))
+                   , TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 49 6 52
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 49 6 52
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 6 49 6 52
+                               , srcInfoPoints = []
+                               }
+                             "Int"))
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 1 9 43
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 1 9 43
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 1 7 8
+                   , srcInfoPoints = []
+                   }
+                 "checkIf")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 9 7 10
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 11 9 43
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 7 11 7 12 ]
+                   }
+                 (If
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 13 9 43
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta2.hs" 7 13 7 15
+                          , SrcSpan "tests/examples/Vta2.hs" 8 13 8 17
+                          , SrcSpan "tests/examples/Vta2.hs" 9 13 9 17
+                          ]
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 16 7 20
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 16 7 20
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 7 16 7 20
+                               , srcInfoPoints = []
+                               }
+                             "True")))
+                    (Lambda
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 18 8 37
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Vta2.hs" 8 18 8 19
+                             , SrcSpan "tests/examples/Vta2.hs" 8 21 8 23
+                             ]
+                         }
+                       [ PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 19 8 20
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 19 8 20
+                                , srcInfoPoints = []
+                                }
+                              "f")
+                       ]
+                       (Tuple
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 24 8 37
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Vta2.hs" 8 24 8 25
+                                , SrcSpan "tests/examples/Vta2.hs" 8 31 8 32
+                                , SrcSpan "tests/examples/Vta2.hs" 8 36 8 37
+                                ]
+                            }
+                          Boxed
+                          [ App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 25 8 31
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 25 8 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 25 8 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 25 8 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 27 8 31
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 27 8 31
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 27 8 31
+                                         , srcInfoPoints = []
+                                         }
+                                       "True")))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 33 8 36
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 33 8 34
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 33 8 34
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 33 8 34
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 35 8 36
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 8 35 8 36
+                                      , srcInfoPoints = []
+                                      }
+                                    5
+                                    "5"))
+                          ]))
+                    (Lambda
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 18 9 43
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/Vta2.hs" 9 18 9 19
+                             , SrcSpan "tests/examples/Vta2.hs" 9 21 9 23
+                             ]
+                         }
+                       [ PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 19 9 20
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 19 9 20
+                                , srcInfoPoints = []
+                                }
+                              "f")
+                       ]
+                       (Tuple
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 24 9 43
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/Vta2.hs" 9 24 9 25
+                                , SrcSpan "tests/examples/Vta2.hs" 9 32 9 33
+                                , SrcSpan "tests/examples/Vta2.hs" 9 42 9 43
+                                ]
+                            }
+                          Boxed
+                          [ App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 25 9 32
+                                , srcInfoPoints = []
+                                }
+                              (Var
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 25 9 26
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 25 9 26
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 25 9 26
+                                         , srcInfoPoints = []
+                                         }
+                                       "f")))
+                              (Con
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 27 9 32
+                                   , srcInfoPoints = []
+                                   }
+                                 (UnQual
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 27 9 32
+                                      , srcInfoPoints = []
+                                      }
+                                    (Ident
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 27 9 32
+                                         , srcInfoPoints = []
+                                         }
+                                       "False")))
+                          , App
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 34 9 42
+                                , srcInfoPoints = []
+                                }
+                              (App
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 34 9 40
+                                   , srcInfoPoints = []
+                                   }
+                                 (Var
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 34 9 35
+                                      , srcInfoPoints = []
+                                      }
+                                    (UnQual
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 34 9 35
+                                         , srcInfoPoints = []
+                                         }
+                                       (Ident
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Vta2.hs" 9 34 9 35
+                                            , srcInfoPoints = []
+                                            }
+                                          "f")))
+                                 (TypeApp
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 36 9 40
+                                      , srcInfoPoints =
+                                          [ SrcSpan "tests/examples/Vta2.hs" 9 36 9 37 ]
+                                      }
+                                    (TyCon
+                                       SrcSpanInfo
+                                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 37 9 40
+                                         , srcInfoPoints = []
+                                         }
+                                       (UnQual
+                                          SrcSpanInfo
+                                            { srcInfoSpan =
+                                                SrcSpan "tests/examples/Vta2.hs" 9 37 9 40
+                                            , srcInfoPoints = []
+                                            }
+                                          (Ident
+                                             SrcSpanInfo
+                                               { srcInfoSpan =
+                                                   SrcSpan "tests/examples/Vta2.hs" 9 37 9 40
+                                               , srcInfoPoints = []
+                                               }
+                                             "Int")))))
+                              (Lit
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 41 9 42
+                                   , srcInfoPoints = []
+                                   }
+                                 (Int
+                                    SrcSpanInfo
+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 9 41 9 42
+                                      , srcInfoPoints = []
+                                      }
+                                    3
+                                    "3"))
+                          ]))))
+              Nothing
+          ]
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 1 11 55
+            , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 11 11 11 13 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 1 11 10
+                , srcInfoPoints = []
+                }
+              "checkCase"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 14 11 55
+               , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 11 19 11 21 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 14 11 18
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 14 11 18
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 14 11 18
+                        , srcInfoPoints = []
+                        }
+                      "Bool")))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 22 11 55
+                  , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 11 41 11 43 ]
+                  }
+                (TyParen
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 22 11 40
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta2.hs" 11 22 11 23
+                         , SrcSpan "tests/examples/Vta2.hs" 11 39 11 40
+                         ]
+                     }
+                   (TyForall
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 23 11 39
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/Vta2.hs" 11 23 11 29
+                            , SrcSpan "tests/examples/Vta2.hs" 11 31 11 32
+                            ]
+                        }
+                      (Just
+                         [ UnkindedVar
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 30 11 31
+                               , srcInfoPoints = []
+                               }
+                             (Ident
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 30 11 31
+                                  , srcInfoPoints = []
+                                  }
+                                "a")
+                         ])
+                      Nothing
+                      (TyFun
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 33 11 39
+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 11 35 11 37 ]
+                           }
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 33 11 34
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 33 11 34
+                                 , srcInfoPoints = []
+                                 }
+                               "a"))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 38 11 39
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 38 11 39
+                                 , srcInfoPoints = []
+                                 }
+                               "a")))))
+                (TyTuple
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 44 11 55
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/Vta2.hs" 11 44 11 45
+                         , SrcSpan "tests/examples/Vta2.hs" 11 49 11 50
+                         , SrcSpan "tests/examples/Vta2.hs" 11 54 11 55
+                         ]
+                     }
+                   Boxed
+                   [ TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 45 11 49
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 45 11 49
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 45 11 49
+                               , srcInfoPoints = []
+                               }
+                             "Bool"))
+                   , TyCon
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 51 11 54
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 51 11 54
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 11 51 11 54
+                               , srcInfoPoints = []
+                               }
+                             "Int"))
+                   ])))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 1 14 51
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 1 14 51
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 1 12 10
+                   , srcInfoPoints = []
+                   }
+                 "checkCase")
+              [ PWildCard
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 11 12 12
+                    , srcInfoPoints = []
+                    }
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 13 14 51
+                   , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 12 13 12 14 ]
+                   }
+                 (Case
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 15 14 51
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/Vta2.hs" 12 15 12 19
+                          , SrcSpan "tests/examples/Vta2.hs" 12 25 12 27
+                          , SrcSpan "tests/examples/Vta2.hs" 13 17 13 17
+                          , SrcSpan "tests/examples/Vta2.hs" 14 17 14 17
+                          , SrcSpan "tests/examples/Vta2.hs" 15 1 15 0
+                          ]
+                      }
+                    (Con
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 20 12 24
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 20 12 24
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 12 20 12 24
+                               , srcInfoPoints = []
+                               }
+                             "True")))
+                    [ Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 17 13 44
+                          , srcInfoPoints = []
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 17 13 21
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 17 13 21
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 17 13 21
+                                   , srcInfoPoints = []
+                                   }
+                                 "True"))
+                           [])
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 22 13 44
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 13 22 13 24 ]
+                             }
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 25 13 44
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Vta2.hs" 13 25 13 26
+                                    , SrcSpan "tests/examples/Vta2.hs" 13 28 13 30
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 26 13 27
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 26 13 27
+                                       , srcInfoPoints = []
+                                       }
+                                     "f")
+                              ]
+                              (Tuple
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 31 13 44
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Vta2.hs" 13 31 13 32
+                                       , SrcSpan "tests/examples/Vta2.hs" 13 38 13 39
+                                       , SrcSpan "tests/examples/Vta2.hs" 13 43 13 44
+                                       ]
+                                   }
+                                 Boxed
+                                 [ App
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 32 13 38
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 13 32 13 33
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 13 32 13 33
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 13 32 13 33
+                                                , srcInfoPoints = []
+                                                }
+                                              "f")))
+                                     (Con
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 13 34 13 38
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 13 34 13 38
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 13 34 13 38
+                                                , srcInfoPoints = []
+                                                }
+                                              "True")))
+                                 , App
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 13 40 13 43
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 13 40 13 41
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 13 40 13 41
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 13 40 13 41
+                                                , srcInfoPoints = []
+                                                }
+                                              "f")))
+                                     (Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 13 42 13 43
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 13 42 13 43
+                                             , srcInfoPoints = []
+                                             }
+                                           5
+                                           "5"))
+                                 ])))
+                        Nothing
+                    , Alt
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 17 14 51
+                          , srcInfoPoints = []
+                          }
+                        (PApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 17 14 22
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 17 14 22
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 17 14 22
+                                   , srcInfoPoints = []
+                                   }
+                                 "False"))
+                           [])
+                        (UnGuardedRhs
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 23 14 51
+                             , srcInfoPoints = [ SrcSpan "tests/examples/Vta2.hs" 14 23 14 25 ]
+                             }
+                           (Lambda
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 26 14 51
+                                , srcInfoPoints =
+                                    [ SrcSpan "tests/examples/Vta2.hs" 14 26 14 27
+                                    , SrcSpan "tests/examples/Vta2.hs" 14 29 14 31
+                                    ]
+                                }
+                              [ PVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 27 14 28
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 27 14 28
+                                       , srcInfoPoints = []
+                                       }
+                                     "f")
+                              ]
+                              (Tuple
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 32 14 51
+                                   , srcInfoPoints =
+                                       [ SrcSpan "tests/examples/Vta2.hs" 14 32 14 33
+                                       , SrcSpan "tests/examples/Vta2.hs" 14 40 14 41
+                                       , SrcSpan "tests/examples/Vta2.hs" 14 50 14 51
+                                       ]
+                                   }
+                                 Boxed
+                                 [ App
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 33 14 40
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 14 33 14 34
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 14 33 14 34
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 14 33 14 34
+                                                , srcInfoPoints = []
+                                                }
+                                              "f")))
+                                     (Con
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 14 35 14 40
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 14 35 14 40
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 14 35 14 40
+                                                , srcInfoPoints = []
+                                                }
+                                              "False")))
+                                 , App
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/Vta2.hs" 14 42 14 50
+                                       , srcInfoPoints = []
+                                       }
+                                     (App
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 14 42 14 48
+                                          , srcInfoPoints = []
+                                          }
+                                        (Var
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 14 42 14 43
+                                             , srcInfoPoints = []
+                                             }
+                                           (UnQual
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 14 42 14 43
+                                                , srcInfoPoints = []
+                                                }
+                                              (Ident
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan "tests/examples/Vta2.hs" 14 42 14 43
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 "f")))
+                                        (TypeApp
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 14 44 14 48
+                                             , srcInfoPoints =
+                                                 [ SrcSpan "tests/examples/Vta2.hs" 14 44 14 45 ]
+                                             }
+                                           (TyCon
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/Vta2.hs" 14 45 14 48
+                                                , srcInfoPoints = []
+                                                }
+                                              (UnQual
+                                                 SrcSpanInfo
+                                                   { srcInfoSpan =
+                                                       SrcSpan "tests/examples/Vta2.hs" 14 45 14 48
+                                                   , srcInfoPoints = []
+                                                   }
+                                                 (Ident
+                                                    SrcSpanInfo
+                                                      { srcInfoSpan =
+                                                          SrcSpan
+                                                            "tests/examples/Vta2.hs" 14 45 14 48
+                                                      , srcInfoPoints = []
+                                                      }
+                                                    "Int")))))
+                                     (Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/Vta2.hs" 14 49 14 50
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/Vta2.hs" 14 49 14 50
+                                             , srcInfoPoints = []
+                                             }
+                                           3
+                                           "3"))
+                                 ])))
+                        Nothing
+                    ]))
+              Nothing
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/Vta2.hs.prettyparser.golden b/tests/examples/Vta2.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta2.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/Vta2.hs.prettyprinter.golden b/tests/examples/Vta2.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/Vta2.hs.prettyprinter.golden
@@ -0,0 +1,12 @@
+{-# LANGUAGE RankNTypes, TypeApplications #-}
+module Vta2 where
+
+checkIf :: Bool -> (forall a . a -> a) -> (Bool, Int)
+checkIf _
+  = if True then \ f -> (f True, f 5) else \ f -> (f False, f @Int 3)
+
+checkCase :: Bool -> (forall a . a -> a) -> (Bool, Int)
+checkCase _
+  = case True of
+        True -> \ f -> (f True, f 5)
+        False -> \ f -> (f False, f @Int 3)
diff --git a/tests/examples/WhereBlock.hs.parser.golden b/tests/examples/WhereBlock.hs.parser.golden
--- a/tests/examples/WhereBlock.hs.parser.golden
+++ b/tests/examples/WhereBlock.hs.parser.golden
@@ -1,1 +1,299 @@
-ParseOk (Module (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 4 1, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1,SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1,SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1,SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 1,SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 1]}) Nothing [] [] [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 3 32, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 2 2 2 7]}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 3 32, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 2 2 2 7]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 5, srcInfoPoints = []}) "hash") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 6 1 9, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 6 1 9, srcInfoPoints = []}) "ptr"),PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 10 1 13, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 10 1 13, srcInfoPoints = []}) "len")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 14 1 21, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 1 14 1 15]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 21, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17, srcInfoPoints = []}) "f"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21, srcInfoPoints = []}) "len"))))) (Just (BDecls (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 3 32, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 8,SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 8,SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 0]}) [FunBind (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 3 32, srcInfoPoints = []}) [Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 9, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 10 2 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 10 2 11, srcInfoPoints = []}) "h")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 12 2 22, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 2 12 2 13]}) (App (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 22, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20, srcInfoPoints = []}) "return"))) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22, srcInfoPoints = []}) "h"))))) Nothing,Match (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 32, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 9, srcInfoPoints = []}) "f") [PVar (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 10 3 11, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 10 3 11, srcInfoPoints = []}) "p")] (UnGuardedRhs (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 12 3 32, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 3 12 3 13]}) (Paren (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 14 3 32, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 3 14 3 15,SrcSpan "tests/examples/WhereBlock.hs" 3 31 3 32]}) (InfixApp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 31, srcInfoPoints = []}) (Var (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16, srcInfoPoints = []}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16, srcInfoPoints = []}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16, srcInfoPoints = []}) "p"))) (QVarOp (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 29, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 18,SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28,SrcSpan "tests/examples/WhereBlock.hs" 3 28 3 29]}) (UnQual (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 29, srcInfoPoints = [SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 18,SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28,SrcSpan "tests/examples/WhereBlock.hs" 3 28 3 29]}) (Ident (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28, srcInfoPoints = []}) "advancePtr"))) (Lit (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 30 3 31, srcInfoPoints = []}) (Int (SrcSpanInfo {srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 30 3 31, srcInfoPoints = []}) 1 "1"))))) Nothing]]))]],[])
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 4 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1
+            , SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1
+            , SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 1
+            , SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 1
+            , SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 1
+            ]
+        }
+      Nothing
+      []
+      []
+      [ FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 3 32
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/WhereBlock.hs" 2 2 2 7 ]
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 3 32
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/WhereBlock.hs" 2 2 2 7 ]
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 1 1 5
+                   , srcInfoPoints = []
+                   }
+                 "hash")
+              [ PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 6 1 9
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 6 1 9
+                       , srcInfoPoints = []
+                       }
+                     "ptr")
+              , PVar
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 10 1 13
+                    , srcInfoPoints = []
+                    }
+                  (Ident
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 10 1 13
+                       , srcInfoPoints = []
+                       }
+                     "len")
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 14 1 21
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/WhereBlock.hs" 1 14 1 15 ]
+                   }
+                 (App
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 21
+                      , srcInfoPoints = []
+                      }
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 16 1 17
+                               , srcInfoPoints = []
+                               }
+                             "f")))
+                    (Var
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21
+                         , srcInfoPoints = []
+                         }
+                       (UnQual
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21
+                            , srcInfoPoints = []
+                            }
+                          (Ident
+                             SrcSpanInfo
+                               { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 1 18 1 21
+                               , srcInfoPoints = []
+                               }
+                             "len")))))
+              (Just
+                 (BDecls
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 3 32
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 8
+                          , SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 8
+                          , SrcSpan "tests/examples/WhereBlock.hs" 4 1 4 0
+                          ]
+                      }
+                    [ FunBind
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 3 32
+                          , srcInfoPoints = []
+                          }
+                        [ Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 22
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 8 2 9
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 10 2 11
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/WhereBlock.hs" 2 10 2 11
+                                     , srcInfoPoints = []
+                                     }
+                                   "h")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 12 2 22
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/WhereBlock.hs" 2 12 2 13 ]
+                                 }
+                               (App
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 22
+                                    , srcInfoPoints = []
+                                    }
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/WhereBlock.hs" 2 14 2 20
+                                             , srcInfoPoints = []
+                                             }
+                                           "return")))
+                                  (Var
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22
+                                       , srcInfoPoints = []
+                                       }
+                                     (UnQual
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22
+                                          , srcInfoPoints = []
+                                          }
+                                        (Ident
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/WhereBlock.hs" 2 21 2 22
+                                             , srcInfoPoints = []
+                                             }
+                                           "h")))))
+                            Nothing
+                        , Match
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 32
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 8 3 9
+                                 , srcInfoPoints = []
+                                 }
+                               "f")
+                            [ PVar
+                                SrcSpanInfo
+                                  { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 10 3 11
+                                  , srcInfoPoints = []
+                                  }
+                                (Ident
+                                   SrcSpanInfo
+                                     { srcInfoSpan =
+                                         SrcSpan "tests/examples/WhereBlock.hs" 3 10 3 11
+                                     , srcInfoPoints = []
+                                     }
+                                   "p")
+                            ]
+                            (UnGuardedRhs
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 12 3 32
+                                 , srcInfoPoints =
+                                     [ SrcSpan "tests/examples/WhereBlock.hs" 3 12 3 13 ]
+                                 }
+                               (Paren
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/WhereBlock.hs" 3 14 3 32
+                                    , srcInfoPoints =
+                                        [ SrcSpan "tests/examples/WhereBlock.hs" 3 14 3 15
+                                        , SrcSpan "tests/examples/WhereBlock.hs" 3 31 3 32
+                                        ]
+                                    }
+                                  (InfixApp
+                                     SrcSpanInfo
+                                       { srcInfoSpan =
+                                           SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 31
+                                       , srcInfoPoints = []
+                                       }
+                                     (Var
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16
+                                          , srcInfoPoints = []
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16
+                                             , srcInfoPoints = []
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/WhereBlock.hs" 3 15 3 16
+                                                , srcInfoPoints = []
+                                                }
+                                              "p")))
+                                     (QVarOp
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 29
+                                          , srcInfoPoints =
+                                              [ SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 18
+                                              , SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28
+                                              , SrcSpan "tests/examples/WhereBlock.hs" 3 28 3 29
+                                              ]
+                                          }
+                                        (UnQual
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 29
+                                             , srcInfoPoints =
+                                                 [ SrcSpan "tests/examples/WhereBlock.hs" 3 17 3 18
+                                                 , SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28
+                                                 , SrcSpan "tests/examples/WhereBlock.hs" 3 28 3 29
+                                                 ]
+                                             }
+                                           (Ident
+                                              SrcSpanInfo
+                                                { srcInfoSpan =
+                                                    SrcSpan "tests/examples/WhereBlock.hs" 3 18 3 28
+                                                , srcInfoPoints = []
+                                                }
+                                              "advancePtr")))
+                                     (Lit
+                                        SrcSpanInfo
+                                          { srcInfoSpan =
+                                              SrcSpan "tests/examples/WhereBlock.hs" 3 30 3 31
+                                          , srcInfoPoints = []
+                                          }
+                                        (Int
+                                           SrcSpanInfo
+                                             { srcInfoSpan =
+                                                 SrcSpan "tests/examples/WhereBlock.hs" 3 30 3 31
+                                             , srcInfoPoints = []
+                                             }
+                                           1
+                                           "1")))))
+                            Nothing
+                        ]
+                    ]))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/WhereBlock.hs.prettyprinter.golden b/tests/examples/WhereBlock.hs.prettyprinter.golden
--- a/tests/examples/WhereBlock.hs.prettyprinter.golden
+++ b/tests/examples/WhereBlock.hs.prettyprinter.golden
@@ -1,4 +1,3 @@
-module Main (main) where
 hash ptr len = f len
   where f h = return h
         f p = (p `advancePtr` 1)
diff --git a/tests/examples/WildcardTyFam.hs b/tests/examples/WildcardTyFam.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/WildcardTyFam.hs
@@ -0,0 +1,4 @@
+{-# LANGUAGE TypeFamilies #-}
+
+type family Foo a where
+  Foo _ = Int
diff --git a/tests/examples/WildcardTyFam.hs.exactprinter.golden b/tests/examples/WildcardTyFam.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/WildcardTyFam.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/WildcardTyFam.hs.parser.golden b/tests/examples/WildcardTyFam.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/WildcardTyFam.hs.parser.golden
@@ -0,0 +1,122 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 1 1 5 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/WildcardTyFam.hs" 1 1 1 1
+            , SrcSpan "tests/examples/WildcardTyFam.hs" 3 1 3 1
+            , SrcSpan "tests/examples/WildcardTyFam.hs" 3 1 3 1
+            , SrcSpan "tests/examples/WildcardTyFam.hs" 3 1 3 1
+            , SrcSpan "tests/examples/WildcardTyFam.hs" 5 1 5 1
+            , SrcSpan "tests/examples/WildcardTyFam.hs" 5 1 5 1
+            ]
+        }
+      Nothing
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 1 1 1 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/WildcardTyFam.hs" 1 1 1 13
+                , SrcSpan "tests/examples/WildcardTyFam.hs" 1 27 1 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 1 14 1 26
+                , srcInfoPoints = []
+                }
+              "TypeFamilies"
+          ]
+      ]
+      []
+      [ ClosedTypeFamDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 1 3 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/WildcardTyFam.hs" 3 1 3 5
+                , SrcSpan "tests/examples/WildcardTyFam.hs" 3 6 3 12
+                , SrcSpan "tests/examples/WildcardTyFam.hs" 3 19 3 24
+                ]
+            }
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 13 3 18
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 13 3 16
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 13 3 16
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             (UnkindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 17 3 18
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 3 17 3 18
+                     , srcInfoPoints = []
+                     }
+                   "a")))
+          Nothing
+          Nothing
+          [ TypeEqn
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 3 4 14
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/WildcardTyFam.hs" 4 9 4 10 ]
+                }
+              (TyApp
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 3 4 8
+                   , srcInfoPoints = []
+                   }
+                 (TyCon
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 3 4 6
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 3 4 6
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 3 4 6
+                            , srcInfoPoints = []
+                            }
+                          "Foo")))
+                 (TyWildCard
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 7 4 8
+                      , srcInfoPoints = []
+                      }
+                    Nothing))
+              (TyCon
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 11 4 14
+                   , srcInfoPoints = []
+                   }
+                 (UnQual
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 11 4 14
+                      , srcInfoPoints = []
+                      }
+                    (Ident
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/WildcardTyFam.hs" 4 11 4 14
+                         , srcInfoPoints = []
+                         }
+                       "Int")))
+          ]
+      ]
+  , []
+  )
diff --git a/tests/examples/WildcardTyFam.hs.prettyparser.golden b/tests/examples/WildcardTyFam.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/WildcardTyFam.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/WildcardTyFam.hs.prettyprinter.golden b/tests/examples/WildcardTyFam.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/WildcardTyFam.hs.prettyprinter.golden
@@ -0,0 +1,4 @@
+{-# LANGUAGE TypeFamilies #-}
+
+type family Foo a where
+        Foo _ = Int
diff --git a/tests/examples/brackets.hs b/tests/examples/brackets.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/brackets.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE Arrows          #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE UnicodeSyntax   #-}
+
+-- See Trac #10162 and #11743 for details
+
+module ShouldCompile where
+
+import Control.Arrow
+import Language.Haskell.TH
+
+handle :: ArrowPlus a => a (b,s) c -> a (b,(String,s)) c -> a (b,s) c
+handle f h = proc (b,s) -> (f -< (b,s)) <+> (h -< (b,("FAIL",s)))
+
+f :: ArrowPlus a => a (Int,Int) String
+f = proc (x,y) ->
+  ⦇handle
+    (returnA -< show y)
+    (\s -> returnA -< s ++ show x)
+  ⦈
+
+g :: ArrowPlus a => a (Int,Int) String
+g = proc (x,y) ->
+  ⦇handle
+    (\msg -> returnA -< msg ++ show y)
+    (\s msg -> returnA -< s ++ show x)
+  ⦈ ("hello " ++ show x)
+
+h :: ArrowPlus a => a (Int,Int) Int
+h = proc (x,y) ->
+  (
+    (\z -> returnA -< x + z)
+    <+>
+    (\z -> returnA -< y + z)
+  ) (x*y)
+
+
+matches :: PatQ -> ExpQ
+matches pat = ⟦\x ->
+  case x of
+    $pat -> True
+    _    -> False
+  ⟧
+
diff --git a/tests/examples/brackets.hs.exactprinter.golden b/tests/examples/brackets.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/brackets.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/brackets.hs" 17 3) "Parse error: \10631"
diff --git a/tests/examples/brackets.hs.parser.golden b/tests/examples/brackets.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/brackets.hs.parser.golden
@@ -0,0 +1,2 @@
+ParseFailed
+  (SrcLoc "tests/examples/brackets.hs" 17 3) "Parse error: \10631"
diff --git a/tests/examples/brackets.hs.prettyparser.golden b/tests/examples/brackets.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/brackets.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/brackets.hs" 17 3) "Parse error: \10631"
diff --git a/tests/examples/brackets.hs.prettyprinter.golden b/tests/examples/brackets.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/brackets.hs.prettyprinter.golden
@@ -0,0 +1,1 @@
+ParseFailed (SrcLoc "tests/examples/brackets.hs" 17 3) "Parse error: \10631"
diff --git a/tests/examples/completesig01.hs b/tests/examples/completesig01.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/completesig01.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -Wall #-}
+module Simple where
+
+pattern Foo :: ()
+pattern Foo = ()
+
+a :: () -> ()
+a Foo = ()
+
+data A = B | C | D
+
+{-# COMPLETE Foo #-}
+{-# COMPLETE B,C #-}
+{-# COMPLETE B #-}
+
+b :: A -> A
+b B = B
+b C = C
+
+{-# COMPLETE Foo :: () #-}
+
diff --git a/tests/examples/completesig01.hs.exactprinter.golden b/tests/examples/completesig01.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/completesig01.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/completesig01.hs.parser.golden b/tests/examples/completesig01.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/completesig01.hs.parser.golden
@@ -0,0 +1,681 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 1 1 24 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/completesig01.hs" 1 1 1 1
+            , SrcSpan "tests/examples/completesig01.hs" 2 1 2 1
+            , SrcSpan "tests/examples/completesig01.hs" 3 1 3 1
+            , SrcSpan "tests/examples/completesig01.hs" 4 1 4 1
+            , SrcSpan "tests/examples/completesig01.hs" 4 1 4 1
+            , SrcSpan "tests/examples/completesig01.hs" 6 1 6 1
+            , SrcSpan "tests/examples/completesig01.hs" 7 1 7 1
+            , SrcSpan "tests/examples/completesig01.hs" 9 1 9 1
+            , SrcSpan "tests/examples/completesig01.hs" 10 1 10 1
+            , SrcSpan "tests/examples/completesig01.hs" 12 1 12 1
+            , SrcSpan "tests/examples/completesig01.hs" 14 1 14 1
+            , SrcSpan "tests/examples/completesig01.hs" 15 1 15 1
+            , SrcSpan "tests/examples/completesig01.hs" 16 1 16 1
+            , SrcSpan "tests/examples/completesig01.hs" 18 1 18 1
+            , SrcSpan "tests/examples/completesig01.hs" 19 1 19 1
+            , SrcSpan "tests/examples/completesig01.hs" 20 1 20 1
+            , SrcSpan "tests/examples/completesig01.hs" 22 1 22 1
+            , SrcSpan "tests/examples/completesig01.hs" 24 1 24 1
+            , SrcSpan "tests/examples/completesig01.hs" 24 1 24 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 4 1 4 20
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/completesig01.hs" 4 1 4 7
+                  , SrcSpan "tests/examples/completesig01.hs" 4 15 4 20
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 4 8 4 14
+                 , srcInfoPoints = []
+                 }
+               "Simple")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 1 1 1 13
+                , SrcSpan "tests/examples/completesig01.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 2 1 2 35
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 2 1 2 13
+                , SrcSpan "tests/examples/completesig01.hs" 2 32 2 35
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 2 14 2 31
+                , srcInfoPoints = []
+                }
+              "NoImplicitPrelude"
+          ]
+      , OptionsPragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 3 1 3 26
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 3 1 3 23
+                , SrcSpan "tests/examples/completesig01.hs" 3 23 3 26
+                ]
+            }
+          (Just GHC)
+          "-Wall "
+      ]
+      []
+      [ PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 1 6 18
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 6 1 6 8
+                , SrcSpan "tests/examples/completesig01.hs" 6 13 6 15
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 9 6 12
+                , srcInfoPoints = []
+                }
+              "Foo"
+          ]
+          Nothing
+          Nothing
+          Nothing
+          Nothing
+          (TyCon
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 16 6 18
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/completesig01.hs" 6 16 6 17
+                   , SrcSpan "tests/examples/completesig01.hs" 6 17 6 18
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 16 6 18
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/completesig01.hs" 6 16 6 17
+                      , SrcSpan "tests/examples/completesig01.hs" 6 17 6 18
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 16 6 18
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/completesig01.hs" 6 16 6 17
+                         , SrcSpan "tests/examples/completesig01.hs" 6 17 6 18
+                         ]
+                     })))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 1 7 17
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 7 1 7 8
+                , SrcSpan "tests/examples/completesig01.hs" 7 13 7 14
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 9 7 12
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 9 7 12
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 9 7 12
+                     , srcInfoPoints = []
+                     }
+                   "Foo"))
+             [])
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 15 7 17
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/completesig01.hs" 7 15 7 16
+                   , SrcSpan "tests/examples/completesig01.hs" 7 16 7 17
+                   ]
+               }
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 15 7 17
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/completesig01.hs" 7 15 7 16
+                      , SrcSpan "tests/examples/completesig01.hs" 7 16 7 17
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 7 15 7 17
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/completesig01.hs" 7 15 7 16
+                         , SrcSpan "tests/examples/completesig01.hs" 7 16 7 17
+                         ]
+                     }))
+             [])
+          ImplicitBidirectional
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 1 9 14
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 9 3 9 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 1 9 2
+                , srcInfoPoints = []
+                }
+              "a"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 6 9 14
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/completesig01.hs" 9 9 9 11 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 6 9 8
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/completesig01.hs" 9 6 9 7
+                      , SrcSpan "tests/examples/completesig01.hs" 9 7 9 8
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 6 9 8
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/completesig01.hs" 9 6 9 7
+                         , SrcSpan "tests/examples/completesig01.hs" 9 7 9 8
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 6 9 8
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/completesig01.hs" 9 6 9 7
+                            , SrcSpan "tests/examples/completesig01.hs" 9 7 9 8
+                            ]
+                        })))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 12 9 14
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/completesig01.hs" 9 12 9 13
+                      , SrcSpan "tests/examples/completesig01.hs" 9 13 9 14
+                      ]
+                  }
+                (Special
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 12 9 14
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/completesig01.hs" 9 12 9 13
+                         , SrcSpan "tests/examples/completesig01.hs" 9 13 9 14
+                         ]
+                     }
+                   (UnitCon
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 9 12 9 14
+                        , srcInfoPoints =
+                            [ SrcSpan "tests/examples/completesig01.hs" 9 12 9 13
+                            , SrcSpan "tests/examples/completesig01.hs" 9 13 9 14
+                            ]
+                        }))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 10 1 10 11
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 10 1 10 11
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 10 1 10 2
+                   , srcInfoPoints = []
+                   }
+                 "a")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 10 3 10 6
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 10 3 10 6
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 10 3 10 6
+                          , srcInfoPoints = []
+                          }
+                        "Foo"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/completesig01.hs" 10 7 10 11
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/completesig01.hs" 10 7 10 8 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/completesig01.hs" 10 9 10 11
+                      , srcInfoPoints =
+                          [ SrcSpan "tests/examples/completesig01.hs" 10 9 10 10
+                          , SrcSpan "tests/examples/completesig01.hs" 10 10 10 11
+                          ]
+                      }
+                    (Special
+                       SrcSpanInfo
+                         { srcInfoSpan =
+                             SrcSpan "tests/examples/completesig01.hs" 10 9 10 11
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/completesig01.hs" 10 9 10 10
+                             , SrcSpan "tests/examples/completesig01.hs" 10 10 10 11
+                             ]
+                         }
+                       (UnitCon
+                          SrcSpanInfo
+                            { srcInfoSpan =
+                                SrcSpan "tests/examples/completesig01.hs" 10 9 10 11
+                            , srcInfoPoints =
+                                [ SrcSpan "tests/examples/completesig01.hs" 10 9 10 10
+                                , SrcSpan "tests/examples/completesig01.hs" 10 10 10 11
+                                ]
+                            }))))
+              Nothing
+          ]
+      , DataDecl
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 12 1 12 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 12 8 12 9
+                , SrcSpan "tests/examples/completesig01.hs" 12 12 12 13
+                , SrcSpan "tests/examples/completesig01.hs" 12 16 12 17
+                ]
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 12 1 12 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHead
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 12 6 12 7
+               , srcInfoPoints = []
+               }
+             (Ident
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 12 6 12 7
+                  , srcInfoPoints = []
+                  }
+                "A"))
+          [ QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 12 10 12 11
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/completesig01.hs" 12 10 12 11
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/completesig01.hs" 12 10 12 11
+                      , srcInfoPoints = []
+                      }
+                    "B")
+                 [])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 12 14 12 15
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/completesig01.hs" 12 14 12 15
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/completesig01.hs" 12 14 12 15
+                      , srcInfoPoints = []
+                      }
+                    "C")
+                 [])
+          , QualConDecl
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 12 18 12 19
+                , srcInfoPoints = []
+                }
+              Nothing
+              Nothing
+              (ConDecl
+                 SrcSpanInfo
+                   { srcInfoSpan =
+                       SrcSpan "tests/examples/completesig01.hs" 12 18 12 19
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan =
+                          SrcSpan "tests/examples/completesig01.hs" 12 18 12 19
+                      , srcInfoPoints = []
+                      }
+                    "D")
+                 [])
+          ]
+          []
+      , CompletePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 14 1 14 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 14 1 14 13
+                , SrcSpan "tests/examples/completesig01.hs" 14 18 14 21
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 14 14 14 17
+                , srcInfoPoints = []
+                }
+              "Foo"
+          ]
+          Nothing
+      , CompletePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 15 1 15 21
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 15 1 15 13
+                , SrcSpan "tests/examples/completesig01.hs" 15 15 15 16
+                , SrcSpan "tests/examples/completesig01.hs" 15 18 15 21
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 15 14 15 15
+                , srcInfoPoints = []
+                }
+              "B"
+          , Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 15 16 15 17
+                , srcInfoPoints = []
+                }
+              "C"
+          ]
+          Nothing
+      , CompletePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 16 1 16 19
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 16 1 16 13
+                , SrcSpan "tests/examples/completesig01.hs" 16 16 16 19
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 16 14 16 15
+                , srcInfoPoints = []
+                }
+              "B"
+          ]
+          Nothing
+      , TypeSig
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 18 1 18 12
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 18 3 18 5 ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 18 1 18 2
+                , srcInfoPoints = []
+                }
+              "b"
+          ]
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan =
+                   SrcSpan "tests/examples/completesig01.hs" 18 6 18 12
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/completesig01.hs" 18 8 18 10 ]
+               }
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 18 6 18 7
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 18 6 18 7
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 18 6 18 7
+                        , srcInfoPoints = []
+                        }
+                      "A")))
+             (TyCon
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/completesig01.hs" 18 11 18 12
+                  , srcInfoPoints = []
+                  }
+                (UnQual
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/completesig01.hs" 18 11 18 12
+                     , srcInfoPoints = []
+                     }
+                   (Ident
+                      SrcSpanInfo
+                        { srcInfoSpan =
+                            SrcSpan "tests/examples/completesig01.hs" 18 11 18 12
+                        , srcInfoPoints = []
+                        }
+                      "A"))))
+      , FunBind
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 1 20 8
+            , srcInfoPoints = []
+            }
+          [ Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 1 19 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 1 19 2
+                   , srcInfoPoints = []
+                   }
+                 "b")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 3 19 4
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 3 19 4
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 3 19 4
+                          , srcInfoPoints = []
+                          }
+                        "B"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 5 19 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/completesig01.hs" 19 5 19 6 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 7 19 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 7 19 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 19 7 19 8
+                            , srcInfoPoints = []
+                            }
+                          "B"))))
+              Nothing
+          , Match
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 1 20 8
+                , srcInfoPoints = []
+                }
+              (Ident
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 1 20 2
+                   , srcInfoPoints = []
+                   }
+                 "b")
+              [ PApp
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 3 20 4
+                    , srcInfoPoints = []
+                    }
+                  (UnQual
+                     SrcSpanInfo
+                       { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 3 20 4
+                       , srcInfoPoints = []
+                       }
+                     (Ident
+                        SrcSpanInfo
+                          { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 3 20 4
+                          , srcInfoPoints = []
+                          }
+                        "C"))
+                  []
+              ]
+              (UnGuardedRhs
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 5 20 8
+                   , srcInfoPoints =
+                       [ SrcSpan "tests/examples/completesig01.hs" 20 5 20 6 ]
+                   }
+                 (Con
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 7 20 8
+                      , srcInfoPoints = []
+                      }
+                    (UnQual
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 7 20 8
+                         , srcInfoPoints = []
+                         }
+                       (Ident
+                          SrcSpanInfo
+                            { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 20 7 20 8
+                            , srcInfoPoints = []
+                            }
+                          "C"))))
+              Nothing
+          ]
+      , CompletePragma
+          SrcSpanInfo
+            { srcInfoSpan =
+                SrcSpan "tests/examples/completesig01.hs" 22 1 22 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/completesig01.hs" 22 1 22 13
+                , SrcSpan "tests/examples/completesig01.hs" 22 18 22 20
+                , SrcSpan "tests/examples/completesig01.hs" 22 24 22 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan =
+                    SrcSpan "tests/examples/completesig01.hs" 22 14 22 17
+                , srcInfoPoints = []
+                }
+              "Foo"
+          ]
+          (Just
+             (Special
+                SrcSpanInfo
+                  { srcInfoSpan =
+                      SrcSpan "tests/examples/completesig01.hs" 22 21 22 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/completesig01.hs" 22 21 22 22
+                      , SrcSpan "tests/examples/completesig01.hs" 22 22 22 23
+                      ]
+                  }
+                (UnitCon
+                   SrcSpanInfo
+                     { srcInfoSpan =
+                         SrcSpan "tests/examples/completesig01.hs" 22 21 22 23
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/completesig01.hs" 22 21 22 22
+                         , SrcSpan "tests/examples/completesig01.hs" 22 22 22 23
+                         ]
+                     })))
+      ]
+  , []
+  )
diff --git a/tests/examples/completesig01.hs.prettyparser.golden b/tests/examples/completesig01.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/completesig01.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/completesig01.hs.prettyprinter.golden b/tests/examples/completesig01.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/completesig01.hs.prettyprinter.golden
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -Wall #-}
+module Simple where
+
+pattern Foo :: ()
+
+pattern Foo = ()
+
+a :: () -> ()
+a Foo = ()
+
+data A = B
+       | C
+       | D
+
+{-# COMPLETE Foo #-}
+
+{-# COMPLETE B, C #-}
+
+{-# COMPLETE B #-}
+
+b :: A -> A
+b B = B
+b C = C
+
+{-# COMPLETE Foo :: () #-}
diff --git a/tests/examples/t403.hs b/tests/examples/t403.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/t403.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+module T403 where
+
+pattern (:&&:) :: () => forall k. ((k :+ 1) ~ n) => a -> HoHeList k a -> HoHeList n a
+pattern (:&&:) x rest <- (matchNext -> Right (x, Refl, rest))
diff --git a/tests/examples/t403.hs.exactprinter.golden b/tests/examples/t403.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t403.hs.exactprinter.golden
@@ -0,0 +1,10 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+module T403 where
+
+pattern (:&&:) :: () =>           ((k :+ 1) ~ n) => a -> HoHeList k a -> HoHeList n a
+pattern ((:&&:))xrest <- (matchNext -> Right (x, Refl, rest))
+
diff --git a/tests/examples/t403.hs.parser.golden b/tests/examples/t403.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t403.hs.parser.golden
@@ -0,0 +1,520 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 1 1 10 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/t403.hs" 1 1 1 1
+            , SrcSpan "tests/examples/t403.hs" 2 1 2 1
+            , SrcSpan "tests/examples/t403.hs" 3 1 3 1
+            , SrcSpan "tests/examples/t403.hs" 4 1 4 1
+            , SrcSpan "tests/examples/t403.hs" 5 1 5 1
+            , SrcSpan "tests/examples/t403.hs" 6 1 6 1
+            , SrcSpan "tests/examples/t403.hs" 6 1 6 1
+            , SrcSpan "tests/examples/t403.hs" 8 1 8 1
+            , SrcSpan "tests/examples/t403.hs" 9 1 9 1
+            , SrcSpan "tests/examples/t403.hs" 10 1 10 1
+            , SrcSpan "tests/examples/t403.hs" 10 1 10 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 6 1 6 18
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/t403.hs" 6 1 6 7
+                  , SrcSpan "tests/examples/t403.hs" 6 13 6 18
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 6 8 6 12
+                 , srcInfoPoints = []
+                 }
+               "T403")
+            Nothing
+            Nothing))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 1 1 1 33
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 1 1 1 13
+                , SrcSpan "tests/examples/t403.hs" 1 30 1 33
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 1 14 1 29
+                , srcInfoPoints = []
+                }
+              "PatternSynonyms"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 2 1 2 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 2 1 2 13
+                , SrcSpan "tests/examples/t403.hs" 2 25 2 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 2 14 2 24
+                , srcInfoPoints = []
+                }
+              "RankNTypes"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 3 1 3 30
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 3 1 3 13
+                , SrcSpan "tests/examples/t403.hs" 3 27 3 30
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 3 14 3 26
+                , srcInfoPoints = []
+                }
+              "ViewPatterns"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 4 1 4 31
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 4 1 4 13
+                , SrcSpan "tests/examples/t403.hs" 4 28 4 31
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 4 14 4 27
+                , srcInfoPoints = []
+                }
+              "TypeOperators"
+          ]
+      , LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 5 1 5 27
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 5 1 5 13
+                , SrcSpan "tests/examples/t403.hs" 5 24 5 27
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 5 14 5 23
+                , srcInfoPoints = []
+                }
+              "DataKinds"
+          ]
+      ]
+      []
+      [ PatSynSig
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 1 8 86
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 8 1 8 8
+                , SrcSpan "tests/examples/t403.hs" 8 16 8 18
+                ]
+            }
+          [ Symbol
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 9 8 15
+                , srcInfoPoints =
+                    [ SrcSpan "tests/examples/t403.hs" 8 9 8 10
+                    , SrcSpan "tests/examples/t403.hs" 8 10 8 14
+                    , SrcSpan "tests/examples/t403.hs" 8 14 8 15
+                    ]
+                }
+              ":&&:"
+          ]
+          Nothing
+          (Just
+             (CxEmpty
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 19 8 24
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/t403.hs" 8 19 8 20
+                      , SrcSpan "tests/examples/t403.hs" 8 20 8 21
+                      , SrcSpan "tests/examples/t403.hs" 8 22 8 24
+                      ]
+                  }))
+          (Just
+             [ UnkindedVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 32 8 33
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 32 8 33
+                      , srcInfoPoints = []
+                      }
+                    "k")
+             ])
+          (Just
+             (CxSingle
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 35 8 52
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/t403.hs" 8 35 8 36
+                      , SrcSpan "tests/examples/t403.hs" 8 48 8 49
+                      , SrcSpan "tests/examples/t403.hs" 8 50 8 52
+                      ]
+                  }
+                (ParenA
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 35 8 52
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/t403.hs" 8 35 8 36
+                         , SrcSpan "tests/examples/t403.hs" 8 48 8 49
+                         , SrcSpan "tests/examples/t403.hs" 8 50 8 52
+                         ]
+                     }
+                   (TypeA
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 36 8 48
+                        , srcInfoPoints = [ SrcSpan "tests/examples/t403.hs" 8 45 8 46 ]
+                        }
+                      (TyEquals
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 36 8 48
+                           , srcInfoPoints = [ SrcSpan "tests/examples/t403.hs" 8 45 8 46 ]
+                           }
+                         (TyParen
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 36 8 44
+                              , srcInfoPoints =
+                                  [ SrcSpan "tests/examples/t403.hs" 8 36 8 37
+                                  , SrcSpan "tests/examples/t403.hs" 8 43 8 44
+                                  ]
+                              }
+                            (TyInfix
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 37 8 43
+                                 , srcInfoPoints = []
+                                 }
+                               (TyVar
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 37 8 38
+                                    , srcInfoPoints = []
+                                    }
+                                  (Ident
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 37 8 38
+                                       , srcInfoPoints = []
+                                       }
+                                     "k"))
+                               (UnpromotedName
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 39 8 41
+                                    , srcInfoPoints = []
+                                    }
+                                  (UnQual
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 39 8 41
+                                       , srcInfoPoints = []
+                                       }
+                                     (Symbol
+                                        SrcSpanInfo
+                                          { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 39 8 41
+                                          , srcInfoPoints = []
+                                          }
+                                        ":+")))
+                               (TyPromoted
+                                  SrcSpanInfo
+                                    { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 42 8 43
+                                    , srcInfoPoints = []
+                                    }
+                                  (PromotedInteger
+                                     SrcSpanInfo
+                                       { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 42 8 43
+                                       , srcInfoPoints = []
+                                       }
+                                     1
+                                     "1"))))
+                         (TyVar
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 47 8 48
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 47 8 48
+                                 , srcInfoPoints = []
+                                 }
+                               "n")))))))
+          (TyFun
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 53 8 86
+               , srcInfoPoints = [ SrcSpan "tests/examples/t403.hs" 8 55 8 57 ]
+               }
+             (TyVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 53 8 54
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 53 8 54
+                     , srcInfoPoints = []
+                     }
+                   "a"))
+             (TyFun
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 86
+                  , srcInfoPoints = [ SrcSpan "tests/examples/t403.hs" 8 71 8 73 ]
+                  }
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 70
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 68
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 66
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 66
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 58 8 66
+                                 , srcInfoPoints = []
+                                 }
+                               "HoHeList")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 67 8 68
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 67 8 68
+                              , srcInfoPoints = []
+                              }
+                            "k")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 69 8 70
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 69 8 70
+                           , srcInfoPoints = []
+                           }
+                         "a")))
+                (TyApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 74 8 86
+                     , srcInfoPoints = []
+                     }
+                   (TyApp
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 74 8 84
+                        , srcInfoPoints = []
+                        }
+                      (TyCon
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 74 8 82
+                           , srcInfoPoints = []
+                           }
+                         (UnQual
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 74 8 82
+                              , srcInfoPoints = []
+                              }
+                            (Ident
+                               SrcSpanInfo
+                                 { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 74 8 82
+                                 , srcInfoPoints = []
+                                 }
+                               "HoHeList")))
+                      (TyVar
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 83 8 84
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 83 8 84
+                              , srcInfoPoints = []
+                              }
+                            "n")))
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 85 8 86
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 8 85 8 86
+                           , srcInfoPoints = []
+                           }
+                         "a")))))
+      , PatSyn
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 1 9 62
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t403.hs" 9 1 9 8
+                , SrcSpan "tests/examples/t403.hs" 9 23 9 25
+                ]
+            }
+          (PApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 9 9 22
+               , srcInfoPoints = []
+               }
+             (UnQual
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 9 9 15
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/t403.hs" 9 9 9 10
+                      , SrcSpan "tests/examples/t403.hs" 9 10 9 14
+                      , SrcSpan "tests/examples/t403.hs" 9 14 9 15
+                      ]
+                  }
+                (Symbol
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 9 9 15
+                     , srcInfoPoints =
+                         [ SrcSpan "tests/examples/t403.hs" 9 9 9 10
+                         , SrcSpan "tests/examples/t403.hs" 9 10 9 14
+                         , SrcSpan "tests/examples/t403.hs" 9 14 9 15
+                         ]
+                     }
+                   ":&&:"))
+             [ PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 16 9 17
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 16 9 17
+                      , srcInfoPoints = []
+                      }
+                    "x")
+             , PVar
+                 SrcSpanInfo
+                   { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 18 9 22
+                   , srcInfoPoints = []
+                   }
+                 (Ident
+                    SrcSpanInfo
+                      { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 18 9 22
+                      , srcInfoPoints = []
+                      }
+                    "rest")
+             ])
+          (PParen
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 26 9 62
+               , srcInfoPoints =
+                   [ SrcSpan "tests/examples/t403.hs" 9 26 9 27
+                   , SrcSpan "tests/examples/t403.hs" 9 61 9 62
+                   ]
+               }
+             (PViewPat
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 27 9 61
+                  , srcInfoPoints = [ SrcSpan "tests/examples/t403.hs" 9 37 9 39 ]
+                  }
+                (Var
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 27 9 36
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 27 9 36
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 27 9 36
+                           , srcInfoPoints = []
+                           }
+                         "matchNext")))
+                (PApp
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 40 9 61
+                     , srcInfoPoints = []
+                     }
+                   (UnQual
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 40 9 45
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 40 9 45
+                           , srcInfoPoints = []
+                           }
+                         "Right"))
+                   [ PTuple
+                       SrcSpanInfo
+                         { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 46 9 61
+                         , srcInfoPoints =
+                             [ SrcSpan "tests/examples/t403.hs" 9 46 9 47
+                             , SrcSpan "tests/examples/t403.hs" 9 48 9 49
+                             , SrcSpan "tests/examples/t403.hs" 9 54 9 55
+                             , SrcSpan "tests/examples/t403.hs" 9 60 9 61
+                             ]
+                         }
+                       Boxed
+                       [ PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 47 9 48
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 47 9 48
+                                , srcInfoPoints = []
+                                }
+                              "x")
+                       , PApp
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 50 9 54
+                             , srcInfoPoints = []
+                             }
+                           (UnQual
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 50 9 54
+                                , srcInfoPoints = []
+                                }
+                              (Ident
+                                 SrcSpanInfo
+                                   { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 50 9 54
+                                   , srcInfoPoints = []
+                                   }
+                                 "Refl"))
+                           []
+                       , PVar
+                           SrcSpanInfo
+                             { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 56 9 60
+                             , srcInfoPoints = []
+                             }
+                           (Ident
+                              SrcSpanInfo
+                                { srcInfoSpan = SrcSpan "tests/examples/t403.hs" 9 56 9 60
+                                , srcInfoPoints = []
+                                }
+                              "rest")
+                       ]
+                   ])))
+          Unidirectional
+      ]
+  , []
+  )
diff --git a/tests/examples/t403.hs.prettyparser.golden b/tests/examples/t403.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t403.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/t403.hs.prettyprinter.golden b/tests/examples/t403.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t403.hs.prettyprinter.golden
@@ -0,0 +1,11 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+module T403 where
+
+pattern (:&&:) :: () => forall k . ((k :+ 1) ~ n) =>
+        a -> HoHeList k a -> HoHeList n a
+
+pattern (:&&:) x rest <- (matchNext -> Right (x, Refl, rest))
diff --git a/tests/examples/t412.hs b/tests/examples/t412.hs
new file mode 100644
--- /dev/null
+++ b/tests/examples/t412.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE TypeInType #-}
+
+module Typeintype
+       ( App ) where
+
+import Data.Kind
+
+data App (f :: k -> *)
diff --git a/tests/examples/t412.hs.exactprinter.golden b/tests/examples/t412.hs.exactprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t412.hs.exactprinter.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/t412.hs.parser.golden b/tests/examples/t412.hs.parser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t412.hs.parser.golden
@@ -0,0 +1,166 @@
+ParseOk
+  ( Module
+      SrcSpanInfo
+        { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 1 1 9 1
+        , srcInfoPoints =
+            [ SrcSpan "tests/examples/t412.hs" 1 1 1 1
+            , SrcSpan "tests/examples/t412.hs" 3 1 3 1
+            , SrcSpan "tests/examples/t412.hs" 3 1 3 1
+            , SrcSpan "tests/examples/t412.hs" 6 1 6 1
+            , SrcSpan "tests/examples/t412.hs" 8 1 8 1
+            , SrcSpan "tests/examples/t412.hs" 9 1 9 1
+            , SrcSpan "tests/examples/t412.hs" 9 1 9 1
+            ]
+        }
+      (Just
+         (ModuleHead
+            SrcSpanInfo
+              { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 3 1 4 21
+              , srcInfoPoints =
+                  [ SrcSpan "tests/examples/t412.hs" 3 1 3 7
+                  , SrcSpan "tests/examples/t412.hs" 4 16 4 21
+                  ]
+              }
+            (ModuleName
+               SrcSpanInfo
+                 { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 3 8 3 18
+                 , srcInfoPoints = []
+                 }
+               "Typeintype")
+            Nothing
+            (Just
+               (ExportSpecList
+                  SrcSpanInfo
+                    { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 4 8 4 15
+                    , srcInfoPoints =
+                        [ SrcSpan "tests/examples/t412.hs" 4 8 4 9
+                        , SrcSpan "tests/examples/t412.hs" 4 14 4 15
+                        ]
+                    }
+                  [ EAbs
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 4 10 4 13
+                        , srcInfoPoints = []
+                        }
+                      (NoNamespace
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 4 10 4 13
+                           , srcInfoPoints = []
+                           })
+                      (UnQual
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 4 10 4 13
+                           , srcInfoPoints = []
+                           }
+                         (Ident
+                            SrcSpanInfo
+                              { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 4 10 4 13
+                              , srcInfoPoints = []
+                              }
+                            "App"))
+                  ]))))
+      [ LanguagePragma
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 1 1 1 28
+            , srcInfoPoints =
+                [ SrcSpan "tests/examples/t412.hs" 1 1 1 13
+                , SrcSpan "tests/examples/t412.hs" 1 25 1 28
+                ]
+            }
+          [ Ident
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 1 14 1 24
+                , srcInfoPoints = []
+                }
+              "TypeInType"
+          ]
+      ]
+      [ ImportDecl
+          { importAnn =
+              SrcSpanInfo
+                { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 6 1 6 17
+                , srcInfoPoints = [ SrcSpan "tests/examples/t412.hs" 6 1 6 7 ]
+                }
+          , importModule =
+              ModuleName
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 6 8 6 17
+                  , srcInfoPoints = []
+                  }
+                "Data.Kind"
+          , importQualified = False
+          , importSrc = False
+          , importSafe = False
+          , importPkg = Nothing
+          , importAs = Nothing
+          , importSpecs = Nothing
+          }
+      ]
+      [ DataDecl
+          SrcSpanInfo
+            { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 1 8 5
+            , srcInfoPoints = []
+            }
+          (DataType
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 1 8 5
+               , srcInfoPoints = []
+               })
+          Nothing
+          (DHApp
+             SrcSpanInfo
+               { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 6 8 23
+               , srcInfoPoints = []
+               }
+             (DHead
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 6 8 9
+                  , srcInfoPoints = []
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 6 8 9
+                     , srcInfoPoints = []
+                     }
+                   "App"))
+             (KindedVar
+                SrcSpanInfo
+                  { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 10 8 23
+                  , srcInfoPoints =
+                      [ SrcSpan "tests/examples/t412.hs" 8 10 8 11
+                      , SrcSpan "tests/examples/t412.hs" 8 13 8 15
+                      , SrcSpan "tests/examples/t412.hs" 8 22 8 23
+                      ]
+                  }
+                (Ident
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 11 8 12
+                     , srcInfoPoints = []
+                     }
+                   "f")
+                (TyFun
+                   SrcSpanInfo
+                     { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 16 8 22
+                     , srcInfoPoints = [ SrcSpan "tests/examples/t412.hs" 8 18 8 20 ]
+                     }
+                   (TyVar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 16 8 17
+                        , srcInfoPoints = []
+                        }
+                      (Ident
+                         SrcSpanInfo
+                           { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 16 8 17
+                           , srcInfoPoints = []
+                           }
+                         "k"))
+                   (TyStar
+                      SrcSpanInfo
+                        { srcInfoSpan = SrcSpan "tests/examples/t412.hs" 8 21 8 22
+                        , srcInfoPoints = []
+                        }))))
+          []
+          []
+      ]
+  , []
+  )
diff --git a/tests/examples/t412.hs.prettyparser.golden b/tests/examples/t412.hs.prettyparser.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t412.hs.prettyparser.golden
@@ -0,0 +1,1 @@
+Match
diff --git a/tests/examples/t412.hs.prettyprinter.golden b/tests/examples/t412.hs.prettyprinter.golden
new file mode 100644
--- /dev/null
+++ b/tests/examples/t412.hs.prettyprinter.golden
@@ -0,0 +1,5 @@
+{-# LANGUAGE TypeInType #-}
+module Typeintype (App) where
+import Data.Kind
+
+data App (f :: k -> *)
